Anda di halaman 1dari 42

SISTEM OPERASI

Lubi Arsada, S.ST, MMSI


Prodi Informatika
[TI612062] - Pertemuan 10
Kontak Dosen:
0812-9979-4178
lubi@uici.ac.id

UNIVERSITAS INSAN CITA INDONESIA

Tumbuh Bersama UICI Tumbuh Bersama UICI


ALGORITMA
PENJADWALAN CPU

Tumbuh Bersama UICI Tumbuh Bersama UICI


Algoritma Penjadwalan

1. FIFO (First-in, First-out) atau FCFS (First-


come, First-serve)
2. SJF (Shortest Job First)
3. RR (Round Robin)
4. PS (Priority Schedulling)
Algoritma Penjadwalan

❑ Average Waiting Time / AWT (rata-rata waktu tunggu) :


(Waktu dilayani – Waktu paket tiba) / Banyaknya paket

❑ Average Turn Around Time / ATAT (waktu penyelesaian) :


(Waktu selesai – Waktu paket tiba) / Banyaknya paket
Penjadwalan FIFO
⚫ Penjadwalan nonpreemptive dan tidak berprioritas
⚫ Proses-proses diberi jatah waktu pemroses
berdasarkan waktu kedatangan
− Proses yang datang terlebih dahulu, juga dilayani
terlebih dahulu
⚫ Saat proses mendapat jatah waktu pemroses, proses
dijalankan sampai selesai
⚫ Job lama membuat job pendek menunggu
⚫ Job tidak penting membuat job penting menunggu
Penjadwalan FIFO
⚫ Contoh : ada 3 proses P1, P2, P3 dengan lama waktu
kerja CPU (CPU Burst-time) masing-masing sbb :
Penjadwalan FIFO
⚫ Gantt Chart-nya :

⚫ Waktu tunggu = Waktu dilayani – Waktu paket tiba


P1 = 0 – 0 = 0 milidetik
P2 = 24 – 0 = 24
P3= 27 – 0 = 27
⚫ Rata-rata waktu tunggu (Average Waiting Time /
AWT) : (0+24+27)/3 = 17 milidetik
Penjadwalan FIFO
⚫ Menentukan Turn Around Time

⚫ Turn around time (waktu penyelesaian) =


Waktu selesai – Waktu paket tiba
P1 = 24 – 0 = 24
P2 = 27 – 0 = 27
P3 = 30 – 0 = 30
⚫ Rata-rata turn around time (ATAT) = (24+27+30)/3 =
27 milidetik
Penjadwalan FIFO
⚫ Jika urutan kedatangan proses adalah P3, P2, P1
maka Gantt Chartnya adalah :

⚫ AWT = (0+3+6)/3 = 3 milidetik


⚫ ATAT = (3+6+30)/3 = 13 milidetik
Penjadwalan SJF (Shortest Job First)

⚫ Asumsi : waktu jalan proses (sampai selesai) sudah


diketahui sebelumnya

⚫ Menjadwalkan proses dengan waktu terpendek


lebih dulu
Penjadwalan SJF (NON PRE)
⚫ Contoh 1:

⚫ Gantt Chart :
Penjadwalan SJF (NON PRE)
⚫ Contoh 1:
⚫ Gantt Chart :

⚫ waktu tunggu (Waiting Time)


P1 = 3 – 0 = 3 ms
P2 = 16 – 0 = 16 ms
P3 = 9 – 0 = 9 ms
P4 = 0 – 0 = 0 ms
⚫ Average Waiting Time / AWT :
(3+16+9+0) / 4 = 7 ms
Penjadwalan SJF (NON PRE)
⚫ Menentukan Turn Around Time

⚫ Turn around time (waktu penyelesaian)


P1 = 9 – 0 = 9 ms
⚫ P2 = 24 – 0 = 24 ms
⚫ P3 = 16 – 0 = 16 ms
⚫ P4 = 3 – 0 = 3 ms
⚫ maka rata-rata turn around time = (9 +24+16+3)/4 = 13
ms
Penjadwalan SJF (NON PRE)
⚫ Contoh menentukan AWT untuk SJF nonpreemptive:

⚫ A = waktu dilayani – waktu paket tiba = 0 – 0 = 0 milidetik


⚫ B = waktu dilayani – waktu paket tiba = 8-2 = 6 milidetik
⚫ C = waktu dilayani – waktu paket tiba = 7-4 = 3 milidetik
⚫ D = waktu dilayani – waktu paket tiba = 12-5 = 7 milidetik
⚫ AWT : (0+6+3+7) / 4 = 4 milidetik
Penjadwalan SJF (NON PRE)
⚫ Menentukan Turn Around Time
⚫ A = waktu selesai – waktu paket tiba = 7 – 0 = 7 ms
⚫ B = waktu selesai – waktu paket tiba = 12 – 2 = 10 ms
⚫ C = waktu selesai – waktu paket tiba = 8 – 4 = 4 ms
⚫ D = waktu selesai – waktu paket tiba = 16 – 5 = 11 ms
⚫ ATAT : (7+10+4+11) / 4 = 8 ms
Penjadwalan SJF (NON PRE)

Lama
Proses Saat Tiba Proses
A 0 7
B 2 4
C 4 1
D 5 4
E 11 2
Penjadwalan SJF (PRE)
⚫ Contoh menentukan AWT untuk SJF preemptive :

• Penjadwalan dilakukan ulang dengan membandingkan


proses yang masuk dengan proses yang sedang
dijalankan.

