|
Pengenalan Penjadwalan CPU
Penjadwalan CPU (CPU Scheduling) adalah basis dari sistem
operasi multiprograming. Dengan men-switch CPU kepada proses-proses, sistem
operasi dapat membuat computer lebih produktif. Pada materi ini akan dibahas
dasar konsep penjadwalan dan diperkenalkan beberapa algoritma penjadwalan
CPU.

[Top]
Konsep Dasar
Tujuan dari multiprograming adalah agar beberapa proses dapat
berjalan sedemikian rupa sehingga penggunaan CPU menjadi maksimal (CPU utilization
maksimal). Ketika CPU mengganggur, sistem operasi harus memilih satu dari
proses dalam ready queue untuk dieksekusi. Pemilihan tersebut dilakukan
oleh penjadwal CPU
(CPU Scheduler). Penjadwal tersebut akan memilih
di antara proses di memori yang siap untuk dieksekusi dan kemudian akan
memberikan jatah CPU kepada salah satu proses tersebut.
Keputusan dalam
penjadwalan CPU berlangsung saat state proses :
- Berubah
dari running state ke waiting state
- Berubah
dari running state ke ready state
- Berubah
dari waiting state ke ready state
- Terminates
Untuk nomor
1 dan 4, skema penjadwalannya dikatakan non-preemptive. Sedangkan untuk
nomor 2 dan 3, skema penjadwalannya dikatakan preemptive. Preemptive maksudnya
dapat diganti oleh proses lain. Non-preemptive maksudnya tidak dapat diganti
oleh proses lain (proses yang sedang berjalan harus dijalankan sampai
selesai dulu).

[Top]
Kriteria Penjadwalan
Kriteria yang digunakan untuk membandingkan algoritma-algoritma penjadwalan
adalah sebagai berikut:
- CPU utilization
Sebaiknya CPU bekerja sesibuk mungkin.
- Throughput
Throughput adalah banyaknya proses yang selesai dieksekusi per satuan
waktu. Semakin banyak throughput, semakin baik.
- Turnaround
time
Turnaround time adalah waktu yang dibutuhkan untuk mengeksekusi suatu
proses. Semakin kecil turnaround time, semakin baik.
- Waiting
time
Waiting time adalah waktu yang dibutuhkan suatu proses selama menunggu
di ready queue. Semakin kecil waiting time, semakin baik.
- Response
time
Response time adalah waktu yang dibutuhkan sejak suatu proses datang
me-request sampai proses itu menerima response pertama. Semakin kecil
response time, semakin baik.
Kriteria yang
optimal adalah :
- CPU utilization
maksimal
- Throughput
maksimal
- Turnaround
time minimal
- Waiting
time minimal
- Response
time minimal

[Top]
Algoritma Penjadwalan
Terdapat banyak algoritma untuk penjadwalan CPU. Tapi dalam
materi ini hanya akan dibahas beberapa algoritma. Berikut ini adalah algoritma-algoritma
tersebut :
- First-Come, First-Served Scheduling (FCFS)
(lihat
simulasi FCFS)
FCFS memilih proses berdasarkan urutan waktu me-request CPU. Proses
yang me-request CPU lebih dahulu akan mendapatkan jatah CPU lebih dahulu.
Skema FIFO (First In First Out) adalah non-preemptive.
Algoritma ini memungkinkan terjadinya convoy effect : proses yang waktu
eksekusinya sebentar (CPU burst time-nya kecil) menunggu terlalu lama
karena didahului oleh proses yang waktu eksekusinya lama (CPU burst time-nya besar). FCFS tidak cocok untuk sistem time-sharing.
- Shortest-Job-First Scheduling (SJF)
SJF memilih proses berdasarkan besar next CPU burst proses. Proses yang next CPU burst-nya kecil akan mendapatkan jatah CPU
lebih dahulu.
SJF menghasilkan solusi optimal untuk : minimum average waiting time.
Dua skema dalam SJF:
Nonpreemptive (lihat
simulasi SJF Nonpremptive)- sekali jatah CPU diberikan pada suatu
proses, maka proses lain tidak dapat mengambil alih jatah CPU sampai
proses yang sedang memakai jatah CPU itu melepaskan jatah CPU dengan
sukarela.
Preemptive (lihat
simulasi SJF Preemptive)- jika terdapat proses baru dengan next
CPU burst yang lebih kecil daripada sisa waktu CPU burst proses yang
running (sedang memakai jatah CPU) saat ini, maka dilakukan preempt
terhadap proses yang sedang running tersebut. Algoritma ini disebut
juga Shortest-Remaining-Time-First (SRTF).
- Prioritas Scheduling
Pada algoritma ini setiap proses diberi prioritas. Jatah CPU diberikan
pada proses dengan prioritas tertinggi.
Dua skema dalam algoritma ini :
Preemptive : proses dapat diinterupsi jika terdapat proses dengan
prioritas lebih tinggi.
Nonpreemptive : proses tidak dapat diinterupsi.
SFF merupakan prioritas scheduling dimana yang menjadi prioritas adalah
next CPU burst proses.
Algoritma ini memungkinkan terjadinya starvation : proses dengan prioritas
rendah bisa jadi tidak pernah dieksekusi.
- Round-Robin Scheduling (RR)
(lihat
simulasi RR)
Setiap proses mendapat jatah waktu CPU (time slice/quantum)
tertentu misalkan 10 atau 100 milidetik.
Setelah waktu tersebut maka proses akan di-preempt dan dipindahkan
ke ready queue.
Jika terdapat n proses di ready queue dan waktu quantum q (milidetik),
maka:
Maka setiap proses akan mendapatkan 1/n dari waktu CPU.
Proses tidak akan menunggu lebih lama dari: (n-1)q satuan waktu.

[Top]
|