Modul ini membahas tentang CPU scheduling pada sistem operasi. Beberapa algoritma scheduling yang dijelaskan meliputi FCFS, SJF, priority scheduling, round robin, dan multi-level queue. Algoritma-algoritma tersebut dievaluasi berdasarkan kriteria seperti fairness, utilization CPU, throughput, turnaround time, dan waiting time. Modul ini juga menjelaskan konsep dasar, kriteria evaluasi, dan contoh perhitungan berbagai algoritma scheduling.
2. Pembahasan
• Konsep Dasar
• Kriteria Scheduling
• Algoritma Scheduling
• Contoh perhitungan dari beberapa algoritma
untuk menghitung average waiting time dan
average turn around time proses
3. CPU Scheduling
• Merupakan basis dari OS yang
multiprogramming, sementara
multiprogramming untuk meningkatkan
produktifitas sistem
• Topik pembahasan :
– Konsep dasar CPU Scheduling
– Algoritma-algoritma CPU Scheduling
4. Konsep Dasar CPU Scheduling
• Dalam multiprogramming
– Suatu proses dieksekusi s.d wait untuk I/O, setelah
itu CPU diberikan ke proses lain, dst.
– Pelajari konsep CPU Bounded process dan I/O
bounded process dan state process (5 state)
– Membentuk siklus yang terdiri atas
• Sequence eksekusi CPU (CPU burst time)
• Sequence dalam service I/O (I/O burst time)
– Pola distribusi CPU burst time adalah eksponensial
atau bahkan hipereksponensial
5. Contoh CPU - I/O Burst
• scanf n, a, b /* I/O wait */
for (i=1; i<=n; i++) /* CPU burst */
x = x + a*b;
printf x /* I/O wait */
for (i=1; i<=n; i++) /* CPU burst */
for (j=1; j<=n; j++)
x = x + a*b;
printf x /* I/O wait */
7. Keputusan Scheduling
• Scheduler memilih dari antara proses-
proses dalam memori yang ready dan
mengalokasi CPU untuk proses yang
terpilih
• Terjadinya keputusan scheduler saat :
– (1) status proses berubah dari run ke wait
– (2) status proses berubah dari run ke ready
– (3) status proses berubah dari wait ke ready
– (4) status proses menjadi terminate
8. Non-preemptive
• Scheduler dalam situasi (1) dan (4)
disebut non-preemptive
– Sekali CPU ditetapkan untuk suatu proses
maka proses tidak akan melepaskannya
hingga terminate atau untuk melakukan I/O
– Untuk hardware tertentu skema ini
merupakan satu-satunya pilihan (misalnya
tidak ada timer)
– Digunakan oleh MS Windows
10. Preemptive
• Scheduler dalam situasi (2) dan (3)
disebut preemptive
– CPU dapat dialihkan ke proses lain oleh OS
misalnya karena interrupt, timer, dsb.
– Perlu penanganan masalah data sharing
antara sebelum dan sesudah
– Perlu blocking CPU saat struktur data kernel
berada pada status yang inkonsisten
11. Dispatcher
• Modul yang memberikan kontrol CPU bagi
proses yang terpilih untuk mendapat giliran
meliputi :
– Context switching
– Set operasi sistem ke user-mode
– Jump ke lokasi untuk meneruskan proses yang
mendapat giliran dan run
12. Dispatch Latency
• Waktu yang diperlukan oleh dispatcher untuk
menghentikan proses yang sedang running
hingga proses yang di-dispatch berikutnya
running
13. CPU Scheduling Algorithms
• FCFS First Come First Served, proses
yang datang duluan dilayani duluan
• SJF Shortest job First, proses yang
terpendek burst timenya dilayani duluan
• Priority, penjadwalan proses dengan
sistem prioritas
• Round Robin, proses dieksekusi oleh CPU
berdasarkan kuota
• Multi-Level , penjadwalan berbasis hirarki
14. Kriteria Scheduling (1)
• Fairness : adil untuk seluruh proses
• CPU utilization : persentase jumlah waktu
CPU sibuk dari total waktu
• Throughput : jumlah proses yang selesai
dieksekusi per satuan waktu
• Turnaround time : selang waktu sejak
submit proses hingga terminate
15. Kriteria Scheduling (2)
• Waiting time : jumlah waktu suatu proses
menunggu dalam ready queue
• Response time : panjang waktu sejak
submit hingga respons pertama muncul
• Predictability respons : variansi
(ketersebaran) waktu respons
16. Obyektif : meningkatkan derajat
multiprogramming
• Pemilihan algoritma untuk optimisasi :
– Memaksimalkan CPU utilization
– Memaksimalkan throughput=bnyk proses yg
dpat diselesaikan per satuan waktu
– Meminimumkan turnaround time=total
keseluruhan waktu eksekusi prosesor
– Meminimumkan waiting time= total waktu
tunggu
– Meminimumkan response time=total waktu
tanggap pertama oleh prosesor
– Meminimumkan response time variance
17. First Come, First-Served
(FCFS)
• Proses yang merequest CPU lebih dulu
adalah yang dilayani terlebih dahulu
• Jika suatu proses running menjadi ready
maka ia antri lagi dibelakang
• Performance : waktu tunggu rata-rata
lama serta akan bervariasi jika burst time
amat bervariasi
18. Contoh FCFS
Diketahui :
Ditanyakan :
– Average waiting time & Average Turn Arround Time
dg algoritma FCFS.
Jawab :
a. Buat dulu Gantt Chart untuk meletakkan proses
sesuai algoritma yang diminta
b. Revisi tabel dg t awal eksekusi, t akhir eksekusi, t
tunggu (waiting time) dan t total (turn arround time)
c. Hitung total t tunggu dan turn arround time dibagi
jumlah proses yang ada
20. Contoh FCFS
• P1 : 24 ms, P2 : 3 ms, P3 : 3 ms.
• Datang dalam urutan P1, P2, P3
– Gantt Chart
– Waktu tunggu : P1 = 0 ms, P2 = 24 ms, dan P3 = 27 ms
– Average waiting time = (0 + 24 + 27)/3 = 17 ms
• Jika urutannya : P2, P3, P1 maka :
– Gantt Chart
– Average waiting time = (6 + 0 + 3)/3 = 3
– Average Turn Around Time 39/3=13
P1 P2 P3
24 27 30
0
P1
P2 P3
3 6 30
0
21. Masalah FCFS : “Convoy Effect”
• Kondisi terdapat suatu proses yang
memiliki CPU-burst time besar (CPU
bound) dan sejumlah proses lain dengan
I/O burst time yang besar (I/O bound)
– Proses CPU bound sedang hold CPU proses
I/O bound menunggu, I/O device idle
– Proses I/O bound sedang melakukan I/O,
proses CPU bound menunggu, CPU idle
22. Shortest Job First (SJF)
• Tepatnya “shortest CPU burst-time first”
• Bila CPU burst time tiap proses diketahui
sebelumnya maka proses dengan CPU
burst time terkecil yang dilayani terlebih
dahulu
– Preemptive scheme : proses running P1 bisa
dihentikan di tengah saat muncul proses P2
yang lebih pendek
– Nonpreemptive scheme : proses running akan
terus sampai terminate atau I/O wait
23. Contoh SJF - Non-Preemptive
Process Arrival Time Burst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
• SJF (non-preemptive)
• Average waiting time = (0 + 6 + 3 + 7)/4 = 4
P1 P3 P2
7
3 16
0
P4
8 12
27. Masalah SJF : informasi CPU burst
time
• Algoritma memberikan performance yang
optimal, tapi bagaimana caranya
mendapatkan informasi CPU burst time ?
– Untuk long-term schedule dalam batch
system, dapat digunakan panjang time limit
yang dispesifikasikan user pada saat submit
job.
– Untuk short-term scheduling tidak mungkin.
Tidak ada cara untuk mengetahui secara
pasti CPU burst berikutnya, hanya dapat
diaproksimasi secara stokastik (prediksi).
28. Priority Scheduling
• Proses dengan prioritas lebih tinggi akan
dilayani lebih dulu
– Preemptive scheme : proses running P1 bisa
dihentikan di tengah saat muncul proses P2
yang lebih tinggi prioritasnya
– Non-preemptive scheme : proses yang
running akan diteruskan sampai terminate
atau I/O wait
29. Contoh Priority Scheduling
Process Burst Time Priority
P1 8 2
P2 1 1
P3 1 3
• Average waiting time = (1 + 0 + 9)/3 = 3.3
P2
P3
1 9
0
P1
10
30. Pendefinisian Prioritas
• Internal
– Bila mungkin, ditentukan berdasarkan
indikator terukur atau estimasinya
• Time limit, memori requirement, jumlah file open,
ratio I/O burst terhadap CPU burst
• External
– Ditentukan berdasarkan kriteria yang
eksternal bagi OS
• Tingkat kepentingan proses, charging, super-user
(root), dll
31. Masalah Priority Scheduling
• Indefinite blocking (starvation) pada
proses-proses berprioritas rendah
terutama jika sistemnya heavilyloaded
– Rumor : ketika IBM 7093 di MIT di-shutdown
tahun 1973, ditemukan adanya proses-proses
low priority yang di-submit tahun 1967 dalam
status wait
32. Solusi dari Starvation
• Solusi : “aging” (peningkatan prioritas
pada proses-proses yang sudah
menunggu cukup lama)
– Misalnya setiap 15 menit dinaikkan 1 tingkat
33. Round Robin (RR)
• Masing-masing proses diberikan interval
waktu tertentu yang disebut time quantum
• Mengikuti FCFS & setelah kuantum waktu
tertentu proses yang running di-preempt &
kembali ke ready queue
• Mekanisme kuantum waktu menggunakan
timer, jika proses sudah terminate atau
melakukan I/O wait sementara timer
belum habis, timer di-reset untuk giliran
proses berikutnya
34. Contoh : RR
• Contoh : dengan time quantum = 20 ms
Process Burst Time
P1 53
P2 17
P3 68
P4 24
• Gantt chart :
• Khususnya, rata-rata turnaround lebih tinggi daripada
SJF, tetapi lebih baik untuk respons.
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
36. Masalah RR : Penentuan Kuantum
Waktu
• Menentukan performance sistem :
– Jika terlalu besar sistem menjadi FCFS murni
– Jika terlalu kecil terjadi “processor sharing”
• Pada n proses yang running pada prosesor dengan
kecepatan K, bagi setiap proses terasa masing-masing
memiliki prosesor sendiri dengan kecepatan K/n (misalnya
respons interaksi jadi lambat)
– Jika terlalu kecil overhead untuk context switching
jadi besar
38. Multi-Level Queue (MLQ)
• Proses diklasifikasi ke dalam sejumlah kelas &
masing-masing kelas memiliki antrian sendiri
dengan aturan berbeda
– Contoh kelas-kelas dalam beberapa OS
• Proses sistem
• Proses interaktif
• Proses editing interaktif
• Proses batch
• Proses student
40. MLQ pada Uniprocessor
• Kelas-kelas perlu diantrikan juga
– Dengan prioritas berbeda secara fixed dan
preemptive; proses dari kelas yang lebih
rendah harus menunggu proses dari kelas
yang lebih tinggi selesai
– Dengan menerapkan time sharing dengan
kuota waktu yang berbeda (misalnya
foreground 80% dan background 20%)
41. Multi-Level Feedback Queue
• MLQ overhead rendah tetapi tidak
fleksibel
• MLFQ memungkinkan perpindahan antara
level antrian untuk meng-aproksimasi SJF
:
– Proses mula-mula masuk ke level pertama,
jika dalam batas waktu proses belum berakhir
maka ia di-preempt dan dimasukkan ke
antrian level berikutnya yang prioritasnya
lebih rendah
42. Contoh MLFQ
• Contoh MLFQ dengan 3 antrian : Q0, Q1,
dan Q2. Kuantum Q0 = 8 ms, kuantum Q1
= 16 ms dan Q2 menggunakan skema
FCFS
– Awalnya proses P masuk ke Q0, apabila saat
running belum selesai saat timer habis (8 ms)
maka P di-preempt dan dipindahkan ke Q1
– Jika Q0 sudah kosong, Q1 baru dilayani; saat
P belum selesai juga saat timer habis (16 ms)
maka P masuk dalam skema FCFS Q3
44. Parameter Menentukan MLFQ
• Jumlah Queue (level)
• Algoritma scheduling untuk tiap queue
• Metode penentuan kapan upgrade
prioritas proses ke queue yang lebih tinggi
• Metode penentuan kapan menurunkan
prioritas proses ke queue yang lebih
rendah
• Metode penentuan queue mana yang
dimasuki proses
45. TUGAS : Diketahui proses-proses sbb :
Prosess T datang CPU Burst
Time
P1 0 9
P2 3 4
P3 5 2
P4 6 X, digit terakhir NIM
P5 6 Y digit no 2
Hitung Average Waiting Time dan Average Turn
Arround Time dengan :
1. FCFS
2. SJF
3. RSJF
4. RR dengan quota = 4