Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avEmma Berg
1
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 5: CPU-schemaläggning
2
5.2 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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
3
5.3 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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
4
5.4 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Alternating Sequence of CPU And I/O Bursts
5
5.5 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Histogram of CPU-burst Times
6
5.6 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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
7
5.7 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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.
8
5.8 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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
9
5.9 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition First-Come, First-Served (FCFS) ProcessBurst Time P 1 24 P 2 3 P 3 3 Anta att processerna anländer i följande ordning: P 1, P 2, P 3 Gantt-schemat blir då: Väntetid för P 1 = 0; P 2 = 24; P 3 = 27 Genomsnittlig väntetid: (0 + 24 + 27)/3 = 17 P1P1 P2P2 P3P3 2427300
10
5.10 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition FCFS-schemaläggning (forts) Anta att processerna istället anländer i följande ordning: P 2, P 3, P 1 Gantt-schemat blir då: Väntetid för P 1 = 6; P 2 = 0 ; P 3 = 3 Genomsnittlig väntetid: (6 + 0 + 3)/3 = 3 Mycket bättre än föregående fall Nonpreemptive, inte bra för tidsdelningssystem P1P1 P3P3 P2P2 63300
11
5.11 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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 CPU- burst… (går ej i short-term scheduling)
12
5.12 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Example of SJF ProcessBurst Time P 1 6 P 2 8 P 3 7 P 4 3 Gantt-schema med SJF Genomsnittlig väntetid = (3 + 16 + 9 + 0) / 4 = 7 P4P4 P3P3 P1P1 3 16 0 9 P2P2 24
13
5.13 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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. t n = 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 = α t n + (1- α) Τ n
14
5.14 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Prediction of the Length of the Next CPU Burst
15
5.15 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Preemptive SJF Process Arrival time Burst Time P108 P214 P329 P435 Hur kommer Gantt-schemat att se ut? Vad blir den genomsnittliga väntetiden?
16
5.16 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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
17
5.17 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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
18
5.18 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Exempel: RR med tidskvanta = 4 ProcessBurst Time P 1 24 P 2 3 P 3 3 Gantt-schemat blir: Oftast längre turnaround-tid än SJF, men lägre response-tid P1P1 P2P2 P3P3 P1P1 P1P1 P1P1 P1P1 P1P1 0 47 101418222630
19
5.19 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Tidskvanta and Context Switch
20
5.20 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Turnaround Time Varies With The Time Quantum
21
5.21 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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
22
5.22 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Multilevel Queue Scheduling
23
5.23 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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
24
5.24 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Exempel på en Multilevel Feedback Queue Tre köer: Q 0 – RR med tidskvanta 8 millisekunder Q 1 – RR med tidskvanta 16 millisekunder Q 2 – FCFS Schemaläggning: En ny process läggs i kö Q 0. 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ö Q 1. I kö Q 1 får processen ytterligare 16 millisekunder. Om den fortfarande inte är klar flyttas den till kö Q 2.
25
5.25 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Multilevel Feedback Queues
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.