Вы находитесь на странице: 1из 102

Captulo 4 Gestin de memoria

Fundamentos de Computadores II Sistemas Operativos

ndice
1. Objetivos del sistema de gestin de memoria 2. Modelo de memoria de un proceso 3. Esquemas de memoria basados en asignacin contigua 4. Memoria virtual 5. Archivos proyectados en memoria 6. Servicios de gestin de memoria

Fundamentos de Computadores II Sistemas Operativos

1. Objetivos del sistema de gestin de memoria

Fundamentos de Computadores II Sistemas Operativos

1. Objetivos del sistema de gestin de memoria


En sistemas con multiproceso, el S.O. debe repartir los recursos entre los procesos existentes: Reparto de procesador: Gestin de procesos Reparto de memoria: Gestin de memoria Objetivos del Gestor de Memoria A. Espacios lgicos independientes B. Proteccin entre procesos C. Comparticin de Memoria (procesos ligeros) D.Soporte a las regiones del proceso E. Maximizar el grado de multiprogramacin F. Mapas de memoria de un tamao (normalmente grandes)

adecuado

Fundamentos de Computadores II Sistemas Operativos

1. Objetivos del sistema de gestin de memoria


A. Espacios lgicos independientes
A priori no se conoce la posicin de memoria que ocupar un programa cuando vaya a ejecutarse (estado de ocupacin de la memoria) Cdigo en ejecutable genera referencias entre 0 y N Ejemplo: Programa que copia un vector
Fichero Ejecutable
0 4 .... 96 100 104 108 112 116 120 124 128 132 136

Vector destino a partir de direccin 2000 Tamao del vector en direccin 1500 Vector origen a partir de direccin 1000

Cabecera
LOAD R1, #1000 LOAD R2, #2000 LOAD R3, /1500 LOAD R4, [R1] STORE R4, [R2] INC R1 INC R2 DEC R3 JNZ /12 .................

Fundamentos de Computadores II Sistemas Operativos

1. Objetivos del sistema de gestin de memoria


Se supone que el cdigo del SO reside en las posiciones ms altas. El programa se carga en la posicin 0 y para que se ejecute ha de pasrsele el control (es decir, que el contador del programa apunte a esta posicin). Problema:Como se ve, no coinciden las direcciones usadas en el programa con la posicin a partir de la cual se carga el programa. Suponer por ejemplo, que el programa se cargara a partir de la posicin 10000.... Solucin: Reubicacin de direcciones lgicas a fsicas

Memoria
0 4 8 12 16 20 24 28 32 36 .... LOAD R1, #1000 LOAD R2, #2000 LOAD R3, /1500 LOAD R4, [R1] STORE R4, [R2] INC R1 INC R2 DEC R3 JNZ /12 .................

Sistema Operativo

Fundamentos de Computadores II Sistemas Operativos

1. Objetivos del sistema de gestin de memoria


Reubicacin: Traducir direcciones lgicas a direcciones fsicas dependientes del hardware mediante una funcin de traduccin. La reubicacin permite crear un espacio lgico independiente para cada proceso y el S.O. debe poder acceder a los espacios lgicos para realizar la traduccin. Direcciones lgicas: direcciones de memoria generadas por el programa Direcciones fsicas: direcciones de memoria principal asignadas

Funcin de traduccin:
Traduccin(IdProc, dir_lgica) dir_fsica Ejemplo: El programa tiene asignada memoria a partir de la direccin 10000 Reubicacin: sumar 10000 a direcciones lgicas Implementacin: o Hardware o Software

Fundamentos de Computadores II Sistemas Operativos

1. Objetivos del sistema de gestin de memoria


Reubicacin Hardware: la MMU (memory management unit) se encarga de la traduccin Proceso: Programa se carga en memoria sin modificar El S.O. almacena por cada proceso su funcin de traduccin El S.O. especifica a la MMU qu funcin aplicar para cada proceso
Memoria

Procesador
PC 8 HW traduccin 10000 11500

R. Instruccin 1500 LOAD R3, /1500

10000 10004 10008 10012 10016 10020 10024 10028 10032 10036 ..........

LOAD R1, #1000 LOAD R2, #2000 LOAD R3, /1500 LOAD R4, [R1] STORE R4, [R2] INC R1 INC R2 DEC R3 JNZ /12 .................

Fundamentos de Computadores II Sistemas Operativos

1. Objetivos del sistema de gestin de memoria


Reubicacin software: traduccin de direcciones durante carga del programa. Esta solucin se usa en sistemas sin el hardware especfico de traduccin (MMU). Proceso: El programa se carga con las direcciones ya traducidas Se genera un cdigo diferente del programa ejecutable Desventajas: No asegura proteccin (no se verifica cada direccin a usar, sino que se usan las direcciones generadas tras el proceso de carga) No permite mover programa en tiempo de ejecucin (suponer que es necesaria la reubicacin del espacio asignado al proceso, por necesitar ms espacio.....)

Memoria

10000 10004 10008 10012 10016 10020 10024 10028 10032 10036 ..........

LOAD R1, #11000 LOAD R2, #12000 LOAD R3, /11500 LOAD R4, [R1] STORE R4, [R2] INC R1 INC R2 DEC R3 JNZ /10012 .................

Fundamentos de Computadores II Sistemas Operativos

1. Objetivos del sistema de gestin de memoria


B. Proteccin entre procesos
La proteccin es diferente segn sea un sistema Mono o Multi programado: Sistema MonoProgramado: La intrusin se dar solamente entre el programa y el S.O. Sistema MultiProgramado: La intrusin puede venir tanto de otros procesos como de otros usuarios adems del riesgo del sistema Monoprogramado. Acciones La traduccin de direcciones debe crear espacios disjuntos Es necesario validar todas las direcciones que genera el programa La deteccin de alguna intrusin debe realizarla el hardware del procesador (MMU), ya que hay que realizarla en tiempo de ejecucin El tratamiento de alguna intrusin lo hace el SO En sistemas con mapa de E/S y memoria comn: Traduccin permite impedir que los procesos accedan directamente a dispositivos de E/S

Fundamentos de Computadores II Sistemas Operativos

1. Objetivos del sistema de gestin de memoria


C. Comparticin de Memoria (procesos ligeros)
La comparticin de memoria entre procesos da soporte a la creacin de procesos ligeros y est controlado por el S.O. Acciones: Las direcciones lgicas de 2 o ms procesos se correspondern con una misma direccin fsica. La memoria asignada a cada proceso no puede ser ya contigua. La funcin de traduccin en estos casos se va haciendo ms Mapa proceso 1 compleja. Memoria zona privada 1 Ventajas: Procesos ejecutando mismo zona priv. 1 (P1) zona compartida programa comparten su zona priv. 1 (P2) zona privada 2 cdigo zona compartida Mecanismo de comunicacin Mapa proceso 2 zona priv. 2 (P2) entre procesos muy rpido zona privada 1
zona priv. 2 (P1) zona compartida zona privada 2

Fundamentos de Computadores II Sistemas Operativos

10

1. Objetivos del sistema de gestin de memoria


Problemas: Requiere asignacin no contigua Si la posicin de zona compartida contiene referencia a otra posicin de la zona compartida, no se puede saber a qu direccin se refiere puesto que cada proceso ligero ver esa direccin de forma diferente Ejemplo: Si el cdigo, que es comn, contiene una bifurcacin, no se podr determinar a qu direccin se debe saltar, dependiendo del proceso que est ejecutando el cdigo

Mapa proceso 1 Memoria


2000 zona compartida zona compartida 10000 1100 2100? 10100

Mapa proceso 2
1000 zona compartida

lgico

fsico
11

Fundamentos de Computadores II Sistemas Operativos

1. Objetivos del sistema de gestin de memoria


D. Soporte de las regiones del proceso
El mapa de memoria de un proceso no es homogneo, ya que las regiones contienen diferentes tipos de informacin (cdigo, datos y pila normalmente) y poseen diferentes caractersticas Acciones: Hacer mapa de memoria dinmico: Regiones cambian de tamao (p.ej. pila) Se crean y destruyen regiones (el sistema de memoria debe controlar qu regiones estn presentes, as como su tamao) Existen zonas sin asignar (huecos, con carcter dinmico) Detectar accesos no permitidos a una regin ( de slo lectura por ej) Detectar accesos a huecos Evitar reservar espacio para huecos Guardar y gestionar una tabla de regiones para cada proceso

Fundamentos de Computadores II Sistemas Operativos

12

1. Objetivos del sistema de gestin de memoria


E. Maximizar el grado de multiprogramacin
El reparto de memoria debe ser tal que maximize el grado de multiprogramacin para evitar el desperdicio de memoria Memoria desperdiciada Restos (huecos) inutilizables (fragmentacin) Tablas requeridas por gestor de memoria Acciones Crear bloques de asignacin de menor tamao Gestionar las tablas de asignacin ms eficientemente Se opta por la paginacin Uso de memoria virtual para aumentar grado de multiprogramacin
Fundamentos de Computadores II Sistemas Operativos

