Föreläsning 3

Report
Kapitel 5: CPU-schemaläggning
Operating System Concepts – 8th Edition,
Silberschatz, Galvin and Gagne ©2009
Innehåll
 Introduktion av CPU-schemaläggning, vilket är grunden
för multiprogrammerade OS
 Beskrivning av olika schemaläggningsalgoritmer
 Kriterier för att välja algoritm för ett specifikt system
Operating System Concepts – 8th Edition
5.2
Silberschatz, Galvin and Gagne ©2009
Grundläggande koncept
 Schemaläggning är en grundläggande funktion i
OS – nästan alla resurser schemaläggs innan
användning
CPU-schemaläggning:
 En process alternerar mellan att använda CPU:n
och att göra I/O (CPU–I/O Burst Cycle)
 Viktigt att veta distributionen av CPU-burstarna
när man väljer algoritm
Operating System Concepts – 8th Edition
5.3
Silberschatz, Galvin and Gagne ©2009
Alternating Sequence of CPU And I/O Bursts
Operating System Concepts – 8th Edition
5.4
Silberschatz, Galvin and Gagne ©2009
Histogram of CPU-burst Times
Operating System Concepts – 8th Edition
5.5
Silberschatz, Galvin and Gagne ©2009
CPU-schemaläggaren
 Väljer en av processerna i minnet som är redo att
exekvera och allokerar CPU:n till den
 Schemaläggningsbeslut kan göras när en process:
1. Växlar från tillståndet running till tillståndet waiting
2.
Växlar från tillståndet running till tillståndet ready
3.
Växlar från tillståndet waiting till tillståndet ready
4. Avslutas (terminerar)
 Schemaläggning enligt 1 och 4 är nonpreemptive
 All annan schemaläggning är preemptive
Operating System Concepts – 8th Edition
5.6
Silberschatz, Galvin and Gagne ©2009
Dispatcher
 En annan viktig komponent för CPU-
schemaläggningen är dispatchern
 Dispatchern ger den utvalda processen kontroll
över CPU:n, vilket innebär att den:

Gör en context switch

Växlar till user mode

Hoppar till det ställe i programmet där det skall
återstartas
 Dispatch latency – tiden det tar att stoppa en
process och starta en annan.
Operating System Concepts – 8th Edition
5.7
Silberschatz, Galvin and Gagne ©2009
Kriterier för schemaläggning
 CPU-utnyttjande – CPU:n ska utnyttjas så
mycket som möjligt
 Throughput – antal processer som exekverar
klart per tidsenhet
 Turnaround time – tiden det tar att exekvera en
specifik process
 Waiting time – tiden en process får vänta i ready
queue
 Response time – tiden det tar från det en
förfrågan görs tills det systemet svarar
Operating System Concepts – 8th Edition
5.8
Silberschatz, Galvin and Gagne ©2009
First-Come, First-Served (FCFS)
Process
Burst Time
P1
24
P2
3
P3
3
 Anta att processerna anländer i följande ordning: P1 , P2 , P3
Gantt-schemat blir då:
P1
P2
0
24
P3
27
30
 Väntetid för P1 = 0; P2 = 24; P3 = 27
 Genomsnittlig väntetid: (0 + 24 + 27)/3 = 17
Operating System Concepts – 8th Edition
5.9
Silberschatz, Galvin and Gagne ©2009
FCFS-schemaläggning (forts)
Anta att processerna istället anländer i följande ordning:
P2 , P3 , P1
 Gantt-schemat blir då:
P2
0
P3
3
P1
6
30
 Väntetid för P1 = 6; P2 = 0; P3 = 3
 Genomsnittlig väntetid: (6 + 0 + 3)/3 = 3
 Mycket bättre än föregående fall
 Nonpreemptive, inte bra för tidsdelningssystem
Operating System Concepts – 8th Edition
5.10
Silberschatz, Galvin and Gagne ©2009
Shortest-Job-First (SJF)
 SJF associerar varje process med längden på dess
nästa CPU-burst
 När CPU:n blir ledig får processen med den kortaste
CPU-bursten exekvera
 SJF är optimal – den ger en minimal genomsnittlig
väntetid för en given mängd processer

Svårigheten är att veta längden på nästa CPUburst… (går ej i short-term scheduling)
Operating System Concepts – 8th Edition
5.11
Silberschatz, Galvin and Gagne ©2009
Example of SJF
Process
Burst Time
P1
6
P2
8
P3
7
P4
3
 Gantt-schema med SJF
P4
0
P3
P1
3
9
P2
16
24
 Genomsnittlig väntetid = (3 + 16 + 9 + 0) / 4 = 7
