Anda di halaman 1dari 64

Tema 8.

Gestin de la memoria

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

Gestin de la memoria Contenidos


Antecedentes Tcnicas bsicas: recubrimientos, intercambio Gestin de memoria contigua Segmentacin Paginacin Tcnicas mixtas

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

Gestin de la memoria Antecedentes

La memoria fsica es un conjunto de celdas referenciables por medio de una direccin lineal (p.ej. de la 00000h a la FFFFFh) Para que un programa se ejecute, su cdigo y sus datos necesitan estar cargados en memoria (al menos en parte) En un sistema multitarea, la memoria ha de repartirse entre los diferentes procesos

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

Gestin de la memoria Antecedentes (2)

Las rutinas del sistema operativo tambin debern residir en memoria, en todo o en parte Puede ser que la memoria principal no tenga capacidad suficiente para todos los procesos en ejecucin

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

Gestin de la memoria Objetivo principal

Conseguir que varios procesos puedan ejecutarse de forma concurrente,


evitando los conflictos de uso protegiendo al sistema operativo aprovechando eficazmente el espacio disponible:

Minimizar la memoria desaprovechada


Evitar fragmentacin Memoria ocupada por varias copias de un mismo objeto Memoria ocupada por las estructuras de datos necesarias para la operacin del gestor de memoria

Carga parcial de programas Complejidad temporal Tiempo de acceso a memoria

sin perjudicar el rendimiento:


Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

Gestin de la memoria Objetivo principal (2)

Un gestor de memoria ideal debera por tanto,


minimizar la memoria desaprovechada tener una complejidad temporal mnima y presentar un recargo por acceso a memoria mnimo adems de proporcionar una buena proteccin y una comparticin flexible

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

Ciclo de vida de un programa


programa fuente compilador

compilacin
mdulo objeto otros objetos y bibliotecas enlazador (linker) programa ejecutable bibliotecas del sistema bibliotecas dinmicas cargador programa y datos binarios en memoria HARDWARE

carga

ejecucin

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

Conversin de direcciones: reubicacin

El compilador traduce direcciones de memoria simblicas a direcciones binarias. Si las direcciones binarias son absolutas, el programa slo se puede ejecutar en una zona fija de la memoria: NO ES REUBICABLE. Ej.: los programas con formato .COM de MSDOS

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

Conversin de direcciones: reubicacin (2)

Nos interesa que el compilador no genere direcciones definitivas, sino direcciones provisionales, reubicables. Cuando se sepa dnde van a residir el cdigo y los datos, se convertirn a direcciones absolutas. En qu momento (etapa) se realiza esta reubicacin ?

Carga (enlazador o cargador) => Reubicacin esttica Ejecucin (hardware) => Reubicacin dinmica
T1

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

10

Reubicacin dinmica: direcciones lgicas/direcciones fsicas


Direccin fsica: la que llega al chip de memoria Direccin lgica o virtual: la generada por la CPU El dispositivo que traduce direcciones virtuales a fsicas se llama unidad de manejo de memoria (MMU, en ingls) El espacio de direcciones lgicas y el espacio de direcciones fsicas no tienen por qu coincidir Ejemplo: registro base

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

11

Espacios de direcciones
Fichero fuente (principal.cc)
#include<stream.h> main() { int cont; ... cont++ ... }

Fichero ejecutable (principal)

Memoria lgica del proceso

Memoria fsica

cabecera cdigo datos inicializados

cdigo datos inicializados datos sin inicializar pila

MR

Proceso

Espacio de direcciones simblicas

Espacio de direcciones lgicas/fsicas

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

12

Direcciones lgicas/direcciones fsicas


Direccin lgica o virtual

CPU

Memoria

CPU
dir. lgica 1234

Disco

MMU

80000 registro base

Controlador de memoria
Direccin fsica

Controlador de disco

MMU
dir. fsica 81234

memoria

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

13

Carga dinmica

