Round
robin merupakan salah satu algoritma penjadwalan yang paling sederhana untuk
proses dalam sistem operasi. Seperti umumnya istilah ini digunakan, irisan waktu
ditugaskan untuk setiap proses pada porsi yang sama dan dalam urutan melingkar,
menjalankan semua proses tanpa prioritas (dikenal juga sebagai eksekutif
siklik). Penjadwalan round-robin itu sederhana, mudah diterapkan, dan bebas
starvation. Penjadwalan round-robin juga dapat diterapkan untuk masalah
penjadwalan lainnya, seperti penjadwalan paket data dalam jaringan komputer.
Algoritma
round robin dirancang untuk sistem time sharing. Algoritma ini mirip dengan
penjadwalan FCFS (First Come First Served), namun preemption ditambahkan untuk
switch (peralihan proses) antara proses. Antrian ready diperlakukan atau
dianggap sebagai antrian sirkular. CPU menglilingi antrian ready dan
mengalokasikan masing-masing proses untuk interval waktu tertentu sampai satu
time slice /quantum.
Algoritma
ini berjalan dengan menggilir proses yang ada pada antrian. Setiap Proses akan
mendapat jatah sebesar time quantum. Jika time quantum-nya habis atau
proses sudah selesai, CPU akan dialihkan ke proses yang selanjutnya. 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.
Ketentuan
Penjadwalan Round Robin :
1. Jika
kwanta habis dan proses belum selesai maka proses running itu menjadi ready dan
pemroresan dialihkan ke proses lain,
2.
Jika kwanta belum habis dan proses menunggu suatu kejadian (misalnya menunggu
selesainya suatu operasi I/O), maka proses running itu menjadi bloked dan
proses dialihkan ke proses lain,
3. Dan
jika kwanta belum habis tapi proses telah selesai maka proses running itu
diakhiri dan pemprosesan dialihkan ke proses lain.
Round Robin Scheduling
Algoritma
penjadwalan yang lain yaitu Round-Robin (RR) scheduling, RR didesain secara
khusus untuk memenuhi kebutuhan akan time-sharing, hubungan time-sharing disini
adalah untuk meningkatkan waktu respon yang dianggap penting pada CPU
Scheduling yaitu minimal respon time pada kriteria algoritma penjadwalan. Pada
algoritma ini adalah gabungan antara FCFS dan preemption yang digunakan untuk
pergantian antar proses.
Pada RR, scheduler mengambil proses yang terletak diawal antrian, lalu mengatur timer untuk menghasilkan interupt setelah waktu 1 satuan waktu Kuantum yang biasanya 10-100 ms. Bila waktu selesai proses di eksekusi (burst time) kurang dari 1 kuantum, maka proses akan melepaskan kontrol CPU secara sukarela. Tetapi apabila burst time melebihi waktu kuantum maka proses akan di interupt dan kemudian akan diletakan pada ready queue.
Pada RR, scheduler mengambil proses yang terletak diawal antrian, lalu mengatur timer untuk menghasilkan interupt setelah waktu 1 satuan waktu Kuantum yang biasanya 10-100 ms. Bila waktu selesai proses di eksekusi (burst time) kurang dari 1 kuantum, maka proses akan melepaskan kontrol CPU secara sukarela. Tetapi apabila burst time melebihi waktu kuantum maka proses akan di interupt dan kemudian akan diletakan pada ready queue.
Proses
Burst Time
P1 10
P2 2
P3 3
kita berasumsi bahwa proses datang dalam urutan P1, P2, P3 pada waktu 0. Apabila waktu kuantum = 2 maka proses akan dieksekusi seperti berikut.
P1 10
P2 2
P3 3
kita berasumsi bahwa proses datang dalam urutan P1, P2, P3 pada waktu 0. Apabila waktu kuantum = 2 maka proses akan dieksekusi seperti berikut.
P1
|
P2
|
P3
|
P1
|
P3
|
P1
|
P1
|
P1
|
|
2
|
2
|
2
|
2
|
1
|
2
|
2
|
2
|
|
0
|
2
|
4
|
6
|
8
|
9
|
11
|
13
|
15
|
Waktu
tunggu :: P1 = 0 + (6-2) + (9-8) = 5 , P2 = 2 , P3 = 4 + (8-6) =6
Waktu
tunggu rata-rata :: (5 + 2 +6 ) / 3 = 13/3 = 4,3
Waktu
tunggu rata-rata untuk RR tidak optimal, namun waktu respon rata-ratanya lebih
baik. lamanya waktu kuantum sangat mempengaruhi kinerja RR, semakin besar waktu
kuantum maka RR semakin berlaku seperti FCFS, apabila waktu kuantum kecil maka
kinerja akan menurun karena adanya overhead pada context switching. waktu
kuantum yang kecil akan mengurangi waktu yang dimiliki CPU untuk melakukan
pekerjaan yang berguna.
Kelemahannya
:
- Jika quantum time sangat besar switching yang terjadi akan semakin sedikit (seperti FCFS)
- Jika quantum time terlalu kecil switching yang terjadi akan semakin banyak, sehingga banyak waktu yang terbuang