Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de...

85
Tema 4 Gestión de memoria

Transcript of Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de...

Page 1: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Tema 4Gestión de memoria

Page 2: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 2 Gestión de Memoria 2001

Contenido

• Requisitos de la gestión de memoria• Modelo de memoria de un proceso• Fases en la generación de un ejecutable• Ficheros proyectados en memoria• Servicios de gestión de memoria• Evolución de los sistemas de gestión de memoria• Memoria virtual

Page 3: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 3 Gestión de Memoria 2001

Requisitos de gestión de memoria

• S.O. multiplexa recursos entre procesos– Cada proceso cree que tiene una máquina para él solo– Gestión de procesos: Reparto de procesador– Gestión de memoria: Reparto de memoria

• Propiedades deseables:– Ofrecer a cada proceso un espacio lógico propio– Proporcionar protección entre procesos– Permitir que procesos compartan memoria– Dar soporte a regiones del proceso– Maximizar rendimiento del sistema

Page 4: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 4 Gestión de Memoria 2001

Funciones del gestor de memoria

• Saber qué partes de la memoria están siendo utilizadas. • Cargar programas en MP para su ejecución. • Proporcionar memoria a los procesos cuando la soliciten. • Liberarla cuando se requiera. • Gestionar el intercambio (swapping). • Protección.

– Entre procesos. – Entre el SO y los procesos

• Memoria compartida. – Procesos que ejecutan el mismo código. – Como mecanismo de comunicación.

Page 5: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 5 Gestión de Memoria 2001

Modelo de memoria de un proceso

• Un proceso está formado por una serie de regiones.• Región: zona contigua del espacio de direcciones de un proceso

con las mismas propiedades.• Tipos de regiones básicos:

– Texto: código– Datos– Pila

Page 6: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 6 Gestión de Memoria 2001

Programa ejemploint a; int b = 5;void f(int c) {

int d;

static e = 2;

b = d + 5;

.......

return;

}main (int argc, char **argv) {

char *p;

p = (char *) malloc (1024)

f(b)

.......

free (p)

....

exit (0)

}

Tipos de memoria1.- Código2.- Datos declarados

GlobalesCon valor inicialSin valor inicial

LocalesCon valor inicialSin valor inicial

Page 7: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 7 Gestión de Memoria 2001

Programa ejemplo: Fichero ejecutableint a; int b = 5;void f(int c) {

int d;

static e = 2;

b = d + 5;

.......

return;

}main (int argc, char **argv) {

char *p;

p = (char *) malloc (1024)

f(b)

.......

free (p)

....

exit (0)

}

C abecera

C ódigo

b = 5e = 2

Tablas y o train form ación

Nº m ágico Registros

D atos

F ichero e jecutab le

Page 8: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 8 Gestión de Memoria 2001

Programa ejemplo: Execint a; int b = 5;void f(int c) {

int d;

static e = 2;

b = d + 5;

.......

return;

}main (int argc, char **argv) {

char *p;

p = (char *) malloc (1024)

f(b)

.......

free (p)

....

exit (0)

}

C ódigo

b = 5

p = ?

e = 2

argc

re torno m ain

a = ?

argv

E ntorno

D atos con Valor In ic.

D ato s in Va lor In ic.

P ila

Imagen de memoria

B loque deactivaciónde m ain

Page 9: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 9 Gestión de Memoria 2001

Programa ejemplo: mallocint a; int b = 5;void f(int c) {

int d;

static e = 2;

b = d + 5;

.......

return;

}main (int argc, char **argv) {

char *p;

p = (char *) malloc (1024)

f(b)

.......

free (p)

....

exit (0)

}

C ódigo

b = 5

p =

e = 2

argc

a = ?

argv

E ntorno

D atos con Valor In ic.

D ato s in Va lor In ic.

P ila

Im agen de m em oria

B loque deactivaciónde m ain

re torno m ain

M alloc1024

Page 10: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 10 Gestión de Memoria 2001

Programa ejemplo: Llamada a fint a; int b = 5;void f(int c) {

int d;

static e = 2;

b = d + 5;

.......

return;

}main (int argc, char **argv) {

char *p;

p = (char *) malloc (1024)

f(b)

.......

free (p)

....

exit (0)

}

C ódigo

b = 5

p =

e = 2

d = ?

argc

re torno m ain

a = ?

c = 5

argv

E ntorno

D atos con Valor In ic.

D ato s in Va lor In ic.

P ila

Im agen de m em oria

re torno f

M alloc1024

B loque deactivaciónde f

B loque deactivaciónde m ain

Page 11: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 11 Gestión de Memoria 2001

Gestión de memoria en sistemas monoprogramados

• Modelo de memoria

SOFFF...

0

SO

Usuario

Usuario

Page 12: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 12 Gestión de Memoria 2001

Gestión de memoria en sistemas monoprogramados II

• Overlays

SO

Zonacomún

Zona desolapamiento

•Mod 1

•Mod 2•Mod 3

0

FFF...

