Está en la página 1de 30

Administracin de Memoria

Mdulo 8
Departamento de Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur

Mdulo 8: Administracin de Memoria


Base

Intercambio (Swapping)
Alocacin Contigua Paginado Estructura de la Tabla de Pginas Segmentacin Ejemplo: Pentium de Intel

JRA 2009

Sistemas Operativos Administracin de Memoria

Objetivos
Proveer con descripcin detallada distintas formas

de organizar el hardware de memoria.


Discutir varias tcnicas de administracin de

memoria, incluyendo paginacin y segmentacin.


Proveer una descripcin detallada del Intel

Pentium, la cual soporta segmentacin pura y segmentacin con paginado.

JRA 2009

Sistemas Operativos Administracin de Memoria

Base
El programa debe ser trado del disco a la memoria y ubicado dentro de un proceso para ser corrido. La memoria principal y los registros son las nicas unidades de almacenaje accedidas directamente por la CPU. El acceso a los registros se hace en un pulso de reloj de CPU o menos. La memoria principal puede tomar muchos ciclos. El Cach se ubica entre la memoria principal y los registros de CPU. Para asegurar una correcta operacin se requiere cierta proteccin de memoria.

JRA 2009

Sistemas Operativos Administracin de Memoria

Gestin de la memoria
Subdividir la memoria para acomodar mltiples procesos Es necesario asignar la memoria para asegurar una

cantidad razonable de procesos listos que consuman el tiempo de procesador disponible

JRA 2009

Sistemas Operativos Administracin de Memoria

Requisitos de la gestin de la memoria


Reubicacin

El programador no sabe en qu parte de la memoria principal se situar el programa cuando se ejecute Mientras el programa se est ejecutando, ste puede llevarse al disco y traerse de nuevo a la memoria principal en un rea diferente (reubicado) Deben traducirse las referencias de memoria encontradas en el cdigo del programa en direcciones de memoria fsicas

JRA 2009

Sistemas Operativos Administracin de Memoria

Requisitos de la gestin de la memoria


Informacin de control de proceso
Bloque de control de proceso

Punto de entrada al programa

Programa

Instrucciones de salto

Valores de direcciones crecientes

Datos

Referencia de datos

Extremo actual de la pila

Pila

Requisitos de direccionamiento para un proceso

JRA 2009

Sistemas Operativos Administracin de Memoria

Requisitos de la gestin de la memoria


Proteccin

Los procesos no deberan ser capaces de referenciar sin permiso posiciones de memoria principal de otro proceso

Es imposible comprobar las direcciones absolutas en el tiempo de compilacin Deben comprobarse en el tiempo de ejecucin Es el procesador (hardware), en lugar del sistema operativo, el que debe satisfacer el requisito de proteccin de memoria. El sistema operativo no puede anticipar todas las referencias de memoria que un programa har

JRA 2009

Sistemas Operativos Administracin de Memoria

Requisitos de la gestin de la memoria


Comparticin

Permite a varios procesos acceder a la misma porcin de memoria principal Es mejor permitir que cada proceso pueda acceder a la misma copia del programa en lugar de tener su propia copia separada

JRA 2009

Sistemas Operativos Administracin de Memoria

Requisitos de la gestin de la memoria


Organizacin lgica

Los programas estn escritos en mdulos Los mdulos se pueden escribir y compilar independientemente Se pueden proporcionar diferentes grados de proteccin a los mdulos (slo lectura, slo ejecucin) Se pueden compartir mdulos entre los procesos

JRA 2009

Sistemas Operativos Administracin de Memoria

Requisitos de la gestin de la memoria


Organizacin fsica

La memoria principal disponible para un programa ms sus datos podra ser insuficiente
La

superposicin (overlaying) permite asignar la misma regin de memoria a varios mdulos

El programador no conoce cunto espacio estar disponible

JRA 2009

Sistemas Operativos Administracin de Memoria

Mapeo de Instrucciones y Datos a Direcciones de Memoria


El mapeo de instrucciones y datos a direcciones de memoria puede ocurrir en tres etapas diferentes.
Tiempo de Compilacin: Si la locacin de memoria

