CPU Scheduler – Ch. 5
SISTIM OPERASI(Operating System)IKI-20230
Johny Moningka([email protected])
Fakultas Ilmu KomputerUniversitas Indonesia
Semester 2000/2001
OS Processes JM-2000/v1.1/2
Chapter 5: CPU Scheduling
n Basic Concepts
n Scheduling Criteria
n Scheduling Algorithms
n Multiple-Processor Scheduling
n Real-Time Scheduling
n Algorithm Evaluation
OS Processes JM-2000/v1.1/3
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)
• Mayoritas proses => CPU-burst pendek (2 s/d 4 milidetik).• Sedikit menggunakan waktu CPU yang lama (lebih dari 8
milidetik).
OS Processes JM-2000/v1.1/6
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.
4.Terminates.
OS Processes JM-2000/v1.1/7
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.• Prasyarat untuk OS real-time system.
OS Processes JM-2000/v1.1/8
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.n Save (proses lama) dan restrore (proses baru).
OS Processes JM-2000/v1.1/9
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.
OS Processes JM-2000/v1.1/10
Scheduling Algorithms
n First-come, first-served (FCFS)
n Shortest-Job-First (SJF)
n Priority
n Round-Robin (RR)
n Multilevel Queue
n Multilevel Feedback Queue
OS Processes JM-2000/v1.1/11
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 preemptiven Timbul masalah “waiting time” terlalu lama jika
didahului oleh proses yang waktu selesainya lama.• Tidak cocok untuk time-sharing systems.• Digunakan pada OS dengan orientasi batch job.
OS Processes JM-2000/v1.1/12
FCFS: too long to wait
nExample: Process Burst TimeP1 24P2 3P3 3
nSuppose that the processes arrive in the order: P1 , P2 , P3 : The Gantt Chart for the schedule is:
nWaiting time for P1 = 0; P2 = 24; P3 = 27nAverage waiting time: (0 + 24 + 27)/3 = 17
P1 P2 P3
24 27 300
OS Processes JM-2000/v1.1/13
FCFS Scheduling (Cont.)
Suppose that the processes arrive in the orderP2 , P3 , P1 .
nThe Gantt chart for the schedule is:
n Waiting time for P1 = 6; P2 = 0; P3 = 3n Average waiting time: (6 + 0 + 3)/3 = 3
• Much better than previous case.
n Convoy effect short process behind long process
P1P3P2
63 300
OS Processes JM-2000/v1.1/14
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).
OS Processes JM-2000/v1.1/15
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).
n SJF is optimal – gives minimum average waiting time for a given set of processes.
OS Processes JM-2000/v1.1/16
SJF: min turnaround timeProcess CPU Time
P0 xP1 yP2 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
OS Processes JM-2000/v1.1/17
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 ≡ Starvationn low priority processes may never execute.n Solution ≡ Aging
• Prioritas akan naik jika proses makin lama menunggu waktu jatah CPU.
OS Processes JM-2000/v1.1/18
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 Performancen q large ⇒ FIFOn q small ⇒ q must be large with respect to context switch,
otherwise overhead is too high.
OS Processes JM-2000/v1.1/19
Example: RR (q=20)
Process Burst TimeP1 53P2 17P3 68P4 24
Gantt chart:
Tipikal: lebih lama waktu rata-rata turnaround dibandingkan SJF, tapi mempunyai response terhadap user lebih cepat.
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
OS Processes JM-2000/v1.1/21
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 %
OS Processes JM-2000/v1.1/22
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
n Setiap queue mempunyai prioritas yang fixed.
OS Processes JM-2000/v1.1/24
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.n Faktor yang mepengaruhi perpindahan tsb?
OS Processes JM-2000/v1.1/25
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
OS Processes JM-2000/v1.1/27
Example: Multilevel Feedback
n Three queues: n Q0 – time quantum 8 milliseconds
n Q1 – time quantum 16 milliseconds
n Q2 – FCFS
n Schedulingn 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.
n At Q1 job is again served FCFS and receives 16 additional milliseconds. If it still does not complete, it is preempted and moved to queue Q2.
OS Processes JM-2000/v1.1/28
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.
OS Processes JM-2000/v1.1/29
Real-Time Scheduling
n Hard real-time scheduling:n Task kritis harus selesai dengan garansi waktu
tertentun 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)
n Sulit untuk time-sharing sistim, virtual memory (faktor latency sebagian program aktif ada di disk).
OS Processes JM-2000/v1.1/31
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
• make the entire kernel preemptable