De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Best6-1 Les 6: Virtueel geheugen. best6-2 Overallocatie Fysieke geheugen 0 N 0 0 N1 N2 Proces 1 Proces 2 ?

Verwante presentaties


Presentatie over: "Best6-1 Les 6: Virtueel geheugen. best6-2 Overallocatie Fysieke geheugen 0 N 0 0 N1 N2 Proces 1 Proces 2 ?"— Transcript van de presentatie:

1 best6-1 Les 6: Virtueel geheugen

2 best6-2 Overallocatie Fysieke geheugen 0 N 0 0 N1 N2 Proces 1 Proces 2 ?

3 best6-3 Overzicht Overallocatie Manuele methoden –Dynamisch laden –Dynamisch linken –Overlays Automatische methoden –Swapping –Virtueel geheugen Eindbeschouwingen

4 best6-4 Manuele methoden: dynamisch laden Fysieke geheugen 0 N 0 0 N1 N2 Proces 1 Proces 2

5 best6-5 Manuele methoden: dynamisch linken Fysieke geheugen 0 N 0 0 N1 N2 Proces 1 Proces 2 Hello world: Statisch: Dynamisch: Assembler: 500

6 best6-6 Overlays AB C1C2 C Hoofdprogramma +Overlaydriver A B C C1 C2

7 best6-7 Overzicht Overallocatie Manuele methoden –Dynamisch laden –Dynamisch linken –Overlays Automatische methoden –Swapping –Virtueel geheugen Eindbeschouwingen

8 best6-8 Swapping Fysieke geheugen 0 N 0 0 N1 N2 Proces 1 Proces 2 Backing store (150%-400%) Proces 1 Proces 2 Proces 1 swap out swap in

9 best6-9 Problemen met swapping: IO 0 N1 Proces 1 buffer randapparaat

10 best6-10 Problemen met swapping: snelheid 10 MiB 10 ms zoektijd 80 MiB/s bandbreedte 10 ms zoektijd 80 MiB/s bandbreedte processchijf Swaptijd 135 ms Swaptijd 135 ms 135 ms uitswappen ms inswappen = 270 ms Kennis van procesgrootte is belangrijk

11 best6-11 Virtueel geheugen: principe Fysieke geheugen 0 3 Frames Pagina- tabel swapruimte

12 best6-12 Paginafout paginafout Zoek de pagina in de swapruimte Niet gevonden Gevonden Zoek een vrij frame Niet gevonden Zoek slachtoffer- frame en maak vrij Zoek slachtoffer- frame en maak vrij Laad pagina in vrije frame; pas paginatabel & frametabel aan Herstart instructie Pagina- vervanging Adresserings- fout – stop proces

13 best6-13 Virtueel geheugen: implementatie Virtueel geheugen Paginering op aanvraag (demand paging) Paginering op aanvraag (demand paging) Segmentering op aanvraag (demand segmentation) Segmentering op aanvraag (demand segmentation) Burroughs OS/2 Windows Linux …

14 best6-14 Prestatieverlies Globale gemiddelde geheugentoegangstijd (1 - p) x ma + p x paginafouttijd ma = 2 ns, paginafouttijd = 8 ms Vertraging van niet meer dan 10%: p < 1 / paginafouttijd = onderbrekingstijd [+ swap-out tijd] + swap-in tijd + herstarttijd

15 best6-15 Paginavervanging Doel: zo klein mogelijk aantal paginafouten bij een gegeven aantal frames Anomalie van Belady paginafouten beschikbare frames Referentieketen:

16 best6-16 Paginavervangingsalgoritmen FIFO: First-In First-Out OPT: Optimaal algoritme LRU: Least Recently Used PLRU: Pseudo-LRU TK: Tweede kans algoritme LFU/MFU: Least/Most Frequently Used RR: Random Replacement

17 best6-17 First-in First-out (FIFO) 77P77P 007P007P 1107P1107P 2210P2210P P3321P 0032p0032p 4403P4403P 2240p2240p 3324p3324p 0032p0032p = p1103p 2210p2210p p7721p 0072p0072p 1107p1107p 3 frames FIFO

18 best6-18 Anomalie van Belady Referentieketen:

19 best6-19 Anomalie van Belady 11P11P 221P221P 3321P3321P 44321P44321P P55432P 11543p11543p 22154p22154p 33215p33215p 44321p44321p 55432p55432p 5+5=10 11P11P 221P221P 3321P3321P 4432P4432P 1143p1143p 2214p2214p 5521P5521P p3352p 4435p4435p =9 4 frames 3 frames FIFO Niet voldaan aan  t.F(3,t)  F(4,t)

20 best6-20 Optimaal algoritme (OPT) 77P77P 007P007P 1107P1107P 2210P2210P P3320P P4432P p0032p = p1102p p7710p frames OPT

21 best6-21 Least Recently Used (LRU) 77P77P 007P007P 1107P1107P 2210P2210P P3302P P4403P 2240p2240p 3324p3324p 0032p0032p = p1123p p0021p p7710p frames LRU

22 best6-22 Afstandsketen D1D1 D2D2 D3D3 D4D4 D5D5 D6D6 DD P77P 007P007P 1107P1107P 22107P22107P P330217P P P =  frames LRU 6

23 best6-23 Implementatie LRU LRU Exact Benaderd Tellertjes Stapel Pseudo-LRU Tweedekans

24 best6-24 Pseudo-LRU Referentiebit LRU MRU proces historiek paginatabel

25 best6-25 Tweedekansalgoritme (Klokalgoritme) Circulaire lijst met pointer die huidige kop van de lijst aangeeft Indien referentiebit van C=0: vervang C en zet de referentiebit van de nieuwe pagina op 1; Indien referentiebit van C=1: zet de referentiebit van C op 0; schuif wijzer op naar D

