De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Best5-1 Les 5: Geheugenbeheer “If we wish to count lines of code, we should not regard them as ‘lines produced’ but as ‘lines spent.’” – Edsger Dijkstra.

Verwante presentaties


Presentatie over: "Best5-1 Les 5: Geheugenbeheer “If we wish to count lines of code, we should not regard them as ‘lines produced’ but as ‘lines spent.’” – Edsger Dijkstra."— Transcript van de presentatie:

1 best5-1 Les 5: Geheugenbeheer “If we wish to count lines of code, we should not regard them as ‘lines produced’ but as ‘lines spent.’” – Edsger Dijkstra

2 best5-2 Overzicht Logische vs. fysieke adressen Contigue allocatie van geheugen Niet-contigue allocatie van geheugen –Paginering –Segmentering –Segmentering + paginering

3 best5-3 Geheugenbeheerprobleem Fysiek geheugen 0 N 0 0 N1 N2 ? Allocatie Relocatie Proces 1 Proces 2 Proces 1 Proces 2 Protectie Delen Geheugenbeheer: allocatie & Geheugenbeheer: relocatie & Geheugenbeheer: protectie & Geheugenbeheer: delen

4 best5-4 Een adres heeft veel gedaanten steeds minder vrijheidsgraden symbolisch reloceerbaar logisch fysiek Compiler/assember/linker Lader MMU broncode Objectbestand/laadmodule Programmabeeld Geheugen Adres: symbolisch

5 best5-5 Binding in de compiler/linker symbolisch reloceerbaar = fysiek logisch = fysiek fysiek Compiler/assember/linker Lader MMU broncode Objectbestand/laadmodule Programmabeeld Geheugen Adres: reloceerbaar

6 best5-6 Binding in de lader symbolisch reloceerbaar logisch = fysiek fysiek Compiler/assember/linker Lader MMU broncode Objectbestand/laadmodule Programmabeeld Geheugen Roll-out/Roll-in Adres: logisch

7 best5-7 Binding tijdens de uitvoering symbolisch reloceerbaar logisch fysiek Compiler/assember/linker Lader MMU broncode Objectbestand/laadmodule Programmabeeld Geheugen : fysiek: fys

8 best5-8 Adresbinding tijdens de uitvoering  (a) = a relocatieregister  context Adresvertaling

9 best5-9 Protectie {limietregister, relocatieregister}  context Geheugenbeheer: protectie

10 best5-10 Overzicht Logische vs. fysieke adressen Contigue allocatie van geheugen Niet-contigue allocatie van geheugen –Paginering –Segmentering –Segmentering + paginering

11 best5-11 Contigue allocatie van partities met vaste grootte Partitie 4 Partitie 3 Partitie 2 Partitie 1 OS Partitie 4 Partitie 3 Partitie 2 Partitie 1 OS Met gescheiden wachtrijMet gedeelde wachtrij IBM OS 360 MFT

12 best5-12 Contigue allocatie van partities met veranderlijke grootte Proces 4 Proces 3 Proces 2 Proces 1 OS IBM OS 360 MVT First Fit Best Fit Worst Fit Next Fit Geheugenallocatie: contigu

13 best5-13 Fragmentatie OS Interne fragmentatie Externe fragmentatie Fragmentatie: intern & Fragmentatie: extern

14 best5-14 Compactie & Defragmentatie 50%-regel = 33% verlies door fragmentatie

15 best5-15 Boekhouding geheugen: vrijgeven geheugen Geheugenbeheer: vrije ruimte

16 best5-16 Boekhouding geheugen: bitmaps Geheugen opgedeeld in eenheden vaste grootte vrijgeven geheugen eenvoudig k opeenvolgende vrije blokken zoeken is trage operatie ABCD

17 best5-17 Boekhouding geheugen: gelinkte lijsten k opeenvolgende blokken zoeken gaat snel boekhouding ingewikkelder bij vrijgeven geheugen A 0 50V 50 30A 80 60V A A A = gealloceerd V = vrij

18 best5-18 Buddy Algoritme 256 MiB 64 MiB 32 MiB 16MiB 8 MiB 4 MiB 2 MiB 25 % interne fragmentatie ? % externe fragmentatie

