CPU Scheduler – Ch. 5
SISTIM OPERASI
(Operating System)
IKI-20230
Johny Moningka
([email protected])
Chapter 5: CPU Scheduling
nBasic Concepts
nScheduling Criteria
nScheduling Algorithms
nMultiple-Processor Scheduling
nReal-Time Scheduling
nAlgorithm Evaluation
Basic Concepts
n
Pemakaian CPU secara maksimum dengan
multiprogramming => makin banyak jobs/task
yang dijalankan makin baik
n
CPU–I/O Burst Cycle – Eksekusi proses terdiri
dari siklus instruksi-instruksi CPU dan I/O
request/wait.
n
Bagaimana prilaku CPU-burst?
n Karakteristik dan berapa lama (tergantung profile program?)
n Distribusi lamanya CPU-brust (histogram-frekwensi)
CPU Scheduler
n
Algoritma scheduling:
n Memilih dari proses-proses yang berada di memori
(ready to execute) dan memberikan jatah CPU ke salah satu proses tersebut.
n
Kapan keputusan untuk algoritma dilakukan:
n Saat suatu proses:
1.Switches from running to waiting state. 2.Switches from running to ready state. 3.Switches from waiting to ready.
Types of Scheduling
n
Bagaimana pemilihan dilakukan oleh Scheduler?
n Preemptive: OS dapat mengambil (secara interrupt,
preempt) CPU dari satu proses setiap saat.
n Non-preemptive: setiap proses secara sukarela
(berkala) memberikan CPU ke OS.
n
Contoh:
n Scheduling untuk switch dari running ke wait atau
terminate: non-preemptive.
n Scheduling proses dari running ke ready: pre-emptive.
Dispatcher
n
Modul Dispatcher: mengatur dan memberikan
kontrol CPU kepada proses yang dipilih oleh
“short-term scheduler”:
n switching context
n switching to user mode
n jumping to the proper location in the user program to
restart that program
n
Dispatch latency – terdapat waktu yang terbuang
(CPU idle) dimana dispatcher menghentikan satu
proses dan menjalankan proses lain.
Scheduling Criteria
n Utilisasi CPU: menjadikan CPU terus menerus sibuk (menggunakan CPU semaksimal mungkin).
n Throughput: maksimalkan jumlah proses yang selesai dijalankan (per satuan waktu).
n Turnaround time: minimalkan waktu selesai eksekusi suatu proses (sejak di submit sampai selesai).
n Waiting time: minimalkan waktu tunggu proses (jumlah waktu yang dihabiskan menunggu di ready queue).
n Response time: minimalkan waktu response dari sistim terhadap user (interaktif, time-sharing system), sehingga interaksi dapat berlangsung dengan cepat.
Scheduling Algorithms
nFirst-come, first-served (FCFS)
nShortest-Job-First (SJF)
nPriority
nRound-Robin (RR)
nMultilevel Queue
First-Come, First-Served (FCFS)
n
Algoritma:
n Proses yang request CPU pertama kali akan
mendapatkan jatah CPU.
n Sederhana – algoritma maupun struktur data:
menggunakan FIFO queue (ready queue).
n
FIFO: Non preemptive
n Timbul masalah “waiting time” terlalu lama jika
didahului oleh proses yang waktu selesainya lama.
• Tidak cocok untuk time-sharing systems.
FCFS: too long to wait
n Example: Process Burst Time
P1 24
P2 3
P3 3
n Suppose that the processes arrive in the order: P1 , P2 ,
P3 : The Gantt Chart for the schedule is:
n Waiting time for P1 = 0; P2 = 24; P3 = 27
n Average waiting time: (0 + 24 + 27)/3 = 17
P1 P2 P3
24 27 30 0
FCFS Scheduling (Cont.)
Suppose that the processes arrive in the order
P
2, P
3, P
1.
n
The Gantt chart for the schedule is:
n Waiting time for P1 = 6; P2 = 0; P3 = 3
n Average waiting time: (6 + 0 + 3)/3 = 3
• Much better than previous case.
P1 P3 P2 6 3 30 0
SJF Scheduling
n
Algoritma:
n Alokasikan CPU kepada proses dengan waktu
pemakaian CPU terpendek.
n Menghasilkan solusi optimal untuk: minimum. average
waiting time.
n Prasyarat terdapat informasi awal lamanya suatu jobs
(dari programmer atau log) => valid untuk batch jobs (long term scheduler).
n
Secara umum: sulit untuk melakukan prediksi
pemakaian CPU untuk suatu proses (short term
scheduler).
Shortest-Job-First (SJR)
n Prediksi suatu proses dengan panjang waktu CPU burst yang akan digunakan (CPU intensive atau I/O intensive).
n Gunakan “panjang waktu pemakaian CPU kelak” akan sama
dengan waktu pemakaina CPU-burst sebelumnya.
n Two schemes:
n Nonpreemptive – sekali CPU diberikan ke proses maka proses
tersebut tidak dapat disingkirkan sampai CPU burst selesai.
n Preemptive – jika terdapat proses baru dengan CPU burst lebih
kecil dibandingkan sisa waktu CPU proses “running” saat ini –
maka preempt proses tersebut => Shortest-Remaining-Time-First (SRTF).
SJF: min turnaround time
Process CPU Time
P0 x
P1 y
P2 z
P0 P1 P2
0 x x+y x+y+z
Avg. turnaround time = [ x + (x+y) + (x+y+z) ] / 3 To minimize: x < y < z
Priority Scheduling
n Algoritma:
n Setiap proses akan mempunyai prioritas (bilangan integer). n CPU diberikan ke proses dengan prioritas tertinggi (smallest
integer ≡ highest priority).
n Preemptive: proses dapat di interupsi jika terdapat prioritas lebih
tinggi yang memerlukan CPU.
n Nonpreemptive: proses dengan prioritas tinggi akan mengganti
pada saat pemakain time-slice habis.
n SJF adalah contoh priority scheduling dimana prioritas ditentukan
oleh waktu pemakaian CPU berikutnya.
n Problem ≡ Starvation
n low priority processes may never execute. n Solution ≡ Aging
Round Robin (RR)
n Setiap proses mendapat jatah waktu CPU (time
slice/quantum) tertentu misalkan 10 atau 100 milidetik.
n Setelah waktu tersebut maka proses akan di-preempt dan
dipindahkan ke ready queue.
n Adil dan sederhana.
n Jika terdapat n proses di “ready queue” dan waktu quantum q (milidetik), maka:
n Maka setiap proses akan mendapatkan 1/n dari waktu CPU.
n Proses tidak akan menunggu lebih lama dari: (n-1)q time units.
n Performance
n q large ⇒ FIFO
n q small ⇒ q must be large with respect to context switch,
Example: RR (q=20)
Process Burst Time
P1 53 P2 17 P3 68 P4 24 Gantt chart: P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162
Varying The Quantum
n
Assuming context switch time is 3 msec
n
For a short quantum, Q = 15 msec:
overhead = 3 / (3 + 15) = 16.67 %
n
For a long quantum, Q = 97 msec:
overhead = 3 / (3 + 97) = 3 %
Multilevel Queues Scheduling
n
Kategori proses sesuai dengan sifat proses:
n Interaktif (response cepat) n Batch dll
n
Partisi “ready queue” dalam beberapa tingkat
(multilevel) sesuai dengan proses:
n Setiap queue menggunakan algoritma schedule
sendiri
n Foreground proses (interaktif, high prioritiy): RR
n Background proses (batch, low priority): FCFS
Mutlilevel scheduling
n
Scheduling must be done between the queues.
n Fixed priority scheduling; i.e., serve all from
foreground then from background. Possibility of starvation.
n Time slice – each queue gets a certain amount of CPU time which it can schedule amongst its processes; i.e.,
• 80% to foreground in RR
• 20% to background in FCFS
n
Proses kemungkinan dapat berpindah secara
dinamik dari satu queue ke queue lain.
Multilevel Feedback Queue
n
A process can move between the various
queues;
n
Perlu feedback untuk penentuan proses
naik/turun prioritasnya (dinamis):
n Aging dapat diimplementasikan sesuai dengan lama
proses pada satu queue.
n Suatu proses yang menggunakan CPU sampai habis
(tanpa I/O wait) => CPU-bound (bukan proses
interaktif) dapat dipindahk ke queue dengan prioritas lebih rendah
Example: Multilevel Feedback
n
Three queues:
n Q0 – time quantum 8 milliseconds n Q1 – time quantum 16 milliseconds n Q2 – FCFS
n
Scheduling
n A new job enters queue Q0 which is served FCFS.
When it gains CPU, job receives 8 milliseconds. If it does not finish in 8 milliseconds, job is moved to
queue Q1.
Multiple-Processor Scheduling
n
CPU scheduling more complex when multiple
CPUs are available.
n
Homogeneous processors within a
multiprocessor.
n
Load sharing
n
Asymmetric multiprocessing – only one
processor accesses the system data structures,
alleviating the need for data sharing.
Real-Time Scheduling
n
Hard real-time scheduling:
n Task kritis harus selesai dengan garansi waktu
tertentu
n OS akan melacak lamanya task tersebut dieksekusi
(real time):
• Mengetahui lama waktu system call, fungsi dan response dari hardware
• Melakukan prediksi apakah task tersebut dapat dijalankan.
n Mudah dilakukan untuk OS khusus pada
peralatan/pemakaian khusus (single task: control system)
Soft Real-Time Computing
n
Soft real-time scheduling:
n requires the use of a priority scheme n multimedia, highly interactive graphics n priority must not degrade over time
n small dispatch latency
• insert preemption points in long duration system calls