Proceso se ejecute

Cdigo + Datos => Memoria fsica Tamao de un proceso limitado al tamao de la memoria fsica postergar la carga en memoria de un mdulo hasta que el programa llame a alguna rutina del mismo

Consecuencia:

Carga dinmica

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

14

Enlace dinmico

Similar a la carga dinmica, pero efectuando el enlace en tiempo de ejecucin: bibliotecas dinmicas (DLL) La DLL se carga en memoria cuando algn proceso llama a una de sus rutinas. Las llamadas a sus funciones se efectan a travs de una tabla de punteros. Si varios procesos emplean la biblioteca dinmica, slo se mantiene una copia de ella en memoria. Ejemplos de enlace dinmico:

UNIX: shared libraries (shlib) Windows: dynamic load libraries (dll)

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

15

Recubrimientos (overlays)

Muchos programas no necesitan todo el cdigo al mismo tiempo, sino que se ejecutan por fases (ej. un compilador) El programa se descompone en mdulos separados (recubrimientos), que se cargan en un rea de memoria al efecto Si se carga un recubrimiento, borra al que se encontraba ya cargado El programa de usuario es responsable de cargar recubrimientos segn se necesiten

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

16

Recubrimientos (overlays) (2)


rutinas y datos comunes manejador de recubrimientos fase 1 fase 2 fase 3 (disponible para recubrimientos)

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

17

Intercambio (swapping)

Objetivo: cuando un proceso queda bloqueado o en espera, la memoria que ocupa podra desasignrsele. Intercambio: Cuando un proceso pierde la CPU, se vuelca su imagen de la memoria al disco (swap out). Cuando se decide reanudar el proceso, se recupera su imagen del disco (swap in)
sistema operativo P1

memoria para usuarios

P2

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

18

Intercambio (swapping) (2)

Problemas:

aumenta el tiempo de cambio de contexto E/S que accede por DMA varios procesos en memoria intercambio un proceso mientras se ejecuta otro

Mejoras:

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

19

Intercambio (swapping) (3)

Qu se necesita para llevarlo a cabo?

Proceso intercambiador (efecta la mayora de las funciones del PMP) Criterios para la eleccin de la vctima (poltica de swapping out) Criterios para elegir los procesos que entran (poltica de swapping in) Espacio en disco donde almacenar las imgenes de los procesos

Area especfica para el intercambio (rea de swap) Ficheros de intercambio

Criterios para la gestin del espacio de intercambio (poltica de gestin del rea de swap)

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

20

Intercambio (swapping) (4)

Otras consideraciones:

Operaciones de E/S pendientes ? Un proceso intercambiado, regresa al mismo espacio de memoria que ocup previamente ? Versiones modificadas del intercambio estandar:

Unix Microsoft Windows 3.1

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

21

Gestin de memoria contigua

Caso simpln: una sola particin (sistema operativo+rea de usuario)

como mucho, utilizar un registro base para proteger al S.O.


0 Registro base Memoria fsica

SO

Proceso

256K

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

22

Gestin de memoria contigua

Evolucin: particiones mltiples


particiones de tamao fijo (MFT) particiones de tamao variable (MVT) MVT


Memoria fsica Memoria fsica

MFT
Memoria fsica

SO Particin 1 Particin 2 Particin 3 Particin 4

SO Particin 1 Particin 2 Particin 3 Particin 4

SO

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

23

Gestin de memoria contigua

Mecanismos de gestin de la memoria contigua


Tabla de descripcin de particiones (TDP) El S.O. gestionar una lista de huecos libres en memoria y seleccionar qu procesos pueden cargarse en memoria para ejecutarse Primitivas internas de pedir y liberar memoria

T2, T3, T4, T5 y T6

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

24

Gestin de memoria contigua

POLTICAS DE UBICACIN

El problema general se conoce como la gestin de memoria dinmica


Primer hueco (first-fit) Mejor hueco (best-fit) Peor hueco (worst-fit)