Aprovechamiento de memoria ptimo es irrealizable!!!! Tablas de gestin demasiado grandes


Memoria
0 1 2 3 4 5 6 Direccin 50 del proceso 4 Direccin 10 del proceso 6 Direccin 95 del proceso 7 Direccin 56 del proceso 8 Direccin 0 del proceso 12 Direccin 5 del proceso 20 Direccin 0 del proceso 1 ......................................... ......................................... N-1 N Direccin 88 del proceso 9 Direccin 51 del proceso 4
13

1. Objetivos del sistema de gestin de memoria


F. Mapas de memoria de (normalmente grandes) un tamao adecuado

Los procesos necesitan cada vez mapas ms grandes: aplicaciones ms novedosas, ms recursos grficos, ms carga computacional.... Acciones Utilizar Memoria Virtual Hacer que el usuario disponga virtualmente de una enorme cantidad de memoria fsica

Otras opciones (antigua)


Overlays Programa dividido en fases que se ejecutan sucesivamente En cada momento slo hay una fase residente en memoria Cada fase realiza su labor y carga la siguiente No es transparente: Toda la labor realizada por programador

Fundamentos de Computadores II Sistemas Operativos

14

2. Modelo de memoria de un proceso


2.1. 2.2. 2.3. 2.4. Introduccin Fases en la generacin de un ejecutable Mapa de memoria de un proceso Operaciones sobre regiones

Fundamentos de Computadores II Sistemas Operativos

15

Modelo de memoria de un proceso 2.1. Introduccin


El S.O. es el responsable de la gestin de memoria de

cualquier proceso.
El mapa inicial de memoria de un proceso est relacionado con el archivo ejecutable que generar el proceso Cmo generar el mapa de memoria inicial a partir del ejecutable? Cmo se organiza el mapa de memoria? Cules son sus caractersticas bsicas?

Qu operaciones se pueden realizar en el mapa de


memoria?
Fundamentos de Computadores II Sistemas Operativos 16

Modelo de memoria de un proceso 2.2. Fases en la generacin de un ejecutable


Aplicacin: conjunto de mdulos en lenguaje de alto nivel Procesado en dos fases: Compilacin y Montaje Compilacin:
Se asignan direcciones a los smbolos definidos Resuelve referencias a los smbolos de cada mdulo Genera mdulo objeto

Mdulo fuente A

Mdulo fuente B Compilador

Montaje (o enlace):

Resuelve referencias entre mdulos objeto Resuelve referencias a smbolos de bibliotecas Genera resultado (archivo ejecutable), que incluye las bibliotecas usadas

Mdulo objeto A

Mdulo objeto B Montador Fichero ejecutable

Bibliotecas

Fundamentos de Computadores II Sistemas Operativos

17

Modelo de memoria de un proceso


Biblioteca: coleccin de mdulos objeto relacionados. Algunas bibliotecas son proporcionadas a los usuarios (bibliotecas) del sistema, mientras que otras habrn sido creadas por los usuarios (propias) (por ejemplo, bibliotecas de entrada salida, incluyendo las funciones como printf, getchar, etc, o las llamadas al sistema de POSIX) Tipos: Estticas: el montaje enlaza los mdulos objeto del programa y de las bibliotecas, dando como resultado un ejecutable autocontenido. Desventajas: Ejecutables grandes Cdigo de funcin de biblioteca repetido Mltiples copias en memoria del cdigo de funcin de biblioteca La actualizacin de biblioteca implicara volver a montar

Main Funcin A Funcin B Funcin de biblioteca F1 Funcin de biblioteca F2 Cdigo

Fundamentos de Computadores II Sistemas Operativos

18

Modelo de memoria de un proceso


Dinmicas: la carga y montaje se hace en tiempo de ejecucin. El ejecutable contiene nicamente el nombre de la biblioteca y la rutina de carga y montaje en tiempo de ejecucin Proceso de carga: La rutina de carga y montaje incorpora la biblioteca correspondiente. Se ajustan las instrucciones que realizan las referencias a dicho smbolo, de forma que las prximas referencias accedan al smbolo de biblioteca correspondiente, sin que sea necesario activar de nuevo el proceso de montaje de la biblioteca. Para evitar modificar el cdigo del programa, en este proceso, se suelen utilizar referencias indirectas mediante una tabla que recoge todos los smbolos correspondientes a bibliotecas dinmicas. Hay que tener en cuenta que en algunos S.O. los segmentos de cdigo ejecutables no son modificables

Fundamentos de Computadores II Sistemas Operativos

19

Modelo de memoria de un proceso


Ventajas: Menor tamao ejecutables Cdigo de rutinas de biblioteca slo en archivo de biblioteca Procesos pueden compartir cdigo de biblioteca Actualizacin automtica de bibliotecas: uso de versiones. Suele haber en un sistemas varias versiones de la misma biblioteca. Cuando un programa hace referencia a uno de sus smbolos, se busca la versin adecuada

Desventajas: Mayor tiempo de ejecucin debido a carga y montaje. Se trata de un retraso tolerable, ya que se compensan el resto de las ventajas Ejecutable no autocontenido

Fundamentos de Computadores II Sistemas Operativos

20

Modelo de memoria de un proceso


Forma de uso : 1. Enlace dinmico implcito: Se especifica en tiempo de montaje qu biblioteca usar, pero se pospone su carga y montaje a tiempo de ejecucin. 2. Uso explcito: Requerido por aplicaciones que determinan en tiempo de ejecucin qu bibliotecas deben usar No se especifica la biblioteca en mandato de montaje Es el programa quien solicita la carga de bibliotecas mediante servicio del sistema (dlopen en UNIX y LoadLibrary en Win32) El acceso a los smbolos de la biblioteca ya no es transparente, sino que se ha de hacer desde el propio programa, mediante los servicios apropiados del sistema (dlsym en UNIX y GetProcAddress en Win32)

Fundamentos de Computadores II Sistemas Operativos

21

Modelo de memoria de un proceso


El uso de bibliotecas dinmicas es transparente. Es decir, los mandatos de compilacin y montaje son idnticos que en el caso de las estticas Si la biblioteca dinmica contiene referencias internas (a smbolos definidos en la misma) existe el problema, ya comentado, de la zona compartida con autoreferencias Tres posibles soluciones: 1. A cada biblioteca dinmica se le asigna un rango de direcciones fijo Inconveniente: Poco flexible 2. En montaje en tiempo de ejecucin se reajustan autoreferencias Inconveniente: Impide compartir cdigo de biblioteca 3. Crear biblioteca con cdigo independiente de posicin (PIC) Se genera cdigo con direccionamiento relativo a registro Inconveniente (tolerable): direccionamiento relativo menos eficiente
22

Fundamentos de Computadores II Sistemas Operativos

Modelo de memoria de un proceso


Ficheros ejecutables Distintos fabricantes usan diferentes formatos

Ejemplo: En Linux Executable and Linkable Format (ELF)


Estructura: Cabecera y conjunto de secciones Cabecera: informacin de control que permite interpretar el contenido del ejecutable. Suele incluir la siguiente informacin: Nmero mgico que identifica a ejecutable. Por ejemplo, en formato ELF el primer byte debe contener el valor hexadecimal 7f, los tres siguientes los caracteres E, L y F Punto de entrada del programa: es decir, el valor que inicialmente contendr el contador del programa Tabla de secciones. Para cada una de ellas se especifica: tipo, direccin de comienzo en el archivo y tamao. Ejemplo: Tabla de smbolos para depuracin Lista de bibliotecas dinmicas usadas
23

Fundamentos de Computadores II Sistemas Operativos

Modelo de memoria de un proceso

Fichero Ejecutable
Nmero mgico Contador de programa inicial .................... Tabla de secciones Cdigo

Cabecera
1000

Despl. Cdigo 1000 Datos con v.i. 5000 Datos sin v.i. -----...................... ........ T. Smbolos

Tam. 4000 1000 500 ........

8000 1000

5000

Secciones

Datos con valor inicial

................ 8000 Tabla de smbolos

Fundamentos de Computadores II Sistemas Operativos

24

Modelo de memoria de un proceso


Las secciones ms relevantes se volcarn en el mapa de memoria del proceso: cdigo, datos con valor inicial y datos sin valor inicial Cdigo (texto): contiene el cdigo del programa Datos con valor inicial: variables globales inicializadas Datos sin valor inicial: variables globales no inicializadas: aunque aparece en la tabla de secciones no se almacena en el ejecutable, ya que su contenido no es relevante No hay seccin vinculada a variables locales, ya que estas tienen carcter dinmico (se crearn en la pila del proceso, cuando los procedimientos en que aparecen sean invocados)

Fundamentos de Computadores II Sistemas Operativos

25

Modelo de memoria de un proceso


Variables globales Estticas Se crean al iniciarse programa Existen durante toda la ejecucin del proceso Direccin fija en memoria y en ejecutable Variables locales y parmetros Dinmicas Se crean al invocar la funcin Se destruyen al retornar La direccin se calcula en tiempo de ejecucin Recursividad: varias instancias de una variable

