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: 389 448 Dynamisch: 3 276 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 + 135 ms inswappen = 270 ms Kennis van procesgrootte is belangrijk

11 best6-11 Virtueel geheugen: principe Fysieke geheugen 0 3 Frames 0 1 3 3 2 5 1 Pagina- tabel swapruimte 1 2 0 3 1 2 4 5 6

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 / 40 000 000 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: 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

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 02100210 3321P3321P 0032p0032p 4403P4403P 2240p2240p 3324p3324p 0032p0032p 30323032 6+9=15 20322032 1103p1103p 2210p2210p 02100210 12101210 7721p7721p 0072p0072p 1107p1107p 3 frames FIFO

18 best6-18 Anomalie van Belady Referentieketen: 1 2 3 4 1 2 5 1 2 3 4 5

19 best6-19 Anomalie van Belady 11P11P 221P221P 3321P3321P 44321P44321P 1432114321 2432124321 55432P55432P 11543p11543p 22154p22154p 33215p33215p 44321p44321p 55432p55432p 5+5=10 11P11P 221P221P 3321P3321P 4432P4432P 1143p1143p 2214p2214p 5521P5521P 15211521 25212521 3352p3352p 4435p4435p 54355435 5+4=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 02100210 3320P3320P 03200320 4432P4432P 24322432 34323432 0032p0032p 30323032 6+3=9 20322032 1102p1102p 21022102 01020102 11021102 7710p7710p 07100710 17101710 3 frames OPT

21 best6-21 Least Recently Used (LRU) 77P77P 007P007P 1107P1107P 2210P2210P 00210021 3302P3302P 00320032 4403P4403P 2240p2240p 3324p3324p 0032p0032p 33023302 6+6=12 22302230 1123p1123p 22132213 0021p0021p 11021102 7710p7710p 00710071 11071107 3 frames LRU

22 best6-22 Afstandsketen D1D1 D2D2 D3D3 D4D4 D5D5 D6D6 DD 0354116 77P77P 007P007P 1107P1107P 22107P22107P 002173002173 330217P330217P 00321720032172 4403217P4403217P 2240317422403174 3324017433240174 0032417400324174 3302417233024172 6+0=6 2230417322304173 1123047511230475 2213047222130472 0021347400213474 1102347311023473 7710234677102346 0071234300712343 1107234311072343  frames LRU 6

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

24 best6-24 Pseudo-LRU 3 4 5 2 0 0 1 1 Referentiebit 00011011 00100011 11011011 11110000 27 35 219 240 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 best6-26 1361734672 1’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 } ; 00111111

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 0 1 3 3 2 5 1 Pagina- tabel swapruimte Fysieke geheugen Frames 1 0 3 2 2 1 1 Pagina- tabel swapruimte 1 2 3 0 1 2 3

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) 1 2 3 4 1 2 3 4 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 1 2 3 4 3 4 5 6 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 cycli8 000 000 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