CPU Scheduler
Algoritma Penjadwalan Proses
Latihan Soal
Pada sistem multiprogramming, selalu akan
terjadi beberapa proses berjalan dalam suatu
waktu. Sedangkan pada uniprogramming hal
ini tidak akan terjadi, karena hanya ada satu
proses yang berjalan pada saat tertentu.
Sistem multiprogramming diperlukan untuk
memaksimalkan utilitas CPU.
Pada saat proses dijalankan terjadi siklus eksekusi CPU
dan menunggu I/O yang disebut dengan siklus CPU-I/O
burst.
Eksekusi proses dimulai dengan CPU burst dan
dilanjutkan dengan I/O burst, diikuti CPU burst lain,
kemudian I/O burst lain dan seterusnya seperti pada
Gambar.
Pada saat suatu proses dieksekusi, terdapat banyak CPU
burst yang pendek dan terdapat sedikit CPU burst yang
panjang. Program yang I/O bound biasanya sangat
pendek CPU burst nya, sedangkan program yang CPU
bound kemungkinan CPU burst nya sangat lama.
Prosesor mengeksekusi program-program
komputer
Prosesor adalah sebuah chip dalam sistem
komputer yang menjalankan instruksi
program komputer. Dalam setiap detiknya
prosesor menjalankan jutaan instruksi
Proses adalah sebuah program yang sedang
dijalankan (eksekusi)
Sistem operasi menjalankan banyak dan beragam program :
◦ Batch system – jobs
◦ Time-shared systems – user programs atau tasks
◦ Istilah pada buku teks: job, task dan process (dapat diartikan sama)
Proses adalah program yang dieksekusi ;
◦ Aktif (proses=>memori) vs pasif (program => file)
◦ Instruksi pada program (code) akan dieksekusi secara berurut (sekwensial)
sesuai dengan “line code” (stored program concept).
Proses lebih dari “program code yang aktif”:
Melacak posisi instruksi (sequential execution): program
counter
◦ Menyimpan data sementara var., parameter, return value: stack
◦ Menyimpan data (initial, global variable dll): data section
◦ Menyimpan status proses (Contoh: Proses , aktif, wait I/O request dll.)
Membuat dan menghapus proses pengguna
dan sistem proses
Menunda dan melanjutkan proses
Menyediakan mekanisme untuk proses
sinkronisasi
Menyediakan mekanisme untuk proses
komunikasi
Menyediakan mekanisme untuk penanganan
deadlock
Saat-saat proses dijalankan (executed) maka status
dari proses akan berubah
◦ Status proses tidak selamanya aktif menggunakan CPU.
◦ Sering proses menunggu I/O complete => status wait, sebaiknya
CPU diberikan kepada proses yang lain.
◦ Mendukung multi-tasking – utilisasi CPU dan I/O
Status proses (antara lain):
◦ new: proses sedang dikerjakan / dibuat.
◦ running: instruksi dieksekusi.
◦ waiting: proses menunggu beberapa event yang akan terjadi
◦ ready: proses menunggu jatah waktu dari prosessor
◦ terminated: proses selesai dieksekusi.
Informasi proses disimpan di struktur data dari OS
dalam bentuk table :
◦ Satu entry table/linked list => struktur data untuk
menampung informasi satu proses (array of structure).
◦ Setiap entry pada tabel proses menyimpan satu proses.
Contoh: MINIX (src/kernel/proc.h) => struct proc { … };
Informasi yang disimpan:
◦ Informasi internal CPU: isi register-register, program
counter, status CPU dll (umumnya dalam bentuk stack
frame).
◦ Identifikasi proses: nama proses, proses number/index,
proses id.
◦ Accounting dan timer: user time, system time, alarm etc.
◦ Resources: memory & file management.
Pada saat CPU menganggur, maka sistem operasi
harus menyeleksi proses-proses yang ada di
memori utama (ready queue) untuk dieksekusi dan
mengalokasikan CPU untuk salah satu dari proses
tersebut.
Seleksi semacam ini disebut dengan shortterm
scheduler (CPU scheduler).
Keputusan untuk menjadwalkan CPU
mengikuti 4 keadaan di bawah ini :
1. Apabila proses berpindah dari keadaan running
ke waiting;
2. Apabila proses berpindah dari keadaan running
ke ready;
3. Apabila proses berpindah dari keadaan waiting
ke ready;
4. Apabila proses berhenti.
Apabila model penjadwalan yang dipilih menggunakan
keadaan 1 dan 4, maka penjadwalan semacam ini
disebut non-peemptive. Sebaliknya, apabila yang
digunakan adalah keadaan 2 dan 3, maka disebut
dengan preemptive.
Pada non-preemptive, jika suatu proses sedang
menggunakan CPU, maka proses tersebut akan tetap
membawa CPU sampai proses tersebut melepaskannya
(berhenti atau dalam keadaan waiting).
Preemptive scheduling memiliki kelemahan, yaitu biaya
yang dibutuhkan sangat tinggi. Antara lain, harus selalu
dilakukan perbaikan data. Hal ini terjadi jika suatu
proses ditinggalkan dan akan segera dikerjakan proses
yang lain.
Proses dapat berubah status dan berpindah dari
satu antrian ke antrian yang lain
◦ Proses dengan status “ready” berada di ReadyQueue
◦ Menunggu giliran/dipilih oleh scheduler => menggunakan CPU
Selama eksekusi (status “run”) events yang dapat
terjadi:
◦ I/O request => I/O wait berada pada DeviceQueue
◦ Create “child” proses => Jalankan proses “child”, tunggu sampai
proses selesai (wait)
◦ Time slice expired => Waktu pemakaian CPU habis, interrupt oleh
scheduler, proses akan berpindah ke ReadyQueue
Merupakan kumpulan kebijaksanaan & mekanisme
pada SO berkenaan dengan urutan kerja yg
dilakukan sistem komputer.
Bertugas memutuskan proses yg harus berjalan,
kapan, dan selama berapa lama proses itu berjalan.
Sasaran utama penjadwalan proses adalah kinerja
menurut kriteria yg diajukan
Kriteria yang digunakan utk mengukur dan
optimasi kinerja penjadwalan: adil (fairness),
efisiensi, waktu tanggap (response time), turn
arround time, throughput
Dapat terdapat tiga tipe penjadwalan berada secara
bersama-sama pada sistem operasi yg kompleks, yaitu:
◦ Penjadwalan jangka pendek,
bertugas menjadwalkan alokasi pemroses diantara proses-
proses ready di memori utama.
◦ Penjadwalan jangka menengah,
mengendalikan transisi dari keadaan suspend ke ready proses-
proses swapping.
◦ Penjadwalan jangka panjang,
bekerja terhadap antrian batch dan memilih batch berikutnya
yang harus dieksekusi.
Note:
Swapping adalah aktivitas pemindahan proses yang tertunda
dari memori utama ke memori sekunder.
Adil (fairness)
◦ Proses2 diberlakukan sama -> mendapat jatah waktu pemroses yg sama & tak
ada proses yg tak kebagian layanan pemroses
◦ Sasaran: menjamin tiap proses mendapat bagian dari pemroses yg adil
Efisiensi
◦ Pemroses dihitung dg berapa perbandingan (rasio) waktu sibuk pemroses.
◦ Sasaran: menjaga proses agar tetap dalam keadaan sibuk -> efisiensi maksimum
Waktu Tanggap (response time)
◦ Waktu yg dihabiskan dari saat karakter terakhir dari perintah dimasukkan program
sampai hasil pertama yg muncul di layar
◦ Sasaran: meminimalkan waktu tanggap
Turn Arrround Time
◦ Waktu yg dihabiskan dari saat program/job mulai masuk ke sistem sampai proses
diselesaikan sistem
◦ TA = waktu eksekusi + waktu menunggu
◦ Sasaran: meminimalkan turn arround time
Throughput
◦ Jumlah kerja yg dapat diselesaikan dalam satu unit waktu
◦ Sasaran: memaksimalkan jumlah job yang diproses per satu interval waktu
◦ Lebih tinggi angka throughput, lebih banyak kerja yang dilakukan sistem
Penjadwalan CPU mungkin akan dijalankan
ketika proses dalam keadaan:
◦ Berubah dari running ke waiting state.
◦ Berubah dari running ke ready state.
◦ Berubah dari waiting ke ready.
◦ Terminates.
First Come First Served (FCFS)
SJF (Shortest Job First)
Priority Scheduling
Round Robin
Merupakan algoritma penjadwalan CPU
yang paling sederhana
Proses yang tiba lebih dahulu akan
dilayani lebih dahulu
Kalau ada proses tiba pada waktu yang
sama, maka pelayanan mereka
dilaksanakan berdasarkan urutan dalam
antrian
Proses di antrian belakang harus
menunggu sampai semua proses di
depannya selesai.
Diketahui 3 buah proses sbb:
Gantt chart
Waiting Time
AWT
Contoh soal 1:
◦ Jika diketahui terdapat 5 macam antrian proses, yaitu A-B-
C-D-E dengan waktu kedatangan semuanya 0. Lama
proses berturut-turut antara lain: 5-2-6-8-3.
◦ Pertanyaan:
Kapan dimulainya eksekusi dari tiap-tiap antrian proses tsb?
Kapan selesai eksekusinya?
Hitung Turn Arround Time (TA)-nya?
Berata rata-rata TA?
Rumus
◦ TA = Waktu Tunggu + Lama Eksekusi
◦ Rata-rata TA = ∑TA / ∑Job
◦ Waktu Tunggu = Mulai Eksekusi – Waktu Tiba
Jawaban:
Nama Waktu Lama
Proses Tiba Eksekusi
A 0 5
B 0 2
C 0 6
D 0 8
E 0 3
Nama Waktu Lama Mulai Waktu Selesai TA
Proses Tiba Ekseku Ekseku Tunggu Ekseku
si si si
A 0 5 0 0 5 5
B 0 2 5 5 7 7
C 0 6 7 7 13 13
D 0 8 13 13 21 21
E 0 3 21 21 24 24
∑TA = 70
rata2 TA = 14
Contoh Soal 2:
◦ Jika diketahui terdapat 5 macam antrian proses, yaitu A-B-C-D-E
dengan waktu kedatangan semuanya 0-1-2-2-5. Lama proses
berturut-turut antara lain: 5-2-6-8-3.
◦ Pertanyaan:
Kapan dimulainya eksekusi dari tiap-tiap antrian proses tsb?
Kapan selesai eksekusinya?
Hitung Turn Arround Time (TA)-nya?
Berata rerata TA?
Rumus
◦ TA = Waktu Tunggu + Lama Eksekusi
◦ Rerata TA = ∑TA / ∑Job
◦ Waktu Tunggu = Mulai Eksekusi – Waktu Tiba
Nama Waktu Lama Mulai Selesai Waktu TA
Proses Tiba Eksekusi Eksekusi Eksekusi Tunggu
A 0 5 0 5 0 5
B 1 2 5 7 4 6
C 2 6 7 13 5 11
D 2 8 13 21 11 19
E 5 3 21 24 16 19
∑TA = 60
Rerata = 12
Berdasarkan kriteria penilaian penjadwalan:
◦ Fairness
Penjadwalan FCFS adil dalam arti semantiks (dalam arti
antrian)
◦ Efesiensi
Penjadwalan FCFS sangat efisien dalam penggunaan
pemroses
◦ Waktu Tanggap
Penjadwalan sangat tidak memuaskan, karena proses dapat
menunggu lama
◦ Turn Arround Time
Penjadwalan FCFS tidak bagus
◦ Throughput
Penjadwalan FCFS tidak bagus.
Dasar prioritas adalah pendeknya proses.
Makin pendek/singkat proses makin tinggi
prioritasnya
Langkah I: tentukan urutan prioritas berdasarkan
pendeknya proses yang dilayani
Langkah II: penentuan proses mana yang dilayani
oleh pemroses
Setiap proses yang ada dalam ready queue
akan dieksekusi berdasarkan burst time
terkecil
Hal ini mengakibatkan waiting time yang
pendek untuk setiap proses, maka rerata
waiting time (AWT) juga menjadi pendek
Algoritma ini dikatakan optimal
Contoh Soal 1: Nama Waktu Lama
Proses Tiba Eksekusi
A 0 10
B 0 5
C 0 7
D 0 1
E 0 3
Nama Proses Waktu Tiba Lama
Eksekusi
D 0 1
E 0 3
B 0 5
C 0 7
A 0 10
Nama Waktu Lama Mulai Selesai TA
Proses Tiba Eksekusi Eksekusi Eksekusi
D 0 1 0 1 1
E 0 3 1 4 4
B 0 5 4 9 9
C 0 7 9 16 16
A 0 10 16 26 26
∑TA = 56
rata2 TA = 11,2
Nama Proses Lama Waktu Tiba
Eksekusi
D 1 0
E 3 2
B 5 5
C 7 7
A 10 9
Nama Waktu Lama Mulai Selesai Waktu TA
Proses Tiba Eksekusi Eksekusi Eksekusi Tunggu
D 0 1 0 1 0 1
E 2 3 2 5 0 3
B 5 5 5 10 0 5
C 7 7 10 17 3 10
A 9 10 17 27 8 18
∑TA = 37
Rerata = 7,4
Merupakan algoritma yang mendahulukan
proses yang memiliki prioritas tertinggi
Prioritas proses ditentukan berdasar:
◦ Time limit
◦ Memory requirement
◦ File access
◦ Perbandingan antara burst proses dengan CPU
◦ Tingkat kepentinagn proses
Priority scheduling dapat dijalankan secara
preemptive dan non-preemptive
◦ Preemptive jika ada proses yang baru datang
memiliki prioritas lebih tinggi dari proses yang
sedang berjalan, maka proses yang sedang berjalan
tsb dihentikan, lalu CPU dialihkan untuk proses
yang baru datang tersebut
◦ Non preemptive proses yang baru datang tidak
dapat menganggu proses yang sedang berjalan,
tapi hanya diletakkan di depan queue
Kelemahan PS adalah terjadinya infinite
blocking (starvation), yaitu suatu proses
dengan prioritas yang rendah memiliki
kemungkinan tidak pernah dieksekusi jika
terdapat proses lain yang memiliki prioritas
lebih tinggi
Solusi dari starvation adalah aging, yaitu
meningkatkan prioritas dari setiap proses
yang menunggu dalam queue secara
bertahap
Contoh : setiap 10 menit, prioritas dari
masing-masing proses yang menunggu
dalam queue dinaikkan 1 tingkat.
Maka proses yang memiliki prioritas 127,
setidaknya dalam 21 jam 20 menit, proses
tsb akan memiliki prioritas 0, yaitu prioritas
yang tertinggi
Diketahui 5 proses dengan urutan proses
sbb:
Gantt chart
Burst Time
TQ dan Context switches time
Sebuah CPU dengan quantum 4
mendapat beberapa proses yang
kedatangannya sebagai berikut:
P1 0 4 0 4 4
P2 0 9 4 27 27
P3 0 6 8 25 25
P4 0 5 12 26 26
P5 0 3 16 19 19
Jumlah 101
Rata-rata 20,2
Nama Proses Saat Tiba Lama Proses
A 0 5
B 1 3
C 5 7
D 6 1
E 7 6
Jml 22
Quantum = 2
A A B B A A B C C D A
0 1 2 3 4 5 6 7 8 9 10
E E C C E E C C E E C
11 12 13 14 15 16 17 18 19 20 21 22
Nama Saat Lama Waiting Time
Proses Tiba Proses
A 0 5 0+(4-2)+(10-6)=6
B 1 3 (2-1)+(6-4)=3
C 5 7 (7-5)+(13-9)+(17-15)+(21-19) =10
D 6 1 (9-6)=3
E 7 6 (11-7)+(15-13)+(19-17)=8
B 1 3 2 7 6
C 5 7 7 22 17
D 6 1 9 10 4
E 7 6 11 21 14
Jumlah 52
Rata-rata 10,8
Untuk memahami dari cara kerja algoritma
penjadwalan Round Robin ini,mari kita
kerjakan soal berikut
Penyelesaian :
Seperti halnya algoritma penjadwalan sebelumnya, langkah
pertama untuk mencari AWT dengan Algoritma penjadwalan
Round Robin dilakukan dengan membuat Gantt Chart
prosesnya.
Dari Gantt Chart terlihat bahwa setiap proses
dikerjakan menurut waktu yaitu setiap proses di
proses sebesar 5 langkah.
Awalnya P1 akan di kerjakan sebanyak 5 langkah,
kemudian, P2 sebanyak 5 langkah, dan begitupun
selanjutnya hingga P5.
Proses yang sudah di proses menurut porsi waktu
yang diberikan akan kembali menunggu dan
berada paling belakang dari antrian proses yang
ada.
Contohnya P1 dikerjakan di awal, kemudian
ada P2, P3,P4,dan P5 yang mengantri di
belakangnya.
Jika P1 selesai di proses menurut porsi
waktunya maka P1 akan di pindahkan ke
belakang, sehingga urutannya menjadi P2,
P3, P4, P4, P1. begitupun seterusnya.
Waiting Time
AWT
Diketahui quantum = 5, dengan menggunakan
alogoritma Round Robin, carilah AWT dan Turn
Around jika terdapat proses sebagai berikut:
Nama Proses Saat Tiba Lama Proses
A 0 5
B 2 3
C 7 8
D 11 2
E 14 6
Materi tambahan ada dalam file 03b
Kerjakan latihan yang ada dalam file 03b
untuk pemahaman lebih lanjut