Fundamentos de Computadores II Sistemas Operativos

26

Modelo de memoria de un proceso


Ejemplo:

int x=8; int y;


f(int t){ int z; ....... } main(){ ....... }

/* Variable global con valor inicial */ /* Variable global sin valor inicial */
/* Parmetro */ /* Variable local */

Fundamentos de Computadores II Sistemas Operativos

27

Modelo de memoria de un proceso 2.3. Mapa de memoria de un proceso


El mapa de memoria o imagen del proceso estar compuesto por un conjunto de regiones o segmentos; cada una de ellas almacena cierto tipo de informacin Cada regin: Tiene asociada una informacin (un objeto de memoria) Consiste en una zona contigua tratada como unidad al proteger o compartir Se caracteriza por: Direccin de comienzo y tamao inicial Soporte: donde se almacena su contenido inicial (soporte en archivo y sin soporte, es decir, objeto sin contenido inicial) Proteccin: RWX Uso compartido o privado Tamao fijo o variable
Fundamentos de Computadores II Sistemas Operativos 28

Modelo de memoria de un proceso


La ejecucin de un programa crea un mapa de memoria a partir del archivo ejecutable. Cada seccin del ejecutable da lugar a una regin del mapa inicial. Cdigo (texto): compartida, lectura y ejecucin, tamao fijo, soporte en archivo ejecutable Datos con valor inicial: privada, lectura y escritura, tamao fijo, soporte en archivo ejecutable Datos sin valor inicial: privada, lectura y escritura, tamao fijo, sin soporte (se rellena a ceros en algunos lenguajes) Pila: privada, lectura y escritura, tamao variable, sin soporte. Crece hacia direcciones ms bajas. La pila inicial slo contiene los argumentos de llamada al programa

Fundamentos de Computadores II Sistemas Operativos

29

Modelo de memoria de un proceso


Mapa de memoria
0
Cdigo

Fichero ejecutable
Nmero mgico Contador de programa inicial Tabla de secciones Cdigo

Cabecera

4000
Datos con valor inicial

1000

5000 5500

Secciones
5000 8000

Datos sin valor inicial

Datos con valor inicial

Tabla de smbolos

Pila

Argumentos del programa


Fundamentos de Computadores II Sistemas Operativos 30

Modelo de memoria de un proceso


Durante ejecucin de proceso se crean nuevas regiones. Es decir, el mapa de memoria tiene un carcter dinmico. Las nuevas regiones creadas en tiempo de ejecucin pueden ser: Regin de Heap Soporte de memoria dinmica (malloc en C) Privada, lectura y escritura, tamao variable, sin soporte (inicializada a cero) Crece hacia direcciones ms altas Archivo proyectado Regin asociada al archivo proyectado Tamao variable, soporte en archivo Proteccin y carcter compartido o privado especificado en la proyeccin Memoria compartida Regin asociada a la zona de memoria compartida Compartida, tamao variable, sin soporte (inicializada a 0) Proteccin especificada en proyeccin Pilas de threads Cada pila de thread corresponde con una regin. Estas regiones constan de las mismas caractersticas que las asociadas a la pila del proceso
31

Fundamentos de Computadores II Sistemas Operativos

Modelo de memoria de un proceso


Regin Cdigo Soporte Fichero Proteccin Comp/Priv Tamao RX RW Compartida Fijo Privada Privada Privada Privada Fijo Fijo Variable Variable

Dat. con v.i. Fichero Dat. sin v.i. Pilas Heap F. Proyect. M. Comp.

Sin soporte RW Sin soporte RW Sin soporte RW Fichero

por usuario Comp./Priv. Variable

Sin soporte por usuario Compartida Variable

Fundamentos de Computadores II Sistemas Operativos

32

Modelo de memoria de un proceso

Fundamentos de Computadores II Sistemas Operativos

33

Modelo de memoria de un proceso 2.4. Operaciones sobre regiones


Para estudiar la evolucin del mapa de memoria a lo largo de la ejecucin de un proceso, se pueden distinguir las siguientes operaciones: Crear regin: Implcitamente al crear mapa inicial (por parte del SO) o por solicitud del programa en tiempo de ejecucin de ejecucin (por ejemplo, al cargar una biblioteca dinmica) Eliminar regin: Implcitamente al terminar el proceso o por solicitud del programa en tiempo de ejecucin (por ejemplo, al desproyectar un archivo) Cambiar tamao de la regin: Implcitamente para la pila o por solicitud del programa para el heap (cuando se hace malloc) Duplicar regin: Operacin requerida por el servicio fork de POSIX

Fundamentos de Computadores II Sistemas Operativos

34

3. Esquemas de memoria basados en asignacin contigua


3.1. 3.2. 3.3. 3.4. Esquema hardware Gestin del SO Poltica de asignacin de espacio Valoracin del esquema contiguo

Fundamentos de Computadores II Sistemas Operativos

35

Esq. de mem. basados en asignacin contigua 3.1. Esquema Hardware


El mapa de proceso se ubica en una zona contigua de la memoria principal. Proceso: El S.O. busca un hueco en memoria de tamao suficiente para alojar su mapa de memoria del proceso que comienza. El S.O. reserva la parte del hueco necesaria y crea en ella el mapa inicial del proceso Se establece la funcin de traduccin, de forma que las direcciones del programa se correspondan con las direcciones existentes en el hueco asignado. Hardware requerido: Registros valla (registro base y registro lmite). Estos dos registros slo son accesibles en modo privilegiado. Los registros valla estn desocupados cuando el S.O. toma el control para acceder a todo el mapa de memoria.
Fundamentos de Computadores II Sistemas Operativos 36

Esq. de mem. basados en asignacin contigua


Registro lmite: Se comprobar que las direcciones usadas por el proceso no excedan el valor almacenado en l. Registro base: Una vez realizada la comprobacin anterior, se suma a cada direccin el valor contenido en este registro, de forma que se obtiene la direccin fsica pertinente.
0

Memoria
Proceso 4

Procesador
PC
8

10000

Hard. traduccin (MMU)


R. lmite R. base

10200
Proceso 7 15036 Proceso 3 20500 21000
22500

4000
Registro instruccin
LOAD R3, /1500

21000
NO

>
SI

Proceso 2

25000
N
37

Excepcin

Fundamentos de Computadores II Sistemas Operativos

Esq. de mem. basados en asignacin contigua 3.2. Gestin del SO


El S.O. almacena en el BCP cules son los valores de los registros valla. Dedica una estructura para conocer en todo momento el estado de la memoria, identificando qu huecos estn libres. Normalmente se usa una lista en la que se almacena la direccin inicial y el tamao de cada hueco. La gestin de esta lista obliga a comprobar, al desocupar espacio, si el nuevo espacio libre puede unirse a huecos vecinos. Problema:Segn se van ejecutando procesos van quedando fragmentos de memoria libres, que debido a su tamao no podrn ser usados en asignaciones de espacio a memoria. Este problema se denomina fragmentacin externa y conlleva una mala gestin de memoria. Solucin tradicional: Compactar los huecos de forma que queden contiguos. Para ello es necesario reajustar los registros valla de los procesos. INEFICIENTE.
Fundamentos de Computadores II Sistemas Operativos 38

Esq. de mem. basados en asignacin contigua 3.3. Poltica de asignacin de espacio


El S.O. debe considerar qu espacio, de los huecos libres, se usar intentando encontrar un equilibrio entre buen aprovechamiento de espacio y tiempo de respuesta corto, es decir, se aplica un algoritmo de decisin que debe ser eficiente. Este problema es un clsico: Cmo asignar espacio para su aprovechamiento ptimo?. Existen tres posibles enfoques: a) Mejor ajuste (best-fit). Se elige la zona libre ms pequea donde quepa el mapa del proceso. Problema: Conlleva crear nuevos huecos de tamao pequeo. Adems, elegir el hueco ms pequeo obliga a mantener ordenados por tamao los huecos disponibles. No es eficiente b) Peor ajuste. Se busca el hueco ms grande, intentando evitar la generacin de huecos pequeos. Sigue precisando mantener el control de los tamaos c) El primero que ajuste (first-fit). Suele ser la mejor poltica. Muy eficiente, ya que basta con encontrar una zona libre de tamao suficiente, y ofrece un aprovechamiento aceptable
Fundamentos de Computadores II Sistemas Operativos 39

Esq. de mem. basados en asignacin contigua 3.4. Valoracin del esquema contiguo
Valoracion: Espacios independientes para procesos: mediante registros valla Proteccin: mediante registros valla Compartir memoria: no es posible Soporte de regiones: No existe (no hay mecanismo de permisos sobre el espacio asignado a cada proceso) Se reserva espacio para huecos, ya que el espacio asignado al proceso en primera instancia debe servir para todo su tiempo de vida Maximizar rendimiento: Mal aprovechamiento de memoria por fragmentacin externa Mapas de MV de tamao adecuado: No permite memoria virtual

Fundamentos de Computadores II Sistemas Operativos

40

4. Intercambio