las polticas de primer hueco y mejor hueco son similares en rendimiento; y mejores que la de peor hueco Otras polticas: siguiente ajuste, buddies

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

25

Proteccin

Para garantizar seguridad, el hardware puede trabajar con un par de registros base/lmite
5000
lmite

80000
base

CPU

dir. lgica 1234 no

<
excepcin

dir. fsica 81234

memoria

MMU

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

26

Proteccin

Registrar los derechos de acceso en la propia memoria

A cada direccin se le aade un nmero de bits para identificar al propietario


Problema: costoso Mejora:

Asociar estos bits a bloques de memoria fsica

Comprobacin: tiempo de ejecucin SO => Clave maestra nica que le da acceso sin restricciones a todos los bloques de memoria

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

27

Comparticin

Confiar los objetos compartidos al SO

Forma de acceder a estos objetos: llamadas al sistema Inconvenientes:

SO grande y monoltico, lo que hace ms difcil su desarrollo, mantenimiento y verificacin No se podran incorporar dinmicamente nuevos objetos (slo permite la inclusin de nuevos objetos durante la generacin del sistema)

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

28

Comparticin

Mantener mltiples copias de los objetos compartidos

Redundancia => modificaciones deben ser propagadas a todas las copias restantes (SO sera el encargado cada vez que se realice un cambio de contexto) Si se soporta intercambio, OJO, podran existir copias de los objetos compartidos en disco

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

29

Comparticin

Utilizar particiones de memoria compartidas (comunes) Proteccin?

Registros base/lmite: requerira conjuntos separados de pares de registros base/limite dedicados para acceder a los espacio de memoria privado y compartido

Implica la existencia de algn mecanismo que indique en cada acceso que conjunto de registros emplear

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

30

Comparticin

Claves de proteccin: requerira controlar los bloques compartidos para que en los conmutaciones de contexto se cambien las claves de proteccin

Necesidad de llevar la cuenta de que bloques estn siendo compartidos y por quin

MVT => Permite que particiones adyacentes en memoria fsica puedan solaparse

Comparticin de datos y cdigo (dos procesos)

T7

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

31

FRAGMENTACION

Es el gran problema de la memoria contigua


Fragmentacin interna (MFT) Fragmentacin externa (MVT)

T8

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

32

FRAGMENTACION

Soluciones:

permitir que un proceso puede ubicarse en zonas de memoria no necesariamente contiguas compactacin Si la reubicacin es esttica y se efecta durante el ensamblado o la carga, no puede haber compactacin Esta slo es posible si la reubicacin es dinmica y se efecta en tiempo de ejecucin

Es posible siempre?

Slo requiere mover el programa y los datos y modificar el registro base para que refleje la nueva direccin base

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

33

Compactacin

Estrategia a seguir

Seleccionar una estrategia ptima de traslados

Raras veces es implementado debido al gasto en que se incurre al evaluar las opciones

Reubicar todas las particiones en un extremo de la memoria

El recargo por copia es generalmente ms alto que el de un traslado ms selectivo Copiar en disco los procesos que tienen que cambiar de lugar

Compactacin + intercambio

T9

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

34

Segmentacin

Un programa se puede descomponer en varios segmentos de memoria (cdigo, datos, pila...) Con el hardware adecuado, podemos ubicar esos segmentos en zonas de memoria no contiguas. S1 S3 S2

T.seg.

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

35

Segmentacin

El compilador tiene que generar cdigo que haga referencias a direcciones de memoria con dos componentes:
<segmento,desplazamiento>

El S.O. ubica cada segmento en un hueco contiguo de memoria El hardware se encarga de la reubicacin dinmica mediante una tabla de segmentos

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

36

Hardware de segmentacin
Tabla de segmentos (S)

lmite

base

S
dir. lgica

D
s dir. fsica

<
no

Excepcin: direccin ilegal

T10

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

