Jumat, 07 November 2014

ROUND ROBIN


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.
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
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

Tidak ada komentar:

Posting Komentar