Page 13: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 13 Gestión de Memoria 2001

Multiprogramación

• Ventajas: – Facilita la programación, dividiendo los programas en

procesos. – Permite el servicio interactivo simultáneo a varios usuarios

de forma eficiente. – Aprovecha los tiempos que los procesos pasan esperando a

que se completen sus operaciones de E/S. – Aumenta el uso de la CPU.

• Grado de multiprogramación: número de procesos en memoria.

Page 14: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 14 Gestión de Memoria 2001

Modelo de multiprogramación

• Un proceso gasta p % de tiempo por E/S. • Si el grado de multiprogramación es n =>

– La probabilidad de que todos estén esperando es pn . – Utilización de la CPU: 1 - pn.

• Este modelo es sólo una aproximación (supone que los n procesos son independientes).

• En un sistema monoprocesador esto no es cierto (un proceso ha de esperar cuando la CPU está ocupada).

• Este modelo puede proporcionar predicciones aproximadas sobre el rendimiento de la CPU.

Page 15: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 15 Gestión de Memoria 2001

Modelo de multiprogramación II

00

20

40

60

80

100

2 3 4 5 6 7 8 9 10 111

Nivel de multiprogramación

80 % espera E/S

50 % espera E/S

20 % espera E/S

% u

tiliz

aci

ón

de

CP

U

Page 16: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 16 Gestión de Memoria 2001

Reubicación

• En un sistema multiprogramado es imposible conocer en tiempo de compilación y montaje qué direcciones ocupará un proceso en memoria => reubicación

• Solución: emplear direcciones lógicas• Tres alternativas:

– Reubicación hardware– Reubicación software– Programa reubicable (no tiene direcciones absolutas)

Page 17: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 17 Gestión de Memoria 2001

Reubicación hardware

• Hardware encargado de traducción• El S.O. se encarga de:

– Almacena por cada proceso su función de traducción– Especifica al hardware qué función aplicar para cada

proceso• Programa se carga en memoria sin modificar• Para el ejemplo anterior: LO AD R1, #1000

LO AD R2, #2000LO AD R3, /1500LO AD R4, [R1]STO RE R4, [R2]INC R1INC R2DEC R 3JNZ /12.................

M em oria

10000100041000810012100161002010024100281003210036..........

Procesador

R. Instrucción

HW traducción

LO AD R3, /1500

1150010000

+1500

PC8

Page 18: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 18 Gestión de Memoria 2001

Reubicación software

• Traducción de direcciones durante carga del programa

• Programa en memoria distinto del ejecutable

• Desventajas:– No asegura protección– No permite mover programa en

tiempo de ejecución• Para el ejemplo anterior:

LO AD R1, #11000LO AD R2, #12000LO AD R3, /11500LO AD R4, [R1]STO RE R4, [R2]INC R1INC R2DEC R 3JNZ /10012.................

M em oria

10000100041000810012100161002010024100281003210036..........

Page 19: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 19 Gestión de Memoria 2001

Protección

• Monoprogramación: Protección del SO• Multiprogramación: Además procesos entre sí• Traducción debe crear espacios disjuntos• Necesario validar todas las direcciones que genera el programa

– La detección debe realizarla el hardware del procesador– El tratamiento lo hace el SO (envía KILL al proceso)

Page 20: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 20 Gestión de Memoria 2001

Reubicación y protección

Memoria principal

Espacio asignado al proceso A

Registro base

Registro límite

Sumador

Trap

Dirección relativa

Dirección absoluta

Comparador

Page 21: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 21 Gestión de Memoria 2001

Compartir memoria

• Direcciones lógicas de 2 o más procesos se corresponden con misma dirección física

• Bajo control del S.O.• Beneficios:

– Procesos ejecutando mismo programa comparten su código

– Mecanismo de comunicación entre procesos muy rápido

• Requiere asignación no contigua:

zona com partida

zona com partida

zona privada 1

zona privada 2

zona privada 1

zona privada 2

M apa proceso 1

M apa proceso 2

zona com partida

M em oria

zona priv. 1 (P 2)

zona priv. 1 (P 1)

zona priv. 2 (P 1)

zona priv. 2 (P 2)

Page 22: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 22 Gestión de Memoria 2001

Maximizar rendimiento• Reparto de memoria maximizando grado de multiprogramación

– Aprovechamiento de memoria óptimo e irrealizable:

– Paginación: solución factible con aprovechamiento aceptable

• Uso de memoria virtual para aumentar grado de multiprogramación

Dirección 50 del proceso 4

D irección 10 del proceso 6

D irección 95 del proceso 7

D irección 56 del proceso 8

D irección 0 de l proceso 12

D irección 5 de l proceso 20

D irección 0 de l proceso 1

D irección 51 del proceso 4

D irección 88 del proceso 9

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

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

M em oria

0

1

2

3

4

5

6

N-1

N

Page 23: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 23 Gestión de Memoria 2001

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 fichero ejecutable

• Carga en memoria– Añade rutinas de

