10/17/2012
1
PENJADWALAN PROSES
SISTEM OPERASI
http://blogriki.wordpress.com
Pembahasan
• Konsep Dasar• Kriteria Scheduling• Algoritma Scheduling
10/17/2012
2
CPU Scheduling
• Merupakan basis dari OS yangmultiprogramming, sementaramultiprogramming untuk meningkatkanproduktifitas sistem
• Topik pembahasan :– Konsep dasar CPU Scheduling– Algoritma-algoritma CPU Scheduling
CPU Scheduling
10/17/2012
3
Konsep Dasar CPU Scheduling
• Dalam multiprogramming– Suatu proses dieksekusi s.d proses tunggu untuk
I/O, setelah itu CPU diberikan ke proses lain, dst.– 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 adalaheksponensial atau bahkan hipereksponensial
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 */
10/17/2012
4
Pola Distribusi CPU Burst Time
Keputusan Scheduling
• Scheduler memilih dari antara proses-prosesdalam memori yang ready dan mengalokasiCPU 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
10/17/2012
5
Non-preemptive
• Scheduler dalam situasi (1) dan (4) disebutnon-preemptive– Sekali CPU ditetapkan untuk suatu proses maka
proses tidak akan melepaskannya hinggaterminate atau untuk melakukan I/O
– Untuk hardware tertentu skema ini merupakansatu-satunya pilihan (misalnya tidak ada timer)
– Digunakan oleh MS Windows
Status Proses - Scheduler
NonNon--preemptivepreemptivePreemptivePreemptive
10/17/2012
6
Preemptive
• Scheduler dalam situasi (2) dan (3) disebutpreemptive– 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
Dispatcher
• Modul yang memberikan kontrol CPU bagiproses yang terpilih untuk mendapat giliranmeliputi :– Context switching– Set operasi sistem ke user-mode– Jump ke lokasi untuk meneruskan proses yang
mendapat giliran dan run
10/17/2012
7
Dispatcher
Dispatcher
10/17/2012
8
Dispatch Latency
• Waktu yang diperlukan oleh dispatcheruntuk menghentikan proses yangsedang running hingga proses yang di-dispatch berikutnya running
CPU Scheduling Algorithms
• FCFS Queue• SJF Queue• Priority Queue• Round Robin• Multi-Level Queue• Multi-Level Feedback Queue
10/17/2012
9
Kriteria Scheduling (1)
• CPU utilization : persentase jumlah waktuCPU sibuk dari total waktu
Kriteria Scheduling (1)
• Throughput : Jumlah proses yang selesaidieksekusi per satuan waktu
10/17/2012
10
Kriteria Scheduling (1)
• Turnaround time : selang waktu sejaksubmit (mulai) proses hingga terminate(selesai)
Kriteria Scheduling (2)
• Waiting time : jumlah waktu suatu prosesmenunggu dalam ready queue
• Response time : panjang waktu sejaksubmit hingga respons pertama muncul
• Predictability respons : variansi(ketersebaran) waktu respons
• Fairness : Pembagian waktu penggunaanCPU secara adil
10/17/2012
11
Obyektif
• Pemilihan algoritma untuk optimisasi :– Memaksimalkan CPU utilization– Memaksimalkan throughput– Meminimumkan turnaround time– Meminimumkan waiting time– Meminimumkan response time– Meminimumkan response time variance– Mendapatkan pembagian yang Fairness
First Come, First-Served (FCFS)
• Proses yang merequest CPU lebih duluadalah yang dilayani terlebih dahulu
• Jika suatu proses running menjadi readymaka ia antri lagi dibelakang
• Performance : waktu tunggu rata-ratalama serta akan bervariasi jika burst timeamat bervariasi
10/17/2012
12
First Come, First-Served (FCFS)
• (1) (2)
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
P1 P2 P3
24 27 300
P1P2 P3
3 6 300
10/17/2012
13
Masalah FCFS : “Convoy Effect”
• Kondisi terdapat suatu proses yang memilikiCPU-burst time besar (CPU bound) dansejumlah proses lain dengan I/O burst timeyang 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
Shortest Job First (SJF)
• Tepatnya “shortest CPU burst-time first”• Bila CPU burst time tiap proses diketahui
sebelumnya maka proses dengan CPU bursttime terkecil yang dilayani terlebih dahulu– Preemptive scheme : proses running P1 bisa
dihentikan di tengah saat muncul proses P2 yanglebih pendek
– Nonpreemptive scheme : proses running akanterus sampai terminate atau I/O wait
10/17/2012
14
Contoh SJF - Non-Preemptive
Process Arrival Time Burst TimeP1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4
• SJF (non-preemptive)
• Average waiting time = (0 + 6 + 3 + 7)/4 = 4
P1 P3 P2
73 160
P4
8 12
Contoh SJF - Preemptive
Process Arrival Time Burst TimeP1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4
• SJF (preemptive)
• Average waiting time = (9 + 1 + 0 +2)/4 = 3
P1 P3P2
42 110
P4
5 7
P2 P1
16
10/17/2012
15
Masalah SJF : informasi CPU burst time
• Algoritma memberikan performance yangoptimal, tapi bagaimana caranyamendapatkan informasi CPU burst time ?– Untuk long-term schedule dalam batch system,
dapat digunakan panjang time limit yangdispesifikasikan user pada saat submit job.
– Untuk short-term scheduling tidak mungkin. Tidakada cara untuk mengetahui secara pasti CPU burstberikutnya, hanya dapat diaproksimasi secarastokastik (prediksi).
Priority Scheduling
• Proses dengan prioritas lebih tinggi akandilayani lebih dulu– Preemptive scheme : proses running P1 bisa
dihentikan di tengah saat muncul proses P2yang lebih tinggi prioritasnya
– Non-preemptive scheme : proses yangrunning akan diteruskan sampai terminateatau I/O wait
10/17/2012
16
Contoh Priority Scheduling
Process Burst Time PriorityP1 8 2P2 1 1P3 1 3
• Average waiting time = (1 + 0 + 9)/3 = 3.3
P2 P3
1 90
P1
10
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
10/17/2012
17
Masalah Priority Scheduling
• Indefinite blocking (starvation) padaproses-proses berprioritas rendahterutama jika sistemnya heavilyloaded– Rumor : ketika IBM 7093 di MIT di-
shutdown tahun 1973, ditemukan adanyaproses-proses low priority yang di-submittahun 1967 dalam status wait
Solusi dari Starvation
• Solusi : “aging” (peningkatan prioritas padaproses-proses yang sudah menunggu cukuplama)– Misalnya setiap 15 menit dinaikkan 1 tingkat
10/17/2012
18
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 menggunakantimer, jika proses sudah terminate ataumelakukan I/O wait sementara timer belumhabis, timer di-reset untuk giliran prosesberikutnya
Contoh : RR• Contoh : dengan time quantum = 20 ms
Process Burst TimeP1 53P2 17P3 68P4 24
• Gantt chart :
• Khususnya, rata-rata turn around 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
10/17/2012
19
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 dengankecepatan K, bagi setiap proses terasa masing-masingmemiliki prosesor sendiri dengan kecepatan K/n(misalnya respons interaksi jadi lambat)
– Jika terlalu kecil overhead untuk contextswitching jadi besar
Time Quantum dan Context SwitchTime
10/17/2012
20
Multi-Level Queue (MLQ)
• Proses diklasifikasi ke dalam sejumlahkelas & masing-masing kelas memilikiantrian sendiri dengan aturan berbeda– Contoh kelas-kelas dalam beberapa OS
• Proses sistem• Proses interaktif• Proses editing interaktif• Proses batch• Proses student
Diagram Contoh MLQ
10/17/2012
21
MLQ pada Uniprocessor
• Kelas-kelas perlu diantrikan juga– Dengan prioritas berbeda secara fixed dan
preemptive; proses dari kelas yang lebihrendah harus menunggu proses dari kelasyang lebih tinggi selesai
– Dengan menerapkan time sharing dengankuota waktu yang berbeda (misalnyaforeground 80% dan background 20%)
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 iadi-preempt dan dimasukkan ke antrian levelberikutnya yang prioritasnya lebih rendah
– Proses yang menunggu terlalu lama bisa naik keantrian ber-prioritas lebih tinggi
10/17/2012
22
Contoh MLFQ
• Contoh MLFQ dengan 3 antrian : Q0, Q1, danQ2. Kuantum Q0 = 8 ms, kuantum Q1 = 16 msdan 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 Pbelum selesai juga saat timer habis (16 ms) makaP masuk dalam skema FCFS Q3
Diagram Contoh MLFQ
10/17/2012
23
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