es conocida a priori, puede ser generado cdigo absoluto; debe recompilar si la direccin de comienzo cambia. Tiempo de Carga: Debe generar cdigo reubicable si la locacin de memoria no es conocida en tiempo de compilacin. Tiempo de Ejecucin: El mapeo es retrasado hasta el momento de corrida, el proceso puede ser movido durante su ejecucin de un segmento de memoria a otro. Necesita soporte de hardware para el mapeo de las direcciones (p.e., registros base - lmite).
JRA 2009 Sistemas Operativos Administracin de Memoria

Carga Dinmica
Las rutinas no son cargadas hasta que son llamadas. Mejor utilizacin del espacio de memoria; las rutinas no

usadas no son cargadas.


Es til cuando hay que manejar grandes cantidades de

cdigo para casos poco frecuentes.


No requiere un soporte especial del sistema operativo.

JRA 2009

Sistemas Operativos Administracin de Memoria

Enlace Dinmico
El enlace es pospuesto hasta el tiempo de ejecucin. Se usan pequeos pedazos de cdigo, stub, para

localizar las rutinas apropiadas de la librera residente en memoria.


El stub se reemplaza a s mismo con la direccin de la

rutina y la ejecuta.
El sistema operativo necesita verificar si la rutina est

en las direcciones de memoria del proceso.

JRA 2009

Sistemas Operativos Administracin de Memoria

Mapeo de Direcciones

tiempo comp Fuente Objeto

tiempo carga
Mdulo Carga Imagen Ejecutable

Compilador

Linker

Cargador

Libreras Objeto

Libreras Sistema

Libreras Dinmicas

JRA 2009

Sistemas Operativos Administracin de Memoria

Espacio de Direcciones Lgico vs. Fsico


El concepto de espacio de direcciones lgico que est

limitado a un espacio de direcciones fsicas separado es central a la administracin de la memoria.


Direccin Lgicas generadas por la CPU; tambin llamadas direcciones virtuales. Direccin Fsica direccin vista por la unidad de memoria.

Las direcciones lgicas y fsicas son las mismas en

tiempo de compilacin y en los esquemas de mapeo de direcciones en tiempo de carga; las direcciones lgicas (virtuales) y fsicas difieren en el esquema de mapeo de direcciones en tiempo de ejecucin.
JRA 2009 Sistemas Operativos Administracin de Memoria

Unidad de Administracin de Memoria (MMU)


Dispositivo hardware que mapea las direcciones

virtuales a las fsicas.


En el esquema MMU , el valor en el registro de

locacin es agregado a cada direccin generada por el proceso del usuario en el momento que es presentada a la memoria.
Los programas de usuario ven direcciones lgicas,

nunca ven direcciones fsicas reales.

JRA 2009

Sistemas Operativos Administracin de Memoria

Unidad de Administracin de Memoria (MMU)


instruccin
direccin lgica 1352

registro relocacin

12000

+
13352

direccin fsica

unidad de memoria

JRA 2009

Sistemas Operativos Administracin de Memoria

Intercambio (Swapping)
Un proceso puede ser intercambiado (swapped) temporaria-

mente fuera de la memoria a un almacenamiento de respaldo (backing store), y luego ser vuelto a la misma para continuar su ejecucin.
Backing store espacio en disco lo suficientemente grande

para acomodar copias de todas las imgenes de memoria de todos los usuarios, debe proveer acceso directo a todas estas imgenes de memoria. Roll out, roll in variante del intercambio usado en algoritmos de planificacin basados en prioridades; procesos con baja prioridad son intercambiados con procesos de alta prioridad que pueden ser cargados y ejecutados. La mayor parte del tiempo de intercambio es tiempo de transferencia y es directamente proporcional a la cantidad de memoria intercambiada.
JRA 2009 Sistemas Operativos Administracin de Memoria

Visin Esquemtica del Intercambio


Sistema Operativo
swap out P1 P2

swap in

JRA 2009

Sistemas Operativos Administracin de Memoria

10

Alocacin Contigua
La memoria principal se divide, usualmente en dos

particiones: Parte residente del sistema operativo, generalmente en memoria baja con el vector de interrupciones. Los procesos de usuario se mantienen en la parte alta de la memoria. Alocacin en particin simple Se usa un esquema de registro de relocacin para proteger los procesos de usuario uno de otro, y cambio en el cdigo y datos del SO. El registro de relocacin contiene el valor de la direccin fsica mas pequea; el registro lmite contiene el rango de las direcciones lgicas cada direccin lgica debe ser menor que el registro lmite.
JRA 2009 Sistemas Operativos Administracin de Memoria

