Vous êtes sur la page 1sur 27

Gestion de la Memoria

Operating System Concepts – 8th Edition 4.1 Silberschatz, Galvin and Gagne ©2009
Manejo de memoria

 Antecedentes
 Swapping(intercambio)
 Asignación de memoria contigua
 Paginación
 Estructura de la tabla Página
 Segmentación

Operating System Concepts – 8th Edition 4.2 Silberschatz, Galvin and Gagne ©2009
Objetivos

 Proveer descripciones detalladas de distintas formas de


organizar el hardware de memoria
 Discutir las distintas técnicas de manejo de memoria,
incluyendo paginación y segmentación

Operating System Concepts – 8th Edition 4.3 Silberschatz, Galvin and Gagne ©2009
Introduccion

 Hemos visto como la CPU puede compartir su uso con


un conjunto de procesos; como resultado la planificacion
de la CPU permite mejorar la utilizacion y la velocidad de
respuesta.
 Pero, para lograr esta mejora se requiere mantener
varios procesos en memoria, es decir, debemos
“compartir” la memoria.
 Por ello examinaremos varias formas de administrar la
memoria…. La seleccion de alguno de estos metodos
depende de muchos factores, principalmente del diseño
del hadware del sistema

Operating System Concepts – 8th Edition 4.4 Silberschatz, Galvin and Gagne ©2009
Antecedentes

 Son 05 los pasos que se siguen para que resulte un


proceso en ejecución:
 Codificación: en un lenguaje ya sea de bajo o alto
nivel.
 Traducción: por ejemplo con un compilador para
crear un modulo objeto.
 Ligación: entre los modulados generados.
 Carga: cuando se llevan los procesos a la
memoria.
 Ejecución.

Operating System Concepts – 8th Edition 4.5 Silberschatz, Galvin and Gagne ©2009
Antecedentes

 Un programa debe traerse (del disco) a la memoria y


colocarse dentro de un proceso para su ejecución.
 La memoria es un gran arreglo de palabras o bytes.
 El CPU puede acceder exclusivamente a la memoria
principal y los registros.
 Cache está entre la memoria principal y los registros.
 Se requiere de protección de memoria para asegurar
la correcta operación.

Operating System Concepts – 8th Edition 4.6 Silberschatz, Galvin and Gagne ©2009
Registros base y límite

 Un par de registros base y límite definen el espacio


lógico de direcciones

Operating System Concepts – 8th Edition 4.7 Silberschatz, Galvin and Gagne ©2009
Protección de direcciones de HW
con registros base y límite

Operating System Concepts – 8th Edition 4.8 Silberschatz, Galvin and Gagne ©2009
Vinculación de instrucciones y datos a memoria

 La vinculación de instrucciones y datos a direcciones de


memoria puede suceder en tres etapas
 Tiempo de compilación: Si se conoce la localidad de
memoria en la que va residir el proceso en la
compilación, se puede generar código absoluto. Si es
así, se debe recompilar si la localidad de inicio cambia.
 Tiempo de cargado: Si no se conoce donde residirá el
proceso en memoria, el compilador deberá generar
código relocalizable(reubicable), entonces se retarda
la reasignación o vinculación hasta el momento de la
carga… Si la dirección inicial cambia, tan solo es
necesario volver a cargar el código…

Operating System Concepts – 8th Edition 4.9 Silberschatz, Galvin and Gagne ©2009
Vinculacion de instrucciones y datos a memoria

 La vinculacion de instrucciones y datos a direcciones de


memoria puede suceder en tres etapas

 Tiempo de ejecución: la reasignacion o vinculacion se


retrasa hasta tiempo de ejecución, si el proceso puede
desplazarse de una ubicacion a otra en la memoria
durante su ejecución. Para que este esquema funcione
requiere soporte de hardware …. Como por ejemplo,
registro de reubicacion.

