Föreläsning 6
Download
Report
Transcript Föreläsning 6
Kapitel 8: Minneshantering
Operating System Concepts – 8th Edition,
Silberschatz, Galvin and Gagne ©2009
Bakgrund
CPU:n kan delas av ett antal processer
Dessa processer måste ligga i minnet, dvs de måste dela minne
Vi måste skydda OS från användarprocesser och användarprocesser från
varandra
Varje process har ett separat minnesutrymme
Bestämma legala adresser
Hindra access till andra adresser
Två register:
Base register – innehåller den lägsta legala adressen
Limit register – innehåller storleken på adressutrymmet
Varje adress jämförs med registren (i user mode)
Operating System Concepts – 8th Edition
8.2
Silberschatz, Galvin and Gagne ©2009
Base- och Limit-registren
base register och limit register definierar det logiska
adressutrymmet
Operating System Concepts – 8th Edition
8.3
Silberschatz, Galvin and Gagne ©2009
Adressbindning
Adressbindning av instruktioner och data till
minnesadresser kan ske vid tre olika tillfällen:
kompilering: om vi vet var i minnet
processen ska ligga
laddning
exekvering: om processen kan flyttas under
exekveringen. Används av de flesta
moderna OS
Operating System Concepts – 8th Edition
8.4
Silberschatz, Galvin and Gagne ©2009
Logiskt och fysiskt adressutrymme
Logisk adress – genereras av CPU:n; kallas också
virtuell adress
fysisk adress – den adress som minnesenheten ser
När adressen binds vid exekvering skiljer sig den logiska
och den fysiska adressen åt
Logiskt adressutrymme
Mängden av alla logiska adresser som genereras av
ett program
Fysiskt adressutrymme
De fysiska adresser som motsvaras av de logiska
adresserna
Operating System Concepts – 8th Edition
8.5
Silberschatz, Galvin and Gagne ©2009
Memory-Management Unit (MMU)
Hårdvaruenhet som översätter logiska adresser till
fysiska
Värdet i relocation register (base register) adderas
till varje logisk adress som genereras av en
användarprocess när denna skickas till minnet
Användarprogrammet hanterar logiska adresser;
det ser aldrig riktiga fysiska adresser
Operating System Concepts – 8th Edition
8.6
Silberschatz, Galvin and Gagne ©2009
Dynamisk relokering
Operating System Concepts – 8th Edition
8.7
Silberschatz, Galvin and Gagne ©2009
Hardware Support for Relocation and Limit Registers
Operating System Concepts – 8th Edition
8.8
Silberschatz, Galvin and Gagne ©2009
Swapping
En process kan temporärt swappas (flyttas) från minnet till
en backing store
Backing store – snabb disk där alla processer får plats
Roll out, roll in – en lågprioriterade process swappas ut så
att en högprioriterad process kan köras
Lång tid för context switch – 2 sek om processen är 100MB
och överföringshastigheten 50MB/s
Varianter av swapping finns i många OS (t ex UNIX, Linux,
och Windows)
Operating System Concepts – 8th Edition
8.9
Silberschatz, Galvin and Gagne ©2009
Schematic View of Swapping
Operating System Concepts – 8th Edition
8.10
Silberschatz, Galvin and Gagne ©2009
Sammanhängande (Contiguous)
minnesallokering
Varje process ligger i en sammanhängande del av minnet
Vi behöver ett relocation register och ett limit register
Enklaste metoden: partitioner med fast storlek
Används inte längre
Partitioner med variabel storlek
Hål – ledigt minnesblock
Generellt finns en mängd hål av olika storlek spridda över
minnet
En ankommande process får minne från ett hål som är stort
nog
OS håller reda på allokerade och fria partitioner (hål)
Operating System Concepts – 8th Edition
8.11
Silberschatz, Galvin and Gagne ©2009
Sammanhängande minnesallokering (forts)
OS
OS
OS
OS
process 5
process 5
process 5
process 5
process 9
process 9
process 8
process 2
Operating System Concepts – 8th Edition
process 10
process 2
process 2
8.12
process 2
Silberschatz, Galvin and Gagne ©2009
Problemet med dynamisk
minnesallokering
Vilket minneshål ska väljas för en process av storleken n
First-fit: allokera det första hålet som är stort nog
Best-fit: allokera det minsta hålet som är stort nog
Worst-fit: allokera det största hålet
First-fit och best-fit är bättre än worst-fit när det gäller
snabbhet och minnesutnyttjande
Både First-fit och best-fit lider av extern
fragmentering
Operating System Concepts – 8th Edition
8.13
Silberschatz, Galvin and Gagne ©2009
Fragmentering
Extern Fragmentering – det lediga minnet består av ett
stort antal små hål
Minska extern fragmentering
Flytta hålen så de bildar ett stort sammanhängande
block
Internal Fragmentation – en process använder inte allt
allokerat minne
Operating System Concepts – 8th Edition
8.14
Silberschatz, Galvin and Gagne ©2009
Paging
Paging tillåter att en process’ fysiska adressutrymme är
icke-sammanhängande – ingen extern fragmentering
Det fysiska minnet delas upp i block av fast storlek
(ramar eller frames)
Det logiska minnet delas upp i block av samma storlek
(sidor eller pages)
Sidstorleken varierar mellan 512B och 16MB
En sidtabell översätter från logiska adresser till fysiska
adresser
Intern fragmentering kan förekomma
Operating System Concepts – 8th Edition
8.15
Silberschatz, Galvin and Gagne ©2009
Paging-hårdvara
Operating System Concepts – 8th Edition
8.16
Silberschatz, Galvin and Gagne ©2009
Exempel sidtabell
Operating System Concepts – 8th Edition
8.17
Silberschatz, Galvin and Gagne ©2009
Exempel 2 sidtabell
32-byte memory and 4-byte pages
Operating System Concepts – 8th Edition
8.18
Silberschatz, Galvin and Gagne ©2009
Implementation av sidtabellen
De flesta OS allokerar en sidtabell för varje process
En pekare till sidtabellen finns i PCB:n - Page-table
base register (PTBR)
Varje access till data kräver två minnesacceser, en till
sidtabellen och en till datan
Detta kan lösas genom att använda ett snabbt cache-
minne kallat translation look-aside buffer (TLB)
Litet, mellan 64 och 1024 sidnummer får plats
Om sidnummer ej i TLB – TLB miss
Hit ratio – procent av sidnummer som hittas i TLB
Operating System Concepts – 8th Edition
8.19
Silberschatz, Galvin and Gagne ©2009
Paging-hårdvara med TLB
Operating System Concepts – 8th Edition
8.20
Silberschatz, Galvin and Gagne ©2009
Skydd av minnet
Skydd av minnet implementeras genom att
associera skyddsbitar med varje ram (t ex
read-only, read-write)
En valid-invalid-bit finns i varje rad i
sidtabellen:
“valid” – sidan ligger i processens logiska
adressutrymme
“invalid”- sidan ligger inte i processens
logiska adressutrymme
Operating System Concepts – 8th Edition
8.21
Silberschatz, Galvin and Gagne ©2009
Valid (v) eller Invalid (i) Bit i en sidtabell
Operating System Concepts – 8th Edition
8.22
Silberschatz, Galvin and Gagne ©2009
Delade sidor
Delad kod
En kopia av ett programs kod kan delas av
flera processer (t ex texteditorer,
kompilatorer).
Delad kod måste ligga på samma ställe i
det logiska adressutrymmet för alla
processer
Operating System Concepts – 8th Edition
8.23
Silberschatz, Galvin and Gagne ©2009
Exempel delade sidor
Operating System Concepts – 8th Edition
8.24
Silberschatz, Galvin and Gagne ©2009
Sidtabellens struktur
Logiska adressutrymmet ofta stort (232 till 264) –
stora sidtabeller
Lösningar:
Hierarchical Paging
Hashed Page Tables
Inverted Page Tables
Operating System Concepts – 8th Edition
8.25
Silberschatz, Galvin and Gagne ©2009
Sidtabeller i två nivåer
Operating System Concepts – 8th Edition
8.26
Silberschatz, Galvin and Gagne ©2009
Segmentering
Minneshanterings-metod som ligger närmare hur användaren ser
på minnet
Ett program är en samling segment
Ett segment är en logisk enhet såsom:
main program
function
object
local variables, global variables
stack
symbol table
arrays
Varje segment har ett namn och en storlek
Operating System Concepts – 8th Edition
8.27
Silberschatz, Galvin and Gagne ©2009
Användarens syn på ett program
Operating System Concepts – 8th Edition
8.28
Silberschatz, Galvin and Gagne ©2009
Logisk vy av segmentering
1
4
1
2
3
2
4
3
user space
Operating System Concepts – 8th Edition
physical memory space
8.29
Silberschatz, Galvin and Gagne ©2009
Segmentation Architecture
Logisk adress består av tupeln:
<segment-number, offset>,
Segment-tabell – översätter logiska adresser till fysiska
adresser
Både paging och segmentering har fördelar och nackdelar
Operating System Concepts – 8th Edition
8.30
Silberschatz, Galvin and Gagne ©2009
Segmentation Hardware
Operating System Concepts – 8th Edition
8.31
Silberschatz, Galvin and Gagne ©2009
Example of Segmentation
Operating System Concepts – 8th Edition
8.32
Silberschatz, Galvin and Gagne ©2009