Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de...

26
Sistemas operativos: una visión aplicada Capítulo 4 Gestión de memoria

Transcript of Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de...

Page 1: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada

Capítulo 4 Gestión de memoria

Page 2: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 1 © J. Carretero, F. García, P. de Miguel, F. Pérez

Contenido

• Objetivos del sistema de gestión de memoria• Modelo de memoria de un proceso• Esquemas de memoria basados en asignación contigua• Memoria virtual• Archivos proyectados en memoria• Servicios de gestión de memoria

Page 3: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 2 © J. Carretero, F. García, P. de Miguel, F. Pérez

Espacios lógicos independientes

LOAD R1, #1000LOAD R2, #2000LOAD R3, /1500LOAD R4, [R1]STORE R4, [R2]INC R1INC R2DEC R3JNZ /12.................

Cabecera

Fichero Ejecutable04....96100104108112116120124128132136

–Vector destino a partir de dirección 2000

–Tamaño del vector en dirección 1500

–Vector origen a partir de dirección 1000

Page 4: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 3 © J. Carretero, F. García, P. de Miguel, F. Pérez

Ejecución en S.O. monoprogramado

LOAD R1, #1000LOAD R2, #2000LOAD R3, /1500LOAD R4, [R1]STORE R4, [R2]INC R1INC R2DEC R3JNZ /12.................

Memoria

04812162024283236....

Sistema Operativo

Page 5: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 4 © J. Carretero, F. García, P. de Miguel, F. Pérez

Reubicación hardware

LOAD R1, #1000LOAD R2, #2000LOAD R3, /1500LOAD R4, [R1]STORE R4, [R2]INC R1INC R2DEC R3JNZ /12.................

Memoria

10000100041000810012100161002010024100281003210036..........

Procesador

R. Instrucción

HW traducción

LOAD R3, /1500

1150010000

+1500

PC8

Page 6: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 5 © J. Carretero, F. García, P. de Miguel, F. Pérez

Reubicación software

LOAD R1, #11000LOAD R2, #12000LOAD R3, /11500LOAD R4, [R1]STORE R4, [R2]INC R1INC R2DEC R3JNZ /10012.................

Memoria

10000100041000810012100161002010024100281003210036..........

Page 7: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 6 © J. Carretero, F. García, P. de Miguel, F. Pérez

Compartición de memoria

zona compartida

zona compartida

zona privada 1

zona privada 2

zona privada 1

zona privada 2

Mapa proceso 1

Mapa proceso 2

zona compartida

Memoria

zona priv. 1 (P2)

zona priv. 1 (P1)

zona priv. 2 (P1)

zona priv. 2 (P2)

Page 8: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 7 © J. Carretero, F. García, P. de Miguel, F. Pérez

Problemas al compartir memoria

zona compartida

zona compartida

Mapa proceso 1

Mapa proceso 2

zona compartida

Memoria

1000

2000

¿1100 ó 2100?10000

10100

Page 9: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 8 © J. Carretero, F. García, P. de Miguel, F. Pérez

Maximizar rendimiento

Dirección 50 del proceso 4

Dirección 10 del proceso 6

Dirección 95 del proceso 7

Dirección 56 del proceso 8

Dirección 0 del proceso 12

Dirección 5 del proceso 20

Dirección 0 del proceso 1

Dirección 51 del proceso 4

Dirección 88 del proceso 9

.........................................

.........................................

Memoria

0

1

2

3

4

5

6

N-1

N

Aprovechamiento de memoria óptimo e irrealizable

Page 10: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 9 © J. Carretero, F. García, P. de Miguel, F. Pérez

Fases en generación de ejecutable

• Aplicación: conjunto de módulos en lenguaje de alto nivel• Procesado en dos fases: Compilación y Montaje• Compilación:

– Resuelve referencias dentro cada módulo fuente– Genera módulo objeto

• Montaje (o enlace): – Resuelve referencias

entre módulos objeto– Resuelve referencias a

símbolos de bibliotecas– Genera ejecutable

incluyendo bibliotecas

Módulofuente A

Módulofuente B

Compilador

Móduloobjeto A

Móduloobjeto B

Montador

Ficheroejecutable

Bibliotecas

Page 11: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 10 © J. Carretero, F. García, P. de Miguel, F. Pérez

Bibliotecas de objetos• Biblioteca: colección de módulos objeto relacionados• Bibliotecas del sistema o creadas por el usuario• Bibliotecas Estáticas:

– Montaje: enlaza los módulos objeto del programa y de las bibliotecas– Ejecutable autocontenido

• Desventajas del montaje estático:– Ejecutables grandes– Código de función de biblioteca repetido en muchos ejecutables– Múltiples copias en memoria del código de función de biblioteca– Actualización de biblioteca implica volver a montar

Main

CódigoFunción A

Función B

Función de biblioteca F1

Función de biblioteca F2

Page 12: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 11 © J. Carretero, F. García, P. de Miguel, F. Pérez

Formato del ejecutable

Cabecera

Fichero EjecutableNúmero mágico

Contador de programa inicial

Tabla de secciones

Código

Datos con valor inicial

Tabla de símbolos

....................

CódigoDatos con v.i.Datos sin v.i....................... ........ ........

T. Símbolos

10005000------

8000

40001000500