Operating System Concepts – 8th Edition 4.10 Silberschatz, Galvin and Gagne ©2009
Pasos en el procesamiento de un programa de
usuario

Operating System Concepts – 8th Edition 4.11 Silberschatz, Galvin and Gagne ©2009
Espacio de direcciones físico vs. lógico

 El concepto de espacio de direcciones lógico asociado


a distintos espacios de direcciones físicas es central
para el manejo de memoria:
 Dirección lógica – generada por el CPU; también
conocida como dirección virtual.
 Dirección física – dirección vista por la unidad de
memoria.
 Las direcciones lógicas y físicas son idénticas en
tiempo de compilación y cargado; en cambio estas ,
direcciones lógicas (virtuales) y físicas difieren en
tiempo de ejecución.

Operating System Concepts – 8th Edition 4.12 Silberschatz, Galvin and Gagne ©2009
Unidad de Manejo de Memoria (MMU)

 Dispositivo de hardware que mapea direcciones logica


o virtuales a físicas en tiempo de ejecucion: MMU

 En el esquema MMU, existen varios metodos distintos


para establecer dicho mapeo o correspondecia,
evaluaremos un esquema simple del MMU que es una
generalizacion del esquema del registro base:
resgistro de reubicacion(relocalizacion).

Operating System Concepts – 8th Edition 4.13 Silberschatz, Galvin and Gagne ©2009
Unidad de Manejo de Memoria (MMU)

 Con el resgistro de reubicacion, el valor en el


registro de reubicacion se añade a cada
dirección generada por un proceso de usuario
al momento de enviarla a la memoria.

 El programa de usuario trabaja con


direcciones lógicas; nunca ve las direcciones
físicas reales

Operating System Concepts – 8th Edition 4.14 Silberschatz, Galvin and Gagne ©2009
Relocalización dinámica utilizando un registro
de relocalización

Operating System Concepts – 8th Edition 4.15 Silberschatz, Galvin and Gagne ©2009
Carga dinámica

 La rutina es cargada hasta que es llamada.


 Mejor utilización de espacio de memoria; una
rutina que no se utiliza, no se carga.
 Útil cuando grandes cantidades de código se
requieren para manejar casos poco frecuentes,
como por ejemplo, las rutinas de error.
 No se requiere soporte del sistema operativo, se
implementa a través del diseño del programa.

Operating System Concepts – 8th Edition 4.16 Silberschatz, Galvin and Gagne ©2009
Enlace dinámico

 Se pospone el ligado hasta tiempo de ejecución.


 Un pedacito de código, stub, se utiliza para
localizar la rutina apropiada residente en memoria.
 Stub se sustituye a sí misma con la dirección de la
rutina y ejecuta la rutina.
 El sistema operativo verifica si la rutina está en una
dirección de memoria de otro proceso.
 Enlace dinámico es útil para bibliotecas.
 Sistema de conoce como biboliotecas
compartidas

Operating System Concepts – 8th Edition 4.17 Silberschatz, Galvin and Gagne ©2009
Intercambio(swapping)
 Un proceso debe estar en memoria para ser ejecutado.

 Un proceso puede ser removido (swapped) temporalmente


fuera de la memoria a un almacenamiento de respaldo y
después de regreso a memoria para continuar su ejecución.

 Almacenamiento de respaldo – disco rápido y lo


suficientemente grande para acomodar copias de toda las
imágenes de memoria de los usuarios; debe permitir acceso
directo a estas imágenes.

 Mayor parte del tiempo de swap es tiempo de transferencia;


tiempo total de transferencia es directamente proporcional a
la cantidad de memoria movida.

 Debera traerse el proceso a la misma direccion???

Operating System Concepts – 8th Edition 4.18 Silberschatz, Galvin and Gagne ©2009
Vista esquemática de swapping

Operating System Concepts – 8th Edition 4.19 Silberschatz, Galvin and Gagne ©2009
Intercambio(swapping)
 No todos los procesos se pueden intercambiar, es
