Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avKarin Ek
1
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 9: Virtuellt minne
2
9.2 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Bakgrund Virtuellt minne – separation av logiskt och fysiskt minne Bara en del av processen behöver ligga i minnet – fler processer i minnet Program kan vara större än det fysiska minnet Processer kan lättare dela minne Nackdelar: Svårt att implementera Kan minska prestandan om det används slarvigt
3
9.3 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtuellt minne som är större än det fysiska minnet
4
9.4 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtuellt adressutrymme
5
9.5 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Delat bibliotek med virtuellt minne
6
9.6 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Demand Paging Hämta in en sida till minnet först när den behövs mindre I/O behövs Mindre minne behövs Snabbare respons Fler användare Demand paging liknar swapping där bara en del av processen swappas in Lazy swapper – swappar bara in en sida till minnet om den kommer att användas En swapper som hanterar sidor kallas för en pager Pagern gissar vilka sidor som kommer att användas när processen swappas in
7
9.7 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Transfer of a Paged Memory to Contiguous Disk Space
8
9.8 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Valid-Invalid bit Vi måste kunna skilja på sidor som är i minnet / inte i minnet På varje rad i sidtabellen finns en valid–invalid bit (v i minnet, i inte i minnet) valid–invalid biten sätts till i för alla sidor från början Exempel: Om processen försöker accessa en sida som inte ligger i minnet page fault (sidfel) v v v v i i i …. Frame #valid-invalid bit page table
9
9.9 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Sidtabell när vissa sidor inte ligger i minnet
10
9.10 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Sidfel “trap” till operativsystemet: page fault Operativsystemet kollar om: Otillåten referens avsluta processen Sidan inte i minnet hämta in sidan Hitta en ledig ram Läsa in sidan till ramen Modifiera tabeller Starta om instruktionen som orsakade sidfelet Pure demand paging – starta en process med 0 sidor i minnet
11
9.11 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Steg i hanteringen av ett sidfel
12
9.12 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Prestanda hos Demand Paging Page Fault Rate 0 p 1.0 Om p = 0 inga sidfel Om p = 1, sidfel vid varje referens Effektiv accesstid (EAT) EAT = (1 – p) x minnesaccess + p (page fault overhead + swap page out + swap page in + restart overhead )
13
9.13 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Exempel Demand Paging Minnesaccesstid = 200 nanoseconds genomsnittlig servicetid = 8 milliseconds EAT = (1 – p) x 200 + p (8 milliseconds) = (1 – p x 200 + p x 8,000,000 = 200 + p x 7,999,800 Om en av 1000 accesser orsakar ett sidfel blir EAT = 8.2 microseconds. systemet blir 40 gånger långsammare!!
14
9.14 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Copy-on-Write Virtuellt minne har också fördelar när processer skapas, till exempel Copy-on-Write Copy-on-Write (COW) tillåter att förälder- och barnprocesser till en början delar sidor i minnet En sida kopieras först när någon av processerna modifierar sidan Lediga sidor allokeras från en pool av sidor för detta ändamål
15
9.15 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Före process 1 modifierar Page C
16
9.16 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Efter process 1 har modifierat Page C
17
9.17 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Vad händer om det inte finns någon ledig ram? Vi får plats för fler processer i minnet om vi överallokerar minnet – inga lediga ramar Page replacement – hitta en sida i minnet som inte används och swappa ut den Prestanda viktigt – vi vill ha en algoritm som resulterar i ett minimalt antal sidfel
18
9.18 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Page Replacement 1. Hitta den sida som ska swappas in på disken 2. Hitta en ledig ram: - om det finns en ledig ram, använd den - om det inte finns någon ledig ram, använd en algoritm för page replacement för att välja en ram som kan offras (victim) 3. Hämta sidan till den lediga ramen och uppdatera tabellerna 4. Starta om processen
19
9.19 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Page Replacement
20
9.20 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Algoritmer för Page Replacement Vi vill ha en algoritm med en låg andel sidfel Vi använder en referenssträng när vi utvärderar algoritmerna och beräknar antalet sidfel på den strängen Referenssträngen är: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Vi måste också veta antalet tillgängliga ramar
21
9.21 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Sidfel vs antal ramar (generellt)
22
9.22 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition First-In-First-Out (FIFO) Referenssträng: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 ramar (3 sidor åt gången kan ligga i minnet) 4 ramar Belady’s Anomaly: fler ramar fler sidfel Lätt att förstå och programmera, men inte alltid så bra prestanda 1 2 3 1 2 3 4 1 2 5 3 4 9 sidfel 1 2 3 1 2 3 5 1 2 4 5 10 sidfel 4 43
23
9.23 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition FIFO Page Replacement
24
9.24 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition FIFO Illustrating Belady’s Anomaly
25
9.25 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Optimal Algoritm Byt ut sidan som inte kommer att användas på längst tid Exempel med 4 ramar 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Hur vet man detta? – kräver kunskap om framtiden Används för jämförelse 1 2 3 4 6 sidfel 4 5
26
9.26 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Least Recently Used (LRU) Byt ut den sida som inte har använts på längst tid Referenssträng: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Implementation med räknare Varje sida har en räknare; varje gång en sida refereras kopieras klockan till räknaren När en sida måste bytas ut jämförs räknarnas värden 5 2 4 3 1 2 3 4 1 2 5 4 1 2 5 3 1 2 4 3
27
9.27 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition LRU-algoritmen (forts) Stackimplementation – ha en stack med sidnummer i en dubbel-länkad lista: När en sida refereras: Flytta den till toppen kräver 6 pekare Kräver ingen sökning
28
9.28 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Stackimplementation
29
9.29 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition LRU-liknande algoritmer Få system har tillräckligt hårdvarustöd för LRU Några system tillhandahåller dock en referensbit: Med varje sida är en referensbit associerad, från början = 0 När en sida refereras sätts biten till 1 Byt ut sidor vars referensbit = 0 (om det finns) Vi vet dock inte ordningen Second chance (klock-algoritmen) Om sidan som ska bytas ut har referensbit = 1: Sätt referensbiten till 0, gå vidare till nästa sida När en sida har referensbiten satt till 0, byt ut den
30
9.30 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Second-Chance
31
9.31 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Räknande algoritmer Ha en räknare som håller reda på antalet referenser som har gjorts till en sida LFU (Least Frequently Used): byter ut sidan med det minsta värdet MFU (Most Frequently Used): byter ut sidan med det största värdet
32
9.32 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Allokering av ramar Hur fördelar vi ett fast antal ramar mellan olika processer? Varje process ett minimiantal sidor den behöver Beror på arkitekturen Två huvudsakliga allokerings-scheman finns: fast allokering prioritetsallokering
33
9.33 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Fast allokering Jämlik allokering – till exempel, om det finns 100 ramar och 5 processer, ge varje process 20 ramar. Proportionell allokering – allokera proportionellt till processens storlek
34
9.34 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Prioritetsallokering Allokera minne efter processens prioritet Om process P i genererar ett sidfel, Ta en ram från en process med lägre prioritet
35
9.35 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Global vs. Lokal allokering Global replacement – en process väljer en utbytesram från mängden av alla ramar; en process kan ta en ram från en annan process Local replacement – varje process väljer bara från signa egna ramar
36
9.36 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Thrashing Om en process inte har “tillräckligt många” sidor, blir sidfelen väldigt många. Detta leder till: lågt CPU-utnyttjande OS tror att antalet processer i minnet behöver ökas Ytterligare en process läggs till i systemet Thrashing en process spenderar mer tid på paging än på exekvering
37
9.37 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Exempel thrashing
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.