Alocacin Contigua (Cont.)

Sistema
base

Proceso Usuario 1
lmite

Proceso Usuario 2

JRA 2009

Sistemas Operativos Administracin de Memoria

11

Alocacin Contigua (Cont.)


Alocacin en mltiple particin

Agujero bloque de memoria disponible; hay agujeros de variados tamaos esparcidos por la memoria. Cuando un proceso llega, es alocado en memoria en un agujero suficientemente grande para alojarlo. El SO mantiene informacin sobre: a) particiones alojadas b) particiones libre (agujero)
SO
proceso 5 proceso 8 proceso 2 proceso 2 proceso 2
SO SO SO SO SO SO

proceso 5

proceso 5 proceso 9

proceso 5 proceso 9 proceso 10 proceso 2

JRA 2009

Sistemas Operativos Administracin de Memoria

Problema de Alocacin Dinmica


Como satisfacer un requerimiento de tamao n de una lista de agujeros libres
Primer lugar: Aloca en el primer agujero lo suficientemente

grande. Prximo lugar: Aloca en el prximo lugar luego de haber usado el primero. Mejor lugar: Aloca en el agujero mas chico que lo puede alojar; debe buscar en la lista completa, salvo que sea ordenada por tamao. Produce el agujero restante mas chico. Peor lugar: Aloca el agujero mas grande; debe buscar en la lista completa. Produce el agujero restante mas grande.
El primer lugar y el mejor lugar son mejores que el peor lugar en trminos de velocidad y utilizacin del almacenamiento.
JRA 2009 Sistemas Operativos Administracin de Memoria

12

Primer-ajuste

Mejor-ajuste ltimo bloque asignado

Bloque asignado Bloque libre Nueva posible asignacin Prximo-ajuste

(a) Antes

(b) Despus

Ejemplo de configuracin de la memoria antes y despus de la asignacin de un bloque de 16 Mbytes


JRA 2009 Sistemas Operativos Administracin de Memoria

Buddy System (Alocacin)


Es un sistema de alocacin de memoria utilizado por algunos sistemas operativos.
El espacio completo disponible es tratado como un

bloque de tamao 2U
Si un requerimiento de tamao s tal que 2U-1 < s <= 2U,

es alocado el bloque completo.


De otra manera el bloque es dividido en dos compaeros iguales.

El proceso continua hasta que es generado el bloque mas pequeo mayor o igual que s.

JRA 2009

Sistemas Operativos Administracin de Memoria

13

Buddy System (Alocacin)


1 bloque de 1 Mbyte Solicitar 100K Solicitar 240K Solicitar 64K Solicitar 256K Liberar B Liberar A Solicitar 75K Liberar C Liberar E Liberar D

Ejemplo de sistema Buddy Ejemplo de sistema Buddy

JRA 2009

Sistemas Operativos Administracin de Memoria

Buddy System (Alocacin)

Representacin en forma de rbol del sistema Buddy

JRA 2009

Sistemas Operativos Administracin de Memoria

14

Fragmentacin
Fragmentacin Externa existe espacio de memoria para

satisfacer una demanda, pero no es contiguo. Fragmentacin Interna la memoria ocupada puede ser ligeramentemas grande que la demandada; esta diferencia de tamao es memoria interna de la particin, pero no es usada. Se reduce la fragmentacin externa por compactacin Mueva el contenido de memoria de modo de dejar toda la memoria libre en un solo bloque.

La compactacin es posible solo si la relocacin es dinmica, y es hecha en tiempo de ejecucin. Problema de E/S Dejar el job en memoria mientras est involucrado en una E/S. Hacer E/S solo en los buffers del SO.
JRA 2009 Sistemas Operativos Administracin de Memoria

Fragmentacin (Cont.)

P1

P2

P3

JRA 2009

Sistemas Operativos Administracin de Memoria

15

Fragmentacin (Cont.)

P1 P4

P5

P3

JRA 2009

Sistemas Operativos Administracin de Memoria

Fragmentacin (Cont.)

P1

P5

P3

Fragmentacin Externa

P6

JRA 2009

Sistemas Operativos Administracin de Memoria

16

Paginado
El espacio de direcciones puede no ser contiguo; el


JRA 2009

