• 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
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
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
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)
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 +
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.
Kriteria Penjadwalan
• Max CPU utilization • Max throughput
• Min turn around time • Min waiting time
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.
Tipe Penjadwalan
2. Penjadwal jangka menengah
Aktifitas pemindahan proses yang tertunda dari memori utama ke memori sekunder (swapping) → tersedia ruang untuk proses lain
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
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
Strategi Penjadwalan
Penjadwalan preemptive
Proses yang sedang berjalan dapat diinterupsi dan
dipindah ke status ready oleh sistem operasi sehingga
Strategi Penjadwalan
1. running ke waiting time
2. running ke ready state
3. waiting ke ready state
4. terminates
Proses 1 dan 4 adalah proses Non Preemptive, dimana proses tersebut tidak bisa di-interrupt.
Dispatcher
• Dispatcher adalah suatu modul yang akan
memberikan kontrol pada CPU terhadap
penyeleksian proses yang dilakukan selama short-term scheduling
• Waktu yang diperlukan oleh dispatcher untuk
Algoritma Penjadwalan
1.FIFO in, First-out) atau FCFS (First-come, First-serve)
2.SJF (Shortest Job First)
3.RR (Round Robin)
Algoritma Penjadwalan
Average Waiting Time / AWT (rata-rata waktu tunggu) :
(Waktu dilayani – Waktu paket tiba) / Banyaknya paket
Average Turn Around Time / ATAT (waktu penyelesaian) :
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
Penjadwalan FIFO
Contoh : ada 3 proses P1, P2, P3 dengan lama waktu
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 /
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 =
Penjadwalan FIFO
Jika waktu kedatangan proses adalah P3, P2, P1 maka
Gantt Chartnya adalah :
AWT = (0+3+6)/3 = 3 milidetik
Penjadwalan SJF (Shortest Job
First)
Asumsi : waktu jalan proses (sampai selesai) sudah
diketahui sebelumnya
Menjadwalkan proses dengan waktu terpendek lebih
Penjadwalan SJF (NON PRE)
Contoh 1:
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 :
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
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
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
Penjadwalan SJF (NON PRE)
Proses
Saat Tiba Lama Proses
A
0
7
B
2
4
C
4
1
D
5
4
Penjadwalan SJF
(PRE)
Contoh menentukan AWT untuk SJF preemptive :
• Penjadwalan dilakukan ulang dengan membandingkan proses yang masuk dengan proses yang sedang
dijalankan.
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
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
Penjadwalan SJF (PRE)
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
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
Penjadwalan Round Robin
(RR)
Contoh : kumpulan proses datang pada waktu 0
Quantum 4 milidetik
P1 mendapat 4 milidetik pertama
Penjadwalan Round Robin
(RR)
Gambar Gantt Chart
Waktu tunggu tiap proses
Penjadwalan Round Robin
(RR)
Gambar Gantt Chart
TAT
P1 = 30 P2 = 7 p3 = 10
Penjadwalan Round Robin
(RR)
Contoh : Menentukan Turn Around Time untuk
Penjadwalan Round Robin
(RR)
Contoh 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
Penjadwalan Round Robin
(RR)
Penjadwalan PS
Tiap proses dilengkapi dengan prioritas.
CPU dialokasikan untuk proses yang memiliki
prioritas paling tinggi.
Jika beberapa proses memiliki prioritas yang sama,
Penjadwalan PS
Contoh : ada 5 proses P1,P2,P3,P4,P5
Penjadwalan PS
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,
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
Penjadwalan Round Robin
(RR)
Tentukan AWT dan ATAT
quantum waktu (q) = 3