gie/icejosep/paginawebecso/somemoria.pdf · si el sistema operatiu vol afegir més codi per què...
TRANSCRIPT
GIE
/ICE
Gestió de la memòria. Motivació
• Com organitzem la memòria de forma que els programes d’usuari i elsistema operatiu la puguin compartir?
Gestió de la Memòria. Josep Vilaplana – p. 1
GIE
/ICE
Gestió de la memòria. Motivació
• Com organitzem la memòria de forma que els programes d’usuari i elsistema operatiu la puguin compartir?
• Com es protegeixen els diferents àmbits?
Gestió de la Memòria. Josep Vilaplana – p. 1
GIE
/ICE
Gestió de la memòria. Motivació
• Com organitzem la memòria de forma que els programes d’usuari i elsistema operatiu la puguin compartir?
• Com es protegeixen els diferents àmbits?• Com vinculem les adreces amb el programa un cop sabem on han de residir?
Gestió de la Memòria. Josep Vilaplana – p. 1
GIE
/ICE
Gestió de la memòria. Motivació
• Com organitzem la memòria de forma que els programes d’usuari i elsistema operatiu la puguin compartir?
• Com es protegeixen els diferents àmbits?• Com vinculem les adreces amb el programa un cop sabem on han de residir?• Què fem si tot no cap a la memòria principal?
Gestió de la Memòria. Josep Vilaplana – p. 1
GIE
/ICE
Gestió de la memòria. Motivació
• Com organitzem la memòria de forma que els programes d’usuari i elsistema operatiu la puguin compartir?
• Com es protegeixen els diferents àmbits?• Com vinculem les adreces amb el programa un cop sabem on han de residir?• Què fem si tot no cap a la memòria principal?• Què fem si un programa és més llarg que no cap a la memòria principal?
Gestió de la Memòria. Josep Vilaplana – p. 1
GIE
/ICE
Monoprogramació (I)
Programausuari
Programausuari
Programausuari
SistemaOperatiuen R.A.M.0
FFF...
0
FFF...
0
FFF...ControladorsdispositiusROM
SistemaOperatiuen R.A.M.
SistemaOperatiuen R.O.M.
Gestió de la Memòria. Josep Vilaplana – p. 2
GIE
/ICE
Monoprogramació (II). Ubicació fixe
Protecció de hardware mitjançant un registre de recinte.
CPU
recinte
Adreça
MemòriaAdreça
recinte>
cert
fals
Adreça
recinte
Gestió de la Memòria. Josep Vilaplana – p. 3
GIE
/ICE
Monoprogramació (III). Ubicació dinàmica
• La càrrega de programes d’usuari s’hauria de fer a partir de l’adreça delrecinte.
Gestió de la Memòria. Josep Vilaplana – p. 4
GIE
/ICE
Monoprogramació (III). Ubicació dinàmica
• La càrrega de programes d’usuari s’hauria de fer a partir de l’adreça delrecinte.
• El compilador genera codi reubicable. El muntador i el servei que carrega elprograma genera la ubicació definitiva.
Gestió de la Memòria. Josep Vilaplana – p. 4
GIE
/ICE
Monoprogramació (III). Ubicació dinàmica
• La càrrega de programes d’usuari s’hauria de fer a partir de l’adreça delrecinte.
• El compilador genera codi reubicable. El muntador i el servei que carrega elprograma genera la ubicació definitiva.
• En la execució d’un programa l’adreça de recinte no pot variar. Si el sistemaoperatiu vol afegir més codi per què així ho demana l’usuari, poden haverproblemes. Una forma de solucionar-ho és mitjançant la reubicaciódinàmica
CPU
base
Adreça
MemòriaAdreça
recinte
+Física
Adreça
Lògica
Gestió de la Memòria. Josep Vilaplana – p. 4
GIE
/ICE
Monoprogramació (III). Ubicació dinàmica
• La càrrega de programes d’usuari s’hauria de fer a partir de l’adreça delrecinte.
• El compilador genera codi reubicable. El muntador i el servei que carrega elprograma genera la ubicació definitiva.
• En la execució d’un programa l’adreça de recinte no pot variar. Si el sistemaoperatiu vol afegir més codi per què així ho demana l’usuari, poden haverproblemes. Una forma de solucionar-ho és mitjançant la reubicaciódinàmica
CPU
base
Adreça
MemòriaAdreça
recinte
+Física
Adreça
Lògica
• Ara es pot canviar el registre en temps d’execució però cal moure elprograma.
Gestió de la Memòria. Josep Vilaplana – p. 4
GIE
/ICE
Multiprogramació. Particions fixes
• Es divideix la memòria en n particions probablement desiguals.
Gestió de la Memòria. Josep Vilaplana – p. 5
GIE
/ICE
Multiprogramació. Particions fixes
• Es divideix la memòria en n particions probablement desiguals.• La planificació de processos haurà de tenir en compte si el procés cap en
una partició donada.
Memòria
P2
P1
P3
P4
P5
S.O.
Cues de processos
Gestió de la Memòria. Josep Vilaplana – p. 5
GIE
/ICE
Multiprogramació. Particions fixes. Proteccions
• Registres límits
CPUAdreça Memòria
Inferior
Límit
>=
cert
fals
Superior
Límit
<
cert
fals
Trap al S.O: Adreça errònia
Gestió de la Memòria. Josep Vilaplana – p. 6
GIE
/ICE
Multiprogramació. Particions fixes. Proteccions
• Registres límits
CPUAdreça Memòria
Inferior
Límit
>=
cert
fals
Superior
Límit
<
cert
fals
Trap al S.O: Adreça errònia
• Registres base/límit
CPUAdreça Memòria
Límit
cert
fals
<
base
Adreça
+
Trap al S.O: Adreça errònia
Gestió de la Memòria. Josep Vilaplana – p. 6
GIE
/ICE
Multiprogramació. Particions fixes. (III)
• Exemple: IBM OS/360, MFT (Multiprogramming with a Fixed number ofTasks). Un operador ho establia manualment.
Gestió de la Memòria. Josep Vilaplana – p. 7
GIE
/ICE
Multiprogramació. Particions fixes. (III)
• Exemple: IBM OS/360, MFT (Multiprogramming with a Fixed number ofTasks). Un operador ho establia manualment.
• Inconvenients:
Gestió de la Memòria. Josep Vilaplana – p. 7
GIE
/ICE
Multiprogramació. Particions fixes. (III)
• Exemple: IBM OS/360, MFT (Multiprogramming with a Fixed number ofTasks). Un operador ho establia manualment.
• Inconvenients:
• Nombre de processos fixes.
Gestió de la Memòria. Josep Vilaplana – p. 7
GIE
/ICE
Multiprogramació. Particions fixes. (III)
• Exemple: IBM OS/360, MFT (Multiprogramming with a Fixed number ofTasks). Un operador ho establia manualment.
• Inconvenients:
• Nombre de processos fixes.• Fragmentació interna: Processos que no aprofiten la memòria disponible
de la partició.
Gestió de la Memòria. Josep Vilaplana – p. 7
GIE
/ICE
Multiprogramació. Particions fixes. (III)
• Exemple: IBM OS/360, MFT (Multiprogramming with a Fixed number ofTasks). Un operador ho establia manualment.
• Inconvenients:
• Nombre de processos fixes.• Fragmentació interna: Processos que no aprofiten la memòria disponible
de la partició.• Fragmentació externa: Particions no usades ja que cap procés hi cap.
Gestió de la Memòria. Josep Vilaplana – p. 7
GIE
/ICE
Multiprogramació. Particions dinàmiques (I).
2 acaba
1 acaba
4 comença
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5 comença
S.O.
0
40K
100K
1
200K
3
230K
256K
S.O.
0
40K
100K
1
200K
3
230K
256K
170K
4
S.O.
0
40K
100K
1
200K
2
3
230K
256K
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5
90K
Gestió de la Memòria. Josep Vilaplana – p. 8
GIE
/ICE
Multiprogramació. Particions dinàmiques (II).
2 acaba
1 acaba
4 comença
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5 comença
S.O.
0
40K
100K
1
200K
3
230K
256K
S.O.
0
40K
100K
1
200K
3
230K
256K
170K
4
S.O.
0
40K
100K
1
200K
2
3
230K
256K
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5
90K
• En qualsevol moment tenim un conjunt de blocs lliures de diverses mides idispersos en memòria.
Gestió de la Memòria. Josep Vilaplana – p. 9
GIE
/ICE
Multiprogramació. Particions dinàmiques (II).
2 acaba
1 acaba
4 comença
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5 comença
S.O.
0
40K
100K
1
200K
3
230K
256K
S.O.
0
40K
100K
1
200K
3
230K
256K
170K
4
S.O.
0
40K
100K
1
200K
2
3
230K
256K
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5
90K
• En qualsevol moment tenim un conjunt de blocs lliures de diverses mides idispersos en memòria.
• Quan un treball arriba i necessita memòria, hem de cercar quin bloc dememòria lliure i suficientment gran pel treball s’ha d’agafar. Si el bloc és llargel dividim en 2.
Gestió de la Memòria. Josep Vilaplana – p. 9
GIE
/ICE
Multiprogramació. Particions dinàmiques (II).
2 acaba
1 acaba
4 comença
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5 comença
S.O.
0
40K
100K
1
200K
3
230K
256K
S.O.
0
40K
100K
1
200K
3
230K
256K
170K
4
S.O.
0
40K
100K
1
200K
2
3
230K
256K
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5
90K
• En qualsevol moment tenim un conjunt de blocs lliures de diverses mides idispersos en memòria.
• Quan un treball arriba i necessita memòria, hem de cercar quin bloc dememòria lliure i suficientment gran pel treball s’ha d’agafar. Si el bloc és llargel dividim en 2.
• Quin bloc?
Gestió de la Memòria. Josep Vilaplana – p. 9
GIE
/ICE
Multiprogramació. Particions dinàmiques (II).
2 acaba
1 acaba
4 comença
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5 comença
S.O.
0
40K
100K
1
200K
3
230K
256K
S.O.
0
40K
100K
1
200K
3
230K
256K
170K
4
S.O.
0
40K
100K
1
200K
2
3
230K
256K
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5
90K
• En qualsevol moment tenim un conjunt de blocs lliures de diverses mides idispersos en memòria.
• Quan un treball arriba i necessita memòria, hem de cercar quin bloc dememòria lliure i suficientment gran pel treball s’ha d’agafar. Si el bloc és llargel dividim en 2.
• Quin bloc?
• First Fit. Assignem el primer bloc que és suficientment gran i aturem lacerca. Algorisme ràpid.
Gestió de la Memòria. Josep Vilaplana – p. 9
GIE
/ICE
Multiprogramació. Particions dinàmiques (II).
2 acaba
1 acaba
4 comença
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5 comença
S.O.
0
40K
100K
1
200K
3
230K
256K
S.O.
0
40K
100K
1
200K
3
230K
256K
170K
4
S.O.
0
40K
100K
1
200K
2
3
230K
256K
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5
90K
• En qualsevol moment tenim un conjunt de blocs lliures de diverses mides idispersos en memòria.
• Quan un treball arriba i necessita memòria, hem de cercar quin bloc dememòria lliure i suficientment gran pel treball s’ha d’agafar. Si el bloc és llargel dividim en 2.
• Quin bloc?
• First Fit. Assignem el primer bloc que és suficientment gran i aturem lacerca. Algorisme ràpid.
• Best Fit. El bloc més petit que és suficientment gran. Cal cercar per totala llista de blocs.
Gestió de la Memòria. Josep Vilaplana – p. 9
GIE
/ICE
Multiprogramació. Particions dinàmiques (II).
2 acaba
1 acaba
4 comença
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5 comença
S.O.
0
40K
100K
1
200K
3
230K
256K
S.O.
0
40K
100K
1
200K
3
230K
256K
170K
4
S.O.
0
40K
100K
1
200K
2
3
230K
256K
S.O.
0
40K
100K
200K
3
230K
256K
170K
4
5
90K
• En qualsevol moment tenim un conjunt de blocs lliures de diverses mides idispersos en memòria.
• Quan un treball arriba i necessita memòria, hem de cercar quin bloc dememòria lliure i suficientment gran pel treball s’ha d’agafar. Si el bloc és llargel dividim en 2.
• Quin bloc?
• First Fit. Assignem el primer bloc que és suficientment gran i aturem lacerca. Algorisme ràpid.
• Best Fit. El bloc més petit que és suficientment gran. Cal cercar per totala llista de blocs.
• Worst Fit. El bloc més gran que és suficientment gran. Cal cercar pertota la llista de blocs.
Gestió de la Memòria. Josep Vilaplana – p. 9
GIE
/ICE
Multiprogramació. Particions dinàmiques (III).
Compactació
S.O.
P1
P2
P3
P4
P1
P2
P3
P4
S.O. S.O.
P1
P2
P4
P3
S.O.
P1
P2
P4
P3
600
500
300
0
1500
1000
1200
1900
2100
0 0 0
300 300
600 600 600
500
300
500 500
800
1200 1200
1500
2100 2100 2100
1900
400K
300K
200K
Original 600K 400K 200Kmoguts mogutsmoguts
900K 900K
900K
Gestió de la Memòria. Josep Vilaplana – p. 10
GIE
/ICE
Intercanvi (swapping).
Es guarden imatges de memòria de processos que no caben a la memòriaprincipal al disc, i es baixen aquestes a la memòria principal quan calgui.
swap out
swap in
1 1
2
2
Gestió de la Memòria. Josep Vilaplana – p. 11
GIE
/ICE
Intercanvi (swapping).
swap out
swap in
1 1
2
2
• Canvi de context costós en temps: proporcional a la velocitat del dispositiu(disc) i la mida de la transferència.
• Es pot superposar el temps d’intercanvi amb el d’execució d’un programa.• Cal mantenir les proteccions de memòria.• Si un procés espera una entrada/sortida, la memòria d’aquest pot ser
intercanviada però cal que els buffers d’entrada/sortida es mantinguin a lamemòria principal per atendre la petició. Una forma de fer-ho és que elsistema operatiu tingui els seus propis buffers.
Gestió de la Memòria. Josep Vilaplana – p. 12
GIE
/ICE
Paginació (I).
• Soluciona el problema de la fragmentació i fa que un programa no tingui queusar memòria contigua. D’aquesta forma s’aprofita gairebé tota la memòria.
• L’adreça generada pel processador es divideix en :
• Nombre de pàgina (p): Indexa un element de la taula de pàgines queconté l’adreça base de la pàgina dins de la memòria física i ques’anomena marc ( f ).
• Offset de pàgina (d). Combinat amb l’adreça base defineix la memòriafísica de la paraula a la que es vol accedir.
• Aporta una separació entre cóm veu l’usuari la memòria i la memòria físicareal. Mitjançant el hardware les adreces lògiques es tradueixen en adrecesfísiques.
CPU dp f d
f
lògicaAdreça Adreça
física
físicaMemòria
Gestió de la Memòria. Josep Vilaplana – p. 13
GIE
/ICE
Paginació (II).
CPU dp f d
f
lògicaAdreça Adreça
física
físicaMemòria
Gestió de la Memòria. Josep Vilaplana – p. 14
GIE
/ICE
Paginació (III). Exemple
������������������������
������������������������
������������������������
������������������������
������������������������
������������������������
������������������������
������������������������
CPU 6 d
6
0
3
1
2
Pàginesprograma
0
7
6
5
4
3
2
1
física# Marc
0
1
2
3
3
0
2
pàgina 1
pàgina 2
pàgina 3
pàgina 0
2 d
Memòria
Adreçafísica
Adreçalògica
Taulapàgines
Gestió de la Memòria. Josep Vilaplana – p. 15
GIE
/ICE
Paginació (IV).
• Soluciona el problema de la fragmentació i fa que un programa no tingui queusar memòria contigua. D’aquesta forma s’aprofita gairebé tota la memòria.
• La fragmentació externa s’elimina. La interna és manté ja que el darrer marcpot no estar ocupat del tot
• Cada procés tindrà la seva taula de pàgines.• Tot això es suportat pel hardware mitjançant un xip que s’anomena MMU
(Memory Management Unit)• Es pot implementar la protecció de la memòria associant un bit de
vàlid-invàlid a cada entrada de la taula. “Vàlid” indica que la pàginaassociada és en l’espai d’adreces lògic, i per tant és una pàgina legal.
Gestió de la Memòria. Josep Vilaplana – p. 16
GIE
/ICE
Paginació (V). Pàgines compartides
• Una còpia de codi (només lectura) compartida entre tots els processos.
������������������������
������������������������������������������������
������������������������
0
7
6
5
4
3
2
1
emacs 1
emacs 2
dades 1
emacs 0
# MarcfísicaMemòria
emacs 0
emacs 1
emacs 2
dades 1
Procés P1TaulapàginesP1
6
3
0
2
emacs 0
emacs 1
emacs 2
dades 2
Procés P2TaulapàginesP2
6
3
0
1
emacs 0
emacs 1
emacs 2
dades 3
Procés P3TaulapàginesP3
6
3
0
7
dades 2
dades 3
Gestió de la Memòria. Josep Vilaplana – p. 17
GIE
/ICE
Segmentació.
• La segmentació és un esquema de gestió de memòria que suporta la visióde memòria de l’usuari
• Un programa és una col·lecció de segments. Un segment és una unitatlògica com
• programa principal• acció• funció• variables locals/globals• blocs comuns• pila• taula de símbols, etc
Gestió de la Memòria. Josep Vilaplana – p. 18
GIE
/ICE
Segmentació (II).
12
3
4
Memòria física
��������������������
��������������������
������������������������������
������������������������������
��������������������
��������������������
2
3
1
Espai usuari
4
Gestió de la Memòria. Josep Vilaplana – p. 19
GIE
/ICE
Segmentació (III).
• L’adreça lògica consistirà de
Nombre de segment offset
• Una taula de segments fa correspondre l’adreça lògica en una de física.Cada entrada de la taula té:
• base: Adreça inicial física on el segment resideix a la memòria.• límit: Longitud del segment.
• Un registre base de taula de segments (STBR) apunta a la taula desegments.
• Un registre de longitud de taula de segments (STLR) indica el nombre desegments del programa. Un segment serà legal si no sobrepassa aquestnombre.
• Des del punt de vista d’usuari, amb els segments podem: deslocalitzar-losdinàmicament via taula de segments, compartir-los amb altres processos,protegir-los (bit de validació a l’entrada de la taula, privilegis delectura/escriptura,execució, i reservar memòria (first fit/best fit, fragmentacióexterna). Gestió de la Memòria. Josep Vilaplana – p. 20
GIE
/ICE
Segmentació.
emacs
emacs
dades 1dades 1
Memòria física
emacs
����������������
����������������
����������������������������������������
����������������������������������������
������������������������������������������������
������������������������������������������������
segment 0
segment 1
límit base
Taula segmentsprocés P1
Memòria lògica procés P1
dades 2
segment 0
segment 1
límit base
Taula segmentsprocés P2
2Memòria lògica procés P
dades 2
0
0
1
1
Gestió de la Memòria. Josep Vilaplana – p. 21
GIE
/ICE
Paginació amb segmentació. Exemple Multics
+
f
pàginesTaula
+
físicaMemòria
ds
lògicaAdreça
segmentsTaula
p d’
f d’
Adreçafísica
d’>=
TrapCPU
Longitudsegment
baset. pàgines
Gestió de la Memòria. Josep Vilaplana – p. 22
GIE
/ICE
Consideracions sobre les estratègies de gestió de
memòria
• Suport de hardware• Rendiment• Fragmentació• Reubicació• Intercanvi• Compartició• Protecció
Gestió de la Memòria. Josep Vilaplana – p. 23