Round
Robin
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 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 quantum.
Gambar 14.5. Penggunaan Waktu
Quantum
Contoh Perhitungan Round Robin Scheduling
Dari tabel di atas,
tentukan average waiting time dengan menggunakan prinsip FCFS!
Saya jelaskan sedikit
disini, Arrival Times adalah waktu ketika proses berada di
memori utama, sebelum proses tersebut mulai dikerjakan oleh CPU. Burst
Times adalah waktu yang dibutuhkan untuk menyelesaikan keseluruhan
proses.
Hal pertama yang harus
dilakukan yaitu menggambarkan kronologi eksekusi proses di atas dengan Gantt
Chart. Berikut gambarnya:
Penjelasan:
Mengenai penjelasan dari
Gantt Chart di atas akan saya bahas satu per satu di bagian ini. Ketika CPU
tidak mengerjakan sesuatu atau dalam posisi 0 datang sebuah proses yang
dinamakan P1 yang membutuhkan waktu penyelesaian yang berjumlah 8. Karena FCFS
ini melakukan proses menurut kapan proses itu datang atau yang bisa kita
katakan sebagai proses antrian, maka proses selanjutnya akan di kerjakan
setelah proses yang berada di depannya selesai untuk di kerjakan. Tadi proses
P1 selesai di kerjakan di 8, sementara itu ada P2,P3,dan P4 yang sedang
menunggu untuk di kerjakan selanjutnya.
Ketika P1 selesai
dikerjakan di 8, maka akan di lanjutkan dengan pengerjaan P2 yang memiliki
waktu pengerjaan sebesar 7, sehingga proses P2 akan selesai di kerjakan pada
posisi 15. P1 dan P2 sudah selesai pengerjaannya, tinggal menunggu pengerjaan
daripada P3 dan P4. Dan begitupun selanjutnya sampai P4 selesai untuk di
proses. Saya ingatkan di sini, FCFS dalam prosesnya tidak mengizinkan sebuah
penyelaan dari segi apapun, walaupun proses yang menunggu memiliki prioritas
yang lebih tinggi.
Hal kedua yang dilakukan
untuk menghitung average waiting time yaitu dengan menghitung berapa lama waktu
tunggu yang dihasilkan oleh proses tersebut. Untuk menhitungnya dapat dilakukan
dengan cara mengurangkan waktu eksekusi dengan waktu datang.
Jadi lama waktu tunggu
dari keseluruhan proses tersebut berjumlah 28.
Hal ketiga dan juga hal
yang terakhir yang harus dilakukan yaitu menghitung Average Waiting Time dari
semua proses tersebut, yaitu dengan cara sebagai berikut:
No comments:
Post a Comment