GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què...

41
GIE/ICE Gestió de la memòria. Motivació Com organitzem la memòria de forma que els programes d’usuari i el sistema operatiu la puguin compartir? Gestió de la Memòria. Josep Vilaplana – p. 1

Transcript of GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què...

Page 1: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 2: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 3: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 4: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 5: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 6: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 7: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 8: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 9: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 10: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 11: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 12: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

GIE

/ICE

Multiprogramació. Particions fixes

• Es divideix la memòria en n particions probablement desiguals.

Gestió de la Memòria. Josep Vilaplana – p. 5

Page 13: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 14: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 15: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 16: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 17: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 18: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 19: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 20: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 21: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 22: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 23: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 24: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 25: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 26: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 27: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 28: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 29: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 30: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 31: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 32: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 33: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 34: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 35: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 36: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 37: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 38: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 39: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 40: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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

Page 41: GIE/ICEjosep/PaginaWebECSO/soMemoria.pdf · Si el sistema operatiu vol afegir més codi per què així ho demana l’usuari, poden haver problemes. Una forma de solucionar-ho és

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