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