19 best5-19 Slaballocator A A A A V A v v v v v v v A A v A v v A A v A v A A A A V A v v v v v v Cache T1 Cache T2 A = gealloceerd V = vrij slabs geheugen

20 best5-20 Geheugensanering ( garbage collection ) Het automatisch beheer van dynamisch gealloceerd geheugen Meer specifiek het automatisch vrijgeven van objecten die niet langer door een proces gebruikt worden –Voordeel: minder werk dan manueel, foutloos –Nadeel: trager dan manueel

21 best5-21 Situatie grabbelgeheugen stapel registers datageheugen vertrekpunten ← bereikbaar ← onbereikbaar →

22 best5-22 Directe geheugensanering grabbelgeheugen stapel registers datageheugen vertrekpunten 0 → Geheugensanering: direct

23 best5-23 Probleem: lussen grabbelgeheugen stapel registers datageheugen vertrekpunten 0 →

24 best5-24 Mark-and-sweep grabbelgeheugen stapel √ √ √ √ √ x √ √ √ √ registers datageheugen √ √ vertrekpunten x → Geheugensanering: mark-and-sweep

25 best5-25 Mark-and-sweep grabbelgeheugen stapel √ √ √ √ √ √ √ √ √ registers datageheugen √ √ vertrekpunten →

26 best5-26 Mark-and-compact grabbelgeheugen stapel √ √ √ √ √ √ √ √ √ registers datageheugen √ √ vertrekpunten → Geheugensanering: mark-and-compact

27 best5-27 Kopiërend algoritme grabbelgeheugen stapel registers datageheugen vertrekpunten → Geheugensanering: kopiërende

28 best5-28 Kopiërend algoritme grabbelgeheugen stapel registers datageheugen vertrekpunten → …

29 best5-29 Generationele geheugensanering grabbelgeheugen stapel registers datageheugen vertrekpunten → nursery mature space Geheugensanering: generationeel

30 best5-30 Generationele geheugensanering grabbelgeheugen stapel registers datageheugen vertrekpunten → nursery mature space … Kleine sanering

31 best5-31 Generationele geheugensanering grabbelgeheugen stapel registers datageheugen vertrekpunten → nursery mature space … promotie

32 best5-32 Overzicht Logische vs. fysieke adressen Contigue allocatie van geheugen Niet-contigue allocatie van geheugen –Paginering –Segmentering –Segmentering + paginering

33 best5-33 Allocatie per pagina Fysiek geheugen Proces 1 Proces 2 Pagina’s (512B-16 MiB)Frames Pagina- tabel Geheugenallocatie: gepagineerd

34 best5-34 Basisprincipe paginering CVE p ofo f paginanummer framenummer offset paginatabel frames fysiek geheugen Pagina = 4 KiB Offset = 12 bit Paginanummer = 20 bit p logisch adres fysiek adres PTBR f Paginering

35 best5-35 Frametabel frames fysiek geheugen 0 1 proces proces proces proces proces proces proces frametabel Frame: tabel

36 best5-36 Additionele informatie Valid Read-only Dirty Reference Lock Cached … Paginatabel (4 KiB) F E A ongebruikte bits -Paginatabel: valid bit -Paginatabel: present bit -Paginatabel: read-only bit -Paginatabel: dirty bit -Paginatabel: modified bit -Paginatabel: reference bit -Paginatabel: lock bit -Paginatabel: cached bit

37 best5-37 Translation lookaside buffer CVE p o fo f offset paginatabel frames fysiek geheugen Pagina = 4 KiB Offset = 12 bit Paginanummer = 20 bit p logisch adres fysiek adres f p1 f1 p2 f2 p3 f3 p4 f4 p5 f5 p6 f6 p7 f7 p8 f8 TLB treffer TLB misser TLB