37

Tabla de segmentos

Registros

Problema: muchos segmentos Registro base de la tabla de segmentos (RBTS) Registro de longitud de la tabla de segmentos (RLTS)

Memoria

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

38

Tabla de segmentos

Proceso de traduccin: direccin lgica (s,d)


Se comprueba que s<RLTS Se calcula la direccin de la entrada de la tabla de segmentos (RBTS+s) y se lee dicha entrada Se coteja el desplazamiento con la longitud del segmento Se calcula la direccin fsica del byte deseado como la suma de la base del segmento y el desplazamiento

Proceso de traduccin: requiere dos referencias a memoria por cada direccin lgica Solucin: usar un conjunto de registros asociativos para guardar las entradas de la tabla de segmentos que se usaron mas recientemente

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

39

Segmentacin

Ventajas

Atena el problema de la fragmentacin Permite definir protecciones selectivamente Permite comparticin de zonas de memoria de forma eficaz Todo ello sin aadir complejidad a los algoritmos de gestin de espacio

T11

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

40

Segmentacin

Inconvenientes

El compilador/enlazador debe reconocer un espacio segmentado (desventaja leve) Necesita soporte del hardware Incurre en un acceso adicional a memoria (para la tabla de segmentos) No soluciona del todo los problemas de las tcnicas de ubicacin contigua (fragmentacin)

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

41

Paginacin

Tcnica que soluciona la fragmentacin externa La idea: Trocear la memoria disponible en pginas de tamao fijo (ej. 4Kb). Un programa puede residir en varias pginas no contiguas Las pginas disponibles en memoria se llaman marcos de pgina (page frames). Toda direccin lgica se descompone en dos partes: nmero de pgina y desplazamiento. La MMU se encarga de asociar el nmero de pgina lgico con el marco de pgina asignado. Para ello emplea una tabla de pginas.
T12

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

42

Hardware de paginacin
Tabla de pginas

(P)

CPU

P
dir. lgica

F
dir. fsica

Memoria fsica

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

43

Paginacin/Ejemplo

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

44

Estructura de la tabla de pginas


Depende del SO Denominador comn

Una tabla de pginas para cada proceso BCP


cmo localiza el SO la tabla de pginas de un proceso?

Contador de instrucciones, registros, info. de E/S, etc... Y Puntero a la tabla de pginas

Qu ocurre en un cambio de contexto?

Despachador cargar los registros con los valores del nuevo proceso y A partir de la tabla de pginas almacenada, cargar los valores correctos de la tabla de pginas en hardware !!

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

45

Implementacin en hardware de la tabla de pginas

Conjunto de registros dedicados

Ejemplo: Computador DEC PDP-11

la direccin consiste en 16 bits y el tamao de pgina es de 8k)


16 bits Direccin 3 bits 13 bits

La tabla de pginas consta por tanto de ocho entradas que se mantienen en registros rpidos

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

46

Implementacin en hardware de la tabla de pginas

Esquema de registros

Problema: tablas de pginas grandes Mantener la tabla de pginas en memoria Registro base de la tabla de pginas (RBTP) que apunta a la TP

Solucin

Cambio de contexto: ms rpido (slo cambiar el valor de este registro) Gran inconveniente: tiempo de traduccin

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

47

TLB

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

48

Implementacin en hardware de la tabla de pginas

Solucin: usar un TLB (translation


lookahead buffer)

Pequeo cache especial en hardware Cada registro consta de dos partes: clave y valor Funcionamiento:

Se presenta una clave y, si encuentra alguna coincidencia, devuelve el valor correspondiente

Permite bsquedas rpidas pero el hardware es costoso

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

49

TLB

Funcionamiento: acceso posicin i


Obtiene el nmero de pgina donde se encuentra i Si est en TLB => Obtenemos el marco de pgina donde se encuentra sino, acceso a la tabla de pginas y actualizar TLB

Si TLB llena => Sustitucin de una de las existentes

