Anda di halaman 1dari 43

7

Penjadwalan Proses
(Process Scheduling)
Sistem Operasi

Program Studi Teknik Informatika


Fakultas Teknik
Universitas Muhammadiyah
Apa yang dipelajari?
• Konsep Dasar Penjadwalan
• Kriteria Penjadwalan
• Algoritma Penjadwalan :
– First Come First Serve (FCFS)
– Shortest Job First (SJF)
– Priority Scheduling (PS)
– Round-Robin (RR)

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.

• Pada saat CPU Idle  Sistem Operasi harus memilih


proses yang ada dalam memori utama (Ready
Queue) dan mengalokasikan CPU untuk
mengeksekusinya.

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.

• Dispatch Latency adalah waktu yang


dibutuhkan untuk menghentikan suatu proses
dan menjalankan proses yang lain.

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.

• CPU Utilization, diharapkan agar CPU selalu dalam


keadaan sibuk, sehingga penggunaan CPU lebih optimal.

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.

• Turn Around Time, adalah banyaknya waktu yang diperlukan


untuk mengeksekusi proses, dari mulai menunggu untuk meminta
tempat di memori utama, menunggu di Ready Queue, eksekusi
oleh CPU dan mengerjakan I/O.
 Turn Around Time = waktu eksekusi + waktu tunggu.
 Sasaran penjadwalan : meminimalkan waktu Turn Around Time.
10
Kriteria Penjadwalan
• Waiting Time, adalah waktu yang diperlukan
oleh suatu proses untuk menunggu di ready queue.
Sasaran penjadwalan : meminimalkan waiting time.

• Response Time, adalah waktu yang diperlukan


oleh suatu proses dari minta dilayani hingga ada
respon pertama menanggapi permintaan tersebut .
 Sasaran penjadwalan : meminimalkan respon time.

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 Penjadwalan diperlukan untuk mengatur


giliran proses-proses tersebut.

• 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.

• Dalam penjadwalan FCFS (First Come First Serve) :


– Proses yang pertama kali minta jatah waktu untuk
menggunakan CPU akan dilayani terlebih dahulu.
– Begitu proses mendapatkan jatah waktu CPU maka
proses dijalankan sampai selesai atau sampai proses
tersebut melepaskannya, yaitu jika proses tersebut
berhenti atau meminta I/O.
15
Contoh Penjadwalan FCFS
Ada tiga buah proses yang datang secara bersamaan yaitu pada 0
ms. P1 memiliki burst time 24 ms, P2 memiliki burst time 3 ms,
dan P3 memiliki burst time 3 ms.
Process Arrival Time Burst Time (ms)
(ms)
P1 0 24
P2 0 3
P3 0 3

Buatlah Gantt Chart terlebih dahulu, lalu hitung waiting time,


average waiting time, turnaround time (burst time + waiting
time), dan average turnaround time dari ketiga proses tersebut
dengan menggunakan algoritma penjadwalan FCFS! 16
Contoh Penjadwalan FCFS
Penyelesaian :
•Gantt Chart :

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).

•Average Waiting Time = (0 + 24 + 27)/3 = 17 ms.

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

• Average Turnaround Time = (24 + 27 + 30)/3 = 81/3 = 27ms

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:

Process Arrival Time (ms) Burst Time (ms)


P1 0 7
P2 2 4
P3 4 1
P4 5 4

Buatlah Gantt Chart terlebih dahulu, lalu hitung waiting time,


average waiting time, turnaround time, dan average turnaround
time dari keempat proses tersebut dengan menggunakan
algoritma penjadwalan Non-Preemptive-SJF!
20
Contoh Penjadwalan Non-Preemptive SJF
Penyelesaian
•Gantt Chart :

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

•Average Waiting Time : (0 + 6 + 3 + 7)/4 = 16/4 = 4 ms

21
Contoh Penjadwalan Non-Preemptive SJF

• Turnaround Time (Burst Time + Waiting Time)


– P1 = 7 + 0 = 7 ms
– P2 = 4 + 6 = 10 ms
– P3 = 1 + 3 = 4 ms
– P4 = 4 + 7 = 11 ms

• Average Turnaround Time = (7 + 10 + 4 + 11)/4 = 32/4 = 8 ms

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

Hitunglah waiting time, average waiting time, turnaround time, dan


average turnaround time dari keempat proses tersebut dengan
menggunakan algoritma penjadwalan Preemptive-SJF!
23
Contoh Penjadwalan Preemptive SJF
Penyelesaian
•Gantt Chart

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

•Average Waiting Time = (9 + 1 + 0 + 2)/4 = 12/4 = 3 ms


24
Contoh Penjadwalan Preemptive SJF

• Turnaround Time (Burst Time + Waiting Time)


– P1 = 7 + 9 = 16 ms
– P2 = 4 + 1 = 5 ms
– P3 = 1 + 0 = 1 ms
– P4 = 4 + 2 = 6 ms