biblioteca

M ódulofuente A

M ódulofuente B

M óduloobjeto A

M óduloobjeto B

M ontador

Ficheroejecutable

Bibliotecas

Bibliotecasde sistem a

Códigoen mem oria

Cargador del SO

Com pilador

Page 24: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 24 Gestión de Memoria 2001

Bibliotecas estáticas• 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

M ain

C ódigoFunción A

Función B

Función de b ib lio teca F1

Función de b ib lio teca F2

Page 25: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 25 Gestión de Memoria 2001

Bibliotecas dinámicas

• Carga y montaje de biblioteca en tiempo de ejecución• Ejecutable contiene:

– Nombre de la biblioteca– Rutina encargada de carga y montaje en tiempo de ejecución

ante primera referencia• Ventajas del montaje dinámico:

– Menor tamaño ejecutables– Código de rutinas de biblioteca sólo en fichero de biblioteca– Procesos pueden compartir código de biblioteca– Actualización automática de bibliotecas: Uso de versiones

Page 26: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 26 Gestión de Memoria 2001

Bibliotecas dinámicas

Pseudo XXllam a a l S .O .

XX

Program aPrincipal

C ódigoC all X X

Page 27: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 27 Gestión de Memoria 2001

Bibliotecas dinámicas

• Proceso:– El programa principal llama a la pseudo función XX– Esta función contacta con el SO y le pide la función XX– El SO comprueba que la función XX está definida en una

biblioteca dinámica.– El SO operativo comprueba si XX ya está cargada en

memoria por algún proceso• En caso negativo la carga• En caso positivo comparte esa zona de memoria con este

proceso– El SO devuelve un puntero a la Pseudo XX para que pase la

llamada a XX

Page 28: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 28 Gestión de Memoria 2001

Formato del ejecutable

• Distintos fabricantes usan diferentes formatos– Ejemplo: Executable and Linkable Format (ELF)

• Estructura: Cabecera y conjunto de secciones• Cabecera:

– Número mágico– Punto de entrada del programa– Tabla de secciones

Page 29: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 29 Gestión de Memoria 2001

Formato del ejecutable

Cabecera

Fichero EjecutableNúm ero m ágico

Contador de program a inicial

Tabla de secciones

Código

Datos con valor inicial

Tabla de sím bolos

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

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

T. Sím bolos

10005000------

8000

40001000500

1000

Despl. Tam .

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

0

1000

5000

8000

Secciones

Page 30: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 30 Gestión de Memoria 2001

Secciones del ejecutable

• Variedad de tipos de secciones. Ejemplo:– Tabla de símbolos para depuración– Lista de bibliotecas dinámicas usadas

• Más relevantes en mapa de memoria del proceso:– Código, Datos con valor inicial y Datos sin valor inicial

• Código (texto)– Contiene código del programa

• Datos con valor inicial– Variables globales inicializadas

• Datos sin valor inicial– Variables globales no inicializadas– Aparece en tabla de secciones pero no se almacena en ejecutable

• ¿Por qué no hay sección vinculada a variables locales?

Page 31: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 31 Gestión de Memoria 2001

Variables globales versus locales

• Variables globales– Estáticas– Se crean al iniciarse programa– Existen durante ejecución del mismo– Dirección fija en memoria y en ejecutable

• Variables locales y parámetros– Dinámicas– Se crean al invocar función– Se destruyen al retornar– La dirección se calcula en tiempo de ejecución– Recursividad: varias instancias de una variable

Page 32: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 32 Gestión de Memoria 2001

Variables globales versus locales

• Ejemplo: int x=8; /* Variable global con valor inicial */ int y; /* Variable global sin valor inicial */

f(){ int z; /* Variable local */ ....... } main(){ ....... }

Page 33: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 33 Gestión de Memoria 2001

Crear mapa de memoria desde ejecutable

• Código– Compartida, RX, T. Fijo, Soporte en Ejecutable

• Datos con valor inicial– Privada, RW, T. Fijo, Soporte en Ejecutable

• Datos sin valor inicial– Privada, RW, T. Fijo, Sin Soporte (rellenar 0)

• Pila– Privada, RW, T. Variable, Sin Soporte (rellenar 0)– Crece hacia direcciones más bajas– Pila inicial: argumentos del programa

Page 34: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 34 Gestión de Memoria 2001

Crear mapa desde ejecutable

Page 35: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 35 Gestión de Memoria 2001

Otras regiones del mapa creadas durante ejecución

• Región de Heap– Soporte de memoria dinámica (malloc en C)– Privada, RW, T. Variable, Sin Soporte (rellenar 0)– Crece hacia direcciones más altas

• Fichero proyectado– Región asociada al fichero proyectado – Compartida, T. Variable, Soporte en Fichero– Protección especificada en proyección

• Memoria compartida– Región asociada a la zona de memoria compartida– Compartida, T. Variable, Sin Soporte (rellenar 0)– Protección especificada en proyección

