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
CONTOH VIDEO ALGORITMA PENJADWALAN CPU
http://www.youtube.com/watch?v=4KK0MVFSHeE&noredirect=1









Tidak ada komentar:
Posting Komentar