Senin, 19 November 2012

RR (Round-Robin) ...(bukan robinhood :D )




Algoritma Round Robin (RR) didisain 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 bekerja 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 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. 

Ketentuan algoritma round robin adalah sebagai berikut: 1. Jika quantum dan proses belum selesai maka proses menjadi runnable dan pemroses dialihkan ke proses lain. 2. Jika quantum belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain. 3. Jika quantum belum habis tapi proses telah selesai, maka proses diakhiri dan pemroses dialihkan ke proses lain.

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.

Algoritma penjadwalan ini dapat diimplementasi sebagai berikut: – Mengelola senarai proses read (runnable) sesuai urutan kedatangan. – Ambil proses yang berada di ujung depan antrian menjadi running. – Bila quantum belum habis dan proses selesai maka ambil proses di ujung depan antrian proses ready. – Jika quantum habis dan proses belum selesai maka tempatkan proses running ke ekor antrian proses ready dan ambil proses di ujung depan antrian proses ready.

Berikut Algoritma penjadwalan Round Robin secara Keseluruhan :

Setiap proses mendapat jatah waktu CPU (time slice/quantum) tertentu Time slice/quantum umumnya ntara 10 – 100 milidetik.
1.  Setelah time slice/quantum maka proses akan di-preempt dan dipindahkan ke antrian ready. 2.  Proses ini adil dan sangat sederhana.

Jikaterdapat n proses di “antrian ready ” dan waktu quantum q (milidetik), maka:
1.   Maka setiap proses akan mendapatkan 1/n dari waktu CPU. 2.   Proses tidak akan menunggu lebih lama dari: (n-1)q time units.

Performance dari algoritma ini tergantung dari ukuran time quantum
1.  Time Quantum dengan ukuran yang besar maka akan sama dengan FCFS 2.  Time Quantum dengan ukuran yang kecil maka time quantum harus diubah ukurannya lebih besar dengan respek                   pada context switch sebaliknya akan memerlukan ongkos yang besar.

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 akan berjalan seperti algoritma first come first served. Time quantum yang ideal adalah jika 80% dari total proses memiliki CPU burst time yang lebih kecil dari 1 time





SUMBER:


Tidak ada komentar:

Posting Komentar