• Pilas de threads– Cada pila de thread corresponde con una región– Mismas características que pila del proceso

• Biblioteca dinámica– Regiones asociadas al código y datos de la biblioteca

Page 36: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 36 Gestión de Memoria 2001

Mapa de memoria de un proceso hipotético

Page 37: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 37 Gestión de Memoria 2001

Servicios de gestión de memoria

• Gestor de memoria realiza funciones internas• Ofrece pocos servicios directos a aplicaciones• Servicios POSIX de gestión de memoria más usados:

– Uso de memoria compartida (shm_open)– Proyección de ficheros y m. compartida (mmap)– Bloqueo de páginas en memoria principal– Asignación de memoria

• Ya han sido estudiados• Presentamos ejemplos de proyección de ficheros

Page 38: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 38 Gestión de Memoria 2001

Ficheros proyectados en memoria

Marcos de página

MemoriaprincipalImagen de memoria

de un proceso

Ficheroproyectado en memoria

Fichero

Swap

Page 39: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 39 Gestión de Memoria 2001

Ficheros proyectados en memoria II

• Una región del proceso recibe el fichero. • Fichero como extensión del swap. • Habrá páginas del fichero en memoria principal. • El proceso direcciona dentro del fichero (región) con las

instrucciones de acceso a memoria.

Page 40: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 40 Gestión de Memoria 2001

Ficheros proyectados: Servicios

void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off);• Establece una proyección entre el espacio de direcciones de un proceso y un

descriptor de fichero u objeto de memoria compartida. – Devuelve la dirección de memoria donde se ha proyectado el fichero. – addr dirección donde proyectar. Si NULL el SO elige una. – len especifica el número de bytes a proyectar. – prot el tipo de acceso (lectura, escritura o ejecución). – flags especifica información sobre el manejo de los datos proyectados

(compartidos, privado, etc.). – fildes representa el descriptor de fichero del fichero o descriptor del

objeto de memoria a proyectar. – off desplazamiento dentro del fichero a partir del cual se realiza la

proyección.

void munmap(void *addr, size_t len);• Desproyecta parte del espacio de direcciones de un proceso comenzando en

la dirección addr.

Page 41: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 41 Gestión de Memoria 2001

Ejemplo: copia de ficheros

#include <sys/types.h>#include <sys/stat.h>#include <sys/mman.h>#include <fcntl.h>#include <stdio.h>#include <unistd.h>

main(int argc, char **argv){ int i, fdo, fdd; char *org, *dst, *p, *q; struct stat bstat;

/* Abre el fichero origen para lectura */ fdo=open(argv[1], O_RDONLY);

fdd=open(argv[2], O_CREAT|O_TRUNC|O_RDWR, 0640);

Page 42: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 42 Gestión de Memoria 2001

/* Averigua la longitud del fichero origen */ fstat(fdo, &bstat)

/* Asigna tamaño al fichero destino */ ftruncate(fdd, bstat.st_size);

/* Se proyecta todo el fichero origen (ver "man mmap") */ org=mmap(NULL, bstat.st_size, PROT_READ, MAP_SHARED, fdo, 0);

/* Se proyecta todo el fichero destino (ver "man mmap" */ dst=mmap(NULL, bstat.st_size, PROT_WRITE, MAP_SHARED, fdd, 0);

if (org == MAP_FAILED || dst == MAP_FAILED) perror("Error en mmap");

/* Se cierran los ficheros */ close(fdo); close(fdd);

Ejemplo: copia de ficheros

Page 43: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 43 Gestión de Memoria 2001

/* Bucle de copia */

p=org; q=dst;

for (i=0; i<bstat.st_size; i++)

*q++= *p++;

/* Se eliminan las proyecciones */

munmap(org, bstat.st_size);

munmap(dst, bstat.st_size);

}

Ejemplo: copia de ficheros

Page 44: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 44 Gestión de Memoria 2001

Ejemplo II

• Ejemplo: Cuántas veces aparece carácter en fichero

int main(int argc, char **argv) {

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

fd=open(argv[2], O_RDONLY)); /* Abre fichero */

fstat(fd, &bstat); /* Averigua long. fichero */

/* Se proyecta el fichero */

org=mmap((caddr_t) 0, bstat.st_size, PROT_READ,

MAP_SHARED, fd, 0));

close(fd); /* Se cierra el fichero */

Page 45: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 45 Gestión de Memoria 2001

Ejemplo II

/* Bucle de acceso */

p=org;

for (i=0; i<bstat.st_size; i++)

if (*p++==caracter) contador++;

/* Se elimina la proyeccion */

munmap(org, bstat.st_size);

printf("%d\n", contador);

}

Page 46: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 46 Gestión de Memoria 2001

Memoria compartida

• La región puede proyectarse en cada proceso sobre direcciones virtuales diferentes.

Marcos de página

Memoriaprincipal

Imagen de memoriaproceso A

Región de memoria

compartida Región de memoria

compartida

SWAP

Imagen de memoriaproceso B

