“CPU SCHEDULING”
SISTEM OPERASI
DOSEN
Nono Heryana, M.kom.
DISUSUN OLEH
Hans Daniel William Tucunan
(1910631250046)
Setiap algoritma diukur “waktu berputar” dan “waktu menunggu” untuk membandingkan
kinerja algoritma satu dengan algoritma lain. Dan untuk mengukur waktu berputar dan waktu
menunggu, digunakan “Gant Chart” . CPU time (Burst Time) membutuhkan semua proses,
jadi proses satu dengan proses lainnya harus diketahui. Arrival time untuk setiap proses pada
ready queue juga harus diketahui.
Proses yang pertama kali meminta bagian waktu untuk menggunakan CPU akan diproses
terlebih dahulu. Dan rata-rata waktu untuk menunggu cukup tinggi. Algoritma penjadwalan
FCFS merupakan salah satu program penjadwalan non-Preemptive karena sekali CPU
disediakan pada suatu proses, maka proses tersebut akan tetap memakai CPU sampai proses
tersebut berakhir, yaitu jika proses berhenti atau meminta I/O. Kelemahan dari Algoritma
penjadwalan ini adalah adanya convoy effect yang berarti adanya proses menunggu proses
besar yang sedang dieksekusi. skema proses yang meminta CPU mendapat prioritas.
Implementasi dari FCFS mudah diatasi dengan FIFO queue.
Contoh 1 :
Misalkan proses tiba dalam urutan : P1, P2, P3. Sedangkan diagram Gantt untuk jadwal
adalah:
• Waktu tunggu untuk P1 = 0; P2 = 24; P3 = 27
• Rata-rata waktu tunggu : (0 + 24 + 27) / 3 = 17
Contoh 2 :
Misalkan proses tiba dalam urutan : P2, P3, P1. Sedangkan diagram Gantt untuk jadwal
adalah:
Algoritma ini digunakan ketika CPU bebas proses yang mempunyai waktu paling sedikit
untuk menyelesaikannya mendapat pengistimewaan bagian. Tetapi, jika ada dua proses atau
lebih yang mempunyai waktu yang sama maka algoritma yang paling tepat untuk digunakan
sebagai penyelesaiannya adalah algoritma FCFS. Prinsip algoritma penjadwalan ini adalah,
proses yang memiliki CPU burst paling kecil akan diproses terlebih dahulu dari pada proses
yang lain. Oleh karena itu, algoritma ini sangat optimal jika digunakan, tetapi algoritma ini
jug memiliki kekurangan yaitu sulit untuk diimplementasikan karena sulit mengetahui CPU
burst selanjutnya. Ada dua skema dalam SJFS ini yaitu:
1. Non premptive : ketika CPU memberikan kepada proses itu tidak bisa ditunda
hingga selesai, jadi harus menunggu dan tidak boleh ditunda
2. Premptive : jika ada sebuah proses datang untuk diselesaikan dan
memiliki waktu proses lebih pendek daripada waktu proses yang sedang dilayani dan
disempurnakan oleh CPU maka proses yang waktunya lebih pendek akan
mendapatkan prioritas atau pengutamaan. Skema ini memiliki nama lain, yaitu Short
– Remaining Time First (SRTF). Contoh :
Contoh :
Preemptive Shortest Job First (PSJF) memiliki nama lain yaitu Shortest Remaining Time
First. PSJF merupakan penjadwalan dengan prioritas dan dengan preempsi. Prioritas
didasarkan kepada pendeknya sisa proses. Makin pendek sisa proses makin tinggi
prioritasnya. Oleh karena itu dengan adanya penentuan ini, maka ketika tiba proses terpendek
di bagian belakang antrian tidak saja berpindah ke bagian depan antrian, melainkan juga
melalui preempsi, yaitu kegiatan mengeluarkan proses yang pada saat itu berada di dalam
proses (jika ada).
Pada PSJF, jika ada proses yang sedang disempurnakan dan diselesaikan oleh CPU dan
terdapat proses di ready queue dengan burst time yang lebih kecil daripada proses yang
sedang dieksekusi tersebut, maka proses yang sedang disempurnakan dan diselesaikan oleh
CPU akan digantikan oleh proses yang berada di ready queue tersebut. Beberapa istilah yang
akan sering muncul :
• Average Turn Around Time : Rata-rata total waktu yang kira-kira akan dihabiskan
oleh sebuah proses dari awal datang sampai selesai dieksekusi oleh CPU
• Burst Time: perkiraan waktu yang akan digunakan untuk mengeksekusi sebuah proses
• Average Waiting Time: Rata-rata waktu yang dihabiskan proses selama berada pada
status ready ( menunggu eksekusi CPU ) atau bisa dibilang menunggu antrian
Misalnya ada 2 buah proses yang datang berurutan yaitu P1 dengan arrival time pada 0.0 ms
dan burst time 10 ms, P2 dengan arrival time pada 2.0 ms dan burst time 2 ms.
Process Arrival Time Burst Time
P1 0.0 10
P2 2.0 2
P1 = 0 + ( 4 ms – 2 ms ) = 2 ms
P2 = 0
Tabel Solusi