Sistem Operasi
Penjadwalan Proses
05
Ilmu Komputer Teknik Informatika W151700010 Ida Farida, M.Kom
Abstract Kompetensi
Penjadwalan adalah fungsi dasar dari sistem operasi semua resources komputer
dijadwalkan sebelum digunakan. Pada sistem komputer terdapat beberapa bentuk
penjadwalan: admission (pintu masuk kesistem ), memori, dan CPU scheduler. Penjadwalan
CPU adalah pemilihan proses dari Ready Queue untuk dapat dieksekusi. Penjadwalan CPU
didasarkan pada sistem operasi yang menggunakan prinsip Multiprogramming.
Penjadwalan bertugas memutuskan :
Proses yang harus berjalan.
Kapan dan selama berapa lama proses itu berjalan.
Kita mengenal istilah multiprograming, yang bertujuan untuk memaksimalkan
penggunaan CPU dengan cara mengatur alokasi waktu yang digunakan oleh CPU,
sehingga proses berjalan sepanjang waktu dan memperkecil waktu idle. Akibatnya sistem
operasi dapat membuat komputer lebih produktif. Oleh karena itu perlu adanya penjadwalan
proses-proses yang ada pada sistem.
Strategi penjadwalan proses secara umum dibedakan menjadi dua kelompok besar, yaitu
penjadwalan non-preemptive dan preemptive.
1. Non-preemptive (run-to-completion)
Pada strategi ini, begitu proses telah berjalan maka sistem operasi maupun
proses lain tidak dapat mengmabil alih eksekusi prosesor. Pengalihan hanya dapat
terjadi jika proses yang running sudah selesai, baik secara normal maupun
abnormal. Strategi ini membahayakan sistem dan proses lain, sebab jika proses
yang sedang berjalan mengalami kegagalan, crash ataupun looping tak berhingga
maka sistem operasi menjadi tidak berfungsi dan proses lain tidak mendapatkan
kesempatan untuk dieksekusi. Strategi penjadwalan non-preemptive umumnya
digunakan pada sistem batch atau sekuensial.
2. Preemptive
Pada strategi ini, sistem operasi dan proses lain dapat mengambil alih
eksekusi prosesor tanpa harus menunggu proses yang sedang running
menyelesaikan tugasnya. Penjadwalan preemptive merupakan fitur yang penting,
terutama pada sistem dimana proses-proses memerlukan tanggapan prosesor
secara cepat. Sebagai contoh adalah sistem real-time, dimana jika terjadi interupsi
dan tidak segera dilayani maka dapat berakibat fatal. Contoh lain adalah sistem
interaktif time-sharing, dimana pengguna sistem mengharapkan tanggapan yang
cepat dari sistem. Secara umum, sistem konkuren seperti sistem operasi yang
multitasking lebih menghendaki sistem penjadwalan preemptive.
Penjadwalan Preemptive
Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana sistem
operasi tidak pernah melakukan context switch dari proses yang sedang berjalan ke proses
yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt.
Penjadwalan Non Preemptive terjadi ketika proses hanya:
1. Berjalan dari running state sampai waiting state.
2. Dihentikan.
Ini berarti CPU menjaga proses sampai proses itu pindah ke waiting state ataupun
dihentikan (proses tidak diganggu). Metode ini digunakan oleh Microsoft Windows 3.1 dan
Macintosh. Ini adalah metode yang dapat digunakan untuk platforms hardware tertentu,
karena tidak memerlukan perangkat keras khusus (misalnya timer yang digunakan untuk
menginterupt pada metode penjadwalan Preemptive).
Dispatcher
Contoh:
Ada tiga buah proses yang datang secara bersamaan yaitu pada 0 ms, P1 memiliki
burst time 24 ms, P2 memiliki burst time 3 ms, dan P3 memiliki burst time 3 ms. Hitunglah
waiting time rata-rata dan turnaround time( burst time + waiting time) dari ketiga proses
tersebut dengan menggunakan algoritma FCFS. Waiting time untuk P1 adalah 0 ms (P1
tidak perlu menunggu), sedangkan untuk P2 adalah sebesar 24 ms (menunggu P1 selesai),
dan untuk P3 sebesar 27 ms (menunggu P1 dan P2 selesai).
Urutan kedatangan adalah P1, P2 , P3; gantt chart untuk urutan ini adalah:
Waiting time rata-ratanya adalah sebesar(0+24+27)/3 = 17ms. Turnaround time untuk P1
sebesar 24 ms, sedangkan untuk P2 sebesar 27 ms (dihitung dari awal kedatangan P2
hingga selesai dieksekusi), untuk P3 sebesar 30 ms. Turnaround time rata-rata untuk ketiga
proses tersebut adalah (24+27+30)/3 = 27 ms.
Pada algoritma ini setiap proses yang ada di ready queue akan dieksekusi
berdasarkan burst time terkecil. Hal ini mengakibatkan waiting time yang pendek untuk
setiap proses dan karena hal tersebut maka waiting time rata-ratanya juga menjadi pendek,
sehingga dapat dikatakan bahwa algoritma ini adalah algoritma yang optimal.
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
Contoh:
Ada 4 buah proses yang datang berurutan yaitu P1 dengan arrival time pada 0.0 ms dan
burst time 7 ms, P2 dengan arrival time pada 2.0 ms dan burst time 4 ms, P3 dengan arrival
time pada 4.0 ms dan burst time 1 ms, P4 dengan arrival time pada 5.0 ms dan burst time 4
ms. Hitunglah waiting time rata-rata dan turnaround time dari keempat proses tersebut
dengan mengunakan algoritma SJF.
Average waiting time rata-rata untuk ketiga proses tersebut adalah sebesar (0
+6+3+7)/4=4 ms.
Average waiting time rata-rata untuk ketiga prses tersebut adalah sebesar
(9+1+0+2)/4=3 ms.
Priority Scheduling
Algoritma ini menggilir proses yang ada di antrian. Proses akan mendapat jatah
sebesar time quantum. Jika time quantum-nya habis atau proses sudah selesai, CPU akan
dialokasikan ke proses berikutnya. Tentu proses ini cukup adil karena tak ada proses yang
diprioritaskan, semua proses mendapat jatah waktu yang sama dari CPU yaitu (1/n), dan tak
akan menunggu lebih lama dari (n-1)q dengan q adalah lama 1 quantum.
Algoritma ini sepenuhnya bergantung besarnya time quantum. Jika terlalu besar, algoritma
ini akan sama saja dengan algoritma first come first served. Jika terlalu kecil, akan semakin
banyak peralihan proses sehingga banyak waktu terbuang.
Permasalahan utama pada Round Robin adalah menentukan besarnya time
quantum. Jika time quantum yang ditentukan terlalu kecil, maka sebagian besar proses tidak
akan selesai dalam 1 quantum. Hal ini tidak baik karena akan terjadi banyak switch, padahal
CPU memerlukan waktu untuk beralih dari suatu proses ke proses lain (disebut dengan
context switches time). Sebaliknya, jika time quantum terlalu besar, algoritma Round Robin
Ide dasar dari algoritma ini berdasarkan pada sistem prioritas proses. Prinsipnya, jika
setiap proses dapat dikelompokkan berdasarkan prioritasnya, maka akan didapati queue
seperti pada gambar berikut:
Dengan pendefinisian seperti tadi membuat algoritma ini sering dipakai, karena
algoritma ini mudah dikonfigurasi ulang supaya cocok dengan sistem. Tapi untuk
mengatahui mana penjadwal terbaik, kita harus mengetahui nilai parameter tersebut.
Multilevel feedback queue adalah salah satu algoritma yang berdasar pada algoritma
multilevel queue. Perbedaan mendasar yang membedakan multilevel feedback queue
dengan multilevel queue biasa adalah terletak pada adanya kemungkinan suatu proses
berpindah dari satu antrian ke antrian lainnya, entah dengan prioritas yang lebih rendah
ataupun lebih tinggi, misalnya pada contoh berikut.
1. Semua proses yang baru datang akan diletakkan pada queue 0 ( quantum= 8 ms).
2. Jika suatu proses tidak dapat diselesaikan dalam 8 ms, maka proses tersebut akan
dihentikan dan dipindahkan ke queue 1 ( quantum= 16 ms).
3. Queue 1 hanya akan dikerjakan jika tidak ada lagi proses di queue 0, dan jika suatu
proses di queue 1 tidak selesai dalam 16 ms, maka proses tersebut akan
dipindahkan ke queue 2.
Disini terlihat bahwa ada kemungkinan terjadinya perpindahan proses antar queue,
dalam hal ini ditentukan oleh time quantum, namun dalam prakteknya penerapan algoritma
multilevel feedback queue akan diterapkan dengan mendefinisikan terlebih dahulu
parameter-parameternya, yaitu:
1. Jumlah antrian.
2. Algoritma internal tiap queue.
3. Aturan sebuah proses naik ke antrian yang lebih tinggi.
4. Aturan sebuah proses turun ke antrian yang lebih rendah.
5. Antrian yang akan dimasuki tiap proses yang baru datang.
Contoh:
Terdapat tiga antrian; Q1=10 ms, FCFS Q2=40 ms, FCFS Q3=FCFS proses yang masuk,
masuk ke antrian Q1. Jika dalam 10 ms tidak selesai, maka proses tersebut dipindahkan ke
Q2. Jika dalam 40 ms tidak selesai, maka dipindahkan lagi ke Q3. Berdasarkan hal-hal di
atas maka algoritma ini dapat digunakan secara fleksibel dan diterapkan sesuai dengan
kebutuhan sistem. Pada zaman sekarang ini algoritma multilevel feedback queue adalah
salah satu yang paling banyak digunakan.