Modul 5 Penjadwalan CPU

PENJADWALAN
PROSES

• Utilisasi (pemanfaatan) CPU
secara maksimum dapat
diperoleh dengan
multiprogramming
• Multiprogramming adalah
kegiatan menjalankan beberapa
program pada memori pada satu
waktu
• Suatu proses terdiri dari dua
siklus yaitu Burst I/O
dan Burst CPU yang dilakukan
bergantian hingga proses
selesai.

Histogram of CPU-burst
Times

Definisi





Penjadwalan merupakan kumpulan kebijaksanaan dan
mekanisme di sistem operasi yang berkaitan dengan
urutan kerja yang dilakukan sistem komputer.
Penjadwalan bertugas memutuskan proses mana yang
harus berjalan dan kapan atau berapa lama proses itu
berjalan.

Kriteria Penjadwalan
1. Adil
Semua proses-proses mendapat jatah waktu
pemrosesan
2. Efisiensi
Efisiensi atau utilisasi pemroses dihitung dengan
perbandingan (rasio) waktu sibuk pemroses.

Menjaga agar pemroses tetap dalam keadaan sibuk

→ efisiensi mencapai maksimum.

Kriteria Penjadwalan
3.

Waktu tanggap (response time)
waktu yang dihabiskan dari saat karakter terakhir dari
perintah dimasukkan sampai hasil pertama muncul di
layar (terminal) → terminal response time

4.

Waktu tanggap pada sistem waktu nyata (real-time)
waktu dari saat kejadian (internal atau eksternal)
sampai instruksi pertama rutin layanan yang dimaksud
dieksekusi → event response time

Kriteria Penjadwalan
5. Turn arround time



waktu yang dihabiskan dari saat program
mulai masuk ke sistem sampai proses
diselesaikan sistem.



turn arround time = waktu eksekusi +
waktu menunggu

Kriteria Penjadwalan
6. Throughput




jumlah kerja atau jumlah job yang dapat diselesaikan
dalam satu unit waktu.
Sasaran penjadwalan adalah memaksimalkan jumlah job
yang diproses per satu interval waktu.

Lebih tinggi angka throughput, lebih banyak kerja yang
dilakukan sistem.

Kriteria Penjadwalan
• Max CPU utilization
• Max throughput
• Min turn around time
• Min waiting time
• Min response time

Diagram of Process State

Tipe Penjadwalan
1. Penjadwal jangka pendek (short-term scheduler)


Short-term scheduler digunakan untuk memilih proses yang
siap dieksekusi pada antrian ready, dan salah satunya
dialokasikan ke CPU,




Proses dieksekusi hanya beberapa milidetik sebelum
menunggu I/O.



Karena durasi yang pendek antara eksekusi, short-term
scheduler harus sangat cepat

Tipe Penjadwalan
2. Penjadwal jangka menengah
Aktifitas pemindahan proses yang tertunda dari memori
utama ke memori sekunder (swapping) → tersedia ruang
untuk proses lain
Remove process from memory, store on disk, bring back in from
disk to continue execution: swapping

Tipe Penjadwalan
3. Penjadwal jangka panjang



bekerja terhadap antrian batch dan memilih batch
berikutnya yang harus dieksekusi.



Batch biasanya adalah proses-proses dengan
penggunaan sumber daya yang intensif (yaitu waktu
pemroses, memori, perangkat masukan/keluaran)



program-program ini berprioritas rendah, digunakan
sebagai pengisi (agar pemroses sibuk) selama periode
aktivitas job-job interaktif rendah.



Sasaran utama penjadwal jangka panjang adalah

memberi keseimbangan job-job campuran.

Strategi Penjadwalan


Penjadwalan nonpreemptive


Proses yang sedang berjalan tidak dapat disela.



Sekali proses berada di status running (sedang
berjalan), maka proses tersebut akan dieksekusi terus
sampai proses berhenti karena selesai atau diblok
untuk menunggu I/O atau untuk meminta beberapa
layanan dari sistem operasi




CPU tidak dapat diambil alih oleh proses yang lain.

Strategi Penjadwalan



Penjadwalan preemptive


Proses yang sedang berjalan dapat diinterupsi dan
dipindah ke status ready oleh sistem operasi sehingga
CPU dapat diambil alih proses yang lain.

Strategi Penjadwalan
1.
2.
3.
4.

running ke waiting time

running ke ready state
waiting ke ready state
terminates

Proses 1 dan 4 adalah proses Non Preemptive, dimana
proses tersebut tidak bisa di-interrupt.
Proses 2 dan 3 adalah proses Preemptive,

Dispatcher
• Dispatcher adalah suatu modul yang akan
memberikan kontrol pada CPU terhadap
penyeleksian proses yang dilakukan selama shortterm scheduling
• Waktu yang diperlukan oleh dispatcher untuk
menghentikan suatu proses dan memulai proses
yang lain disebut dengan dispatch latency.

Algoritma Penjadwalan
1.FIFO (First-in, First-out) atau FCFS (Firstcome, 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 waktu 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)
Proses
A
B
C
D
E

Saat Tiba Lama Proses
0
7
2
4
4
1
5
4
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 + 0 – 4 = 0 milidetik
D = 7 + 0 – 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)


Contoh 3:
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
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


Contoh : ada 5 proses P1,P2,P3,P4,P5



Gantt Chart

Penjadwalan PS



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

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.
Jika ada proses P1 yang datang pada saat P0 sedang berjalan,
maka akan dilihat prioritas P1.

Penjadwalan PS




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


Tentukan AWT dan ATAT



quantum waktu (q) = 3

Proses
A
B
C
D
E

Saat Tiba Lama Proses
0
5
0
7
0
6
0
2
0
8