38 best5-38 Hiërarchische adresvertaling Pagina = 4 KiB = 2 12 bytes Adresruimte: 4 GiB = 2 32 bytes Pagina = 4 KiB = 2 12 bytes Adresruimte: 4 GiB = 2 32 bytes 2 20 pagina’s 32 bits per element 2 20 pagina’s 32 bits per element 4 MiB per paginatabel 4 MiB per proces 4 MiB per paginatabel 4 MiB per proces Page table length register Hiërarchische adresvertaling Adresvertaling: hiërarchisch

39 best5-39 Typische geheugenlayout code data grabbel- geheugen stapel 0 2N2N

40 best5-40 Meerniveautabellen

41 best5-41 Hiërarchische paginering CVE o fo f offset paginatabel frames fysiek geheugen logisch adres fysiek adres f p1 f1 p2 f2 p3 f3 p4 f4 p5 f5 p6 f6 p7 f7 p8 f8 TLB treffer TLB misser TLB SPARC: IA32: directory- tabel Paginering: hiërarchisch

42 best5-42 Hiërarchische paginering CVE o fo f offset paginatabel frames fysiek geheugen logisch adres fysiek adres f p1 f1 p2 f2 p3 f3 p4 f4 p5 f5 p6 f6 p7 f7 p8 f8 TLB treffer TLB misser TLB SPARC: IA32: directory- tabel Paginering: hiërarchisch

43 X86-64 vertaling best5-43 p1 f1 p2 f2 p3 f3... … pn PaginatabelPaginadirectory Paginapointers directory PML4 (page map level 4) CVE Geheugen TLB CR3

44 best5-44 Verhakselde paginatabel CVE p o fo offset frames fysiek geheugen logisch adres fysiek adres f p1 f1 p2 f2 p3 f3 p4 f4 p5 f5 p6 f6 p7 f7 p8 f8 TLB treffer TLB misser TLB hakselfunctie p1 f1p2 f2 p3 f3 hakseltabel Adresvertaling: hakselfunctie

45 best5-45 Geïnverteerde paginatabellen CVE p o fo pid p offset frametabel frames fysiek geheugen logisch adres fysiek adres f p1 f1 p2 f2 p3 f3 p4 f4 p5 f5 p6 f6 p7 f7 p8 f8 TLB treffer Zoeken TLB pid f 64-bit UltraSPARC PowerPC Adresvertaling: inverse paginatabel

46 best Delen van pagina’s Fysiek geheugen Code 2 Code 1 Code 2 Data 1 Code 1 Data 3 Data 1 Data 2 Code 2 Frames Code 2 Code 1 Code 2 Data Code 2 Code 1 Code 2 Data Code herbetreedbaar! Geheugenbeheer: delen

47 best Gemeenschappelijk geheugen 4 Fysiek geheugen Code 2 Code 1 Code 2 Data 1 Code 1 Code A Data 2 Code B Code 2 Frames Data Code 2 Code A Code B Data 2 Pagina’s Proces 1 Proces 2

48 best5-48 Adresverwarring 3B00h proces 1proces h 2000h Adres: verwarring

49 best5-49 Overzicht Logische vs. fysieke adressen Contigue allocatie van geheugen Niet-contigue allocatie van geheugen –Paginering –Segmentering –Segmentering + paginering

50 best5-50 Segmentering code data stapel bib code bib stapel data programma fysiek geheugen Geheugenallocatie: gesegmenteerd

51 best5-51 Principe van segmentering CVE s d segmenttabel frames fysiek geheugen limiet basis < s adresseringsfout + STBR ok

52 best5-52 Segmentering+Paginering (Multics) CVE s d segmenttabel frames fysiek geheugen limiet basis < s adresseringsfout STBR ok f p o f o

53 best5-53 Segmentering+Paginering (IA32) CVE s d segmenttabel limiet basis < s adresseringsfout STBR ok + lineair adres Tweeniveau- paginering Adres: lineair

54 best5-54 Overzicht Logische vs. fysieke adressen Contigue allocatie van geheugen Niet-contigue allocatie van geheugen –Paginering –Segmentering –Segmentering + paginering

55 best5-55


Download ppt "Best5-1 Les 5: Geheugenbeheer “If we wish to count lines of code, we should not regard them as ‘lines produced’ but as ‘lines spent.’” – Edsger Dijkstra."

Verwante presentaties


Ads door Google