Fundamentos de Computadores II Sistemas Operativos

41

Intercambio
Qu hacer si no caben todos los programas en memoria principal? Usar disco (dispositivo swap) como respaldo de la memoria principal. Si no caben en memoria todos los procesos activos, se elige un proceso residente y se copia en disco su imagen de memoria Expulsar (swap-out) a los procesos bloqueados. El proceso de expulsin no implica copiar toda la imagen del proceso (por ejemplo, no es preciso ocupar los huecos ni el cdigo, al poder recuperarse fcilmente del ejecutable). Un proceso expulsado vuelve a cargarse (swap-in) cuando est listo para ejecutar y haya espacio en memoria. Polticas de asignacin de espacio en swap: Preasignacin: al crear el proceso se reserva espacio de swap. NO Preasignacin: slo se reserva espacio de swap al expulsar. (Semejanza con estado suspendido?)

Fundamentos de Computadores II Sistemas Operativos

42

5. Memoria virtual
5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7. Introduccin Paginacin Segmentacin Segmentacin paginada Paginacin por demanda Polticas de reemplazo Poltica de asignacin de marcos de pgina 5.8. Hiperpaginacin 5.9. Gestin del espacio de swap 5.10. Operaciones sobre las regiones de un proceso
Fundamentos de Computadores II Sistemas Operativos 43

Memoria virtual 5.1. Introduccin


La tcnica de la MV se usa prcticamente en todos los SSOO modernos. Esta tcnica se basa en transferir informacin entre memoria principal y memoria secundaria (por lo que involucra varios niveles de la jerarqua de memoria) Suele implementarse en un esquema de paginacin (es decir, la unidad de informacin intercambiada entre los diferentes niveles de la jerarqua de memoria es la pgina) Elemento Clave: Proximidad referencial habitual de los procesos. Esta propiedad permite que un proceso puede funcionar disponiendo en memoria de una parte de su imagen de memoria (conjunto residente).

Objetivo final: conseguir que la informacin necesaria para un proceso (conjunto de trabajo) vaya ocupando la memoria principal segn se va necesitando (es decir, conjunto de trabajo === conjunto residente)
Fundamentos de Computadores II Sistemas Operativos 44

Memoria virtual
Ventajas: a) Aumento del grado de multiprogramacin. Por tanto, aumento en el rendimiento del sistema b) Posibilidad de ejecutar programas ms grandes que la MV disponible El uso de la MV no implica que se acelere la ejecucin del programa (ms bien al contrario, debido a la sobrecarga asociada a los movimientos de informacin entre niveles de la jerarqua). Este mecanismo no es apropiado para sistemas de tiempo real.

Fundamentos de Computadores II Sistemas Operativos

45

Memoria virtual 5.2. Paginacin


Pgina: Zona contigua de memoria de determinado tamao. (Por motivos de eficiencia se suele trabajar siempre con tamaos potencia de 2. Ej:4 KB.) Organizacin: El mapa de memoria del proceso se considera dividido en pginas. La memoria principal se considera dividida en marcos de pgina (tamao de marco = tamao de pgina). Los marcos contendrn pginas de los procesos en ejecucin La tabla de pginas (TP) relaciona cada pgina con el marco que la contiene. El hardware de traduccin (MMU) usa la tabla de pginas para traducir direcciones lgicas a fsicas Tpicamente la MMU usa dos tablas de pginas (TP): a) TP del usuario: Por ejemplo, direcciones lgicas que empiezan por 0 b) TP del sistema: Por ejemplo, direcciones lgicas que empiezan por 1. Estas slo se podrn usar en modo sistema
46

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual
Cada entrada de la tabla de pginas contendr, adems del nmero de marco asociado con la pgina: a) Informacin de proteccin: tipo de acceso permitido RWX b) Bit de pgina vlida/invlida: para indicar si dicha entrada contiene una traduccin asociada, es decir, si se corresponde realmente con un marco c) Bit de pgina accedida (Ref): activado cuando se accede d) Bit de pgina modificada (Mod): activado cuando se escribe e) Bit de desactivacin de cach: se usa cuando la entrada corresponde con direcciones de E/S Tamao de pgina: La eleccin de tamao de pgina est condicionada por diversos factores, entre los que hay que conseguir equilibrio: Potencia de 2 y mltiplo del tamao del bloque de disco mejor pequeo por: Menor fragmentacin Se ajusta mejor al conjunto de trabajo mejor grande por: Tablas ms pequeas Mejor rendimiento de dispositivos de E/S Compromiso (entre 2K y 16K)
47

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual
Direccin:Una direccin lgica se obtiene a partir de: n pgina + desplazamiento Problema: La paginacin no ofrece una solucin ptima. Lo ideal sera que cada palabra del mapa de memoria de un proceso pudiera ubicarse en cualquier direccin. Esta solucin es inviable debido al coste de traduccin Al no ser as, con la paginacin se asigna a cada proceso un nmero entero de marcos de pgina, aunque el espacio de su mapa de memoria no sea un mltiplo entero del tamao de pgina. Por tanto, se irn generando huecos (memoria no aprovechada, en la ltima de las pginas que no se llena de forma completa). Este proceso se denomina fragmentacin interna (implica que, en trmino medio, cada proceso desperdicia la mitad de una pgina)

Fundamentos de Computadores II Sistemas Operativos

48

Memoria virtual
Direccin lgica

Pgina

Byte

0 1 2 3

Marcos de pgina

Registro base de la TP (RIED)

MP: direcciones fsicas


Fundamentos de Computadores II Sistemas Operativos 49

Memoria virtual

T. Pginas Proceso 1
Pgina 0 Pgina 1 Marco 2 Marco N .............. Pgina M Marco 3

Memoria
Pg. 1 Pr. 2 Pg. P Pr. 2 Pg. 0 Pr. 1 Pg. M Pr. 1 Pg. 0 Pr. 2 ............ Pg. 1 Pr. 1 Marco N Marco 0 Marco 1 Marco 2 Marco 3 Marco 4

T. Pginas Proceso 2
Pgina 0 Pgina 1 Marco 4 Marco 0 .............. Pgina P Marco 1

Problema: Fragmentacin, la memoria asignada es mayor que la memoria requerida y por lo tanto, se desperdicia cierta cantidad de espacio
50

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual
Otras cuestiones: En este esquema, el S.O. mantiene una tabla de pginas por cada proceso. Cuando se produce un cambio de contexto se indica a la MMU qu tabla de pginas usar El S.O. mantiene una nica tabla de pginas para s mismo. As, todos los procesos comparten el SO. Cuando un proceso se ejecuta en modo sistema accede directamente a su mapa y al del SO S.O. mantiene tabla de marcos, como forma de mantener informacin de estado de la memoria principal. De cada marco se conoce su estado (libre, ocupado, etc) S.O. mantiene tabla de regiones por cada proceso, indicando las caractersticas de cada regin y qu rango de pginas pertenecen a cada regin Desperdicio de espacio: Mucho mayor gasto en tablas que con asignacin contigua: es el precio de mucha mayor funcionalidad

Fundamentos de Computadores II Sistemas Operativos

51

Memoria virtual
Implementacin de la tabla de pginas: Las tablas de pginas se mantiene normalmente en memoria principal. Problemas: eficiencia y gasto de almacenamiento a) Eficiencia: cada acceso lgico requiere dos accesos a memoria principal, a la tabla de pginas + al propio dato o instruccin. Solucin: cach de traducciones TLB b)Gasto de almacenamiento: tablas muy grandes. Ejemplo: pginas 4K, dir. lgica 32 bits y 4 bytes por entrada, la tabla de pginas de cada proceso tendr 4MB. Solucin: tablas multinivel y tablas invertidas Valoracin : Espacios independientes para procesos: mediante tablas de pginas Proteccin: mediante tablas de pginas Compartir memoria: entradas corresponden con mismo marco (bajo supervisin del SO dos procesos pueden compartir una pgina asociada al mismo marco) Soporte de regiones: bits de proteccin, bit de validez: no se reserva espacio para huecos Maximizar rendimiento: Si, al permitir esquemas de memoria ms flexibles Mapas de tamao adecuado: s, al permitir esquemas de memoria virtual
52

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual
TLB (Translation Look-aside Buffer): Consta de una memoria asociativa con informacin sobre ltimas pginas accedidas. Para el multiproceso, existen varias posibilidades: La TLB no incluye informacin del proceso. En este caso, habr que invalidar la TLB en los cambios de contexto Entradas en TLB incluyen informacin sobre proceso: en este caso, debe existir un registro de UCP para mantener la identificacin del proceso actual Implementacin HW: La MMU consulta la TLB y si falla, se usa la TP en memoria. Ventajas: Es un proceso muy rpido Inconvenientes: Actualizar la TP en cambios de contexto y hay que invalidar la TLB cuando se produce un cambio de contexto (si no tiene informacin del PID) SW: La MMU no usa la TP, sino que slo consulta TLB. En caso de fallo, se activa el SO, que ha de buscar la entrada en la tabla de pginas (mediante programa), e insertar en la TLB la traduccin hecha, de forma que se pueda reutilizar. Ventajas: flexibilidad, ya que la tabla de pginas puede ser definida a conveniencia, sin restricciones impuestas por el hardware Inconvenientes: Es menos eficiente, ya que parte del proceso de traduccin se realiza mediante programa.
Fundamentos de Computadores II Sistemas Operativos 53

