Home » » System Informasi Bab II (Proses & Thread)

System Informasi Bab II (Proses & Thread)

Posted by Kamar Pekick on Saturday, 12 March 2016

http://kamarpekick.16.mb.com

BAB II
PROSES & THREAD

A.      Definisi Proses
Menurut Silberschatz proses tidak hanya sekadar suatu kode program (text section), melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara (parameter fungsi/metode, return address, dan variabel lokal) dan data section yang menyimpan variabel-variabel global. Tanenbaum juga berpendapat bahwa proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya.

Sistem Operasi mengeksekusi proses dengan dua cara :
Ü  Batch System yang mengeksekusi jobs
Ü  Time-shared System yang mengatur pengeksekusian program pengguna (user) atau tasks.

Proses dapat didefinisikan sebagai program yang sedang berjalan/dieksekusi. Proses merupakan unit kerja terkecil yang memiliki sumberdaya-sumberdaya dan dijadwalkan oleh sistem operasi.

B.      Penciptaan dan Terminasi Proses
1.     Penciptaan Proses
Aktivitas penciptaan proses antara lain :
a.       Menamai proses yang akan diciptakan dengan memberi prosess id
b.      Menyisipkan proses pada senarai proses atau tabel
c.       Menentukan prioritas awal proses
d.      Menciptakan Process Control Block (PCB)
e.       Mengalokasikan sumber daya-sumber daya awal bagi proses

Penyebab terjadinya penciptaan proses :
a.       Tanggapan atas pemberian job di lingkungan batch
b.      Pemakai baru berusaha log in pada lingkungan interaktif
c.       Tanggapan dari permintaan yang dilakukan aplikasi
d.      Proses menciptakan proses lain (child process)

2.     Terminasi Proses
Suatu proses diterminasi ketika proses tersebut telah selesai mengeksekusi perintah terakhir serta meminta sistem operasi untuk menghapus perintah tersebut dengan menggunakan system call exit. Pada saat itu, proses dapat mengembalikan data keluaran kepada proses induk-nya melalui system call wait. Semua sumber-daya yang digunakan oleh proses akan dialokasikan kembali oleh sistem operasi agar dapat dimanfaatkan oleh proses lain. Suatu proses juga dapat diterminasi dengan sengaja oleh proses lain melalui system call abort. Biasanya proses induk melakukan hal ini pada turunannya. Alasan terminasi tersebut seperti:
ü  Turunan melampaui penggunaan sumber-daya yang telah dialokasikan. Dalam keadaan ini, proses induk perlu mempunyai mekanisme untuk memeriksa status turunannya-nya.
ü  Task yang ditugaskan kepada turunan tidak lagi diperlukan.
ü  Proses induk selesai, dan sistem operasi tidak mengizinkan proses turunan untuk tetap berjalan. Jadi, semua proses turunan akan berakhir pula. Hal ini yang disebut cascading termination

C.       Status Proses
1.      New               :  Status yang dimiliki saat proses baru saja dibuat
2.      Ready                        :  Status yang dimiliki saat proses siap untuk dieksekusi
3.      Running         :  Instruksi-instruksi sedang dieksekusi
4.      Waiting          :  Status yang dimiliki saat proses menunggu sebuah event
5.      Terminated   :  Status yang dimiliki proses ketika proses telah selesai dieksekusi

Diagram State Proses
Ready
Running
Blocked
Submit
Dispatch
Completed
Timeout
Suspended Blocked
Suspended Ready
Event Wait
Suspend
Resume
Suspend
Resume
Event Occur
I/O Completion
Atau
Event Completion
 


















Gambar 2.1 :  Diagram State Proses

Process Control Block
PCB merupakan struktur data yang menyimpan data lengkap mengenai proses sehingga sistem dapat mengelola seluruh siklus hidup semua proses di sistem. Ada tiga kelompok utama informasi dalam PCB yaitu :
1.      Informasi Identifikasi Proses
Ø  Identifier Proses
Ø  Identifier Proses yang menciptakan
Ø  Identifier Pemakai
2.      Informasi Status Pemroses
Ø  Register-register yang terlihat pemakai
Ø  Register-register kendali dan status
Ø  Pointer Stack
3.      Informasi Kendali Proses
Ø  Informasi penjadualan status
Ø  Penstrukturan data
Ø  Komunikasi antar proses
Ø  Kewenangan proses
Ø  Manajemen memori
Ø  Kepemilikan dan utilisasi sumber daya














Gambar 2.2 :  Process Control Block (PCB)

D.      Implementasi Proses
Tabel atau senarai proses yang dicatat oleh sistem operasi :
1.      Tabel informasi manajemen memori
2.      Tabel informasi manajemen masukan/keluaran
3.      Tabel informasi sistem file
4.      Tabel proses