Operating System Concepts – 8th Edition
5.12
Silberschatz, Galvin and Gagne ©2009
Bestämma längden på nästa CPU-burst
 Vi kan inte veta längden, men vi kan uppskatta den
 Kan göras genom att använda längderna på föregående CPU-
burstar, genom att beräkna ett exponentiellt medelvärde.
1. tn = längden på CPU-burst n
2. Τn+1 = uppskattat värde på nästa CPU-burst
3. En konstant α som ligger mellan 0 och 1, typiskt 0,5
4. Definition: Τn+1 = α tn + (1- α) Τn
Operating System Concepts – 8th Edition
5.13
Silberschatz, Galvin and Gagne ©2009
Prediction of the Length of the Next CPU Burst
Operating System Concepts – 8th Edition
5.14
Silberschatz, Galvin and Gagne ©2009
Preemptive SJF
Process
Arrival time
Burst Time
P1
0
8
P2
1
4
P3
2
9
P4
3
5
Hur kommer Gantt-schemat att se ut?
Vad blir den genomsnittliga väntetiden?
Operating System Concepts – 8th Edition
5.15
Silberschatz, Galvin and Gagne ©2009
Prioritets-schemaläggning
 En prioritet (integer) associeras med varje process
 CPU:n allokeras till processen med högst prioritet (lägst heltal  högst
prioritet)

Preemptive

Nonpreemptive
 Problem  Starvation (svält) – processer med låg prioritet kanske aldrig får
exekvera
 Lösning  Aging – prioriteten ökar med väntetiden
Operating System Concepts – 8th Edition
5.16
Silberschatz, Galvin and Gagne ©2009
Round Robin (RR)
 Varje process exekverar en kort tid (tidskvanta
q), vanligtvis 10-100 millisekunder. När denna
tid har gått placeras processen sist i ready
queue
 Prestanda

q stort  FIFO

q litet  q måste vara stort i förhållande till
context switch time

Riktvärde: 80% av CPU-burstarna ska vara
mindre än q
Operating System Concepts – 8th Edition
5.17
Silberschatz, Galvin and Gagne ©2009
Exempel: RR med tidskvanta = 4
Process
P1
P2
P3
Burst Time
24
3
3
 Gantt-schemat blir:
P1
0
P2
4
P3
7
P1
10
P1
14
P1
18 22
P1
26
P1
30
 Oftast längre turnaround-tid än SJF, men lägre response-tid
Operating System Concepts – 8th Edition
5.18
Silberschatz, Galvin and Gagne ©2009
Tidskvanta and Context Switch
Operating System Concepts – 8th Edition
5.19
Silberschatz, Galvin and Gagne ©2009
Turnaround Time Varies With The Time Quantum
Operating System Concepts – 8th Edition
5.20
Silberschatz, Galvin and Gagne ©2009
Köer med flera nivåer
 Ready queue delas upp i olika köer:
foreground (interactive)
background (batch)
 Varje kö har sin egen schemaläggningsalgoritm

foreground – RR

background – FCFS
 Schemaläggning måste göras mellan köerna

Prioritetsschemaläggning; (dvs, först alla från foreground och sen alla
från background)

80% till foreground med RR

20% till background med FCFS
Operating System Concepts – 8th Edition
5.21
Silberschatz, Galvin and Gagne ©2009
Multilevel Queue Scheduling
Operating System Concepts – 8th Edition
5.22
Silberschatz, Galvin and Gagne ©2009
Multilevel Feedback Queue
 En process kan flytta mellan olika köer
 Schemaläggaren måste definiera följande
parametrar:

Antal köer

Algoritmer för varje kö

Bestämma när en process skall uppgraderas

Bestämma när en process skall nedgraderas

Bestämma vilken kö en process skall läggas i
från början
Operating System Concepts – 8th Edition
5.23
Silberschatz, Galvin and Gagne ©2009
Exempel på en Multilevel Feedback Queue
 Tre köer:

Q0 – RR med tidskvanta 8 millisekunder

Q1 – RR med tidskvanta 16 millisekunder

Q2 – FCFS
 Schemaläggning:

En ny process läggs i kö Q0. När den får CPU:n, får den
exekvera 8 millisekunder. Om den inte är klar efter 8
millisekunder flyttas den till kö Q1.

I kö Q1 får processen ytterligare 16 millisekunder. Om den
fortfarande inte är klar flyttas den till kö Q2.
Operating System Concepts – 8th Edition
5.24
Silberschatz, Galvin and Gagne ©2009
Multilevel Feedback Queues
Operating System Concepts – 8th Edition
5.25
Silberschatz, Galvin and Gagne ©2009

similar documents