Professional Documents
Culture Documents
- RAM
- Registros de memoria
- Ejecutables
- Asignación continua y dinámica
- Fragmentación
- Compactación
- Overlays
- Fragmentación
- Paginación
- TLB
- Algoritmos
- Swapping
- Segmentación
Gestión de memoria principal,
Que es la memoria
cache
Memoria
Ocurre que el cache es mucho mas rápido que la
memoria principal pero es mucho mas caro, existen
distintos niveles de cache dados incluso por su cercanía
al procesador.
Ejemplo: L1 es cache nivel 1 porque esta en el CPU, un
L2 puede estar o en el CPU o cercano a el y L3 estar
ligada a la memoria RAM.
Memoria
Algunos conceptos:
Dirección base: Dirección que sirve de base a
otras direcciones.
Dirección relativa: Dirección usada para hacer
referencia a otra dirección a partir de la dirección
base.
Dirección absoluta: Identifica una dirección
única de memoria.
Registros base y límite
Un par de registros base y límite definen el
espacio de direcciones lógicas
Unidad de gestión de memoria
(MMU)
La MMU (Memory-Management Unit) es un
dispositivo hardware que transforma las direcciones
virtuales en físicas.
Con la MMU el valor del registro de re-ubicación
(registro base) es añadido a cada dirección
generada por un proceso de usuario en el momento
en que es enviada a la memoria.
El programa de usuario trabaja con direcciones
lógicas; nunca ve las direcciones físicas reales.
Reubicación dinámica mediante
registro
Administrador de memoria
Monousuario:
La cantidad de programas depende de la cantidad de
memoria RAM que exista para el equipo.
Se divide en dos partes: una para el programa que se
esta usando y otra para el sistema operativo.
Asignación de memoria de
forma contigua
P5 P5 P5 P10 intenta P5
entrar
P8 sale P9 entra P9 P9
P8
P2 P2 P2 P2
Asignación estática de
memoria particionada
Primer ajuste (First-fit): Se asigna el primer espacio lo
suficientemente grande.
Mejor ajuste (Best-fit): Se asigna el espacio más
pequeño que sea lo suficientemente grande; hay que
buscar en la lista entera de espacios (salvo si está
ordenada por tamaño).
− Desperdicia el menor espacio posible.
Protección de direcciones con
registros base y límite
Asignación dinámica de memoria
particionada
Ahora el tamaño y ubicación de las particiones no es fijo, sino que
cambia a lo largo del tiempo.
Cuando llega un proceso se le asigna memoria de un espacio lo
suficientemente grande para que quepa.
− Con el espacio sobrante se crea una nueva partición libre.
En este tipo de asignación las consideraciones de protección son
las mismas que en la asignación estática.
La compartición se puede conseguir mediante solapamiento de
particiones.
SO SO SO SO
P5 P5 P5 P5
P8 sale P9 entra P9 P10 entra P9
P8 P10
P2 P2 P2 P2
Particionamiento variable
Fragmentación
La fragmentación es el proceso que se debe ejecutar sobre la memoria que
queda desperdiciada, al usar los métodos de gestión de memoria que se vieron en
las laminas anteriores. Tanto el primer ajuste, como el mejor y el peor producen
fragmentación externa.
La fragmentación es generada cuando durante el reemplazo de procesos
quedan espacios entre dos o más procesos de manera no contigua y cada
espacio no es capaz de soportar ningún proceso de la lista de espera. Tal vez en
conjunto si sea espacio suficiente, pero se requeriría de un proceso de
defragmentación de memoria o compactación para lograrlo. Esta fragmentación se
denomina fragmentación externa.
Existe otro tipo de fragmentación conocida como fragmentación interna, la cual
es generada cuando se reserva más memoria de la que el proceso va realmente a
usar. Sin embargo a diferencia de la externa, estos espacios no se pueden
compactar para ser utilizados. Se debe de esperar a la finalización del proceso
para que se libere el bloque completo de la memoria.
Compactación
Compactación (cont)
A menudo, los procesos no utilizan todas las páginas del espacio lógico.
Las páginas no utilizadas se pueden condensar en entradas de la TPE con
V=0. Ejemplo
► Memoria de 4GB y páginas de 4KB
► 4 bytes por entrada en TPE y TPI
► 10 bits para p1 y 10 para p2
► Procesos de 12 MB
Buffer de traducción
adelantada (TLB)
Cada referencia a la memoria virtual puede generar dos accesos a la
memoria:
•
Uno para obtener la entrada de la tabla de páginas correspondiente.
Otro para obtener el dato deseado.
Los esquemas de memoria virtual hacen uso de un cache especial para las
entradas de la tabla de páginas:
Buffer de Traducción Adelantada (TLB,Translation Lookaside Buffer).
Contiene aquellas entradas de la tabla de páginas usadas hace menos
tiempo.
Funciona del mismo modo que una memoria cache con correspondencia
asociativa.
Algoritmos de remplazo de
páginas
Política de ubicación:
– Qué página se va a reemplazar.
– Tiene que ser la que tenga una menor posibilidad de ser referenciada
en un futuro cercano.
– La mayoría de las políticas intentan predecir el comportamiento futuro
en función del comportamiento pasado.
Bloqueo de marcos:
– Cuando un marco está bloqueado, la página cargada en ese marco no
puede ser reemplazada.
– La mayoría del núcleo del sistema operativo está en marcos
bloqueados.
– Estructuras de control.
– Buffers de E/S.
– El bloqueo se consigue asociando un bit de bloqueo a cada marco.
Algoritmos de remplazo de
páginas
Política óptima:
– Selecciona para reemplazar la página que tiene que esperar una mayor
cantidad de tiempo hasta que se produzca la referencia siguiente.
– Es imposible de implementar porque requiere que el sistema operativo
tenga un conocimiento exacto de los sucesos futuros.
Política de la usada menos recientemente (LRU):
– Reemplaza la página de memoria que no ha sido referenciada desde
hace más tiempo.
– Debido al principio de cercanía, ésta sería la página con menor
probabilidad de ser referenciada en un futuro cercano.
– Una solución sería etiquetar cada página con el momento de su última
referencia.
Algoritmo de remplazo de
páginas
Política de primera en entrar primera en salir
(FIFO):
– Trata los marcos asignados a un proceso como un buffer circular.
– Es una de las políticas de reemplazo más sencillas de implementar.
– Se reemplaza la página que ha estado más tiempo en la memoria.
– Estas páginas pueden necesitarse de nuevo y en un plazo de tiempo
corto.
Algoritmo aleatorio
Este algoritmo consiste simplemente en reemplazar aleatoriamente
cualquier página de la memoria principal, sin hacer ningún esfuerzo de
predicción.
Es el algoritmo más sencillo dado que no requiere tener ninguna
información, sin embargo, por no hacer uso de dicha información sobre el
comportamiento del proceso, no puede lograr un buen desempeño.
Algortimo del reloj
K
J L
I A
H B
G C
F D
Cuando se presenta un fallo de página, el algoritmo revisa la
página a la que está apuntando la manecilla. Si el bit de
referencia es 0, la página es reemplazada con la nueva y la
manecilla avanza una posición. Si el bit es 1, entonces se
limpia (cambia a 0) y la manecilla avanza a la siguiente página
y así sucesivamente hasta encontrar una con bit 0.
Memoria virtual