Page 47: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 47 Gestión de Memoria 2001

Memoria compartida: Servicios

int shm_open(char *name, int oflag, mode_t mode); – Crea un objeto de memoria a compartir entre procesos

int shm_unlink(const char *name); – Borra una zona de memoria compartida.

void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off); – Establece una proyección entre el espacio de direcciones de un proceso y

un descriptor de fichero u objeto de memoria compartida.

void munmap(void *addr, size_t len); – Desproyecta parte del espacio de direcciones de un proceso comenzando

en la dirección addr.

int close(int fd);– Cierra el descriptor de objeto de memoria compartida

int ftruncate(int fd);– Asigna espacio a un fichero u objeto de memoria compartida.

Page 48: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 48 Gestión de Memoria 2001

Memoria compartida: Ejemplo (I)

• Creación de un segmento de memoria compartida (proceso A):

char *buffer; /* buffer a compartir */

int shd;

/* se crea el objeto en un proceso */

shd = shm_open("BUFFER", O_CREAT|O_RDWR, 0777);

/* se asigna espacio al segmento */

ftruncate(shd, MAX_BUFFER * sizeof(char));

/* se proyecta */

buffer = (char *) mmap(NULL, MAX_BUFFER * sizeof(char),

PROT_READ | PROT_WRITE, MAP_SHARED, shd, 0);

Page 49: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 49 Gestión de Memoria 2001

Memoria compartida: Ejemplo (II)

• Acceso a un segmento de memoria compartida (proceso B):

char *buffer; /* buffer a compartir */

int shd;

/* se crea el objeto en un proceso */

/* debe existir */