decir no todos pureden ser movidos al area de
intercambio, se debe tener especial cuidado con
aquellos que estan en espera por un evento de
E/S.

 Que pasa si se intercambia un proceso que tuvo


que ubicarse una cola de dispositivo porque este
estaba ocupado? Cuando acceda al dispositivo,
por la operacion solicitada, quiza querra acceder a
un espacio de direccion que ya no le pretenece al
proceso que solicito dicho evento.

 Se podria solucionar con buffers del sistema


operativo.
Operating System Concepts – 8th Edition 4.20 Silberschatz, Galvin and Gagne ©2009
Intercambio(swapping)

 Versiones modificadas de swapping se


encuentran en varios sistemas (i.e., UNIX, Linux,
and Windows)

 Por ejemplo, en los sistemas Unix el mecanismo


de intercambio esta desactivado… solo se activa
que el espacio ocupado en memoria sobrepasa
un umbral… y se desactiva cuando el sistema ya
no es exigido.

Operating System Concepts – 8th Edition 4.21 Silberschatz, Galvin and Gagne ©2009
Asignación de memoria contigua
 Memoria principal usualmente en dos particiones:
 Sistema operativo residente, usualmente se
mantiene en memoria baja, por el vector de
interrupciones.
 Procesos de usuario se mantienen en memoria
alta.

Operating System Concepts – 8th Edition 4.22 Silberschatz, Galvin and Gagne ©2009
Asignación de memoria contigua
Mapeo de memoria y proteccion
 Para ello utilizaremos lo revisado anteriormente: registro de
reubicacion y el registro limite. Utilizados para proteger los
procesos de usuario entre sí y también de datos y código
cambiante del sistema operativo
 El registro de reubicacion, tambien conocido como de
relocalización, contiene el valor de la dirección física más
pequeña o menor.
 El registro límite contiene el rango de direcciones lógicas
– toda dirección lógica debe ser menor que el registro
limite.
 MMU mapea direcciones lógicas dinámicamente

Operating System Concepts – 8th Edition 4.23 Silberschatz, Galvin and Gagne ©2009
Protección de direcciones de HW con registros de
reubicacion y límite

Operating System Concepts – 8th Edition 4.24 Silberschatz, Galvin and Gagne ©2009
Asignación de memoria contigua (Cont.)
 Asignación de particiones múltiples
 Hueco(hoyo) – bloque de memoria disponible, bloques libres;
huecos de distintos tamaños distribuidos en la memoria.
 Cuando un proceso llega, es asignado en un hueco de memoria
lo suficientemente grande para acomodarlo.
 Sistema operativo mantiene información acerca:
a) particiones(bloques) asignadas b) particiones libres (huecos).

OS OS OS OS

process 5 process 5 process 5 process 5


process 9 process 9

process 8 process 10

process 2 process 2 process 2 process 2

Operating System Concepts – 8th Edition 4.25 Silberschatz, Galvin and Gagne ©2009
Problema asignación dinámica de
almacenamiento
¿Cómo satisfacer una solicitud de tamaño n de una lista
de huecos libres?
 First-fit(primer ajuste): Asigna el primer hueco(hoyo) lo
suficientemente grande.
 Best-fit(mejor ajuste): Asigna el hueco(hoyo) más
pequeño que tenga el tamaño suficiente; debe buscar toda
la lista, a menos que esté ordenada.
 Produce el hueco sobrante (hoyo) más pequeño
 Worst-fit(peor ajuste): Asigna el hueco(hoyo) más grande;
también busca en toda la lista
 Produce el sobrante(hueco) más grande

First-fit y best-fit mejores que worst-fit en términos de


velocidad y utilización de almacenamiento

Operating System Concepts – 8th Edition 4.26 Silberschatz, Galvin and Gagne ©2009
Final

Operating System Concepts – 8th Edition 4.27 Silberschatz, Galvin and Gagne ©2009

Vous aimerez peut-être aussi