. Algoritma
penjadwalan berfungsi untuk menentukan proses manakah yang ada di ready
queue yang akan dieksekusi oleh CPU.
Algoritma
ini merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU.
Dengan menggunakan algoritma ini setiap proses yang berada pada status ready
dimasukkan kedalam FIFO queue atau antrian dengan prinsip first in
first out, sesuai dengan waktu kedatangannya. Proses yang tiba terlebih
dahulu yang akan dieksekusi.
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.
Kelemahan dari algoritma ini:
- Waiting time rata-ratanya cukup lama.
- Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk menunggu 1 proses besar yang sedang dieksekusi oleh CPU. Algoritma ini juga menerapkan konsep non-preemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU tidak dapat di-interrupt oleh proses yang lain.
Misalkan proses dibalik sehingga
urutan kedatangan adalah P3, P2, P1. Waiting time adalah P1=6; P2=3;
P3=0. Average waiting time: (6+3+0)/3=3.
SJF (Shortest Job First)
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.
Burst time:asumsi
berapa lama sebuah proses membutuhkan CPU diantara proses menunggunya I/O. Hal
ini tidak dapat diprediksi secara tepat sebelum dimulainya sebuah proses.
Artinya jumlah waktu yang dibutuhkan sebuah proses dalam menggunakan CPU dalam
sebuah satuan waktu. (Sebuah proses dapat menggunakan CPU selama beberapa kali
selama task yang diberikan belum diselesaikan.
|
Process
|
Arrival Time
|
Burst Time
|
|
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.
Ada beberapa
kekurangan dari algoritma ini yaitu:
1.
Susahnya untuk
memprediksi burst time proses yang akan dieksekusi selanjutnya.
2.
Proses yang
mempunyai burst time yang besar akan memiliki waiting time
yang besar pula karena yang dieksekusi terlebih dahulu adalah proses dengan burst
time yang lebih kecil.
Algoritma ini
dapat dibagi menjadi dua bagian yaitu :
1.
Preemptive . Jika
ada proses yang sedang dieksekusi oleh CPU dan terdapat proses di ready queue
dengan burst time yang lebih kecil daripada proses yang sedang dieksekusi
tersebut, maka proses yang sedang dieksekusi oleh CPU akan digantikan oleh
proses yang berada di ready queue tersebut. Preemptive SJF
sering disebut juga Shortest-Remaining- Time-First scheduling.
2.
Non-preemptive . CPU
tidak memperbolehkan proses yang ada di ready queue untuk menggeser
proses yang sedang dieksekusi oleh CPU meskipun proses yang baru tersebut
mempunyai burst time yang lebih kecil.
No comments:
Post a Comment