170 likes | 336 Views
A. A. B. A. B. C. B. C. B. D. C. D. C. C. mem_ex: buddy system. Gegeven: een geheugenblok van 1 megabyte wordt toegewezen met het buddysysteem. Toon de resultaten van de volgende reeks in een overzicht. Toon de binaire boomstructuur die volgt op het vrijgeven van B.
E N D
A A B A B C B C B D C D C C mem_ex: buddy system • Gegeven: • een geheugenblok van 1 megabyte wordt toegewezen met het buddysysteem. • Toon de resultaten van de volgende reeks in een overzicht. • Toon de binaire boomstructuur die volgt op het vrijgeven van B. Request A: 70 KB Request B: 35 KB Request C: 80 KB Release A Request D: 60 KB Release B Release D Release C
128 64 D C 128 256 mem_ex: buddy system Request A: 70 KB Request B: 35 KB Request C: 80 KB Release A Request D: 60 KB Release B Release D Release C D C
mem_ex: address translation Gegeven: Veronderstel dat de page table voor het proces dat momenteel wordt uitgevoerd door de processor er uit ziet als de volgende tabel. Alle getallen zijn decimaal, alles is genummerd beginnend bij 0 en alle adressen zijn byte adressen. De paginagrootte is 1024 bytes.
Geheugen: oefening 2 Gevraagd: Met welke fysieke adressen zouden de volgende virtuele adressen overeenkomen? 1052: 2221: 5499: 1052 = 1 x 1024 + 28 7 x 1024 + 28 = 7196 2221 = 2 x 1024 + 173 page fault 5499 = 5 x 1024 + 379 0 x 1024 + 379 = 379
mem_ex: page tables • Gegeven: • gepagineerd virtueel geheugensysteem met 32-bit virtuele adressen • pagina’s hebben omvang van 1 kB • voor elke tabel entry zijn 32 bits nodig • lengte van page table = max. 1 page • Gevraagd: • Hoeveel page table niveaus zijn nodig? • Wat is omvang van page table op elk niveau? • Kleine pagina omvang kan zowel boven als onder de hierarchie van de page table • gebruikt worden. Wat is efficientst?
mem_ex: page tables • Gegeven: • gepagineerd virtueel geheugensysteem met 32-bit virtuele adressen • pagina’s hebben omvang van 1 kB • voor elke tabel entry zijn 32 bits nodig • lengte van page table = max. 1 page • Hoeveel page table niveaus zijn nodig? 232 bytes in main memory = 222 pages 210 bytes per page 210 bytes per page table = 28 entries per page table 22 bytes per entry Ten minste drie levels nodig
mem_ex: page tables • Gegeven: • gepagineerd virtueel geheugensysteem met 32-bit virtuele adressen • pagina’s hebben omvang van 1 kB • voor elke tabel entry zijn 32 bits nodig • lengte van page table = max. 1 page • b. Wat is omvang van page table op elk niveau? 2 niveaus hebben 28 entries 1 niveau heeft 26 entries
mem_ex: page tables • Gegeven: • gepagineerd virtueel geheugensysteem met 32-bit virtuele adressen • pagina’s hebben omvang van 1 kB • voor elke tabel entry zijn 32 bits nodig • lengte van page table = max. 1 page • c. Kleine pagina omvang kan zowel boven als onder de hierarchie • van de page table gebruikt worden. Wat is efficientst? 22 bits 10 bits 1 + 26 + 214 pages = 16.449 pages 6 bits 8 bits 8 bits 10 bits 1 + 28 + 214 pages = 16.641 pages 8 bits 6 bits 8 bits 10 bits 1 + 28 + 216 pages = 65.973 pages 8 bits 8 bits 6 bits 10 bits
mem_ex: page tables • Gegeven: • gepagineerd virtueel geheugensysteem met 32-bit virtuele adressen • pagina’s hebben omvang van 1 kB • voor elke tabel entry zijn 32 bits nodig • lengte van page table = max. 1 page • d. Hoeveel ruimte is nodig voor de user page table? 22 bits 10 bits 1 + 26 + 214 pages = 16.449 pages 6 bits 8 bits 8 bits 10 bits 16 Mbyte
mem_ex: replacement strategies Gegeven: 4 paginaframes toegewezen voor een gegeven proces: Stel: Paginafout opgetreden voor pagina 4. a. Welk page frame wordt vervangen bij elk van de volgende strategieën? • FIFO • LRU • Clock • Optimaal (met volgende paginaverwijzingen zijn: 4,0,0,0,2,4,2,1,0,3,2)
FIFO : • LRU : • Clock : • Optimaal : PFN 3 PFN 1 PFN 0 PFN 3 Volgende paginaverwijzingen zijn: 4, 0, 0, 0, 2, 4, 2, 1, 0, 3, 2 b. Hoeveel paginafouten bij tijdsvenster van 4 ipv vaste toewijzing? F F F F F F 4 0 0 0 2 4 2 1 0 3 2 3 4 0 0 0 2 4 2 1 0 3 2 0 3 4 4 4 0 2 4 2 1 0 2 0 3 3 0 0 4 2 1 1 2 4 2
mem_ex: belady’s anomaly Gegeven: Een proces verwijst naar 5 pagina’s (A, B, C, D, E) in de volgende volgorde: A; B; C; D; A; B; E; A; B; C; D; E Veronderstel dat FIFO als vervangingsalgoritme wordt gebruikt. Vraag: Bepaal het aantal paginaoverdrachten tijdens deze reeks verwijzingen, beginnend met een leeg hoofdgeheugen met 3 page frames. Herhaal dit voor 4 page frames.
mem_ex: belady’s anomaly F F F F F F F F F A B C D A B E A B C D E A B C D A B E E E C D D A B C D A B B B E C C A B C D A A A B E E 9 page faults F F F F F F F F F F A B C D A B E A B C D E A B C D D D E A B C C C A B C C C D E A B B B A B B B C D E A A A A A A B C D E E E 10 page faults
mem_ex: page transfers Gegeven: Een proces bevat acht virtuele pagina’s op schijf en krijgt vier page frames in het hoofdgeheugen toegewezen. Het paginaspoor ziet er als volgt uit: 1 0 2 2 1 7 6 7 0 1 2 0 3 0 4 5 1 5 2 4 5 6 7 6 7 2 4 2 7 3 3 2 3 • Vraag: • bereken hit-ratio bij LRU als vervangingsstrategie. • bereken hit-ratio bij FIFO als vervangingsstrategie. • Oplossing (thuis uitwerken): • hit-ratio LRU: 16/33 • Hit-ration FIFO: 16/33
mem_ex: page table levels Gegeven: pagina grootte = 4 kilobyte; page table entry = 4 bytes Gevraagd: Hoeveel niveaus van page tables nodig om 64-bit adresruimte te vertalen als page table op hoogste niveau in één page past? Oplossing: 212 adressen per page 210 entries per page 222 locaties bereikt door 1 page table
mem_ex: TLB performance • Gegeven: • Systeem van adresvertaling met page table van één niveau • Gevraagd: • a. Indien geheugenverwijzing 200 ns, • hoe lang duurt een verwijzing naar gepagineerd geheugen? • b. Indien overhead van TLB 20 ns is en 85% zijn hits in TLB, • hoe lang duurt een verwijzing naar gepagineerd geheugen gemiddeld? • Oplossing: • 200 ns + 200 ns = 400 ns • (0,85 x 220 ns) + (0,15 x420 ns) = 250 ns
mem_ex: segm/pag • Gegeven: • - Taak wordt verdeeld in vier even grote segmenten. • - Voor elk segment wordt een paginatabel met acht entries gebouwd. • - Paginagrootte is 2 kilobytes • Gevraagd: • Wat is maximum grootte van elk segment? • Wat is maximale logische adresruimte voor elke taak? • Oplossing: • 16 kilobytes • 64 kilobytes