Algoritma Penjadualan
1.
First-come,
first-served (FCFS)
Algoritma:
a.
Proses yang request CPU pertama kali akan mendapatkan jatah CPU.
b.
algoritma maupun struktur data merupakan yang paling sederhana : menggunakan
FIFO queue (ready queue).
Contoh :
Ada tiga buah proses yang datang secara
bersamaan yaitu:
§
Process Burst
Time
P1 24
P2 3
P3 3
§
Diketahui proses yang tiba adalah P1, P2, P3. Gant chartnya adalah :
§
Hitunglah waiting time ( burst time + waiting time) dari ketiga
proses tersebut dengan menggunakan algoritma FCFS, Waiting time untuk P1 =
0; P2 = 24; P3 = 27
§
Average waiting time: (0 + 24 + 27)/3 = 17
Diketahui
proses yang tiba adalah P2, P3, P1. Gant chart-nya adalah :
§
Waiting time untuk P1 = 6; P2 = 0; P3 = 3
§
Average waiting time: (6 + 0 + 3)/3 = 3 (Lebih baik dari kasus sebelumnya)
§
Convoy effect proses
yang pendek diikuti proses yang panjang
2.
Shortest-Job-First
(SJF)
Algoritma:
Penggabungan setiap proses merupakan panjang dari burst CPU berikutnya. Panjang tersebut digunakan untuk penjadualan proses pada
waktu terpendek
Shortest Job First memiliki 2 skema :
1.
nonpreemptive – CPU hanya satu kali diberikan pada suatu proses,
maka proses tersebut tetap akan memakai CPU hingga proses tersebut
melepaskannya
2.
preemptive –jika
suatu proses tiba dengan panjang CPU burst lebih kecil dari waktu yang tersisa
pada ekseksusi proses yang sedang berlangsung, maka dijalankan preemtive. Skema
ini dikenal dengan Shortest-Remaining-Time-First (SRTF).
Contoh
a.
Process Arrival Time Burst
Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
a.
SJF (non-preemptive)
Average waiting time = (0 + 6 + 3 + 7)/4 - 4
b.
SJF (preemptive)
Average waiting time =
(9 + 1 + 0 +2)/4 - 3
3.
Priority
Algoritma:
a. Setiap
proses akan mempunyai prioritas tertinggi (bilangan integer).
b. CPU
diberikan ke proses dengan prioritas tertinggi (smallest integer º highest
priority).
c. Preemptive:
proses dapat di interupsi jika terdapat prioritas lebih tinggi yang memerlukan
CPU.
d. Nonpreemptive:
proses dengan prioritas tinggi akan mengganti pada saat pemakain time-slice
habis.
e. SJF adalah contoh priority
scheduling dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya.
Contoh permasalahan dalam sistem :
Setiap 10
menit, prioritas dari masing-masing proses yang menunggu dalam queue dinaikkan
satu tingkat. Maka, suatu proses yang memiliki prioritas 127, setidaknya dalam
21 jam 20 menit, proses tersebut akan memiliki prioritas 0, yaitu prioritas
yang tertinggi (semakin kecil angka menunjukkan bahwa prioritasnya semakin
tinggi).
4. Round-Robin (RR)
Algoritma:
Proses akan mendapat jatah
sebesar time quantum. Jika time quantum-nya habis atau proses sudah selesai,
CPU akan dialokasikan ke proses berikutnya. Jadi,,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.
Contoh RR (Q =20)
§
Process Burst
Time
P1 53
P2 17
P3 68
P4 24
§
Gantt Chart
§
Tipikal: lebih lama waktu rata-rata turnaround dibandingkan SJF,
tapi mempunyai response terhadap user
lebih cepat.
5. Multilevel Queue
Algoritma:
§
proses sesuai dengan sifat dari : Interaktif (response cepat) dan Batch
dll
§
Partisi “ready queue” dalam beberapa tingkat (multilevel) sesuai
dengan proses:
a.
Setiap queue menggunakan algoritma schedule sendiri
b.
Foreground
proses (interaktif, high prioritiy): RR
c.
Background proses (batch, low priority): FCFS
§
Setiap queue mempunyai prioritas yang fixed.
6.
Multilevel Feedback Queue
Algoritma:
§
Suatu proses dapat berpindah diantara beragam antrian
§
Perlu feedback untuk penentuan proses naik/turun prioritasnya
(dinamis):
a.
Aging dapat diimplementasikan sesuai dengan lama proses pada satu
queue.
b.
Suatu proses yang menggunakan CPU sampai habis (tanpa I/O wait)
=> CPU-bound (bukan proses interaktif) dapat dipindahk ke queue dengan
prioritas lebih rendah
Contoh
Terdapat tiga antrian; Q1=10
ms, FCFS Q2=40 ms, FCFS Q3=FCFS proses yang masuk, masuk ke antrian Q1. Jika
dalam 10 ms tidak selesai, maka proses tersebut dipindahkan ke Q2. Jika dalam
40 ms tidak selesai, maka dipindahkan lagi ke Q3. Berdasarkan hal-hal di atas
maka algoritma ini dapat digunakan secara fleksibel dan diterapkan sesuai
dengan kebutuhan sistem. Pada zaman sekarang ini algoritma multilevel feedback
queue adalah salah satu yang paling banyak digunakan.
Tidak ada komentar:
Posting Komentar