Sistem Operasi Penjadwalan Proses
Penjadwalan Penjadwalan menjadi kebutuhan ketika multiprogramming diterapkan Penjadwalan juga dipengaruhi oleh tipe aplikasi yang sedang berjalan Penggantian proses yang aktif dengan proses lain tidak mudah (murah) Mulai dari perubahan user mode ke kernel mode Menyimpan virtual CPU dari proses yang berjalan Proses baru dipilih melalui algoritma penjadwalan Dst.
Perilaku proses Hampir seluruh proses terdiri dari proses komputasi dan menunggu I/O secara bergantian Compute-bound: proses lebih banyak melakukan komputasi I/O-bound: proses lebih banyak menunggu I/O
Perilaku proses Faktor kuncinya adalah lamanya proses komputasi, bukan lamanya menunggu I/O Lamanya melakukan permintaan ke perangkat keras adalah sama, tidak tergantung berapa lama komputasi yang dibutuhkan setelah data diperoleh Semakin cepat CPU, semakin besar kemungkinan proses bertemu dengan I/O bound
Kapan waktu untuk menjadwal? Ketika proses baru dibuat Ketika proses berhenti (exit) Ketika proses terblokir (blocked) Ketika terjadi interpusi I/O Penjadwalan dapat dilakukan pada setiap interupsi clock Algoritma penjadwal didasarkan pada reaksi atas interupsi clock
Algoritma penjadwal Nonpreemptive: memilih proses dan membiarkan proses berjalan sampai terblokir atau secara sukarela melepaskan CPU Preemptive: memilih proses dan membiarkan proses berjalan dalam kurun waktu tertentu, ketika waktunya tercapai maka proses dipaksa untuk berhenti meskipun belum menyelesaikan prosesnya
Algoritma penjadwal Tergantung dari kebutuhan sistem Batch: no preemption at all, or preemption with large amount of time Interactive: preemption needed so that one process cannot block other process Realtime: preemption is sometimes not needed because processes know that they may not run for long period and usually do their work and block quickly
Jenis penjadwalan Batch Interactive Realtime FCFS SJF SRTN Round robin Priority Multiple queue, dll Realtime Hard realtime Soft realtime