Anda di halaman 1dari 42

Penjadwalan Proses

I Kadek Dwi Gandika Supartha


Pembahasan
• Konsep Dasar
• Kriteria Scheduling
• Algoritma Scheduling

Sistem Operasi, DGS


CPU Scheduling

• Merupakan basis dari OS yang multiprogramming,


sementara multiprogramming untuk meningkatkan
produktifitas sistem
• Topik pembahasan :
– Konsep dasar CPU Scheduling
– Algoritma-algoritma CPU Scheduling

Sistem Operasi, DGS


Konsep Dasar CPU Scheduling

• Dalam multiprogramming
– Suatu proses dieksekusi s.d wait 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 adalah eksponensial atau
bahkan hipereksponensial

Sistem Operasi, DGS


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 */

Sistem Operasi, DGS


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

Sistem Operasi, DGS


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

Sistem Operasi, DGS


Status Proses - Scheduler

Preemptive Non-preemptive

Sistem Operasi, DGS


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

Sistem Operasi, DGS


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

Sistem Operasi, DGS


Dispatch Latency
• Waktu yang diperlukan oleh dispatcher untuk
menghentikan proses yang sedang running hingga proses
yang di-dispatch berikutnya running

Sistem Operasi, DGS


CPU Scheduling Algorithms

• FCFS Queue
• SJF Queue
• Priority Queue
• Round Robin
• Multi-Level Queue
• Multi-Level Feedback Queue

Sistem Operasi, DGS


Kriteria Scheduling (1)

• 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

Sistem Operasi, DGS


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

Sistem Operasi, DGS


Obyektif

• Pemilihan algoritma untuk optimisasi :


– Memaksimalkan CPU utilization
– Memaksimalkan throughput
– Meminimumkan turnaround time
– Meminimumkan waiting time
– Meminimumkan response time
– Meminimumkan response time variance

Sistem Operasi, DGS


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

Sistem Operasi, DGS


Contoh FCFS

• P1 : 24 ms, P2 : 3 ms, P3 : 3 ms.


• Datang dalam urutan P1, P2, P3
– Gantt Chart

P1 P2 P3

0 24 27 30
– 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

P2 P3 P1

0 3 6 30
– Average waiting time = (6 + 0 + 3)/3 = 3
Sistem Operasi, DGS
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

Sistem Operasi, DGS


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

Sistem Operasi, DGS


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)
P1 P3 P2 P4

0 3 7 8 12 16

• Average waiting time = (0 + 6 + 3 + 7)/4 = 4

Sistem Operasi, DGS


Contoh SJF - Preemptive

Process Arrival Time Burst Time


P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
• SJF (preemptive)
P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16

• Average waiting time = (9 + 1 + 0 +2)/4 = 3


Sistem Operasi, DGS
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).

Sistem Operasi, DGS


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

Sistem Operasi, DGS


Contoh Priority Scheduling

Process Burst Time Priority


P1 8 2
P2 1 1
P3 1 3

P2 P1 P3

0 1 9 10

• Average waiting time = (1 + 0 + 9)/3 = 3.3

Sistem Operasi, DGS


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

Sistem Operasi, DGS


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

Sistem Operasi, DGS


Solusi dari Starvation

• Solusi : “aging” (peningkatan prioritas pada proses-


proses yang sudah menunggu cukup lama)
– Misalnya setiap 15 menit dinaikkan 1 tingkat

Sistem Operasi, DGS


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

Sistem Operasi, DGS


Contoh : RR

• Contoh : dengan time quantum = 20 ms


Process Burst Time
P1 53
P2 17
P3 68
P4 24
• Gantt chart :

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

• Khususnya, rata-rata turnaround lebih tinggi daripada SJF, tetapi


lebih baik untuk respons. Sistem Operasi, DGS
Masalah RR : Penentuan
Kuantum Waktu
• Menentukan performance sistem :
– Jika terlalu besar sistem menjadi FCFS murni
– Jika terlalu kecil overhead untuk context switching jadi
besar

Sistem Operasi, DGS


Time Quantum dan Context Switch Time

Sistem Operasi, DGS


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

Sistem Operasi, DGS


Diagram Contoh MLQ

Sistem Operasi, DGS


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

Sistem Operasi, DGS


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
– Proses yang menunggu terlalu lama bisa naik ke antrian
ber-prioritas lebih tinggi

Sistem Operasi, DGS


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

Sistem Operasi, DGS


Diagram Contoh MLFQ

Sistem Operasi, DGS


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

Sistem Operasi, DGS


END

Sistem Operasi, DGS


Latihan Soal

1. Terdapat 5 job yang datang hampir pada saat yang


bersamaan. Estimasi waktu eksekusi (burst time)
masing-masing 10, 6, 2, 4 dan 8 menit dengan
prioritas masing-masing 3, 5, 2, 1 dan 4, dimana 5
merupakan prioritas tertinggi. Tentukan rata-rata
waktu tunggu untuk penjadwalan CPU dengan
menggunakan algoritma
a. Round Robin (quantum time = 2)
b. Priority
c. Shortest job first

Sistem Operasi, DGS


Latihan Soal

Proses Arrival Time Burst Time


P1 0.0 8
P2 0.4 4
P3 1.0 1
P4 0.6 6

2. Tentukan rata-rata waktu tunggu dengan algoritma penjadwalan


a. FCFS
b. SJF Non preemtive
c. SJF preemtive
d. Round Robin dengan quantum time = 2

Sistem Operasi, DGS


END OF MODUL - 6

Sistem Operasi, DGS

Anda mungkin juga menyukai