Sistem
operasi mengeksekusi berbagai jenis program. Pada sistem batch program
tersebut biasanya disebut dengan job, sedangkan pada sistem time
sharing, program
disebut dengan program user atau task. Beberapa buku teks menggunakan istilah
job atau proses.
Proses adalah program yang sedang dieksekusi. Eksekusi
proses dilakukan
secara berurutan. Dalam suatu proses terdapat program
counter, stack dan daerah data.
Penjadwalan merupakan kumpulan kebijaksanaan
dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang
dilakukan sistem komputer. Proses penjadwalan yang akan dibahas disini adalah
proses penjadwalan sistem operasi Solaris dan Linux. Tujuan utama
penjadwalan proses optimasi kinerja menurut kriteria tertentu, dimana kriteria
untuk mengukur dan optimasi kerja penjadwalan.
Penjadwalan CPU
adalah basis dari multi programming sistem operasi. Dengan cara men-switch CPU
diantara proses, maka akan berakibat sistem operasi bisa membuat komputer
produktif. Dalam bab ini kami akan mengenalkan tentang dasar dari konsep
penjadwalan dan beberapa algoritma penjadwalan.
Pada
sistem Operasi, terdapat 3 tipe penjadwal berada secara bersama-sama pada
sistem operasi yang kompleks, yaitu:
a. Penjadwal
jangka pendek (short term
scheduller)
Bertugas
menjadwalkan alokasi pemroses diantara proses-proses ready di memori utama.
Penjadwalan ini dijalankan setiap terjadi pengalihan proses untuk memilih
proses berikutnya yang harus dijalankan.
b. Penjadwal
jangka menengah (medium term
scheduller)
Setelah
eksekusi selama suatu waktu, proses mungkin menunda sebuah eksekusi karena
membuat permintaan layanan masukan/keluaran atau memanggil suatu system call.
Proses-proses tertunda tidak dapat membuat suatu kemajuan menuju selesai sampai
kondisi-kondisi yang menyebabkan tertunda dihilangkan. Agar ruang memori dapat
bermanfaat, maka proses dipindah dari memori utama ke memori sekunder agar
tersedia ruang untuk proses-proses lain. Kapasitas memori utama terbatas untuk
sejumlah proses aktif. Aktivitas pemindahan proses yang tertunda dari memori
utama ke memori sekunder disebut swapping. Proses-proses mempunyai kepentingan
kecil saat itu sebagai proses yang tertunda. Tetapi, begitu kondisi yang
membuatnya tertunda hilang dan dimasukkan kembali ke memori utama dan ready.
c. Penjadwal
jangka panjang (long term
scheduller)
Penjadwalan
ini bekerja terhadap antrian batch dan memilih batch berikutnya yang harus
dieksekusi. Batch biasanya berupa proses-proses dengan penggunaan sumber daya
yang intensif (yaitu waktu pemroses, memori, masukan/keluaran), program-program
ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama
periode aktivitas job-job interaktif rendah.
Meskipun
tiap-tiap proses terdiri dari suatu kesatuan yang terpisah namun adakalanya
proses-proses tersebut butuh untuk saling berinteraksi. Satu proses bisa dibangkitkan
dari output proses lainnya sebagai input. Pada saat proses dieksekusi, akan
terjadi perubahan status. Status proses didefiniskan sebagai bagian dari
aktivitas proses yang sedang berlangsung saat itu. Gambar 3.1 dibawah,
ditunjukkan diagram status proses. Status proses terdiri dari :
a.
New, proses sedang dibuat.
b.
Running, proses sedang dieksekusi.
c.
Waiting, proses sedang menunggu beberapa event yang
akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal).
d.
Ready, proses menunggu jatah waktu dari CPU untuk
diproses.
e.
Terminated, proses telah selesai dieksekusi.