1000

Despl. Tam.

. . . . . . . . . . . . . . . .

0

1000

5000

8000

Secciones

Page 13: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 12 © J. Carretero, F. García, P. de Miguel, F. Pérez

Crear mapa desde ejecutable

Page 14: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 13 © J. Carretero, F. García, P. de Miguel, F. Pérez

Mapa de memoria de un proceso hipotético

Page 15: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 14 © J. Carretero, F. García, P. de Miguel, F. Pérez

Asignación contigua

• Mapa de proceso en zona contigua de memoria principal• Hardware requerido: Regs. valla (R. base y R. límite)

– Sólo accesibles en modo privilegiado.

Page 16: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 15 © J. Carretero, F. García, P. de Miguel, F. Pérez

Esquema de traducción

Página

Registro basede la TP

Byte

Dirección lógica

Marco depágina

...

Page 17: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 16 © J. Carretero, F. García, P. de Miguel, F. Pérez

Fragmentación interna en paginación

• mem. asignada > mem. requerida– puede desperdiciarse parte de un marco asignado

T. Páginas Pr. 1

Página 0

Página 1

Página M

Marco 2

Marco 3

Marco N

..............

T. Páginas Pr. 2

Página 0

Página 1

Página P

Marco 4

Marco 1

Marco 0

..............

Marco 0

Memoria

Marco 1

Marco 2

Marco 3

Marco 4

Marco N

Pág. 1 Pr. 2

............

Pág. 0 Pr. 1

Pág. 1 Pr. 1

Pág. M Pr. 1

Pág. 0 Pr. 2

Pág. P Pr. 2

Page 18: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 17 © J. Carretero, F. García, P. de Miguel, F. Pérez

Esquema de traducción con 2 niveles

R egistro basede la TP

Tabla de páginasde pri mer nivel

Tab la de página sde s egundo niv el

Byte1 niveler 2º nive lDirec ción lógic a

...

...

...

M arco depáginaRegistro basede la TP

Página

Tabla de páginasde primer nivel

Tabla de páginasde segundo nivel

Byte1 niveler 2º nivelDirección lógica

...

...

...

Marco depágina

Page 19: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 18 © J. Carretero, F. García, P. de Miguel, F. Pérez

Ventaja de tablas multinivelmemoria

primer nivelTabla de páginas

. . .

tablas de páginassegundo nivel

. . .

. . .

. . .

primer nivelTabla de páginas

V

V

V

V

I

I

Página 0

Página 1023

Página 1024

Página 2047

Página 2048

Página 3071

Página 1048575 (2^20-1)

Pág. 1047552 (2^20-1024)

Page 20: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 19 © J. Carretero, F. García, P. de Miguel, F. Pérez

Esquema de traducción con TP invertida

PáginaPID

Página

Byte

i

Dirección lógica

Bytei

Dirección física

Tabla de páginas invertida

pid

Page 21: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 20 © J. Carretero, F. García, P. de Miguel, F. Pérez

Esquema de traducción con segmentación

memoria

tabla de segmentos

límite base

s d

dirección lógica

Excepción

> +SI

NO

Page 22: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 21 © J. Carretero, F. García, P. de Miguel, F. Pérez

Esquema de traducción con seg. paginada

memoria

tabla de segmentos

límite dir. T. Pág.

dirección lógica

Excepción

>SI

NO

s p d

m d

direcciónfísica

m

tabla de páginaspara segmento s

p

Page 23: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 22 © J. Carretero, F. García, P. de Miguel, F. Pérez

Hiperpaginación en el sistema

grado de multiprogramación

Util

izac

ión

de la

UC

P

Page 24: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 23 © J. Carretero, F. García, P. de Miguel, F. Pérez

Estrategia basada en frecuencia de fallos

– Si tasa < límite inferior se liberan marcos aplicando un algoritmo de reemplazo

– Si tasa > límite superior se asignan nuevos marcos• Si no marcos libres se suspende algún proceso

número de marcos

tasa

de

fallo

s de

pág

ina

límite superior

límite inferior

Page 25: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 24 © J. Carretero, F. García, P. de Miguel, F. Pérez

Creación del mapa inicial

Tabla de páginas

...........................

Bloque T (arch.)RX A

Bloque U (arch.)RW A

Rellenar con 0RW A

Bloque S (swap)RW A

...........................

...........................

SwapArchivo Ejecutable

Código

Datos con valor inicial

. . . . . . . . . . . . . . . .

Cabecera

PilaBloque S

Bloque T

Bloque U

1ªpág.Código

1ªpág.Dat.v.i.

1ªpág.Dat.no.v.i.

1ªpág.Pila

Page 26: Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de las bibliotecas – Ejecutable autocontenido • Desventajas del montaje estático:

Sistemas operativos: una visión aplicada 25 © J. Carretero, F. García, P. de Miguel, F. Pérez

Archivo proyectado

Tabla de páginas

...........................Bloque 0 (arch.)RW A

Bloque N (arch.)RW A...........................

........................... Archivo

Bloque 0

Bloque 1

Bloque 2

Bloque N

Bloque 2

.............

10240

Mapa de memoria

Código

Datos con valor inicial

Datos sin valor inicial

Pila

Archivo Proyectado

1ªpág.Archivo

Última pág.Archivo