Bilag H Forslag til skoleudviklingsplan og ny skolestruktur 2015

Principper for Samtidighed og Styresystemer
Memory management
Ren´e Rydhof Hansen
Apr 2011
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
1 / 19
M˚
al
At kunne forklare og anvende almindelige sideerstatningsalgoritmer
Optimal (OPT)
Least-recently-used (LRU)
Clock
Modified Clock
At kunne redegøre for forskellige strategier for rammeallokering samt
fordele og ulemper ved samme
Fast rammeallokering (lige og proportional)
Working Set modellen
Dynamisk rammeallokering (sidefejlsfrekvens)
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
2 / 19
Part II
Memory management
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
3 / 19
Sideerstatningsalgoritmer
Hvis alle rammer er i brug n˚
ar sidefejl opst˚
ar, skal en eksisterende side
erstattes
Hvilke(n) side(r) skal flyttes?
Global politik: siderne vælges p˚
a tværs af processer
Lokal politik: et antal rammer allokeres per process (working set) og
sider erstattes p˚
a process basis
M˚
al: minim´er sidefejl
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
4 / 19
Optimal sideerstatning (OPT)
Ideelt erstattes den side der skal forblive ubrugt længst
Dette princip kaldes for den “optimale sideerstatningsalgoritme” da den
giver anledning til færrest sidefejl
Ikke en rigtig algoritme, mere et princip og sammenligningsgrundlag
Example
requested
entry 1
entry 2
entry 3
2
2
3
2
3
2
2
3
1
2
3
1
5
2
3
5
2
2
3
5
4
4
3
5
5
4
3
5
3
4
3
5
2
2
3
5
5
2
3
5
2
2
3
5
X = sidefejl
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
5 / 19
Least Recently Used (LRU)
Lokalitetsprincippet (nyligt tilg˚
aede sider skal med stor sandsynlighed
bruges i nærmeste fremtid)
Derfor: erstat den side der ikke er blevet brugt i længst tid
Ved processer med god lokalitet giver LRU næsten samme resultat
som OPT
Besværlig at implementere
Tidsstempling
Ekstra plads i sidetabellen
Opdatering ved hver tilgang til primær lager(!)
Styresystemet skal finde side med mindste tidsstempel
Dobbelt kædet liste
Flyt siden til front ved hver tilgang
Kræver plads (to pointere per side)
Dyr at opdatere (seks pointere skal opdateres)
LRU bruges ikke i praksis(?)
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
6 / 19
Least Recently Used
Example
requested
entry 1
entry 2
entry 3
2
2
3
2
3
2
2
3
1
2
3
1
5
2
5
1
2
2
5
1
4
2
5
4
5
2
5
4
3
3
5
4
2
3
5
2
5
3
5
2
2
3
5
2
X = sidefejl
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
7 / 19
First-in, First-out (FIFO)
Erstat siden der har været i lageret længst
Implementeres med en kædet liste
Nye sider indsættes forrest i listen
Sidste side i listen erstattes
Modsat LRU opdateres listen kun ved sideerstatning og page faults
Tager ikke højde for lokalitet
Kan forbedres med page buffering
Example
requested 2 3 2
entry 1 2 2 2
entry 2
3 3
entry 3
X = sidefejl
PSS’2011 (Forelæsning 08)
1
2
3
1
5
2
4
5
5
5
5
5
3
2
2
2
1
1
4
4
X = side der skal ud
Memory management
3
2
5
3
3
3
2
2
5
4
4
4
næste gang
Apr 2011
2
3
5
2
8 / 19
Optimering: Page buffering
Styresystemet holder permanent et minimum af rammer fri
Periodisk (Linux: swap daemon) udvælges et antal rammer, som kan
skrives til disk i klynger
Sider slettes ikke fra primært lager men placeres i en sidebuffer. Hvis
siden tilg˚
as igen, fjernes den fra sidebufferen
Ved sidefejl kan sider fra sidebufferen erstattes
Kan forbedre sideerstatningsalgoritmen, idet d˚
arlige valg kan
“fortrydes”
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
9 / 19
Clock-algoritmen
Illustreres som et “ur” med kun een viser
Ekstra bit i sidetabellen sættes af MMU’en ved tilgang til siden
Ekstra bit fanger lokalitet
Sider erstattes kun hvis de ikke har været brugt siden “viseren” sidst
passerede over siden
I praksis næsten lige s˚
a god som LRU (som er næsten lige s˚
a god som
OPT)
Example
requested 2
3
2
entry 1 2
2
2
entry 2
3
3
entry 3
X = sidefejl
PSS’2011 (Forelæsning 08)
1
5
2
2
2
2
3
5
5
1
1
1
X = “viser”
Memory management
4
2
5
4
5
3
2
2
5
5
4
3
X = “ekstra
2
2
5
3
bit”
5
2
5
3
Apr 2011
2
2
5
3
10 / 19
Modificeret Clock-algoritme
Foretræk umodificerede sider
Kræver endnu en bit (dirty) i sidetabellen som sættes n˚
ar der skrives til
siden
Led efter ubrugte sider (siden sidst) og umodificerede sider
Led efter ubrugte men modificerede sider, reset “used” bit
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
11 / 19
Memory Management: Oversigt
Intro
Simpel lagerallokering i primær lager
Paging og segmentering
Organisation af sidetabel
Demand paging og sideerstatningsalgoritmer
Rammeallokering
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
12 / 19
Rammeallokering
Rammer er ogs˚
a en (sparsom) resource
Hvordan allokeres fysisk plads (rammer) til processer?
Hvordan fordeles m rammer til n processer?
Hvad har en proces behov for?
Sidefejlsraten for en process er tilnærmelsesvist omvendt proportionalt
med antallet af allokerede rammer
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
13 / 19
Fast rammeallokering
Lige allokering
Giv hver process det samme antal rammer: antal rammer
antal processer
Men forskellige processer har forskellige behov
Proportional allokering
Giv hver process et antal rammer proportionalt med dens sideantal:
pi
×m
p1 + p2 + · · · + pn
Men nogle processer bruger m˚
aske alle dens sider, mens andre kun
bruger en lille del
Hvordan findes de sider der faktisk bruges?
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
14 / 19
“Working set”-modellen
Definition (Working set)
En proces’ working set, W (t, ∆), til tiden t med vinduet ∆ er mængden af
sider en proces har tilg˚
aet indenfor de seneste ∆ tidsenheder
Jvf. lokalitetsprincippet: working set er de sider en proces p.t. har
brug for
Kan bruges til at estimere antallet af rammer der skal allokeres til en
proces
Sideerstatningsalgoritmer kan ogs˚
a benytte sig af working set
modellen til kun at fjerne sider der ikke er i en proces’ working set
∆ fastsættes eksperimentelt
For lille: lokalitet fanges ikke
For stor: for “meget” lokalitet (overestimering)
Working set’et ændrer sig over tid
Problem: Kræver igen at MMU’en skal tidsstemple siderne og at
styresystemet skal ordne sider efter tid
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
15 / 19
Sidefejlsfrekvens
Lad t være tiden siden sidste sidefejl. Da er F =
sidefejlsfrekvens
1
t
den øjeblikkelige
Er F større end Fmax tilføjes en ramme
Hvis F er mindre end Fmin fjernes alle rammer der ikke er tilg˚
aet siden
sidste sidefejl
Problem: ved mange lokalitetsskift tilføjes nye rammer men gamle
sider fjernes ikke umiddelbart
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
16 / 19
Thrashing
Thrashing: n˚
ar processoren bruger det meste af tiden p˚
a at h˚
andtere
page faults fremfor at udføre “almindelige” instruktioner
P
Hvis
|Wi (t, ∆)| ≤ m, hvor m er mængden af hukommelse, kan
thrashing undg˚
as
Ellers m˚
a processer suspenderes
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
17 / 19
Memory Management: Opsummering
Lagerhierarki
Virtuelt lager
Virtuelle adresser vs. fysiske adresser
Lagerallokering i primær lager: fast inddeling, dynamisk inddeling
Sidedelt lager (paging)
Segmentering
Delt hukommelse, styresystemets brug af hukommelse
Sidetabeller
Demand paging, pre-paging, swapping
sideerstatningsalgoritmer (OPT, FIFO, LRU, (M)Clock), page
buffering
Rammeallokering
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
18 / 19
Opsummering og næste gang
Memory management
Demand paging og sideerstatningsalgoritmer
Rammeallokering
Næste gang
Hardwareunderstøttelse
PSS’2011 (Forelæsning 08)
Memory management
Apr 2011
19 / 19