proceso es alojado en la memoria fsica donde haya lugar. Se divide a la memoria fsica en bloques de tamao fijo llamados cuadros ( el tamao es potencia de 2, entre 512 bytes y 8192 bytes). Se divide a la memoria lgica en bloques de tamao similar llamados pginas. Se guarda informacin de todos los cuadros libres. Para correr un programa de n pginas, se necesita encontrar n cuadros libres y cargar el programa. Se establece una tabla de pginas para traducir las direcciones lgicas a fsicas. Fragmentacin interna.
Sistemas Operativos Administracin de Memoria

Esquema de Traduccin de Direcciones


La direccin generada por la CPU est dividida en:

Nmero de pgina (p) usado como un ndice en la tabla de pginas la cual contiene la direccin base de cada pgina en la memoria fsica. Desplazamiento en la pgina (d) combinado con la direccin base para definir direccin fsica de memoria que es enviada a la unidad de memoria.
num pagina desplazamiento p m-n d n

Para un espacio de direcciones 2m y tamao de pgina 2n


Sistemas Operativos Administracin de Memoria

JRA 2009

17

Hardware de Paginado

direccin lgica

direccin fsica

tabla de pginas

memoria lgica

JRA 2009

Sistemas Operativos Administracin de Memoria

Modelo de Paginado de Memoria Lgica y Fsica


nmero de cuadro

Tabla de pginas memoria lgica

memoria fsica

JRA 2009

Sistemas Operativos Administracin de Memoria

18

Ejemplo de Paginado

Tabla de pginas memoria lgica

memoria fsica Memoria de memory 32 bytesand y pginas 4bytes 32-byte 4-byte de pages
JRA 2009 Sistemas Operativos Administracin de Memoria

Cuadros Libres

AntesBefore de la alocacin allocation


JRA 2009

After allocation Despues de la alocacin

Sistemas Operativos Administracin de Memoria

19

Implementacin de la Tabla de Pginas


La tabla de pginas es guardada en memoria principal. El registro base de tablas de pginas (PTBR) apunta a

la tabla de pginas.
El registro de longitud de la tabla de pginas (PRLR)

indica el tamao de la tabla de pginas. En este esquema cada acceso a instruccin/dato requiere dos accesos a memoria. Uno para la tabla de pginas y otro para el instruccin/dato. El problema del doble acceso puede ser resuelto por el uso de un cache hardware especial de adelantamiento llamado registro asociativo o translation look-aside buffers (TLBs)

JRA 2009

Sistemas Operativos Administracin de Memoria

Registro Asociativo
Registro Asociativo bsqueda paralela
pgina # cuadro #

Traduccin de direccin (p, d)


Si p es un registro asociativo, tome el cuadro # . Sino tome el cuadro # desde la tabla de pginas en memoria.

JRA 2009

Sistemas Operativos Administracin de Memoria

20

Hardware de Paginado con TLB

JRA 2009

Sistemas Operativos Administracin de Memoria

Tiempo Efectivo de Acceso


Bsqueda Asociativa = unidad de tiempo Suponga que el ciclo de memoria es de 1

microsegundo
Relacin de acierto porcentaje de veces que la

pgina es encontrada en los registros asociativos; est relacionado con el nmero de registros asociativos.
Relacin de acierto =
Tiempo Efectivo de Acceso (TEA)

TEA = (1 + ) + (2 + )(1 ) =2+


JRA 2009 Sistemas Operativos Administracin de Memoria

21

Proteccin de Memoria
La proteccin de memoria se implementa asociando

un bit con cada cuadro.


Un bit de vlido-invlido agregado a cada entrada en

la tabla de pginas:

vlido indica que la pgina asociada est en el espacio de direcciones lgicas del proceso, por lo tanto es una pgina legal.

invlido indica que la pgina no est en el espacio de direcciones lgicas del proceso.

JRA 2009

Sistemas Operativos Administracin de Memoria

Bit de Vlido (v) o Invlido (i) en una Tabla de Pginas

JRA 2009

Sistemas Operativos Administracin de Memoria

22

Tablas de Pginas con Hash


Comn en espacio de direcciones > 32 bits Un nmero de pgina virtual es pasada por hash

en la tabla de pginas. Esta tabla de pginas contiene una cadena de elementos pasados por hash a la misma locacin.
Los nmeros de pginas virtuales son