PCB berperan penting di sistem operasi. PCB berisi informasi mengenai proses yang diperlukan sistem operasi. PCB dibaca/dimodifikasi rutin sistem operasi seperti penjadualan, alokasi sumberdaya, pemrosesan interupsi, monitoring, dan analisa kerja. Untuk menyatakan senarai proses di sistem operasi dibuat senarai PCB.

Tiap proses dilengkapi ID unik yang digunakan sebagai indeks ke tabel untuk mengambil PCB. Namun, kesalahan bisa saja terjadi saat pengaksesan berlangsung. Kesalahan bukan pada mekanisme pengaksesan, tetapi masalah proteksi terhadap PCB. Masalah utama proteksi terhadap PCB, yaitu :
1.      Bug (kesalahan pemrograman) pada rutin tunggal misalnya interrupt handler dapat merusak PCB sehingga dapat berakibat menghancurkan kemampuan sistem mengelola proses-proses yang diasosiasikan dengan PCB.
2.      Perubahan rancangan struktur dan semantiks PCB dapat berdampak ke sejumlah modul sistem operasi yang memakai PCB.

E.       Multiprogramming, Multiprocessing dan Distributed Processing
1.     Multiprogramming
ü  Manajemen banyak proses  di satu pemroses
ü  Proses dijalankan secara bersamaan pada satu waktu
ü  Setiap proses yang terjadi mendapat memori dan kendali tersendiri
ü  Bersifat independent dan one program at any instant
2.     Multiprocessing
ü  Manajemen banyak proses di komputer multiprocessor
ü  Digunakan untuk peningkatan kinerja
ü  Memberikan kemampuan  fault tolerant

3.     Distributed Process
ü  Manajemen banyak proses yang dieksekusi di sistem komputer tersebar dalam sebuah jaringan.
ü  Pemrogram tidak perlu menyadari keberadaan banyak pemroses.

F.       Pengalihan Proses (Process Switching)
Beberapa penyebab terjadinya pengalihan proses :
1.      Interupsi Sistem ---> terjadi karena faktor eksternal
Tipe-tipe interupsi :
Ø  Interupsi clock
Ø  Interupsi masukan/keluaran
Ø  Page/memory fault
2.      Trap ----> Terjadi karena kesalahan yang dihasilkan proses running, misal : usaha untuk mengakses file secara ilegal
3.      Supervisor Call ---> Panggilan meminta atau mengaktifkan bagian sistem operasi

G.      Penjadualan Proses
Penjadualan adalah kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer, bertugas mengatur proses yang harus berjalan dan waktu selama proses berjalan.
Kriteria untuk mengukur dan optimasi kinerja penjadualan :
1.      Adil (Fairness)
2.      Efisiensi
3.      Waktu Tanggap (Response Time)
4.       Turn Arround Time
5.       Throughtput

Tipe-tipe penjadualan :
1.      Penjadualan Jangka Pendek
Menjadualkan alokasi pemroses di antara proses-proses ready yang berada di memori utama.
2.      Penjadualan Jangka Menengah
Bertugas menangani proses-proses swapping.
3.      Penjadulan Jangka Panjang
Bekerja terhadap antrian batch dan memilih batch yang harus dieksekusi sistem.

H.     Strategi Penjadualan
1.      Penjadualan Pre-emptive ---> Proses dapat disela oleh proses lain
2.      Penjadualan Non pre-emptive ---> Proses tidak dapat disela oleh proses lain
I.         Algoritma Penjadualan
1.     Round Robin (RR)
a.       Jika waktu habis dan proses belum selesai ---> Running > Ready
b.      Jika waktu belum habis dan proses menunggu ---> Running > Blocked
c.       Jika waktu belum habis dan proses selesai ---> Running > Completed
2.     Multiple Feedback Quenes (MFQ)
a.       Menjalankan proses yang berada pada kelas prioritas tertinggi.
b.      Jika proses telah menggunakan waktu yang dialokasikan maka proses diturunkan kelas prioritasnya.
c.       Proses yang masuk pertama kali langsung diberi kelas tertinggi.
3.     Shortest Remaining First (SRF)
Proses dengan sisa waktu jalan diestimasi terendah.
4.     Highest Ratio Next (HRN)
Pemroses memberikan prioritas layanan kepada proses yang telah menunggu lebih lama.
5.     Priority Schedulling (PS)
Proses yang memliki prioritas tinggi menjadi running.
6.     Guaranteed Schedulling (GS)
Penjadual akan menjalankan proses dengan rasio terendah sampai rasio proses di atas pesaing terdekatnya.
7.     First in, First Out (FIFO) atau First Come First Serve (FCFS)
a.       Proses diberi jatah waktu pemroses berdasarkan urutan kedatangan
b.      Proses dijalankan hingga selesai
8.     Shortest Job First (SJF)
Lebih mengutamakan proses dengan waktu terpendek.