Memoria virtual
Una de las opciones disponibles para disminuir el tamao requerido por las tablas de pginas es la tabla de pginas multinivel Organizacin:Se trata de una tabla de pginas organizadas en M niveles: Entrada de TP de nivel K apunta a TP de nivel K+1 Entrada de ltimo nivel apunta a marco de pgina Direccin: La direccin lgica especifica la entrada a usar en cada nivel 1 campo por nivel + desplazamiento Accesos:Un acceso lgico supone M + 1 accesos a memoria. Solucin: uso de TLB Invaliadacin:Si todas las entradas de una TP son invlidas, no se almacena esa TP y se pone invlida la entrada correspondiente de la TP superior Ahorro de espacio:Si el proceso usa una parte pequea de su espacio lgico, se consigue ahorro en espacio para almacenar TPs
54

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual
Pgina Direccin lgica

1er nivel

2 nivel

Byte
0 1 2 3

Marcos de pgina

0 1 2 3

Registro base de la TP (RIED)

n 0 1 2 3

MP: direcciones fsicas


55

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual
Ejemplo: Proceso que usa 12MB superiores y 4MB inferiores 2 niveles, pginas de 4K, dir. lgica 32 bits (10 bits por nivel) y 4 bytes por entrada Tamao: 1 TP N1 + 4 TP N2= 5 * 4KB = 20KB (frente a 4MB) Ventajas adicionales: permite compartir TPs intermedias y slo se requiere que est en memoria la TP de nivel superior. Las restantes pueden estar en disco y traerse por demanda

Fundamentos de Computadores II Sistemas Operativos

56

Memoria virtual
memoria tablas de pginas segundo nivel Pgina 2048

. . .
Pgina 1023

Tabla de pginas primer nivel V V V I Pgina 2047 Pgina 1024

. . .

Pgina 0

I V

. . .

Pgina 3071

. . .

Pgina 1048575 (2^20-1)

Pg. 1047552 (2^20-1024)

Fundamentos de Computadores II Sistemas Operativos

57

Memoria virtual
Otra alternativa para disminuir el espacio necesario por la tabla de pginas es la tabla de pginas invertida Organizacin: La tabla contendr tantas entradas como marcos de pgina haya. Cada entrada almacena la pgina cargada en dicho marco junto con sus caractersticas: Nmero de pgina, Proceso dueo de la pgina El tamao de la tabla de pginas es proporcional a la memoria disponible. Accesos:La MMU usa una TLB convencional, pero si falla la traduccin se accede a la tabla de pginas invertida. Al estar la tabla organizada por marcos no se puede hacer una bsqueda directa. Debera accederse a todas las entradas en busca de la pgina correspondiente. Por esta razn se suele organizar como una tabla hash Ahorro de espacio: Se reduce el espacio de almacenamiento necesario, ya que slo se guarda informacin sobre las pginas vlidas

Fundamentos de Computadores II Sistemas Operativos

58

Memoria virtual
Direccin lgica pid Pgina Byte

i
pid pgina

Byte Direccin fsica

Fundamentos de Computadores II Sistemas Operativos

59

Memoria virtual 5.3. Segmentacin


Con la paginacin la MMU no dispone de informacin sobre las regiones de los procesos y slo entiende de pginas. Por esta razn, el SO debe mantener una lista de las pginas que componen cada regin, lo que supone varias desventajas: Al crear una regin hay que cuidar que todas las pginas asociadas tengan la misma informacin de control Para poder compartir una regin es preciso que las entradas de varios procesos apunten a los mismos marcos

Segmentacin: es un esquema HW que intenta dar soporte directo a las regiones. En l se considera el mapa de memoria como compuesto por varios segmentos. Se puede considerar que consisten en una generalizacin de los registros valla base y lmite, pero usando un par de registros por cada segmento
Fundamentos de Computadores II Sistemas Operativos 60

Memoria virtual
Direccin:Una direccin lgica estar compuesta por un nmero de segmento y un desplazamiento en el mismo. Traduccin: La forma de realizar la traduccin puede apreciarse en la imagen siguiente:
direccin lgica s d tabla de segmentos

lmite

base

>
SI

NO

memoria

Excepcin

Fundamentos de Computadores II Sistemas Operativos

61

Memoria virtual
Tabla de segmentos:En este caso, la MMU usa una tabla de segmentos (TS). Organizacin: El SO mantiene una TS por proceso, de forma que en cada cambio de contexto se notifica a MMU cul debe usar Cada entrada de TS contiene (entre otros): Registro base y lmite del segmento proteccin: RWX

Problema: Fragmentacin Externa En este esquema se produce fragmentacin externa, ya que el almacenamiento de los segmentos se realiza de forma contigua. El SO debe mantener una lista que le permita conocer qu zonas de memoria estn libres y cules ocupadas: es decir, estructuras de datos que identifiquen huecos y zonas asignadas

Fundamentos de Computadores II Sistemas Operativos

62

Memoria virtual
Valoracin: Espacios independientes para procesos: mediante su propia TS, que crea un espacio lgico independiente Proteccin: mediante TS, ofreciendo espacios disjuntos de memoria Compartir memoria: bajo control del SO es posible que dos o ms procesos tengan un segmento asociado a la misma zona de memoria Soporte de regiones: bits de proteccin Maximizar rendimiento : No lo maximiza, por la fragmentacin externa Mapas de tamao adecuado: No cumple este objetivo porque no permite implementar eficientemente un sistema de memoria virtual

Por tanto, tal y como se ha presentado se usa en muy pocos SO reales

Fundamentos de Computadores II Sistemas Operativos

63

Memoria virtual 5.4. Segmentacin paginada


Se intenta aunar las ventajas de ambos esquemas: segmentacin y paginacin: Segmentacin: soporte para regiones. Paginacin: mejor uso del espacio de memoria. Organizacin: Entrada en TS apunta a una TP para el segmento. El espacio del segmento est compuesto de varias pginas, de forma que su espacio no tiene que ser contiguo.

Fundamentos de Computadores II Sistemas Operativos

64

Memoria virtual
Traduccin:La traduccin se lleva a cabo segn se indica.

direccin lgica s p d tabla de segmentos tabla de pginas para segmento s

lmite

dir. T. Pg.

>
SI

NO

memoria

Excepcin

direccin fsica

Fundamentos de Computadores II Sistemas Operativos

65

Memoria virtual
Valoracin: Espacios independientes para procesos: mediante TS Proteccin: mediante TS Compartir memoria: bajo control del SO, podemos hacer que una misma entrada aparezca en diferentes TS (es decir, pueda ser usado por varios procesos) Soporte de regiones: bits de proteccin Maximizar rendimiento: la paginacin aprovecha eficientemente el espacio de memoria. Mapas de tamao adecuado: permite esquemas de memoria virtual Ventajas: Frente a paginacin sin segmentos facilita al SO la gestin de las regiones, pero requiere HW ms complejo

Fundamentos de Computadores II Sistemas Operativos

66

Memoria virtual 5.5. Paginacin por demanda


Una vez analizados los diferentes esquemas hardware vamos a ver cmo se articulan para construir un esquema de memoria virtual (estos esquemas tambin pueden usarse sin memoria virtual, pero en la actualidad su uso est siempre vinculado a la memoria virtual) Normalmente la memoria virtual se construye sobre esquemas de paginacin pura o segmentada. De esta forma, la unidad de informacin intercambiada entre memoria principal y secundaria es la pgina. Normalmente la transferencia de informacin se lleva a cabo bajo demanda (paginacin por demanda). De esta forma, cuando un proceso necesita acceder a una pgina que no est en memoria principal, se genera un fallo de pgina y el SO se encarga de transferirla desde la memoria secundaria. Si al traerla no hay espacio suficiente en MP, ser necesario desalojar alguna de las pginas actuales (ello se hace mediante un algoritmo de reemplazo)
67

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual
La construccin de un sistema de memoria virtual sobre un procesador con paginacin implica usar un bit de validez en las entradas de la tabla de pginas, que indica si la pgina es vlida. Estarn marcadas como invlidas todas las pginas que no residen en MP, as como las que constituyen huecos en el mapa de memoria. Para las entradas correspondientes a pginas no residentes en MP, la entrada principal, en lugar de almacenar el marco donde reside contendr la direccin del dispositivo de memoria en que se encuentra almacenada. De forma que cuando se produce un acceso a una de estas pginas, se produce una excepcin y se activa el SO, responsable de hacer la transferencia desde memoria secundaria. Algunos sistemas tambin usan la tcnica de prepaginacin. Al ocurrir un fallo de pgina no slo traen la pgina en cuestin, sino tambin las cercanas, al suponerse que se usarn en un corto plazo de tiempo. La efectividad de esta tcnica depender del acierto de la prediccin.