shd = shm_open("BUFFER"", O_RDWR);

/* se proyecta */

buffer = (char *) mmap(NULL, MAX_BUFFER * sizeof(char),

PROT_READ | PROT_WRITE, MAP_SHARED, shd, 0);

Page 50: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 50 Gestión de Memoria 2001

Utilización de memoria asignada

• Se proyecta sobre la zona asignada una estructura• Se utiliza la estructura mediante un manejador (puntero)• Errores típicos de utilización:

– Utilizar el manejador (puntero) después de haber liberado la memoria. Se utiliza una memoria que ya no está asignada

– No liberar la memoria una vez terminado su uso. El sistema se puede quedar sin memoria

• Para memoria compartida– Proyectar la misma estructura en todos los programas.

¿Compartir la definición de la estructura?

Page 51: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 51 Gestión de Memoria 2001

Utilización de memoria asignadastruct datos {

int a; char b; float c;

inte v[10];

}

main () {

struct datos *p;

/* Se reserva memoria y se proyecta la estructura de datos */

p = malloc (sizeof (struct datos));

/* se utiliza la memoria asignada a través de p */

p->a = 5;

p->b = 'a';

p->c = 2.5;

p-> v[3] = 25;

....

}

Page 52: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 52 Gestión de Memoria 2001

Reserva de memoria

• malloc: es una función de librería del lenguaje C• UNIX

– El malloc se puede construir con el servicio brk– tamaño = brk (addr)

• Coloca , si es posible, el fin del heap en la dirección addr• Supone que aumenta o disminuye el heap del segmento de

datos

• Wn 32– Un proceso puede crear varios heaps mediante: HeapCreate

– Se puede asignar memoria a cada heap mediante: HeapAlloc

Page 53: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 53 Gestión de Memoria 2001

Liberar memoria

• free: es una función de librería del lenguaje C• UNIX

– El free se puede construir con el servicio brk– tamaño = brk (addr)

• Coloca , si es posible, el fin del heap en la dirección addr• Supone que aumenta o disminuye el heap del segmento de

datos

• Wn 32– Un proceso puede crear destruir un heap mediante: HeapDestroy

– Se puede liberar memoria de un heap mediante: HeapFree

Page 54: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 54 Gestión de Memoria 2001

Bloquear páginas en marcos de memoria principal

• mlockall– Bloquea todo el espacio de direcciones de un proceso en

memoria– mlockall (MCL_CURRENT)

• Bloquea todas las páginas actuales del proceso– mlockall (MCL_FUTURE)

• Bloquea todas las páginas del proceso, tanto las actuales como las futuras

– El mandato está reservado al superusuario

• munlockall– Desbloquea el espacio de direcciones del proceso– El mandato está reservado al superusuario

Page 55: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 55 Gestión de Memoria 2001

• int mlock (void *addr, int len);– Bloquea todas las páginas que contengan posiciones contenidas

entre addr y addr + len– Está reservado al superusuario

• int munlock (void *addr, int len);– Restablece las páginas que contengan parte del espacio de

direcciones comprendido entre addr y addr + len– Está reservado al superusuario

Bloquear páginas en marcos de memoria principal

Page 56: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 56 Gestión de Memoria 2001

Evolución de gestión de memoria

• Muy ligada al desarrollo del hardware– HW más sofisticado permite estrategias más efectivas

• Por simplicidad, sólo dos etapas:– Asignación contigua– Paginación

• ¿Cumplen estos esquemas los requisitos planteados?

Page 57: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 57 Gestión de Memoria 2001

Asignación contigua (1/2)

• Zona contigua de memoria contiene mapa del proceso• Entre diversas alternativas, nos centramos en:

– Esquema basado en particiones dinámicas• Hardware requerido: registros valla

– Registro límite– Registro base

Page 58: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 58 Gestión de Memoria 2001

Asignación contigua (2/2)

• S.O. almacena en BCP valor de R. valla del proceso• En cambio de proceso S.O. carga R. valla de BCP a procesador• Fragmentación externa

– Quedan pequeños fragmentos no utilizables• ¿Cumple requisitos?

– Espacios independientes: Mediante R. valla– Protección: Mediante R. valla– Compartir memoria: No posible– Soporte de regiones: No hay

• Se reserva espacio para huecos– Maximizar rendimiento

• Mal aprovechamiento (f. externa)• No permite memoria virtual

Page 59: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 59 Gestión de Memoria 2001

Paginación (1/2)

• Hardware más sofisticado• Unidad de asignación: Página• Mapa de memoria dividido en páginas• Memoria física dividida en marcos de página• Tabla de páginas (T.P.) por proceso:

– Relaciona cada página con el marco que la contiene• MMU usa T.P. para traducir direcciones lógicas• S.O. mantiene T.P. de procesos y notifica a MMU cuál debe

usar

Page 60: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 60 Gestión de Memoria 2001

Paginación (2/2)• Entrada de la T.P.

– Número de marco asociado– Protección (RWX)– Página presente (P) o ausente (A)

• Fragmentación interna– Puede desperdiciarse parte de último marco asignado a proceso

• ¿Cumple requisitos?– Espacios independientes: Mediante T.P.– Protección: Mediante T.P.– Compartir memoria: Páginas asociadas a mismo marco– Soporte de regiones: se usa información de la T.P.

• Tipo de acceso no permitido: Protección• Accesos a huecos: Página presente• No se reserva espacio para huecos

– Maximizar rendimiento• Buen aprovechamiento• Permite memoria virtual

Page 61: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 61 Gestión de Memoria 2001

Memoria virtual

• Gestión automática de la parte de la jerarquía de memoria formada por los dos niveles de memoria principal y de disco.

Mapa de memoria virtual(direcciones generadas por el procesador)

MMU

Memoria principal

Procesador(Intercambio)

MemoriaSecundariaDirección físicaDirección

virtual Fallo página

Page 62: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 62 Gestión de Memoria 2001

Memoria virtual• Jerarquía de memoria: Niveles de almacenamiento• Procesos exhiben proximidad de referencias• Memoria virtual

– Transferencias M. principal y M. secundaria (swap)• Basada en paginación:

– Página no residente se marca ausente– Se guarda dir. de bloque de swap que la contiene

• De M. secundaria a M. principal (por demanda):– Acceso a pág. no residente: Fallo de página– S.O. lee página de M. secundaria

• De M. principal a M. secundaria (por expulsión):– No hay espacio en M. principal para traer página– Se expulsa (reemplaza) una página residente– S.O. escribe página expulsada a M. secundaria

• Beneficios:– Aumento grado de multiprogramación

• ¡¡Cuidado con Hiperpaginación!!– Ejecución de programas que no caben en M. ppal.

Page 63: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 63 Gestión de Memoria 2001

Gestión de espacio de swap

• Asignación de espacio de swap cuando se crea región• Dos alternativas: Con y sin preasignación• Creación de región con preasignación

– Se asigna espacio de swap– Se copia en él contenido inicial desde soporte– Páginas se traen por demanda desde swap– En expulsión ya tiene espacio reservado

• Creación de región sin preasignación– No se asigna espacio de swap– Páginas se traen por demanda desde su soporte– En expulsión se reserva espacio de swap (si pág. modificada)

• Sin preasignación más usada actualmente• Región compartida con soporte no usa swap

Page 64: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 64 Gestión de Memoria 2001

Ejecución de programas

• Creación de regiones iniciales desde ejecutable• No se asigna espacio en M. principal• No se carga nada en M. principal

– Se traerá bajo demanda• Se rellena cada entrada de T.P.:

– Protección: Depende de tipo de región– Ausente– Dir. en M. secundaria donde está almacenada

• Último valor depende del tipo de gestión de swap

Page 65: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 65 Gestión de Memoria 2001

Con preasignación de swap

• S.O. reserva espacio en swap para regiones• Copia del soporte al swap:

– Código: De ejecutable– Datos con v.i.: De ejecutable– Datos sin v.i.: Rellenar a 0– Pila: Argumentos del programa

• Entradas T.P referencian a bloques del swap

Page 66: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 66 Gestión de Memoria 2001

Sin preasignación de código

• Región de código: compartida con soporte• No es necesario usar swap

– Se usa directamente ejecutable

Page 67: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 67 Gestión de Memoria 2001

Sin preasignación de swap

• Entradas T.P. referencian a bloques del soporte (si hay):– Código: Bloques del ejecutable– Datos con v.i.: Bloques del ejecutable– Datos sin v.i.: Valor que indica rellenar a 0– Pila: Bloque del swap con argumentos del programa

• Al expulsar por primera vez una página modificada se reserva espacio de swap– Excepto si compartida y con soporte -> se actualiza soporte

Page 68: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 68 Gestión de Memoria 2001

Ficheros proyectados en memoria

• Generalización de M. Virtual– Entradas de T.P. referencian a fichero de usuario

• Programa solicita proyección de fichero en su mapa• Forma alternativa de acceso al fichero:

– En vez de read y write– Acceso directo a memoria

• Ventajas– Menos llamadas al sistema– Menos copias intermedias– Más fácil programación

Page 69: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 69 Gestión de Memoria 2001

Ficheros proyectados en memoria

Page 70: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 70 Gestión de Memoria 2001

Memoria virtual II

• El proceso sólo ve direcciones virtuales. • El mapa virtual de un proceso está soportado en memoria

secundaria (swap). • No es necesario que todo el proceso esté cargado en memoria =>

– Más procesos en MP, uso más eficiente del procesador. – Un proceso puede ser mayor que la MP. – Arranque más rápido.

• Conjunto residente: parte del proceso cargado en MP.

Page 71: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 71 Gestión de Memoria 2001

Requisitos de la memoria virtual

• Soporte en almacenamiento secundario. • Espacio virtual mayor que la memoria física => fallos en los

accesos a memoria. • Cuando se produce un fallo de acceso => trap al SO. • Hay que continuar o reiniciar la instrucción en la que se produjo

el fallo de acceso. – MOV (R1), (R2) => tres fallos de página.

• Esquemas HW de memoria virtual: – Paginación. – Segmentación. – Segmentación paginada.

Page 72: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 72 Gestión de Memoria 2001

Paginación I

MEMORIA PRINCIPAL

MAPA VIRTUAL(RESIDENTE EN DISCO)

22-1· p

22-1· p

2·2p

2·2p3·2-1p

3·2-1p

3·2p

3·2p2-1p

2-1p

2 -1m

2 -1n

2p

2p

0

0A

A'

n > m

Proyec

ción d

e pág

inavirt

ual a

memo

ria fís

ica

Páginas

Marcos depágina

Page 73: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 73 Gestión de Memoria 2001

Mecanismo de traducción

• Necesario una tabla de páginas.

P á g in a V i r t u a l D i re c c i ó n V i r t u a l

D i re c c i ó n F í s i c a

P a l a b ra e nla P á g i n a

P a l a b ra e nla P á g i n a

T r a d u c t o r

P á g in a F í s i c a

n-1 0

0

p p-1

p p-1m-1

Page 74: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 74 Gestión de Memoria 2001

Tabla de páginas I

• La información de traducción se organiza en tablas de páginas. • La tabla de páginas está formada por entradas de tablas de

página (ETP). • Cada entrada permite traducir una página virtual. • Permite saber si una página:

– Está en MP => marco de página. – Está en almacenamiento secundario => página en disco.

Page 75: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 75 Gestión de Memoria 2001

Tabla de páginas II

• Si la página no se encuentra en MP => fallo de página (trap al SO).

Presente

ETP

Tabla depáginas

Memoria principal

Memoria secundaria

Si

No

Page 76: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 76 Gestión de Memoria 2001

Información de una ETP I

Nº de marco/bloque de disco

Presente/Ausente

Modificada

ReferenciadaOtra información

Válida

Protección

Page 77: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 77 Gestión de Memoria 2001

Información de una ETP II

• Otra información: – Copy-on-write – No paginada (fija en memoria física). – Cache desactivada. – Rellenar a ceros. – Rellenar de fichero.

Page 78: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 78 Gestión de Memoria 2001

Paginación por demanda

• Los procesos residen en memoria secundaria y no se carga inicialmente ninguna página en MP.

• El SO ha creado previamente la TP y las entradas están marcadas como no presentes.

• A medida que se referencian direcciones se producen fallos de página que trata el SO.

• Ventajas: – Sólo se cargan en MP las páginas que se referencian. – Acelera la carga de un proceso (no se cargan páginas que no se

referencian). – Mejor uso de la MP.

• Esquema implementado en los SO actuales. – UNIX. – LINUX. – Windows NT.

Page 79: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 79 Gestión de Memoria 2001

Manejo del fallo de página

• El HW genera un trap de fallo de página. • Se salva el estado del proceso actual y se bifurca a la rutina de gestión del

fallo de página. • El SO debe conocer qué página hace falta => el HW lo da en un registro. • El SO comprueba si el acceso está permitido (búsqueda en la TP). Si no

está permitido se mata al proceso o se envía una señal. • El SO busca un marco de página libre. Si no hay se ejecuta el algoritmo

de reemplazo. • Si el marco de página esta sucio se escribe a disco y se lanza otro proceso. • Cuando el marco de página queda libre se bloquea el marco en MP, se

manda leer y se lanza otro proceso. • Cuando llega la interrupción de E/S de la lectura se actualiza la ETP

correspondiente y se marca el marco de página como normal. • El proceso se marca como ejecutable. • Se continua o se reinicia la instrucción que produjo el fallo.

Page 80: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 80 Gestión de Memoria 2001

Soporte de la imagen de memoria• Regiones con soporte propio • Regiones sin soporte propio => swap.

Fichero

SWAP

FicheroEjecutable

Texto

Datos con valor inicial

Datos sin valor inicial

Fichero proyectadoen memoria

Memoriacompartda

Pila

Espacio virtual no asignado Marcos asignados al proceso

Memoriasecundaria

Espacio de direccionesvirtual de un proceso

Memoria principal

Page 81: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 81 Gestión de Memoria 2001

Creación de la imagen a partir de un fichero ejecutable

• Inicialmente ninguna página cargada en MP a excepción de la pila inicial.

• Uso más eficiente de los recursos. • Sólo se cargan las páginas que realmente se usan. • Sólo se reserva espacio de swap cuando se necesita.

D A T O S S I N

V A L O R I N I C I A L

P I L A

D A T O S V A L O R

I N I C I A L

C Ó D I G O

E S P A C I O D E

D I R E C C I O N E S V I R T U A L

D E L P R O C E S O

C Ó D I G O

D A T O S V A L O R

I N I C I A L

M E M O R I A

P R I N C I P A L

p á g i n a

d e n t r o / f u e r a

p r i m e r f a l l o

r e l l e n a r c o n c e r o s

p á g i n a d e n t r o

S I N

S O P O R T E

p á g i n a

d e n t r o / f u e r a

D I S P O S I T I V O

D E S W A P

p r im e r f a l l o

F I C H E R O

E J E C U T A B L E

p á g i n a

d e n t r o / f u e r a

p r i m e r f a l l o

r e l l e n a r c o n c e r o s

D A T O S

D A T O S S I N

V A L O R I N I C I A L

P I L A

C Ó D I G O

Page 82: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 82 Gestión de Memoria 2001

Ejecución de un programa en LINUX

• Ejemplo de código.

#include <math.h>#include <stdio.h>

main(){ double x = 30; double res; void *p;

p= sbrk(40000);

res = sin(x); printf("res = %f \n", res);}

• Bibliotecas: – libc.so – libm.so

Page 83: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 83 Gestión de Memoria 2001

Ejecución de un programa en LINUX II

• Mandato strace – open("/lib/libm.so", O_RDONLY) – mmap() => se proyecta el código. – open("/lib/libc.so", O_RDONLY) – mmap() => se proyecta el código. – Comienza a ejecutar el proceso

• Fichero /proc/PID/maps direccion perms offset dev nodo-i08048000-08049000 r-xp 00000000 08:11 630795 Código08049000-0804a000 rw-p 00000000 08:11 630795 Datos sin VI0804a000-08054000 rwxp 00000000 00:00 0 Datos dinámicos40000000-4000a000 r-xp 00000000 08:01 30602 ld.so4000a000-4000b000 rw-p 00009000 08:01 3060240010000-40028000 r-xp 00000000 08:01 30614 libm.so40028000-40029000 rw-p 00017000 08:01 3061440029000-400ba000 r-xp 00000000 08:01 30606 libc.so400ba000-400c2000 rw-p 00090000 08:01 30606400c2000-400ce000 rw-p 00000000 00:00 0bfffc000-c0000000 rwxp ffffd000 00:00 0 Pila

Page 84: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 84 Gestión de Memoria 2001

Reemplazo de páginas

• Objetivo: reducir la tasa de fallos. • Algoritmos:

– Óptimo. – FIFO. – NRU. – Segunda oportunidad. – Algoritmo del reloj. – LRU.

• Buffering de páginas. • Demonio de paginación.

– Se activa cuando se necesitan páginas. – Objetivo: disponer de páginas libres.

Page 85: Tema 4 Gestión de memoria. Sistemas operativos 1 Gestión de Memoria 2001 Contenido Requisitos de la gestión de memoria Modelo de memoria de un proceso.

Sistemas operativos 85 Gestión de Memoria 2001

Hiperpaginación

• Solución: reducir el grado de multiprogramación, suspendiendo uno o más procesos

N iv e l d e M u l t ip r o g r a m a c ió n

L im i ta d o p o r e l d is p o s it iv o

d e p a g in a c ió n

% U

tiliz

ació

n d

e U

CP

1 0 0 %

M E M O R I A P E Q U E Ñ A

N iv e l d e M u l t ip r o g r a m a c ió n

% U

tiliz

ació

n de

UC

P

M E M O R I A G R A N D E

L im i ta d o p o r e l d i s p o s it iv o

d e p a g in a c i ó n

1 0 0 %