Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
Sistemas Operativos
Administración de
Memoria
Introducción
Un programa debe ser cargado en memoria para ser
ejecutado
La CPU solo puede acceder a la memoria principal y los
registros.
Las registros se acceden en un ciclo de reloj o menos.
.
Sistemas Operativos
Introducción
Como un ideal deseamos memoria en grandes
cantidades, que sea rápida y no volátil.
Ley de Parkinson: “Los programas van creciendo de
forma tal que ocupan la memoria disponible para los
mismos.”
Las memorias son cada vez más rápidas y grandes,
Administrador de Memoria
Funciones que realiza el administrador de memoria:
.
Sistemas Operativos
Administrador de Memoria
Consideraciones para la administración de memoria:
Transparencia
Varios procesos deben poder coexistir en memoria
Ningún proceso debe necesitar saber que la
memoria es compartida
Cada proceso debe ejecutarse sin considerar la
cantidad de procesos, ni la ubicación de los mismos
Seguridad: Ningún proceso debe corromper a otro
Eficiencia: Ni la CPU, ni la memoria deben utilizarse
menos eficientemente por ser compartidas.
.
Sistemas Operativos
Multiprogramación
Varios procesos usuarios en memoria
Mientras un proceso espera por E/S, otro proceso
puede utilizar la CPU -> Incrementa el uso de CPU
Implementación de Multiprogramación
¿Cómo debe organizarse la memoria para poder tener
más de un proceso en ejecución?
Primera aproximación: Particiones fijas
(sin swapping o intercambio de páginas)
Sistemas Operativos
Implementación de Multiprogramación
La multiprogramación introduce dos problemas que
deben ser resueltos:
Relocación: Dirección relativa de acuerdo a la
partición de memoria donde se ubica el programa
Protección: No permitir que un trabajo acceda a
la ubicación de memoria de otro trabajo.
Relocación o reubicación
Dos procesos: mismas direcciones relativas
Sistemas Operativos
Solución a la relocación:
Cada proceso con su espacio de direcciones
Sistemas Operativos
Relocación o reubicación
Sistemas Operativos
Swapping o intercambio
La asignación de memoria cambia a medida que los
procesos ingresan o salen de memoria.
Sistemas Operativos
Swapping o intercambio
Asignando espacio para segmentos que pueden crecer
Sistemas Operativos
Asignación de memoria:
Busca k bits consecutivos en 0 en el mapa para un
proceso que necesita k unidades de memoria.
Desventaja: Lento
Sistemas Operativos
Estructura de datos:
P: Proceso
H: Hueco
Desafíos
Algunos programas utilizan más memoria que la
disponible
Una solución: Programas divididos en overlays
El programador debe planificar los overlays
No permite compartir rutinas
Paginación
Direcciones Virtuales
Direccionamiento de memoria
Direcciones Virtuales
Direcciones Virtuales
Page Fault
Si la página no está en memoria, el CPU causa una
interrupción al Kernel del SO.
El CPU graba el contador del programa en la pila
Page Fault
Sistemas Operativos
Dispositivo de Hardware
Generalmente es parte del MMU
Cuando una dirección virtual se presenta primero
chequea si se encuentra en el TLB y el bit de protec.
El tiempo de acceso al TLB es menor que el de acceso
a la memoria -> Hit Ratio
Sistemas Operativos
Anomalía de Belady
En FIFO, más marcos de página pueden resultar en
más fallos de página
Ej:
Sistemas Operativos
Algoritmos de pila
Un sistema de paginación se caracteriza por:
Algoritmos de pila
Siendo:
M un array que mantiene el estado de memoria.
Dividido en m entradas que están actualmente en
memoria y n – m paginas que han sido
referenciadas una vez pero no están en memoria
r cantidad de referencias a memoria
En los algoritmos de pila se da que :
M(m, r) está incluido en M(m+1,r)
El conjunto de páginas incluidas en la parte
superior de M (memoria) luego de r referencias a
memoria con m marcos de página está incluido en
M para una memoria de m + 1 marcos de página
Sistemas Operativos
Algoritmos de pila
Cadena de distancias:
Concepto útil para el modelado y predecir fallos
Consiste en la distancia entre el tope de la pila y la
ubicación de la página en la misma
Si no se encuentra en la pila se considera una
distancia ∞ (infinita).
La cadena de distancia depende de la cadena de
referencia y del algoritmo de paginación
Cuando la cantidad de páginas utilizadas es grande,
la única forma de reducir los fallos es asignar al
programa mayor cantidad de marcos de página
Sistemas Operativos
Algoritmos de pila
Sistemas Operativos
Algoritmos de pila
Distintas funciones de densidad de probabilidad para
las referencias con una cadena de distancia d
Sistemas Operativos
Tamaño
del WS en
el tiempo t
Tamaño de página
Tamaño de página pequeño
Ventajas:
menos fragmentación interna
menos parte del programa no usado en memoria
Desventaja:
Los programas necesitan más páginas
-> Tablas de páginas que ocupan más espacio
Sistemas Operativos
-se/p2 + ½ = 0
Páginas compartidas
Hay páginas que pueden compartirse y otras no, por
ejemplo el programa se puede compartir y los datos no.
Cuando un proceso
termina no deben
liberarse las páginas
utilizadas por otro
proceso, sino se producen
muchos fallos de página.
Se necesitan estructuras de
datos especiales para
administrarlo
Sistemas Operativos
Paginación dinámica:
Se debe llevar registro
de las páginas en disco
Sistemas Operativos
Se divide en 3 partes:
Segmentación - Introducción
Un compilador utiliza varias tablas para poder compilar
Posiblemente incluye:
Segmentación:
En un espacio de direccionamiento unidireccional, las
tablas crecen y pueden superponerse.
Sistemas Operativos
Segmentación:
Sistema de segmentación:
Segmentación:
Una memoria segmentada permite a cada tabla crecer o
contraerse independientemente de las otras tablas
Sistemas Operativos
Segmentación:
Comparación entre paginación y segmentación:
Sistemas Operativos
Segmentación:
(b)-(d) La fragmentación externa inutiliza memoria
Segmentación:
Combinación de segmentación con paginación:
Segmentación:
Ejemplo de segmentación con paginación: MULTICS
El descriptor del segmento apunta a las tablas de página
Sistemas Operativos
Segmentación:
Ejemplo de segmentación con paginación: MULTICS
Descriptor de segmento
Sistemas Operativos
Segmentación:
Ejemplo de segmentación con paginación: MULTICS
Algoritmo utilizado cuando ocurre una referencia a memoria:
Segmentación:
Ejemplo de segmentación con paginación: MULTICS
Algoritmo utilizado cuando ocurre una referencia a memoria:
Segmentación:
Ejemplo de segmentación con paginación: MULTICS
Dirección virtual de 34 bits
Sistemas Operativos
Segmentación:
Ejemplo de segmentación con paginación: MULTICS
Conversión de la dirección de dos partes
Sistemas Operativos
Segmentación:
Ejemplo de segmentación con paginación: MULTICS
Versión simplificada de la TLB o memoria asociativa
(La versión original soporta dos tamaños de página)
Sistemas Operativos
Segmentación:
Ejemplo de segmentación con paginación: INTEL
El selector
Sistemas Operativos
Segmentación:
Ejemplo de segmentación con paginación: INTEL
Descriptor del segmento
Sistemas Operativos
Segmentación:
Ejemplo de segmentación con paginación: INTEL
Conversión de un par (selector + offset) en una dirección
lineal.
Sistemas Operativos
Segmentación:
Ejemplo de segmentación con paginación: INTEL
Mapeo de una dirección lineal en una dirección física
Sistemas Operativos
Segmentación:
Ejemplo de segmentación con paginación: INTEL
Niveles de protección