cpu scheduler – ch. 5 - website staff...

31
CPU Scheduler – Ch. 5 SISTIM OPERASI (Operating System) IKI-20230 Johny Moningka ([email protected]) Fakultas Ilmu Komputer Universitas Indonesia Semester 2000/2001

Upload: donhan

Post on 14-May-2018

215 views

Category:

Documents


1 download

TRANSCRIPT

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/4

Sequence of CPU And I/O Bursts

OS Processes JM-2000/v1.1/5

Histogram of CPU-burst Times

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/20

Time Quantum vs Context Switches

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/23

Multilevel Queue Scheduling

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/26

Multilevel Feedback Queues

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/30

Dispatch Latency

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