SISTEMAS OPERATIVOS
(Sesión 8)
1. Conceptos de Memoria
2. Objetivos de la Memoria Real
3. Jerarquía de la Memoria
4. Modelo de proceso de memoria
5. Organización y Asignación de Memoria
Administración de memoria
Componentes de un SO
Administrador de
Memoria
Administrar el intercambio entre la
memoria principal y el disco
¿Que es Gestión de la Memoria?
Problemas al compartir
memoria:
• Si una posición de la zona
de memoria tiene
referencia a otra posición
dentro de la misma zona
de memoria:
- En la zona de código
podría darse este caso
cuando se tiene una
condición de bifurcación.
- En la zona de datos
podría darse el caso
cuando se almacena una
lista con punteros.
Objetivos de la Gestión de Memoria
Memoria Virtual
La memoria virtual es una técnica para proporcionar la
simulación de un espacio de memoria mucho mayor que la
memoria física de una máquina.
Esto permite que los programas se hagan sin tener en cuenta el
tamaño exacto de la memoria física
Tiempo de Acceso a distintas memorias
Niveles de Gestión de Memoria
Compilación:
Se asignan direcciones a
los símbolos definidos Módulo Módulo
Resuelve referencias a los fuente A fuente B
Gestión del SO
• Almacenar en el BCP los registros límite y base del proceso. Y
carga dichos registros cuando se activa un proceso.
• Mantiene información sobre el estado de ocupación de la
memoria
- Utiliza estructuras de datos que identifican huecos y zonas
asignadas
• Bajo este esquema se genera fragmentación externa:
- Se generan pequeños fragmentos libres entre zonas
asignadas.
- Posible solución : compactación. Sin embargo, este puede
ser un proceso muy costoso.
Esquema de memorias basados en asignación contigua
La memoria principal es un
arreglo de palabras o bytes,
cada uno de los cuales tiene
una dirección (espacio de
direcciones).
La interacción es lograda a
través de un conjunto de
lecturas y escrituras a
direcciones especificas
realizadas por los procesos.
Organización Lógica de la Memoria
Para que un proceso se ejecute se requiere ubicarlo en
memoria principal junto con los datos que direcciona.
Para optimizar el uso del computador se requiere tener
varios procesos en memoria principal. (grado de
multiprogramación)
Organización Lógica de la Memoria
La memoria principal es
pequeña como para
acomodar todos los
programas y datos
permanentemente.
Por lo que es necesario
implementar
mecanismos de memoria
virtual.
La memoria virtual es
una técnica para dar la
ilusión de tener más
memoria que la memoria
principal.
Esquemas de Gestión de Memoria de Sistemas
Memoria real
- Asignación contigua
- Segmentación
Memoria virtual
- Paginación
- Segmentación paginada
Esquemas de Gestión de Memoria de Sistemas
Asignación contigua: Si bien la asignación contigua podría utilizarse tanto
en sistemas de memoria real como virtual, solamente se justifica su
utilización en sistemas de memoria real. En este caso, el proceso recibe
una única zona contigua de memoria principal, delimitada por una
dirección de comienzo y un tamaño o una dirección de final, como
muestra la figura
Esquemas de Gestión de Memoria de Sistemas
Segmentación: La segmentación es una extensión del sistema contiguo,
en el que se le asignan al proceso varias zonas o segmentos de memoria
principal contigua, típicamente, una por región.
Las operaciones de crear y duplicar una imagen requieren buscar, para
cada región del proceso, una zona libre de la memoria principal donde
quepa dicha región.
Esquemas de Gestión de Memoria de Sistemas
Memoria virtual. Paginación: El esquema de gestión basado en memoria
virtual es el utilizado prácticamente por la totalidad de los sistemas
operativos de propósito general actuales, como Windows o Linux.
La creación y duplicación de una imagen requiere la creación de la
correspondiente tabla de paginas y la creación de las regiones que tenga
la imagen. Eliminar la imagen consiste en eliminar la correspondiente
tabla de paginas, recuperando el espacio que ocupa. Además, hay que
eliminar las regiones que componen la imagen, recuperando los recursos
de almacenamiento que tengan asignados.
Esquemas de Gestión de Memoria de Sistemas
Compartir memoria: En un sistema con memoria virtual los procesos
pueden fácilmente compartir memoria. En efecto, como muestra la figura,
basta con que los procesos compartan una subtabla de segundo nivel.
Esquemas de Gestión de Memoria de Sistemas
Segmentación paginada: La segmentación paginada consiste en emplear
los dos mecanismos descritos anteriormente. Existe un primer nivel de
definición de segmentos, y un segundo nivel de paginación, estando cada
segmento paginado de forma individual. La figura muestra esta secuencia.
Ciclo de vida un programa
En general, las aplicaciones se desarrollan utilizando lenguajes de alto nivel,
dividiendo la funcionalidad en varios módulos (ficheros de código fuente), para
facilitar, de esta manera, un desarrollo incremental, el mantenimiento y la
reutilización del código.
Una vez preparados los módulos fuente, estos deben pasar por varias fases, como
muestra la figura, hasta que se carga el ejecutable en memoria formando la imagen
del correspondiente proceso:
Compilación.
Montaje o enlace.
Carga.
Ejecución.
Muchas Gracias!!!
mhuapaya.chu@gmail.com