Fundamentos de Computadores II Sistemas Operativos

68

Memoria virtual
Veamos cmo se gestiona la ocurrencia de un fallo de pgina: La MMU genera una excepcin. Normalmente deja en un registro especial la direccin que caus el fallo Se activa el SO, que comprueba: Si la pgina es invlida, se aborta el proceso (solucin normal, aunque tambin podra bastar con el envo de una seal). Si la pgina es ausente se siguen los pasos siguientes: a) Se consulta la tabla de marcos para ver si hay algn hueco libre: i. Si no hay ningn marco libre se aplica el algoritmo de reemplazo, que decidir el marco a desalojar. La pgina almacenada hasta entonces se marca como invlida. Si ha sido modificada, antes hay que salvar su contenido en memoria secundaria ii. Si hay marco libre: se inicia la lectura desde memoria secundaria y se vuelca al marco, marcndose como vlida dicha entrada en la TP y apuntando el marco en que est almacenada
Fundamentos de Computadores II Sistemas Operativos 69

Memoria virtual
En el peor de los casos un fallo de pgina puede suponer dos operaciones de E/S: a) Salvaguarda de la pgina expulsada b) Lectura de la pgina nueva Dos polticas definen el funcionamiento del sistema de memoria Poltica de reemplazos: Reemplazo local: Slo puede usarse para reemplazo un marco asignado al proceso que causa fallo Reemplazo global: Puede usarse para reemplazo cualquier marco Poltica de asignacin de espacio a los procesos: Asignacin fija: El nmero de marcos de pgina para cada proceso es fijo. Asignacin dinmica: El nmero de marcos de pgina para cada proceso es dinmico
70

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual 5.6. Polticas de reemplazo


Objetivo: Minimizar la tasa de fallos de pgina. Cada algoritmo descrito tiene versin local y global: Local: criterio se aplica a las pginas residentes del proceso Global: criterio se aplica a todas las pginas residentes

Algoritmos a estudiar A. ptimo B. FIFO C. Reloj (o segunda oportunidad) D. LRU E. Buffering de pginas F. Retencin de pginas en memoria

Fundamentos de Computadores II Sistemas Operativos

71

Memoria virtual
A) Algoritmo ptimo
Criterio: Pgina residente que tardar ms en accederse Implementacin: Irrealizable, ya que supone disponer de una prediccin fiable del uso de las pginas en un futuro a medio plazo Versin local y global Inters para estudios analticos comparativos

Fundamentos de Computadores II Sistemas Operativos

72

Memoria virtual
B) Algoritmo FIFO
Criterio: se elimina la pgina que lleva ms tiempo residente Implementacin: Fcil Pginas residentes en orden FIFO se expulsa la primera No requiere hardware especial En el caso de estrategia local se mantiene una lista de pginas por cada proceso. En el caso global, basta con una nica lista Problema: Una pgina que lleva mucho tiempo residente puede seguir accedindose frecuentemente. Su criterio no se basa en el uso de la pgina. Anomala de Belady: Se pueden encontrar ejemplos en que al aumentar el nmero de marcos aumenta el nmero de fallos de pgina
73

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual
C) Algoritmo de segunda oportunidad o del reloj
Se trata de una modificacin del algoritmo FIFO, para evitar que una pgina residente desde hace tiempo sea desalojada pese a estar siendo usada. Para ello se usa el bit de referencia Ref de las pginas, con lo que se detecta su uso Criterio: Si la pgina elegida por FIFO no tiene activo el bit Ref, es la pgina expulsada Si lo tiene activo se da 2 oportunidad antes de expulsar: se desactiva el bit Ref, se pone pgina al final de FIFO, se aplica criterio a la siguiente pgina Implementacin: Se puede implementar el orden FIFO mediante una lista circular con una referencia a la primera pgina de la lista: se visualiza como un reloj donde la referencia a la primera pgina es la aguja del reloj
74

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual
D) Algoritmo LRU (last recently used)
Criterio: Basado en proximidad temporal de referencias: pgina residente menos recientemente usada como pgina a eliminar Implementacin:Posible implementacin con HW especfico y un contador de accesos a memoria: Cada entrada de la TP posee un contador Cada acceso a memoria la MMU copia el contador del sistema a entrada referenciada Reemplazo: pgina con contador ms bajo Difcil implementacin estricta (hay aproximaciones): precisara una MMU especfica, ya que habra que controlar los accesos realizados a cada marco para actualizar los contadores de los accesos en la TP Nota: en su versin global, hay que considerar los contadores de las pginas menos recientemente usadas teniendo en cuenta el tiempo lgico de cada proceso

Fundamentos de Computadores II Sistemas Operativos

75

Memoria virtual
E) Buffering de pginas
Criterio:Esta tcnica intenta evitar el problema con las pginas modificadas que han de ser desalojadas. En este caso, el tratamiento del fallo de pgina implica realizar dos accesos a disco, uno para almacenar la pgina modificada y para traer la nueva Implementacin: Mantiene una reserva de marcos libres. Cuando se produce un fallo de pgina, siempre se usa un marco libre (es decir, en verdad no hay reemplazo) Cuando el nmero de marcos libres queda por debajo de cierto umbral se activa un demonio de paginacin, que aplica repetidamente el algoritmo de reemplazo: Pginas no modificadas pasan a lista de marcos libres Pginas modificadas pasan a lista de marcos modificados: cuando se escriban a disco pasan a lista de libres; suelen escribirse en tandas (lo que mejora el rendimiento) Si se referencia una pgina mientras est en estas listas: se recupera directamente de la lista (no hay E/S), lo que puede mejorar el comportamiento de algoritmos poco eficientes
76

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual
F) Retencin de pginas en memoria

Criterio:No todas las pginas son reemplazables


Aplicacin: Se aplica a pginas del propio S.O: si sus pginas estn fijas en memoria, su gestin es ms sencilla Tambin se aplica mientras se hace DMA sobre una pgina. La pgina no ser reemplazable hasta que finalice la operacin sobre ella Implementacin: Algunos S.O. ofrecen a las aplicaciones un servicio para fijar en memoria una o ms pginas de su mapa: adecuado para procesos de tiempo real, aunque puede afectar al rendimiento del sistema. En POSIX se trata del servicio mlock

Fundamentos de Computadores II Sistemas Operativos

77

Memoria virtual 5.7. Poltica de asignacin de marcos de pgina


El SO deber decidir cuntos marcos de pgina asigna a cada proceso: a) Asignacin Fija b) Asignacin Dinmica

A) Asignacin fija

Nmero constante de marcos asignados al proceso. Puede depender de las caractersticas del proceso: tamao, prioridad,... No se adapta a las distintas fases de ejecucin. Como positivo, el comportamiento del proceso es relativamente predecible Slo tiene sentido usar estrategia de reemplazo local La arquitectura impone el N mnimo de marcos de pgina: mnimo nmero de marcos a asignar igual al nmero de referencias que aparezca en la instruccin que ms fallos de pgina pueda generar

Fundamentos de Computadores II Sistemas Operativos

78

Memoria virtual
B) Asignacin dinmica
El nmero de marcos asignados a un proceso es variable dependiendo del comportamiento del proceso (y posiblemente de los dems procesos). Se adapta a las diferentes fases por las que puede pasar un proceso Se pueden usar tanto estrategias de reemplazo global como local. Asignacin dinmica + reemplazo local: el proceso va aumentando o disminuyendo su conjunto residente dependiendo de su comportamiento (comportamiento relativamente predecible) Asignacin dinmica + reemplazo global: los procesos compiten por el uso de las pginas entre ellos (comportamiento difcilmente predecible)

Fundamentos de Computadores II Sistemas Operativos

79

Memoria virtual 5.8. Hiperpaginacin (thrashing)


Definicin:Tasa excesiva de fallos de pgina de un proceso o en el sistema, debido a que el nmero de marcos de pgina asignados es insuficiente para albergar el conjunto residente Con asignacin fija. Hiperpaginacin en el proceso Pi si conjunto residente de Pi < conjunto de trabajo Pi Con asignacin variable. Hiperpaginacin en el sistema si n marcos disponibles < conjuntos de trabajo de los procesos Problema: decae el grado de uso de la CPU. Los procesos estn casi siempre en colas de dispositivo de paginacin. Solucin: controlar la carga: Disminuir el grado de multiprogramacin, Suspender uno o ms procesos liberando sus pginas residentes Cmo detectar esta situacin?
80

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual

Utilizacin de la UCP

Se vern a continuacin algunas estrategias de control de la carga de trabajo:

grado de multiprogramacin

A. Estrategia del conjunto de Trabajo B. Estrategia de administracin basada en la frecuencia de fallos de pgina C. Estrategia de control de carga para algoritmos de reemplazo globales
Fundamentos de Computadores II Sistemas Operativos 81