• Interupt akan diterima jika besar paket proses interup


< besar sisa paket proses berjalan
Penjadwalan SJF (PRE)
⚫ Contoh menentukan AWT untuk SJF preemptive :

⚫ A = 0 + (11-2) – 0 = 9 milidetik
⚫ B = 2 + (5-4) – 2 = 1 milidetik
⚫ C = 4 – 4 = 0 milidetik
⚫ D = 7 – 5 = 2 milidetik
⚫ AWT : (9+1+0+2) / 4 = 3 milidetik
Penjadwalan SJF (PRE)
⚫ turn arround time = waktu eksekusi + waktu
menunggu
⚫ Contoh menentukan ATAT untuk SJF preemptive :

⚫ A = 16 – 0 = 16 ms
⚫ B = 7 – 2 = 5 ms
⚫ C = 5 – 4 = 1 ms
⚫ D = 11 – 5 = 6 ms
⚫ ATAT : (16+5+1+6) / 4 = 7 ms
Penjadwalan SJF (PRE)
⚫ CONTOH 4
Penjadwalan SJF (PRE)
Penjadwalan SJF (PRE)
Penjadwalan SJF (PRE)
Penjadwalan SJF (PRE)
waktu tunggu = W. dilayani – W. paket tiba
Penjadwalan SJF (PRE) & (NON PRE)
cari AWT dan ATAT

Proses Arrival Burst


P1 0 8
P2 1 4
P3 2 9
P4 3 5
Penjadwalan Round Robin (RR)
⚫ Penjadwalan preemptive dan tanpa prioritas

⚫ Semua proses dianggap penting dan diberi sejumlah waktu


pemroses yang disebut kwanta (quantum) atau time-slice
dimana proses itu berjalan.
Penjadwalan Round Robin (RR)
⚫ Ketentuan algoritma RR :

❑ Jika quantum habis dan proses belum selesai → pemroses


dialihkan ke proses lain

❑ jika quantum belum habis dan proses menunggu suatu


kejadian (selesainya I/O) → proses menjadi blocked dan
pemroses dialihkan ke proses lain

❑ jika quantum belum habis tapi proses telah selesai →


proses diakhiri dan pemroses dialihkan ke proses lain
Penjadwalan Round Robin (RR)
⚫ Contoh : kumpulan proses datang pada waktu 0

⚫ Quantum 4 milidetik
− P1 mendapat 4 milidetik pertama
− 20 milidetik berikutnya akan disela P2 dan P3
Penjadwalan Round Robin (RR)
⚫ Gambar Gantt Chart

⚫ Waktu tunggu tiap proses

⚫ AWT : (6+4+7)/3 = 5,66 milidetik


Penjadwalan Round Robin (RR)
⚫ Gambar Gantt Chart

⚫ TAT
P1 = 30
P2 = 7
p3 = 10
⚫ ATAT : (30+7+10)/3 = 15,66 milidetik
Penjadwalan Round Robin (RR)
⚫ Contoh : Menentukan Turn Around Time untuk
quantum waktu (q) = 3
Penjadwalan Round Robin (RR)
With arrival time

- Setiap ada paket yang selesai dieksekusi tetapi


memiliki sisa paket maka akan dijadwalkan lagi ke
antrian.

- Contoh (untuk soal berikutnya):


Proses1 : dieksekusi dari 0 – 2 ms
pada milidetik ke- 2 : Proses2 dan Proses3 datang
ke antrian, Proses2 masuk running, Proses1
sebelumnya yang sudah selesai dieksekusi akan
masuk ke antrian lagi untuk dijadwalkan.
Penjadwalan Round Robin (RR)
⚫ Contoh 4:
Penjadwalan Round Robin (RR)
⚫ Contoh 3:
Quantum waktu (q) = 3
Penjadwalan Round Robin (RR)
⚫ Contoh 3: Quantum waktu (q) = 3
⚫ AWT
P4 = 20
P5 = 2
P3 = 23
P2 = 17
P1 = 22
P6 = 12
Penjadwalan PS

⚫ Tiap proses dilengkapi dengan prioritas.

⚫ CPU dialokasikan untuk proses yang memiliki


prioritas paling tinggi.

⚫ Jika beberapa proses memiliki prioritas yang sama,


maka akan digunakan algoritma FIFO.
Penjadwalan PS
⚫ Prioritas biasanya menyangkut masalah : waktu, memori yang
dibutuhkan, banyaknya file yang boleh dibuka, dan
perbandingan antara rata-rata I/O burst dengan rata-rata CPU
burst.

⚫ Priority schedulling bersifat preemptive atau nonpreemptive.


Penjadwalan PS [Non Pre]
⚫ Contoh : ada 5 proses P1,P2,P3,P4,P5

⚫ Gantt Chart
Penjadwalan PS [Non Pre]

⚫ AWT = (6+0+16+18+1) / 5 = 8,2 ms


Penjadwalan PS [Pre]
⚫ Jika ada proses P1 yang datang pada saat P0 sedang berjalan,
maka akan dilihat prioritas P1.
⚫ Seandainya prioritas P1 lebih besar dibanding dengan prioritas
P0 maka pada non preemptive, algoritma tetap akan
menyelesaikan P0 sampai habis CPU burst-nya, dan meletakkan
P1 pada posisi head queue.
⚫ Sedangkan pada preemptive, P0 akan dihentikan dulu, dan CPU
ganti dialokasikan untuk P1.
Penjadwalan PS [Pre]
Penjadwalan PS [Pre]

Anda mungkin juga menyukai