J.         Thread
Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaannya ialah proses dengan thread yang banyak mengerjakan lebih dari satu tugas pada satu satuan waktu.

Gambar 2.3 : Thread Tunggal dan Multi-Thread




Keuntungan dari program yang multithreading terbagi menjadi empat kategori:
1.        Responsif
Aplikasi interaktif menjadi tetap responsif meski pun sebagian dari program sedang diblok atau melakukan operasi yang panjang kepada pengguna. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan gambar.

2.        Berbagi sumber daya
Thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.

3.        Ekonomis
Pembuatan sebuah proses memerlukan dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan penggunaan thread, karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread. Akan susah untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread, dan context switch proses 5 kali lebih lama dibandingkan context switch thread.

4.        Utilisasi arsitektur multiprocessor
Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu (satu-satuan waktu pada CPU biasa disebut time slice atau quantum).

K.      Thread Pengguna dan Thread Kernel
1.      Thread Pengguna
Thread pengguna didukung kernel serta diimplementasikan dengan pustaka thread pada tingkatan pengguna. Pustaka menyediakan fasilitas untuk pembuatan thread, penjadwalan thread, dan manajemen thread tanpa dukungan dari kernel. Karena kernel tidak menyadari user-level thread maka semua pembuatan dan penjadwalan thread dilakukan dalam ruang pengguna tanpa campur tangan kernel. Oleh karena itu, thread pengguna biasanya dapat cepat dibuat dan dikendalikan. Tetapi thread pengguna mempunyai kelemahan untuk kernel thread tunggal. Salah satu thread tingkatan pengguna menjalankan blocking system call maka akan mengakibatkan seluruh proses diblok walau pun ada thread lain yang dapat jalan dalam aplikasi tersebut. Contoh pustaka thread pengguna ialah POSIX Pthreads, Mach C-threads, dan Solaris threads.



2.      Thread Kernel
Thread kernel didukung langsung oleh sistem operasi. Pembuatan, penjadwalan, dan manajemen thread dilakukan oleh kernel pada kernel space. Karena pengaturan thread dilakukan oleh sistem operasi maka pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread. Keuntungannya adalah thread diatur oleh kernel, karena itu jika sebuah thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain di aplikasi untuk melakukan eksekusi. Keuntungan lainnya adalah pada lingkungan multiprocessor, kernel dapat menjadwal thread-thread pada processor yang berbeda. Contoh sistem operasi yang mendukung kernel thread adalah Windows NT, Solaris, Digital UNIX.

L.       Model Penggunaan
1.        Many to One
Model Many-to-One memetakan beberapa thread tingkatan pengguna ke sebuah thread tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna, sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi, multiple thread tidak dapat berjalan secara pararel pada multiprocessor. Thread tingkat pengguna yang diimplementasi pada sistem operasi yang tidak mendukung thread kernel menggunakan model many to one.

2.        One to One
Model One-to-One memetakan setiap thread tingkatan pengguna ke thread kernel. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahannya model ini ialah setiap pembuatan thread pengguna memerlukan pembuatan thread kernel. Karena pembuatan thread dapat menurunkan kinerja dari sebuah aplikasi maka implmentasi dari model ini, jumlah thread dibatasi oleh sistem. Contoh sistem operasi yang mendukung model One-to-One ialah Windows NT dan OS/2.

3.        Many to Many
Model Many-to-Many memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya lebih sedikit atau sama dengan tingkatan pengguna. thread. Jumlah thread kernel dapat spesifik untuk sebagian aplikasi atau sebagian mesin. Many-to-One model mengizinkan developer untuk membuat user thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwal oleh kernel pada suatu waktu. One-to-One menghasilkan concurrency yang lebih tetapi developer harus hati-hati untuk tidak menciptakan terlalu banyak thread dalam suatu aplikasi (dalam beberapa hal, developer hanya dapat membuat thread dalam jumlah yang terbatas). Model Many-to-Many tidak menderita kelemahan dari dua model di atas. Developer dapat membuat user thread sebanyak yang diperlukan, dan kernel thread yang bersangkutan dapat bejalan secara pararel pada multiprocessor. Dan juga ketika suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi. Contoh sistem operasi yang mendukung model ini adalah Solaris, IRIX, dan Digital UNIX.

Thanks for reading & sharing Kamar Pekick

Previous
« Prev Post

0 komentar:

Post a Comment

Search Postingan

My Art Painting