26 best ’3’6’ 7’ 4’6’ 2’ 1’3’ 66377’6 1’ 33’7’4’ 7 PPPPPpP Tweedekansalgoritme

27 best6-27 Tellende algoritmen Houdt een teller van het aantal referenties per pagina bij Least Frequently Used (LFU): vervangt die pagina met de laagste tellerwaarde Most Frequently Used (MFU): vervangt die pagina met de hoogste tellerwaarde Not Frequently Used (NFU): past de tellerwaarde maar eenmaal aan per tijdskwantum

28 best6-28 Random Replacement (RR) Willekeurige pagina vervangen Eenvoudig Niet zeer doeltreffend

29 best6-29 Paginabuffering Pool met vrije frames + men hoeft niet te zoek naar een frames - men moet de pool regelmatig bijvullen [gebruikt in VMS]

30 best6-30 Frame-allocatie Besturingssysteem Proces 1 Proces 2 Proces 3 Vaste voorafname Competitie met processen Vaste toewijzing Proportioneel met grootte Proportioneel met prioriteit Proportioneel met werkverzameling

31 best6-31 Globale vs. lokale vervanging

32 best6-32 Thrashing CVE-gebruik Graad van multiprogrammering Te weinig geheugen voor de werkverzameling

33 best6-33 Werkverzameling (working set)  WS

34 best6-34 Lokaliteit

35 best6-35 Werkverzameling bepalen Via historiek van referentiebits (pseudo-LRU) Door de controle van de paginafoutfrequentie WS(t) = { p | pseudo-LRU(p) > 63 } ;

36 best6-36 Controle van paginafoutfrequentie paginafouten beschikbare frames

37 best6-37 Taken besturingssysteem paginatabel alloceren en initialiseren initieel aantal paginaframes bepalen MMU instellen met beginadres paginatabel TLB leegmaken het adres dat de fout veroorzaakte bepalen vrije frame vinden, pagina van swapruimte inladen pagina’s vrijgeven in geheugen en op schijf frames wissen Procescreatie Proceswisseling Paginafout Procesterminatie

38 best6-38 Overzicht Overallocatie Manuele methoden –Dynamisch laden –Dynamisch linken –Overlays Automatische methoden –Swapping –Virtueel geheugen Eindbeschouwingen

39 best6-39 Eindbeschouwingen Swapruimte Prepaginering Paginagrootte TLB-bereik Programmastructuur IO-interlock Ware tijd Memory mapped bestanden Copy-on-write Paging daemon Wissen frames Gedeelde pagina’s Beleid vs. Mechanisme

40 best6-40 Swapruimte Bestand Partitie

41 best6-41 Organisatie swapruimte Fysieke geheugen 0 Frames Pagina- tabel swapruimte Fysieke geheugen Frames Pagina- tabel swapruimte

42 best6-42 Prepaginering Niet beginnen met 0 pagina’s, maar n pagina’s ineens inladen Bij inpagineren meteen een deelverzameling van uitgepagineerde pagina’s selecteren (benadering van de working set)

43 best6-43 Paginagrootte Vastgelegd door de hardware Trend naar grotere paginagroottes: –kleinere paginatabellen – minder paginafouten – meer interne fragmentatie – meer onnodige datatransfer p =

44 best6-44 TLB-bereik TLB-bereik = bereikbaar geheugen vanuit de TLB = Een TLB moet voldoende groot zijn om de werkverzameling van een proces in te kunnen bevatten TLB grootte X paginagrootte

45 best6-45 Programmastructuur void matrixoperatie() { int A[][] = new int[1024][1024]; for (i = 0; i < A.length; i++) for (j = 0; j < A.length; j++) A[i,j] = 0; … } 1024 paginafouten

46 best6-46 Programmastructuur void matrixoperatie() { int A[][] = new int[1024][1024]; for (j = 0; j < A.length; j++) for (i = 0; i < A.length; i++) A[i,j] = 0; … } 1024 x 1024 paginafouten

47 best6-47 I/O-interlock IO-operatie niet mogelijk indien een proces uitgepagineerd is Oplossingen – Buffering in de kern – Pagina’s vergrendelen (lock bit) De lock-bit is ook bruikbaar om –nieuwe pagina’s in het geheugen te houden –pagina’s te beschermen tegen verplaatsing –pagina’s te beschermen tegen uitpagineren (OS) Gevaarlijk: te veel locks verhinderen de goede werking van het geheugenbeheer

48 best6-48 Ware Tijd Virtueel geheugen is niet combineerbaar met ware tijd Lock bit kan soelaas brengen

49 best6-49 Memory Mapped Files b.v. Solaris

50 best6-50 Copy-on-write (COW) Fork() 5 fysieke geheugen

51 best6-51 Paging daemon Vervangings- algoritme Windows: automatic working set trimming Solaris 2: pageout

52 best6-52 Wissen frames Frames bevatten soms confidentiële informatie. Alvorens een frame toe te wijzen aan een proces moet het gewist worden (zero fill on demand)

53 best6-53 Gedeelde pagina’s Fysieke geheugen

54 best6-54 Beleid vs. Mechanisme

55 best6-55 Geheugentoegang load/store in cache?in RAM? cache-lijn laden pagina inladen 1 ns 60 ns 8 ms 1 cyclus60 cycli cycli ja nee 90-99,5% 1s1min92 dagen


Download ppt "Best6-1 Les 6: Virtueel geheugen. best6-2 Overallocatie Fysieke geheugen 0 N 0 0 N1 N2 Proces 1 Proces 2 ?"

Verwante presentaties


Ads door Google