Algoritma
Penjadwalan CPU - Penjadwalan CPU adalah
permasalahan menentukan proses mana pada ready queue yang dialokasikan ke CPU.
Terdapat beberapa algoritma penjadwalan CPU, diantaranya :
- Algoritma
Penjadwalan First Come, First Served (FIFO).
- Algoritma
Penjadwalan Shortest Job First.
- Algoritma
Penjadwalan Priority Schedulling (jadwal prioritas).
- Algoritma
Penjadwalan Round Robin.
Setiap algoritma diukur “turnaround time” dan “waiting time”
untuk membandingkan performansi dengan algoritma lain. Dan untuk mengukur
turnaround time dan waiting time, digunakan “Gant Chart” . CPU time (Burst
Time) membutuhkan semua proses diasumsikan diketahui. Arrival time untuk setiap
proses pada ready queue diasumsikan diketahui.
- Algoritma
Penjadwalan First Come, First Served (FCFS)
Proses yang
pertama kali meminta jatah waktu untuk menggunakan CPU akan dilayani terlebih
dahulu. Dan rata-rata waktu tunggu (Average waiting time) cukup tinggi.
Algoritma
penjadwalan FCFS merupakan salah satu strategi penjadwalan non-Preemptive
karena sekali CPU dialokasikan pada suatu proses, maka proses tersebut akan
tetap memakai CPU sampai proses tersebut melepaskannhya, yaitu jika proses
berhenti atau meminta I/O. Kelemahan dari Algoritma penjadwalan ini adalah adanya
convoy effect.
skema
proses yang meminta CPU mendapat prioritas. Implementasi dari FCFS mudah
diatasi dengan FIFO queue. Contoh :
urutan
kedatangan adalah P1, P2, P3
Gant Chart
ini adalah :
Waiting
time for P1 = 0; P2 = 24; P3 = 27
Average
waiting time: (0 + 24 + 27)/3 = 17
misal
proses dibalik sehingga urutan kedatangan adalah P2, P3, P1. Gant Chartnya
adalah :
- Algoritma
Shortest Job First Scheduler
Algoritma
ini digunakan ketika CPU bebas proses yang mempunyai waktu terpendek untuk
menyelesaikannya mendapat prioritas. Seandainya dua proses atau lebih mempunyai
waktu yang sama maka FCFS algoritma digunakan untuk menyelsaikan masalah
tersebut.
Prinsip
algoritma penjadwalan ini adalah, proses yang memiliki CPU burst paling kecil
dilayani terlebih dahulu. Oleh karena itu, algoritma ini optimal jika
digunakan, tetapi sulit untuk diimplementasikan karena sulit mengetahui CPU
burst selanjutnya.
Ada dua
skema dalam SJFS ini yaitu:
- Non
premptive— ketika CPU memberikan kepada proses itu tidak bisa ditunda hingga
selesai.
- premptive—
bila sebuah proses datang dengan waktu proses lebih rendah dibandingkan
dengan waktu proses yang sedang dieksekusi oleh CPU maka proses yang
waktunya lebih rendah mendapatkan prioritas. Skema ini disebut juga Short
– Remaining Time First (SRTF). Contoh :
Average
waiting time = (0 + 6 + 3 + 7)/4 = 4
Contoh SJF
Primtive
SJF
algoritma mungkin adalah yang paling optimal, karena ia memberikan rata-rata
minimum waiting untuk kumpulan dari proses yang mengantri.
Average
waiting time = (9 + 1 + 0 +2)/4 = 3
- Algoritma
Penjadwalan Priority Schedulling (jadwal prioritas)
Penjadualan
SJF (Shortest Job First) adalah kasus khusus untuk algoritma penjadual
Prioritas. Prioritas dapat diasosiasikan masing-masing proses dan CPU
dialokasikan untuk proses dengan prioritas tertinggi. Untuk proritas yang sama
dilakukan dengan FCFS.
Ada pun
algoritma penjadual prioritas adalah sebagai berikut:
• Setiap proses akan
mempunyai prioritas (bilangan integer). Beberapa sistem menggunakan integer
dengan urutan kecil untuk proses dengan prioritas rendah, dan sistem lain juga
bisa menggunakan integer urutan kecil untuk proses dengan prioritas tinggi.
Tetapi dalam teks ini diasumsikan bahwa integer kecil merupakan prioritas
tertinggi.
• CPU diberikan ke proses
dengan prioritas tertinggi (integer kecil adalah prioritas tertinggi).
• Dalam algoritma ini ada
dua skema yaitu:
1.
Preemptive: proses dapat di interupsi jika terdapat prioritas lebih tinggi yang
memerlukan CPU.
2.
Nonpreemptive: proses dengan prioritas tinggi akan mengganti pada saat pemakain
time-slice habis.
• SJF adalah contoh
penjadual prioritas dimana prioritas ditentukan oleh waktu pemakaian CPU
berikutnya. Permasalahan yang muncul dalam penjadualan prioritas adalah
indefinite blocking atau starvation.
• Kadang-kadang untuk
kasus dengan prioritas rendah mungkin tidak pernah dieksekusi. Solusi untuk
algoritma penjadual prioritas adalah aging.
• Prioritas akan naik jika
proses makin lama menunggu waktu jatah CPU.
Contoh
Priority:
- Algoritma
Penjadwalan Round Robin.
Algoritma
Round Robin (RR) dirancang untuk sistem time sharing. Algoritma ini mirip
dengan penjadual FCFS, namun preemption ditambahkan untuk switch antara proses.
Antrian ready diperlakukan atau dianggap sebagai antrian sirkular. CPU
mengelilingi antrian ready dan mengalokasikan masing-masing proses untuk
interval waktu tertentu sampai satu time slice/ quantum.
Berikut
algoritma untuk penjadual Round Robin:
• Setiap proses mendapat
jatah waktu CPU (time slice/ quantum) tertentu Time slice/quantum umumnya
antara 10 – 100 milidetik.
- Setelah
time slice/ quantum maka proses akan di-preempt dan dipindahkan ke antrian
ready.
- Proses
ini adil dan sangat sederhana.
• Jika terdapat n proses
di “antrian ready” dan waktu quantum q (milidetik), maka:
- Maka
setiap proses akan mendapatkan 1/n dari waktu CPU.
- Proses
tidak akan menunggu lebih lama dari: (n-1)q time units.
• Kinerja dari algoritma
ini tergantung dari ukuran time quantum.
- Time
Quantum dengan ukuran yang besar maka akan sama dengan FCFS.
- Time
Quantum dengan ukuran yang kecil maka time quantum harus diubah ukurannya
lebih besar dengan respek pada alih konteks sebaliknya akan memerlukan
ongkos yang besar. Contoh :
- Tipikal:
lebih lama waktu rata-rata turnaround dibandingkan SJF, tapi mempunyai
response terhadap user lebih cepat.
No comments:
Post a Comment
Untuk bertanya seputar postingan kami diblog ini silahkan tanya di fb fanpage kami ..
Note: Only a member of this blog may post a comment.