Berikut ini adalah pembahasan tentang manajemen proses yang saya ambil dari
bebas.vlsm.org. tetapi untuk slide silahkan download di
sini.
Konsep Proses
- Apakah itu Proses ? Proses dapat diartikan sebagai program yang sedang dieksekusi. Sistem komputer dahulu hanya membolehkan satu program untuk dieksekusi dalam suatu waktu. Tapi sistem komputer sekarang memungkinkan banyak program untuk di-load ke memori dan dieksekusi bergantian. Program sendiri bukanlah proses. Program adalah suatu entitas pasif, sementara proses adalah suatu entitas aktif. Proses juga terdiri dari :
- Program counter
Nilai dari program counter dan isi register di prosesor merepresentasikan aktivitas yang sedang berjalan.
- Stack
Stack berisi data sementara.
- Data section
Data section berisi variabel global.
- Proccess State
(lihat simulasi proccess state)
Proses memiliki state (status) yang menggambarkan aktivitas proses pada saat ini. Beragam kejadian dapat menyebabkan perubahan state proses. Tiap proses dapat berada pada salah satu dari state berikut :
- New : Proses baru diciptakan.
- Running : Instruksi dieksekusi.
- Waiting : Proses sedang menunggu suatu even/kejadian muncul.
- Ready : Proses menunggu untuk mendapatkan jatah CPU.
- Terminated : Proses selesai dieksekusi.
- Proccess Control Block Tiap proses direpresentasikan dalam sistem operasi sebagai proccess control block, yang terdiri dari :
- State proses
- Program counter
- Register CPU
- Informasi penjadwalan CPU
- Informasi memori manajemen
- Informasi penghitungan
- Informasi status IO
Gambar 1 : Process control block
Penjadwalan Proses
- Antrian Penjadwalan
(lihat simulasi antrian penjadwalan) Saat proses memasuki sistem, proses akan dimasukkan ke job queue (queue = antrian) yang berisi semua proses yang ada dalam sistem. Proses yang ditempatkan di memori utama, siap dan menunggu untuk dieksekusi akan diletakkan di ready queue. Ready queue biasanya disimpan dalam bentuk linked list. Proses yang menunggu device IO ditempatkan pada device queue atau I/O waiting queue. Proses dapat berpindah dari queue yang satu ke queue yang lain.
Saat suatu proses mendapat jatah CPU dan dieksekusi, satu dari kejadian-kejadian berikut mungkin terjadi :
- Proses meminta IO, dan akan ditempatkan pada IO queue.
- Proses menciptakan subproses dan menunggu subproses selesai dieksekusi (terminates).
- Proses disingkirkan dengan paksa dari CPU akibat interupsi dan diletakkan kembali di ready queue.
- Schedulers
(lihat simulasi schedulers) Schedulers bertugas untuk memilih proses untuk keperluan penjadwalan. Ada dua istilah untuk scheduler yaitu long term scheduler atau job scheduler yang akan memilih proses dari kelompoknya dan me-load ke memori untuk dieksekusi dan short term sceduler atau CPU scheduler memilih satu diantara proses yang siap dieksekusi dan mengalokasikan ke CPU.
Secara umum, proses dapat dideskripsikan menjadi proses I/O bound atau proses CPU bound. Proses I/O bound menghabiskan lebih banyak waktu melakukan I/O daripada komputasi. Proses CPU bound menghabiskan lebih banyak waktu untuk komputasi.
Sistem time sharing mamperkenalkan medium term scheduler yang menggunakan konsep swapping. Konsepnya adalah menyingkirkan proses dari memori untuk mengurangi banyaknya proses di memori (degree of multiprogramming), kemudian pada waktu tertentu proses dikembalikan lagi dan eksekusi dilanjutkan.
- Context Switch
Context switch adalah kegiatan menyimpan state dari proses lama dan me-load state untuk proses baru ketika CPU dialihkan untuk proses lain. Context switch time adalah waktu yang dibutuhkan untuk context switch, merupakan waktu dimana CPU tidak digunakan oleh proses manapun.
Operasi Pada Proses
- Pembuatan Proses
Proses dapat membuat beberapa proses baru selagi dieksekusi. Proses yang membuat proses baru disebut parent, sedangkan proses baru yang dibuat disebut children. Ketika proses membuat proses baru, ada dua kemungkinan yang terjadi pada saat eksekusi, yaitu : parent terus dieksekusi bersamaan dengan children atau parent menunggu sampai beberapa atau semua children selesai dieksekusi.
- Pengakhiran (Termination) Proses Suatu proses berakhir ketika proses tersebut sudah selesai dieksekusi dan meminta sistem operasi untuk menghapusnya. Parent dapat mengakhiri eksekusi salah satu dari children-nya untuk alasan tertentu seperti : child telah menggunakan sumber daya lebih dari yang telah dialokasikan, task yang ditugaskan untuk children tidak diperlukan lagi, atau parent sudah berakhir (termination).
Kerjasama Proses
Eksekusi proses secara bersamaan pada sistem operasi dapat berupa proses yang mandiri (independent) atau proses yang bekerja sama (cooperating). Proses merupakan proses mandiri jika tidak mempengaruhi atau dipengaruhi oleh eksekusi proses lain dalam sistem. Dapat pula dikatakan proses yang tidak berbagi data dengan proses lain disebut proses yang mandiri. Proses yang bekerja sama merupakan kebalikan dari proses independen, yaitu proses yang berbagi data dengan proses lain atau dapat mempengaruhi atau dipengaruhi oleh eksekusi proses lain dalam sistem.
Ilustrasi dari proses yang bekerja sama adalah producer-consumer problem. Buffer yang digunakan untuk producer-consumer problem dapat berupa bounded-buffer atau unbounded-buffer. Bounded-buffer berkapasitas terbatas, sedangkan unbounded-buffer berkapasitas tidak terbatas.
(lihat simulasi producer-consumer problem dengan bounded-buffer)
Keuntungan dari kerjasama proses yaitu:
- Berbagi informasi
- Komputasi lebih cepat
- Modularitas
- Kenyamanan
Komunikasi antar Proses
Komunikasi antar proses menyediakan mekanisme bagi proses untuk berkomunikasi dan meng-sinkronisasi-kan aksi mereka.
- Message - Passing System Fungsi dari message passing system adalah mengatur proses untuk berkomunikasi dengan proses lain tanpa perlu untuk berbagi data. Operasi yang disediakan adalah send dan receive. Pesan yang dikirim dapat berukuran tetap atau variabel. Apabila pesan berukuran tetap, maka implementasi pada sistem lebih mudah akan tetapi pemrogramannya lebih sulit. Sedangkan untuk pesan yang ukurannya berupa variabel, implementasi pada sistem lebih sulit, tapi pemrogramannya lebih sederhana.
Jika dua proses akan berkomunikasi, maka harus ada link komunikasi di antaranya. Implementasi logika link ini bermacam - macam, misalnya :
- Langsung atau tidak langsung
- Simetris atau asimetri
- Buffering otomatis atau eksplisit
- Send by copy atau send by reference
- Pesan berukuran tetap atau berukuran variabel
- Langsung vs Tidak Langsung Proses yang ingin mengadakan komunikasi harus mempunyai cara untuk menunjuk satu sama lain, untuk itu dapat digunakan :
- Buffering Queue yang berfungsi sebagai buffer (penyangga) dalam komunikasi antar proses ada 3 macam, yaitu:
- Kapasitas nol: queue mampunyai panjang maksimal 0
- Kapasitas terbatas : queue mempunyai panjang terbatas
- Kapasitas tidak terbatas : queue mempunyai panjang tidak terbatas
Artikel keren lainnya:
Belum ada tanggapan untuk "Manajemen Proses"
Post a Comment