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