OJO, cambio de contexto

Desalojar (borrar) el TLB

T13

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

50

TLB

Tasa de aciertos

porcentaje de las veces que un nmero de pgina se encuentra en los registros asociativos relacionada con el nmero de registros asociativos 16-512 => pueden obtenerse tasas de aciertos entre 80 y 98%. Motorola 68030 => TLB de 22 entradas Intel 80486 => TLB de 32 entradas

Ejemplos

Sus fabricantes dicen que tiene una tasa de aciertos del 98%

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

51

Paginacin

La gestin del espacio libre consiste simplemente en saber qu marcos estn libres El SO posee una tabla de marcos de pginas (TMP)

Implementacin?

T14

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

52

Paginacin/Marcos Libres

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

53

Paginacin

Pequeo inconveniente: fragmentacin interna

Tamao de las pginas?

Pequeo

mejora fragmentacin interna Aumenta el tamao de la tabla de pgina Peor desde el punto de vista de la fragmentacin interna Tamao de las tablas de pginas menor La E/S de disco es ms eficiente cuando la cantidad de datos transferidos es mayor Aumentar a medida que los procesos, los conjuntos de datos y la memoria principal se han vuelto ms grandes 2-4 Kbytes

Grande

Tendencia en los ltimos aos

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

54

Proteccin

Las pginas pueden tener asignados bits de proteccin (ej. lectura, escritura, ejecucin) Bit de validez/no validez

Indica si la pgina correspondiente est en el espacio de direcciones lgico del proceso y por tanto es vlida

T15

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

55

Bit Validez

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

56

Proteccin

Sin embargo, un proceso casi nunca utiliza todo su intervalo de direcciones

En estos casos sera un desperdicio crear una tabla de pginas con entradas para todas las pginas del intervalo de direcciones

Algunos sistemas: registro de longitud de la tabla de pginas (RLTP)

Indica el tamao de la tabla de pgians y se coteja con cada direccin lgica para asegurar que la direccin est en el intervalo valido para el proceso

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

57

Comparticin

Varios procesos podran tener la misma memoria fsica apuntada en sus respectivas tablas de pginas La comparticin de cdigo exige que el cdigo sea reentrante, es decir, no puede modificarse a s mismo

T16

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

58

Comparticin de pginas

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

59

Paginacin de varios niveles

Sistemas modernos => espacio de direcciones lgico muy grande (232 a 264) Problema: tamao de la tabla de pginas

Por ejemplo, si tamao de pgina es de 4k, un proceso podra requerir hasta 4 Mb de espacio fsico para la tabla de pginas Solucin: paginar la tabla de pginas, teniendo varios niveles de pginas (ej. 80386)

T17

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

60

Paginacin varios niveles

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

61

Tabla de pginas invertidas

Problema: tamao que puede llegar a ocupar la tabla de pginas Idea: usar una tabla de pginas invertida

Tiene una entrada por cada marco real de la memoria Cada entrada consiste en la pgina virtual almacenada en dicho marco y el proceso al que pertenece Por tanto, slo hay una tabla de pginas en el sistema que contiene una entrada por cada marco de pgina
T18

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

62

T.Pginas Invertidas

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

63

Tabla de pginas invertidas

Ventajas

Reduce la cantidad de memoria necesaria Tiempo de bsqueda en la tabla de pginas invertida Soluciones:

Desventaja

Tabla de dispersin (hash) Registros asociativos (cach)

Jos Miguel Santos Espino - Alexis Quesada Arencibia - ULPGC

64

Esquema combinado segmentado/paginado

La paginacin y la segmentacin pueden combinarse (ej. MULTICS, 80386). Motivacin: aprovecharse de las ventajas que ofrecen los esquemas por separado

Segmentacin: flexibilidad y facilidad para la organizacin lgica Paginacin: mejorar el problema de la fragmentacin

T19

Anda mungkin juga menyukai