comparados con lo que existe en estas cadenas. Si se encuentra se extrae el correpondiente cuadro fsico.

JRA 2009

Sistemas Operativos Administracin de Memoria

Tablas de Pginas con Hash

JRA 2009

Sistemas Operativos Administracin de Memoria

23

Tabla de Pginas Invertida


Una entrada por cada pgina real de memoria. La entrada consiste de la direccin virtual de la pgina

almacenada en la locacin real de memoria, con informacin del proceso que es dueo de esa pgina.
Decrementa la memoria necesaria para almacenar cada

tabla de pginas, pero incrementa el tiempo necesario para buscar en la tabla cuando ocurre una referencia a una pgina.
Se usa una tabla hash para limitar la bsqueda a una

o a lo sumo unas pocas entrada a la tabla de pginas.

JRA 2009

Sistemas Operativos Administracin de Memoria

Arquitectura de la Tabla de Pgina Invertida

JRA 2009

Sistemas Operativos Administracin de Memoria

24

Pginas Compartidas
Cdigo compartido

Una copia de cdigo de lectura solamente (reentrante) compartido entre procesos (p.e., editores de texto, compiladores, sistemas de ventanas).

El cdigo compartido debe aparecer en la misma locacin en el espacio de direcciones de todos los procesos. Cdigo privado y datos Cada proceso guarda una copia separada de cdigo y datos. Las pginas del cdigo privado y datos puede aparecer en cualquier lugar del espacio de direcciones lgico.
JRA 2009 Sistemas Operativos Administracin de Memoria

Ejemplo de Pginas Compartidas

JRA 2009

Sistemas Operativos Administracin de Memoria

25

Segmentacin
Esquema de administracin de memoria que soporta la

visin de usuario de la memoria.


Un programa es una coleccin de segmentos. Un

segmento es una unidad lgica como: programa principal, procedimiento, funcin, variables locales, variables globales, bloque comn, stack, tabla de smbolos, arreglos
JRA 2009 Sistemas Operativos Administracin de Memoria

Visin Lgica de la Segmentacin

1 1 2 3 4 3 2 4

Espacio de usuario

Espacio de memoria fsica

JRA 2009

Sistemas Operativos Administracin de Memoria

26

Arquitectura de Segmentacin
Direccin lgica consistente de dupla:

< nmero-segmento, offset>, Tabla de Segmentos mapean direccines fsicas en dos dimensiones; cada entrada en la tabla tiene:

base contiene la direccin fsica inicial donde el segmento reside en memoria. lmite especifica la longitud del segmento. registro base de la tabla de segmentos (STBR) apunta a la locacin de la tabla de segmentos en memoria. Registro de longitud de la tabla de segmentos (STLR) indica el nmero de segmentos usados por el programa; el nmero de segmento s es legal si s < STLR.

JRA 2009 Sistemas Operativos Administracin de Memoria

Arquitectura de Segmentacin (Cont.)


Relocacin.

dinmica por tabla de segmentos

Compartir

segmentos compartidos
Igual nmero de segmento Primer lugar/mejor lugar fragmentacin externa

Alocacin.

JRA 2009

Sistemas Operativos Administracin de Memoria

27

Arquitectura de Segmentacin (Cont.)


Proteccin. Con cada entrada en la tabla de

segmentos se asocia:

bit de validacin = 0 segmento ilegal privilegios read/write/execute

Bits de proteccin asociados con segmentos; el cdigo

compartido ocurre a nivel de segmento.


Dado que los segmentos varan en longitud, la

alocacin de memoria es un problema de alocacin dinmica de almacenaje.


Un ejemplo de segmentacin se muestra en el

siguiente diagrama

JRA 2009

Sistemas Operativos Administracin de Memoria

Hardware de Segmentacin

JRA 2009

Sistemas Operativos Administracin de Memoria

28

Ejemplo de Segmentacin

JRA 2009

Sistemas Operativos Administracin de Memoria

Segmentos Compartidos

JRA 2009

Sistemas Operativos Administracin de Memoria

29

Comparacin de Estrategias de Manejo de Memoria


Soporte de Hardware Performance Fragmentacin Relocacin Intercambio (Swapping) Compartir Proteccin

JRA 2009

Sistemas Operativos Administracin de Memoria

Fin
Mdulo 8
Departamento de Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur

30

También podría gustarte