• Average Turnaround Time = (16 + 5 + 1 + 6)/4 = 28/4 = 7 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.

• Kelemahan priority scheduling :


– Dapat terjadi starvation.
– Suatu proses dengan prioritas yang rendah memiliki
kemungkinan untuk tidak dieksekusi jika terdapat proses lain
yang memiliki prioritas lebih tinggi darinya.
29
Contoh Non-Preemptive Priority Scheduling

Process Arrival Burst Time Priority


Time (ms) (ms)
P1 0 6 4
P2 0 8 1
P3 0 7 3
P4 0 3 2

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

• Average Waiting Time = (18 + 0 + 11 + 8)/4 = 37/4 = 9,25 ms

• Turnaround Time (Burst Time + Waiting Time)


– P1 = 6 + 18 = 24 ms
– P2 = 8 + 0 = 8 ms
– P3 = 7 + 11 = 18 ms
– P4 = 3 + 8 = 11 ms

• Average Turnaround Time = (24 + 8 + 18 + 11)/4 = 61/4 = 15,25 ms


31
Contoh Preemptive Priority Scheduling

Process Arrival Burst Time Priority


Time (ms) (ms)
P1 0 6 4
P2 2 8 1
P3 4 7 3
P4 5 3 2

• 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

• Average Waiting Time = (18 + 0 + 9 + 5)/4 = 32/4 = 8 ms

• Turnaround Time (Burst Time + Waiting Time)


– P1 = 6 + 18 = 24 ms
– P2 = 8 + 0 = 8 ms
– P3 = 7 + 9 = 16 ms
– P4 = 3 + 5 = 8 ms

• Average Turnaround Time = (24 + 8 + 16 + 8)/4 = 56/4 = 14 ms 33


Penjadwalan Round-Robin
• Konsep dasar algoritma ini menggunakan time
sharing.

• Pada dasarnya, prinsip hampir sama dengan


FCFS, tapi bersifat preemptive.

• Tiap proses akan dibatasi waktu prosesnya, yang


disebut quantum time.

34
Penjadwalan Round-Robin
• Keuntungan algoritma round robin :
– Adanya keseragaman waktu.

• Kelemahan algoritma round robin :


– Jika quantum time sangat besar  switching yang
terjadi akan semakin sedikit (seperti FCFS)
– Jika quantum time terlalu kecil  switching yang
terjadi akan semakin banyak, sehingga banyak waktu
yang terbuang
35
Penjadwalan Round-Robin
• Ketentuan Algoritma Round Robin adalah :
– Jika proses memiliki CPU Burst < Quantum Time, maka proses
akan melepaskan CPU jika telah selesai digunakan  CPU dapat
segera digunakan oleh proses selanjutnya.
– Jika proses memiliki CPU Burst > Quantum Time, maka proses
tersebut akan dihentikan jika sudah mencapai quantum time
dan selanjutnya mengantri kembali pada posisi tail queue (ekor
dari ready queue), CPU kemudian menjalankan proses
berikutnya.
– Jika quantum time belum habis dan proses menunggu suatu
kejadian (selesainya operasi I/O), maka proses menjadi blocked
dan CPU dialihkan ke proses lain.
36
Contoh Penjadwalan Round-Robin
(Quantum Time 3 ms)
• Quantum Time = 3 ms

Process Arrival Time (ms) Burst Time (ms)


P1 0 7
P2 0 4
P3 0 1
P4 0 4

• 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

• Average Waiting Time = (9 + 10 + 6 + 11)/4 = 36/4 = 9 ms

• Turnaround Time (Burst Time + Waiting Time)


– P1 = 7 + 9 = 16 ms
– P2 = 4 + 10 = 14 ms
– P3 = 1 + 6 = 7 ms
– P4 = 4 + 11 = 15 ms
• Average Turnaround Time = (16 + 14 + 7 + 15)/4 = 52/4 = 13 ms 38
Contoh Penjadwalan Round-Robin
(Quantum Time 4 ms)

• Quantum Time = 4 ms

Process Arrival Time (ms) Burst Time (ms)


P1 0 7
P2 0 4
P3 0 1
P4 0 4

• 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

• Average Waiting Time = (9 + 4 + 8 + 9)/4 = 30/4 = 7,5 ms

• Turnaround Time (Burst Time + Waiting Time)


– P1 = 7 + 9 = 16 ms
– P2 = 4 + 4 = 8 ms
– P3 = 1 + 8 = 9 ms
– P4 = 4 + 9 = 13 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

Process Arrival Time (ms) Burst Time (ms)


P1 0 5
P2 1 3
P3 3 6
P4 5 1
P5 6 4

• 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

Menghitung dengan Cara 2 :


TAT = CT – AT
WT = TAT – BT

AT = Arrival Time
BT = Burst Time
CT = Completion Time
TAT = Turn Around Time
42
WT = Waiting Time
TERIMA KASIH

43

Anda mungkin juga menyukai