Memoria virtual
A) Estrategia del conjunto de trabajo
Objetivo: Determinar el conjunto de trabajo de cada proceso, es decir, las pginas usadas por el proceso en las ltimas N referencias Proceso: Si el conjunto de trabajo decrece se liberan marcos. Si el conjunto de trabajo crece se asignan nuevos marcos. Si no hay marcos disponibles se suspender algn(os) proceso(s), que se reactivan cuando haya marcos suficientes Condicin: Si el SO es capaz de detectar el conjunto de trabajo de cada proceso, puede especificarse una estrategia de asignacin dinmica con reemplazo local

Implementacin: Difcil, ya que precisara una MMU especfica que controlara las pginas accedidas por cada proceso.
Aproximacin: Estrategia basada en frecuencia de fallos de pgina (PFF), controlando la tasa de fallos de pgina de cada proceso
82

Fundamentos de Computadores II Sistemas Operativos

Memoria virtual
B) Estrategia basada en frecuencia de fallos de pgina
Objetivo: Controlar la tasa de fallos de pgina por proceso Proceso: Si tasa < lmite inferior, se liberan marcos aplicando un algoritmo de reemplazo Si tasa > lmite superior, se asignan nuevos marcos. Si no hay marcos libres se suspende algn proceso
tasa de fallos de pgina

lmite superior

lmite inferior

nmero de marcos
Fundamentos de Computadores II Sistemas Operativos 83

Memoria virtual
C) Estrategia de control de carga para algoritmos de reemplazo globales
Objetivo: Controlar la hiperpaginacin utilizando un algoritmo de control de carga. Se da en algoritmos de reemplazo global.
Proceso: Ejemplo: UNIX 4.3 BSD Reemplazo global con algoritmo del reloj. Variante con dos manecillas: hay dos punteros en vez de uno Uso de buffering de pginas. Un demonio de paginacin controla el nmero de marcos libres Si el nmero de marcos libres < umbral, el demonio de paginacin aplica reemplazo Si se repite con frecuencia la falta de marcos libres: un proceso swapper suspende procesos

Fundamentos de Computadores II Sistemas Operativos

84

Memoria virtual 5.9. Gestin del espacio de swap


La asignacin del espacio de swaping puede seguir dos tcnicas: a) Preasignacin de swap: Al crear la nueva regin se reserva espacio de swap para ella. Al expulsar una pgina, con esta estrategia, ya habr espacio de swap para almacenar su contenido b) Sin preasignacin de swap: Al crear una regin no se hace reserva de swap. Las pginas de la regin se irn trayendo a MP por demanda desde el soporte de la regin. Slo se reserva espacio de swap para una pgina cuando es expulsada por primera vez Tendencia actual: Se suele utilizar ms la estrategia sin preasignacin, puesto que la preasignacin de swap conlleva un peor aprovechamiento de memoria secundaria (toda pgina debe tener reservado espacio de swap).

Fundamentos de Computadores II Sistemas Operativos

85

Memoria virtual 5.10. Operaciones sobre regiones de un proceso


Se considerarn a continuacin las siguientes operaciones sobre las regiones de un proceso en un sistema con memoria virtual: a) Creacin de regin: Al crear el mapa inicial o por solicitud posterior b) Liberacin de regin: Al terminar el proceso o por solicitud posterior c) Cambio de tamao de regin: Aumento de tamao: hay que comprobar que no se solape con otra regin y equiparar las nuevas pginas a las ya existentes en la regin. El caso de expansin de la pila es algo ms complejo. Disminucin de tamao d) Duplicado de regin: Operacin requerida por el servicio fork de POSIX Se duplica todo y se trata de una operacin costosa

Fundamentos de Computadores II Sistemas Operativos

86

Memoria virtual
a) Creacin de nueva regin Acciones: Al crear una regin no se asigna MP ( se har por demanda). Se marcarn las pginas como no residentes y vlidas (fallo de pgina cuando se intenten acceder) El S.O. actualiza la tabla de regiones y guarda la informacin correspondiente a las pginas de la regin, rellenando las entradas de la TP. Debe buscar un hueco en el mapa de memoria para asignar a nueva regin. Segn el soporte: Soporte en archivo: Pginas marcadas como Cargar de archivo (CA) y se almacena direccin del bloque del archivo correspondiente Sin soporte: Pginas marcadas como Rellenar con ceros (RC) y se inicializa cuando hay un fallo de pgina. Si la regin es privada con preasignacin de swap, se reserva espacio de swap Si la regin es la pila: Se copian los argumentos iniciales del proceso en bloque(s) de swap

Fundamentos de Computadores II Sistemas Operativos

87

Memoria virtual
Algoritmo de expulsin: Si la regin es privada se escribe pgina en swap. Si no hay preasignacin de espacio swap, en la primera expulsin se reserva espacio. Posteriores fallos se sirven de ese bloque de swap Si la regin es compartida se escribe pgina en soporte, para que todos los procesos puedan ver las modificaciones. Todos los fallos se sirven del soporte En la creacin del mapa inicial (servicio exec en POSIX), se crean las regiones segn sus caractersticas Cdigo: CA, Compartida, RX Datos v. inicial: CA, Privada, RW Datos sin v. inicial: RC, Privada, RW Pila inicial: contenido inicial en swap Los huecos se marcan como pginas invlidas, tanto para el HW como para el S.O.

Fundamentos de Computadores II Sistemas Operativos

88

Memoria virtual

Swap
RX A Bloque T (arch.) ........................... 1pg. Dat.v.i. RW A Bloque U (arch.) ........................... 1pg. RW A Rellenar con 0 Dat.no.v.i. ...........................
1pg. Pila 1pg. Cdigo

Tabla de pginas

Archivo Ejecutable
Cabecera Bloque T Bloque U Cdigo Datos con valor inicial ................

RW A Bloque S (swap)

Bloque S

Pila

Estado inicial de ejecucin en un sistema sin preasignacin de swap


Fundamentos de Computadores II Sistemas Operativos 89

Memoria virtual
b) Liberacin de regin Acciones: Actualizar tabla de regiones para eliminar regin Marcar como invlidas pginas asociadas Si la regin es privada, se libera el espacio de swap asociado Cuando: Solicitud explcita (p.ej. desproyeccin de regin). Finalizacin del proceso (exit en POSIX). El servicio exec de POSIX libera el mapa actual del proceso antes de construir un nuevo mapa vinculado al ejecutable a usar

Fundamentos de Computadores II Sistemas Operativos

90

Memoria virtual
c) Cambio de tamao Acciones: Si disminuye: Se ajusta la tabla de regiones. Se marcan pginas como invlidas. Se libera espacio de swap Si aumenta: Se comprueba que no haya solapamiento. Se fijan nuevas pginas como no residentes y con las mismas caractersticas que otras pginas de la regin. Si hay preasignacin se reserva espacio en swap para las nuevas pginas. Casos especiales: Expansin del heap: Solicitada por programa mediante servicios del S.O. Se marcan las pginas correspondientes como RC, privadas, RW Expansin de pila no proviene de una solicitud del proceso, sino de la propia evolucin de la pila. Por esta razn esta operacin es automtica
Fundamentos de Computadores II Sistemas Operativos 91

Memoria virtual
d) Duplicado de una regin Acciones: Se duplican las regiones privadas del padre y se comparten las no privadas La copia de una regin de un proceso en el mapa de memoria de otro proceso es una operacin costosa, ya que tambin se debe copiar el contenido.

Problema: La ejecucin de fork sera muy ineficiente. Solucin: copy-on-write (COW). Se comparte una pgina mientras no se modifique. Si un proceso la modifica, se crea una copia para l. Esta operacin se denomina duplicado por demanda

Fundamentos de Computadores II Sistemas Operativos

92

Memoria virtual
Implementacin de COW Se comparten las pginas de regiones duplicadas Se marcan de slo lectura y con bit de COW. Al realizar la primera escritura se produce un fallo de protecccin y se genera una copia privada para el proceso que escribe. Lo normal es que haya varios procesos con misma regin duplicada, por lo que existe un contador de uso por pgina. Cada vez que se crea copia privada se decrementa contador, ya que hay un proceso menos trabajando sobre la copia compartida. Si llega a 1, se desactiva el bit COW, al no haber duplicados FORK con COW. Se comparten todas las regiones. Las regiones privadas se marcan como COW en padre e hijo, el resultado de la optimizacin es que en vez de duplicar todo el espacio de memoria slo se duplica la TP.

Fundamentos de Computadores II Sistemas Operativos

93

5. Archivos proyectados en memoria

Fundamentos de Computadores II Sistemas Operativos

94

Archivos proyectados en memoria


En qu consiste? Recordemos que en un sistema con MV se hacen corresponder las entradas de la TP con bloques de un archivo ejecutable. La tcnica de la proyeccin permite usar esta misma idea, pero con cualquier archivo. El S.O. permite que un programa solicite la correspondencia de una zona de su mapa de memoria con los bloques de un archivo cualquiera (ya sea completo o en parte). En la solicitud el programa indicar el tipo de acceso que desea para las pginas asociadas al archivo. Servicio: La generalizacin de la tcnica de memoria virtual permite ofrecer a los usuarios una forma alternativa de acceder a los archivos.

