Penjadwalan Proses
(Process Scheduling)
Sistem Operasi
2
Roadmap
• Konsep Dasar Penjadwalan
• Kriteria Penjadwalan
• Algoritma Penjadwalan
3
Konsep Dasar Penjadwalan
• Penjadwalan adalah fungsi dasar dari sistem operasi.
• Semua resources (sumber daya) komputer harus
dijadwalkan sebelum digunakan.
• Penjadwalan CPU adalah pemilihan proses dari Ready
Queue untuk dapat dieksekusi.
• Penjadwalan CPU didasarkan pada sistem operasi
yang menggunakan prinsip Multiprogramming.
4
Konsep Dasar Penjadwalan
• Penjadwalan bertugas memutuskan :
– Proses yang harus berjalan.
– Kapan dan selama berapa lama proses itu
berjalan.
5
Penjadwalan
Non-Preemptive & Preemptive
• Terdapat 2 (dua) strategi penjadwalan :
– Penjadwalan Non-Preemptive
• Begitu proses diberi jatah layanan pemroses maka CPU tidak
dapat diambil alih oleh proses lain sampai proses itu selesai.
• Non-Preemptive juga disebut run-to-completion karena proses
yang telah dijadwalkan akan dijalankan sampai selesai atau
proses tersebut meminta layanan I/O.
– Penjadwalan Preemptive
• Pada saat proses sedang menggunakan CPU CPU dapat diambil
alih oleh proses lain.
• Dalam hal ini harus selalu dilakukan perbaikan data.
6
Dispatcher
• Dispatcher adalah suatu modul yang akan
memberikan kontrol pada CPU terhadap
pemilihan proses.
7
Roadmap
• Konsep Dasar Penjadwalan
• Kriteria Penjadwalan
• Algoritma Penjadwalan
8
Kriteria Penjadwalan
• Adil, proses-proses diperlakukan sama yaitu :
→ mendapat jatah waktu layanan pemroses yang sama
→ tidak ada proses yang tidak kebagian layanan pemroses
sehingga mengalami startvation.
→ Startvation adalah kondisi dimana proses tidak pernah berjalan
karena tidak dijadwalkan untuk berjalan.
9
Kriteria Penjadwalan
• Throughput, adalah banyaknya proses yang selesai dikerjakan
dalam satu satuan waktu.
Sasaran penjadwalan : memaksimalkan jumlah job yang
diproses dalam satu satuan waktu.
11
Roadmap
• Konsep Dasar Penjadwalan
• Kriteria Penjadwalan
• Algoritma Penjadwalan
12
Algoritma Penjadwalan
• Proses yang belum mendapatkan jatah alokasi dari CPU
akan mengantri di ready queue.
• Algoritma-algoritma penjadwalan :
– FCFS (First Come First Serve)
– SJF (Shortest Job First)
– Priority Scheduling (PS)
– Round-Robin (RR) 13
Algoritma Penjadwalan
• Beberapa istilah yang sering muncul :
– Process : Urutan proses yang akan dilakukan.
– Arrival Time : Waktu kedatangan dari proses yang akan
dilakukan.
– Turn Around Time : waktu total yang dibutuhkan
sebuah proses dari datang sampai selesai dieksekusi
oleh CPU.
– Burst Time: Waktu yang dibutuhkan untuk
mengeksekusi sebuah proses.
– Waiting Time: Waktu yang dihabiskan proses selama
berada pada status ready (menunggu eksekusi CPU).
14
Penjadwalan FCFS
• Merupakan penjadwalan Non - Preemptive.
P1 P2 P3
0 24 27 30
•Waiting time :
– Waiting Time P1 = 0 ms (P1 tidak perlu menunggu)
– Waiting Time P2 = 24 ms (menunggu P1 selesai)
– Waiting Time P3 = 27 ms (menunggu P1 dan P2 selesai).
17
Contoh Penjadwalan FCFS
• Turnaround Time (Burst Time + Waiting Time)
– P1 = 24 + 0 = 24 ms
– P2 = 3 + 24 = 27 ms
– P3 = 3 + 27 = 30 ms
18
Penjadwalan SJF
•Mendahulukan proses dengan Burst-Time terkecil.
•Ada 2 Tipe :
Jika ada proses P1 yang datang pada saat P0 sedang
berjalan akan dilihat CPU burst P1
– Preemptive, jika CPU burst P1 lebih kecil dari sisa
waktu yang dibutuhkan oleh P0 CPU ganti
dialokasikan untuk P1.
– Non-Preemptive, akan tetap menyelesaikan P0 sampai
habis CPU burstnya.
19
Contoh Penjadwalan Non-Preemptive SJF
Ada empat buah proses yang datang berurutan, seperti terlihat pada
tabel berikut:
P1 P3 P2 P4
0 7 8 12 16
•Waiting Time :
P1 = 0 ms
P2 = 8 – 2 = 6 ms
P3 = 7 – 4 = 3 ms
P4 = 12 – 5 = 7 ms
21
Contoh Penjadwalan Non-Preemptive SJF
22
Contoh Penjadwalan Preemptive SJF
Ada empat buah proses yang datang berurutan yaitu P1 dengan arrival
time pada 0 ms dan burst time 10 ms, P2 dengan arrival time pada 2 ms
dan burst time 4 ms, P3 dengan arrival time pada 4 ms dan burst time 1
ms, P4 dengan arrival time pada 5 ms dan burst time 4 ms.
Process Arrival Time (ms) Burst Time (ms)
P1 0 10
P2 2 4
P3 4 1
P4 5 4
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
•Waiting Time
– P1 = 0 + (11 - 2) = 9 ms
– P2 = 0 + (5 - 4) = 1 ms
– P3 = 0 ms
– P4 = 7 – 5 = 2 ms
25
Priority Scheduling
• Priority Scheduling merupakan algoritma penjadwalan
yang mendahulukan proses yang memiliki prioritas
tertinggi.
• Tiap proses diberi skala prioritas, proses yang
mendapatkan prioritas tertinggi mendapat jatah waktu
pemroses.
• Jika beberapa proses memiliki prioritas yang sama akan
digunakan algoritma FCFS.
26
Priority Scheduling
• Prioritas meliputi :
– Waktu
– Memori yang dibutuhkan
– Banyaknya file yang dibuka
– Perbandingan antara rata-rata I/O Burst
dengan rata-rata CPU Burst
27
Priority Scheduling
• Dapat bersifat Preemptive atau Non-Preemptive.
• Pada preemptive, jika ada suatu proses yang baru datang
memiliki prioritas yang lebih tinggi daripada proses yang sedang
dijalankan, maka proses yang sedang berjalan tersebut
dihentikan, lalu CPU dialihkan untuk proses yang baru datang
tersebut.
• Pada non-preemptive, proses yang baru datang tidak dapat
mengganggu proses yang sedang berjalan, tetapi hanya
diletakkan di depan queue.
28
Priority Scheduling
• Jika ada proses P1 yang datang pada saat P0 sedang berjalan
maka akan dilihat prioritas P1. Jika prioritas P1 > P0, maka :
• Pada Non-Preemptive, algoritma tetap akan menyelesaikan
P0 sampai habis CPU burstnya dan meletakkan P1 pada
posisi head queue.
• Pada Preemptive, P0 akan dihentikan dulu dan CPU ganti
dialokasikan untuk P1.
Gantt Chart :
P2 P4 P3 P1
0 8 11 18 24
30
Contoh Non-Preemptive Priority Scheduling
• Waiting Time
– P1 = 18 ms
– P2 = 0 ms
– P3 = 11 ms
– P4 = 8 ms
• Gantt Chart
P1 P2 P4 P3 P1
0 2 10 13 20 24
32
Contoh Preemptive Priority Scheduling
• Waiting Time
– P1 = 0 + (20 - 2) = 18 ms
– P2 = 0 ms
– P3 = 13 – 4 = 9 ms
– P4 = 10 – 5 = 5 ms
34
Penjadwalan Round-Robin
• Keuntungan algoritma round robin :
– Adanya keseragaman waktu.
• Gantt Chart
P1 P2 P3 P4 P1 P2 P4 P1
0 3 6 7 10 13 14 15 16
37
Contoh Penjadwalan Round-Robin
(Quantum Time 3 ms)
• Waiting Time
– P1 = 0 + (10 - 3) + (15 - 13) = 9 ms
– P2 = 3 + (13 - 6) = 10 ms
– P3 = 6 ms
– P4 = 7 + (14 - 10) = 11 ms
• Quantum Time = 4 ms
• Gantt Chart
P1 P2 P3 P4 P1
0 4 8 9 13 16
39
Contoh Penjadwalan Round-Robin
(Quantum Time 4 ms)
• Waiting Time
– P1 = 0 + (13 - 4) = 9 ms
– P2 = 4 ms
– P3 = 8 ms
– P4 = 9 ms
40
• Average Turnaround Time = (16 + 8 + 9 + 13)/4 = 46/4 = 11,5 ms
Contoh Penjadwalan Round-Robin dengan
Arrival Time Berbeda
• Quantum Time = 3 ms
• Gantt Chart
P1 P2 P3 P1 P4 P5 P3 P5
0 3 6 9 11 12 15 18 19
41
Contoh Penjadwalan Round-Robin dengan
Arrival Time Berbeda
Process AT BT CT TAT WT
P1 0 5 11 11 6
P2 1 3 6 5 2
P3 3 6 18 15 9
P4 5 1 12 7 6
P5 6 4 19 13 9
AT = Arrival Time
BT = Burst Time
CT = Completion Time
TAT = Turn Around Time
42
WT = Waiting Time
TERIMA KASIH
43