Penjadwalan proses dapat didefinisikan sebagai kumpulan kebijaksanaan dan mekanisme sistem operasi yang mengatur urutan dan jangka waktu eksekusi proses-proses yang aktif. Penjadwalan bertugas memilih proses, menentukan kapan serta berapa lama proses tersebut boleh menggunakan prosesor.

Untuk menjalankan penjadwalan proses, sistem operasi membutuhkan sejumlah komponen yang meluputi :

  1. Antrian penjadwalan (Scheduling Queue), Antrian penjadwalan meliputi antrian yang proses-proses yang siap dieksekusi (ready queue), antrian untuk proses-proses yang menunggu layanan operasi dari suatu peranti I/O (peranti I/O atau IO queue seperti disk, magnetik tape dan terminal). Selain itu, terdapat job (long-term) queue yang berisi semua proses dalam sistem. Pada sistem uniprosesor, pada setiap saat, dari seluruh proses yang berada antrian ready hanya ada satu proses yang akan dijalankan atau berstatus running, sedangkan sisanya akan berstatus ready. Sedangkan proses-proses yang berada di I/O queue selalu berstatus blocked. Berbagai antrian jenis antrian penjadwalan proses dapat dilihat pada gambar. Umumnya antrian-antrian ini diimplementasikan dalam bentuk link-list. Header antrian berisi referensi atau pointer ke PCB suatu proses, yang ada gilirannya akan berisi referensi ke PCB proses lainnya. Header antrian juga berisi referensi ke PCB proses yang berada pada ujung antrian. Pada gambar terlihat proses 2 dan 7 berada pada antrian ready. Ini berarti salah satu dari proses 2 dan 7 berstatus running, sedangkan sisanya berstatus ready. Proses 3,5,6,14 berstatus blocked karena menunggu operasi I/O. Proses sedang menunggu input dari terminal dan ditempatkan pada antrian terminal unit 0, sedangkan proses 3,6,14 sedang menunggu operasi pada disk unit 0 dan ditempatkan pada antrian disk tersebut.
Macam-macam Antrian Penjadwalan

2. Penjadwalan (Scheduler), selain antrian, komponen lain dari penjadwalan proses adalah rutin penjadwalan (scheduler). Penjadwal berupa rutin program dengan algoritma tertentu yang menyeleksi proses yang akan dieksekusi prosesor. Jenis scheduler dapat berupa :

  • Penjadwal Jangka pendek (Short Term Scheduler), penjadwal ini berupa untuk menyeleksi proses mana yang akan dijalankan diatara proses-proses yang ada di antrian ready. Penjadwal jangka pendek dijalankan setiap kali terjadi pengalihan eksekusi proses dengan tujuan memilih proses berikutnya yang akan diesekusi prosesor.
  • Penjadwalan Jangka Menegah (Medium-Term Scheduler), Jika ruang memori utama tidak cukup untuk proses yang sedang dieksekusi maka sistem operasi akan melakukan swapping, yaitu memindahkan image proses lain dari memori utama ke memori maya yang berada pada memori sekunder seperti disk. Umumnya yang dikorbankan untuk swapping adalah proses yang berstatus blocked yang sedang menunggu suatu event ataupun selesainya suatu operasi I/O. Ketika event ditunggu terjadi maka image proses yang sudah di swapping ini harus dikembalikan semula ke memori utama. Penjadwalan jangka menengah menyeleksi proses yang akan di-swapping (swap out) dan menyeleksi proses yang akan dikembalikan ke memori utama (swap in).
  • Penjadwal Jangka Panjang (Longterm Scheduler atau Job Scheduler) , Penjadwal jangka panjang berfungsi menyeleksi proses yang akan dialokasikan ke memori utama dan disisipkan pada antrian ready. Dalam beberapa sistem operasi, proses yang baru diciptakan diinisiasi dalam kondisi swapped out pada memori maya (dimemori sekunder)

3. Dispatcher, Komponen penjadwalan proses lainnya adalah dispatcher. Dispatcher adalah suatu rutin sistem operasi yang berfungsi untuk melakukan pengalihan eksekusi dari proses yang running ke proses yang terseleksi oleh short term scheduler . Rutin ini memindahkan isi register prosesor, konteks prosesor, ke PCB proses yang dihentikan, kemudian mengubah statusnya menadi ready, kemudian menginisiasi isi register prosesor menggunakan konteks prosesor yang tersimpan dalam PCB proses terpilih. Durasi waktu yang diperlukan untuk melakukan pengalihan (switching) disebut dengan dispatch latency.