Fundamentos de Computadores II Sistemas Operativos

95

Archivos proyectados en memoria


Proceso: Se rellenan las entradas de la TP correspondientes con : Pgina no residente, CA (cargar de archivo), Privada/compartida y Proteccin (indicada en la llamada). Mapa de memoria De esta forma, cuando el programa accede Tabla de pginas a una posicin ........................... de memoria 1pg. Archivo RW A Bloque 0 (arch.) asociada al ........................... archivo proyectado,ltima pg. RW A Bloque N (arch.) Archivo est accediendo ........................... realmente al archivo
Cdigo

Datos con valor inicial Datos sin valor inicial

Archivo
Bloque 0 Bloque 1

10240 Bloque 2 Archivo Proyectado .............

Bloque N Pila

Fundamentos de Computadores II Sistemas Operativos

96

Archivos proyectados en memoria


Ventajas: Se trata por tanto de una forma alternativa de acceso a archivos, frente a las llamadas read/write. De esta forma se producen: Menos llamadas al sistema lo que se traduce en una notable mejora de los tiempos de acceso. Se evitan copias intermedias de la informacin ya que el S.O. transfiere directamente la informacin entre la regin de memoria y el archivo. Se facilita la programacin, ya que una vez proyectado se accede al archivo como si fuera una estructura de datos en memoria Ejemplo: Tpicamente las bibliotecas dinmicas se cargan usando este tipo de proyeccin: la zona de cdigo se proyecta como compartida y la zona de datos con valor inicial se proyecta como privada

Fundamentos de Computadores II Sistemas Operativos

97

6. Servicios de gestin de memoria

Fundamentos de Computadores II Sistemas Operativos

98

Servicios de gestin de memoria


El gestor de memoria realiza funciones internas. Por eso, ofrece pocos servicios directos para las aplicaciones. Bsicamente estn relacionados con la proyeccin de archivos: POSIX Proyectar un archivo: mmap Desproyectar un archivo: munmap Win32 Proyectar un archivo: 2 pasos: Crear proyeccin: CreateFileMapping Realizar proyeccin: MapViewOfFile Desproyectar un archivo: UnmapViewOfFile

Fundamentos de Computadores II Sistemas Operativos

99

Servicios de gestin de memoria


void *mmap(void *direc, size_t lon, int prot, int indic, int desc, off_t desp); Establece la proyeccin entre el espacio de direcciones de un proceso y un archivo. Devuelve la direccin de memoria donde se ha proyectado el archivo direc: direccin donde proyectar. Generalmente se utiliza NULL, con lo que el S.O. elige la direccin por su cuenta lon: especifica el nmero de bytes a proyectar prot: el tipo de acceso, lectura (PROT_READ), escritura (PROT_WRITE) o ejecucin (PROT_EXEC), o cualquier combinacin de ellas indic: propiedades sobre la regin, compartida (MAP_SHARED, un proceso hijo compartir la regin con el padre), privada (MAP_PRIVATE, el hijo obtiene copia propia de la regin), fija (MAP_FIXED, el archivo ha de proyectarse en una direccin especfica) desc: representa el descriptor de archivo a proyectar. Desp: desplazamiento dentro del archivo a partir del cual se realiza la proyeccin.
Fundamentos de Computadores II Sistemas Operativos 100

Servicios de gestin de memoria


void munmap(void *direc, size_t lon); Desproyecta parte del espacio de direcciones de un proceso desde la direccin direc hasta direc+lon.

Fundamentos de Computadores II Sistemas Operativos

101

Вам также может понравиться

  • Final Lenguajes y Compiladores 2012 - 1
    Final Lenguajes y Compiladores 2012 - 1
    Документ1 страница
    Final Lenguajes y Compiladores 2012 - 1
    Manuel Lucero
    Оценок пока нет
  • Jun 02
    Jun 02
    Документ7 страниц
    Jun 02
    Manuel Lucero
    Оценок пока нет
  • Androidrapido
    Androidrapido
    Документ41 страница
    Androidrapido
    fernandoalbanil
    Оценок пока нет
  • Ej Resueltos T11
    Ej Resueltos T11
    Документ12 страниц
    Ej Resueltos T11
    Manuel Lucero
    Оценок пока нет
  • Codigo Fuente
    Codigo Fuente
    Документ1 страница
    Codigo Fuente
    Manuel Lucero
    Оценок пока нет
  • Examen Final de Algoritmica II
    Examen Final de Algoritmica II
    Документ1 страница
    Examen Final de Algoritmica II
    Manuel Lucero
    Оценок пока нет
  • Jun 02
    Jun 02
    Документ7 страниц
    Jun 02
    Manuel Lucero
    Оценок пока нет
  • Java Aplicaciones Web
    Java Aplicaciones Web
    Документ2 страницы
    Java Aplicaciones Web
    ossskar1234
    Оценок пока нет
  • Examen Final de Algoritmica II
    Examen Final de Algoritmica II
    Документ1 страница
    Examen Final de Algoritmica II
    Manuel Lucero
    Оценок пока нет
  • Flu Jo 12 Matric Ula Agosto
    Flu Jo 12 Matric Ula Agosto
    Документ1 страница
    Flu Jo 12 Matric Ula Agosto
    Manuel Lucero
    Оценок пока нет
  • Codigo Fuente
    Codigo Fuente
    Документ1 страница
    Codigo Fuente
    Manuel Lucero
    Оценок пока нет
  • Colecciones en Java
    Colecciones en Java
    Документ4 страницы
    Colecciones en Java
    Manuel Lucero
    Оценок пока нет
  • Cap5so1 A
    Cap5so1 A
    Документ38 страниц
    Cap5so1 A
    Manuel Lucero
    Оценок пока нет
  • Desinstalar Oracle 11g en Windows 7 de forma completa
    Desinstalar Oracle 11g en Windows 7 de forma completa
    Документ5 страниц
    Desinstalar Oracle 11g en Windows 7 de forma completa
    Jean Pierre Aguilar Alvarado
    Оценок пока нет
  • Asignacion 1 2012 I Sistemas
    Asignacion 1 2012 I Sistemas
    Документ1 страница
    Asignacion 1 2012 I Sistemas
    Manuel Lucero
    Оценок пока нет
  • Guía de Ejercicios
    Guía de Ejercicios
    Документ9 страниц
    Guía de Ejercicios
    Esther Arenas Yataco
    Оценок пока нет
  • Asignacion 1 2012 I Sistemas
    Asignacion 1 2012 I Sistemas
    Документ1 страница
    Asignacion 1 2012 I Sistemas
    Manuel Lucero
    Оценок пока нет
  • Introduccion 2
    Introduccion 2
    Документ24 страницы
    Introduccion 2
    Manuel Lucero
    Оценок пока нет
  • Flu Jo 12 Matric Ula Agosto
    Flu Jo 12 Matric Ula Agosto
    Документ1 страница
    Flu Jo 12 Matric Ula Agosto
    Manuel Lucero
    Оценок пока нет
  • Informe Del Semáforo
    Informe Del Semáforo
    Документ14 страниц
    Informe Del Semáforo
    Jair Fernando Hernandez
    Оценок пока нет
  • 02 Apit Arquitectura de Software
    02 Apit Arquitectura de Software
    Документ28 страниц
    02 Apit Arquitectura de Software
    Manuel Lucero
    Оценок пока нет
  • Sol Ex 97 - 98
    Sol Ex 97 - 98
    Документ4 страницы
    Sol Ex 97 - 98
    Manuel Lucero
    Оценок пока нет
  • Guía de Ejercicios
    Guía de Ejercicios
    Документ9 страниц
    Guía de Ejercicios
    Esther Arenas Yataco
    Оценок пока нет
  • Diagramas Del Uml
    Diagramas Del Uml
    Документ21 страница
    Diagramas Del Uml
    Alan Alvarez
    Оценок пока нет
  • Introduccion 2
    Introduccion 2
    Документ24 страницы
    Introduccion 2
    Manuel Lucero
    Оценок пока нет
  • UML Clase 05 UML Paquetes
    UML Clase 05 UML Paquetes
    Документ11 страниц
    UML Clase 05 UML Paquetes
    Franz Gabriel Astaca Maldonado
    Оценок пока нет
  • Guía de Ejercicios
    Guía de Ejercicios
    Документ9 страниц
    Guía de Ejercicios
    Esther Arenas Yataco
    Оценок пока нет
  • Jun 02
    Jun 02
    Документ7 страниц
    Jun 02
    Manuel Lucero
    Оценок пока нет
  • Ejercicios Relacionados p1
    Ejercicios Relacionados p1
    Документ3 страницы
    Ejercicios Relacionados p1
    Manuel Lucero
    Оценок пока нет
  • Seguidor de Linea B 04 ING ISC PIT E
    Seguidor de Linea B 04 ING ISC PIT E
    Документ10 страниц
    Seguidor de Linea B 04 ING ISC PIT E
    Manuel Lucero
    Оценок пока нет