Está en la página 1de 9

SISTEMAS OPERATIVOS.

Semestre
2016-2

Evolución de los Sistemas de Administración de


Memoria

ADMINISTRACIÓN DE MEMORIA

1 2

TEMARIO
 Memoria Real Introducción
 sistemas dedicados a un sólo usuario  Hasta aquí las estrategias de administración de memoria
 Multiprogramación con particiones fijas tienen por objetivo: mantener procesos en memoria
 absolutas
simultáneamente para permitir la multiprogramación.
 relocalizable
 Además, se requiere que un proceso esté completo en
 Multiprogramación con particiones variables
memoria principal para su ejecución
 Memoria Virtual
 Pero la memoria es un recurso escaso, es decir, a menudo no
 Paginación
hay espacio suficiente para contener varios procesos
 Segmentación
completos.
 Combinación Paginación/Segmentación

3 4

Introducción Memoria virtual


 Al examinar los programas reales se puede ver que a veces no  Es una técnica que permite la ejecución de procesos que no
es necesario que el proceso completo permanezca en pueden estar completamente en memoria principal.
memoria:  La principal ventaja es que los programas pueden ser de
 Los códigos para manejar errores, casi nunca se ejecuta mayor tamaño que la memoria principal disponible
 Los vectores y matrices se declaran de un tamaño, que puede no  Se crea una abstracción de la memoria principal, separando la
usarse completamente memoria lógica (como la ve el usuario) de la memoria física,
 Los programas pueden incluir ciertas funcionalidades que nunca que realmente se dispone.
o casi nunca se utilizan.

5 6

Prof. Karina Rojas C. 1


SISTEMAS OPERATIVOS. Semestre
2016-2

Memoria virtual: Beneficios Memoria virtual: Beneficios


 Se pueden ejecutar programas mayores que la RAM • Hace que esta operación sea transparente
 Se pueden tener más procesos en memoria principal • Permite que un proceso sea mayor que la
 Solución adoptada: cantidad de memoria disponible
 Dividir el programa en partes llamadas overlays (capas)
• En memoria están las partes del programa
 La ejecución se empieza en el primer overlay
 Cuando termina se llama al siguiente y así sucesivamente
que se están utilizando, el resto en disco
 Se pueden tener en memoria varios overlays
 El SO se encarga del intercambio
Disco
MP

7 8

Memoria virtual:
Memoria Virtual
• La memoria virtual permite la ejecución de
procesos que pueden no estar cargados
completamente en el memoria principal
• El proceso lo realiza el S.O., transparente para
Trozos iguales Trozos de tamaño variable
el programador
• El proceso es divido en trozos, dichos trozos
se almacenan en memoria principal o en
disco, se debe ir cargando en memoria SEGMENTACIÓN
PAGINACIÓN
principal el trozo necesario para poder
continuar su ejecución.

9 10

Paginación Paginación
 Dirección virtual: dirección generada por un programa.
 Si no hay memoria virtual, las direcciones generadas por un
 Espacio de direcciones virtuales: direcciones que puede programa son direcciones físicas
generar un programa.  Con memoria virtual, las direcciones se mandan a la unidad
 Se divide en unidades llamadas páginas
de gestión de memoria (MMU)
 Las unidades correspondientes en memoria física se llaman marcos de
 Dispositivo que se encarga de traducir dinámicamente las direcciones
página (512bytes, 1K, 2K, 4K)
virtuales en físicas
 Las páginas y los marcos tienen idéntico tamaño.
 La transferencia entre memoria y disco se realizan siempre en unidades de
páginas.

Procesador Memoria
MMU
Bus

Prof. Karina Rojas C. 2


SISTEMAS OPERATIVOS. Semestre
2016-2

Paginación Paginación

13 14

Paginación Paginación
Traducción de direcciones en paginación por correspondencia directa Traducción de direcciones en paginación por correspondencia asociativa

Pagina

15 16

Paginación Distintos diseños de


Traducción de direcciones en paginación por correspondencia asociativa/directa
la tabla de páginas
 Vector de registros rápidos en hardware
 Tabla de páginas en memoria
 Tablas de páginas de varios niveles
 Memoria asociativa

17

Prof. Karina Rojas C. 3


SISTEMAS OPERATIVOS. Semestre
2016-2

Vector de registros rápidos en


hardware Tabla de páginas en memoria
 Una entrada por página virtual  En hardware sólo se necesita un registro que apunte al inicio
 Al iniciar el proceso se carga la tabla de páginas del proceso de la tabla de páginas
en estos registros  El cambio de contexto:
 Durante la asociación no hay que acceder a memoria  modifica un registro

 Costosa en recursos si la tabla de páginas es grande (1  Desventaja:


registro por página)  Hay que hacer una o más referencias a memoria por cada
 Costosa en tiempo instrucción para acceder a la tabla de páginas
 En el cambio de contexto habría que cargar la tabla de páginas

Tablas de páginas de varios niveles Tabla de páginas de 2 niveles


 No todo el espacio de direcciones virtuales es utilizado por
 4M para programa, 4M para datos y 4M para la pila
todos los procesos Tabla de páginas de 2º nivel
 Con 32 bits:
0
 se pueden direccionar 4GBytes (232 bytes) Tabla de páginas 1 Tabla de
 con páginas de 4K: 220 páginas (232/212) de nivel superior páginas
 tabla de páginas con 1 Millón de entradas
de programa
0 1023
 sólo se utilizan si el proceso ocupa 4G 1
0
 Para un proceso de 12M: 1 Tabla de
Vacío
 (12x220)/212=12x28 páginas= 3x210 pág (3K pág) páginas
de datos
1023
1023
0
Dirección virtual 1 Tabla de
Indexa tabla de Indexa tabla de Dir. Dentro de páginas
nivel superior(10) 2º nivel (10) la página (12) de pila
1023

Memoria asociativa Memoria asociativa


 Permite acelerar la traducción  Para la traducción Página Marco
 Se basa en la observación de que la mayoría de los programas  Se comprueba si está la información virtual de página
en la memoria asociativa 0
hacen un gran número de referencias a un pequeño número
 Si está: ya se puede hacer la
de páginas traducción
 Se equipa a la máquina con un dispositivo hardware que  En c.c.: búsqueda normal
7
permite asociar direcciones virtuales con físicas: la memoria  Proporción de encuentros: proporción de referencias a
asociativa memoria que pueden ser satisfechas a partir de la memoria
 parte de la MMU asociativa
 número pequeño de entradas  Cuanto mayor, mayor el rendimiento
 Búsqueda en todas las entradas en paralelo

Prof. Karina Rojas C. 4


SISTEMAS OPERATIVOS. Semestre
2016-2

Algoritmos de
sustitución de páginas Sustitución óptima de páginas
 Cuando se produce un fallo de página: el SO debe decidir  Buscar de todas las páginas de memoria aquella a la que se
qué página que está en memoria debe pasar a disco para traer tardará más en hacer una referencia a ella.
a memoria la página requerida.  Retarda todo lo posible el fallo de página.
 Si la página que sale ha sido modificada: se reescribe en disco.  Irrealizable: no se dispone de esta información
 Se puede elegir aleatoriamente, pero es más eficiente sacar
una que no se vaya a utilizar pronto.

Sustitución de la página no usada


recientemente (NRU) NRU
 2 bits asociados a cada página
 bit R (bit de referencia): se pone a 1 cada vez que se lee o se  Se toma aleatoriamente una página del grupo 0, si no hay del
escribe grupo 1, ….
 bit M (bit de modificación): se pone a 1 cuando se escribe  Es mejor sustituir una página que no se haya usado
 Cuando se carga en memoria: ambos a 0 recientemente aunque haya sido modificada, que una que se
haya usado en el último pulso de reloj, ya que tiene mucha
 Con cada interrrupción: se pone el bit R a 0
probabilidad de usarse de nuevo.
 Con el fallo de página:
 Ventaja:
 fácil de entender

R M  Implementación eficiente (rendimiento adecuado)


0 0
0 1
1 0
1 1

Primera en entrar primera en salir Sustitución de la página usada


(FIFO) hace más tiempo (LRU)
 Lista con todas las páginas en memoria  Se sustituye la que lleve más tiempo sin usarse
 Una página que entra se añade al final  Probablemente no se use en las próximas instrucciones
 En el fallo de página se saca la página que está a la cabeza de la lista  Implementación:
 Puede que se sustituya una página muy utilizada  Lista de todas las páginas en memoria
 Se mira el bit R y M  Al principio: la usada más recientemente
 Se sustituye la más antigua a la que no se haya hecho referencia  Al final: la que lleve más tiempo sin usarse

 Segunda oportunidad: Si R a 1 se pone a 0 y se pone al final de  Se actualiza con cada referencia a memoria. Se busca la página y se lleva al
principio
la lista
 Es costosa

Prof. Karina Rojas C. 5


SISTEMAS OPERATIVOS. Semestre
2016-2

LRU: otra forma (I) LRU: otra forma (II)


 Contador de 64 bits  N marcos de página
 Se incrementa después de cada instrucción  Matriz de NxN a 0
 Asociado a cada página:  Cada vez que se accede al marco K
 un campo donde poder guardar el contador  fila K a 1; columna k a 0
 cada vez que se accede a la página se actualiza al contador
 Lleva más tiempo sin utilizarse la página correspondiente a la
 Con el fallo de página fila de menor valor binario. Para: 0 1 2 3 2 1 0 3 2 3
 Se examinan los contadores
 Se sustituye la página con un contador menor

0 1 2 3 2
0111 0011 0001 0000 0000
0000 1011 1001 1000 1000
0000 0000 1101 1100 1101
0000 0000 0000 1110 1100

Sustitución de página no usada


frecuentemente (NFU) Tamaño de página
 Contador software asociado a cada página  Si son grandes
 con valor inicial 0  Se desperdicia en promedio la mitad de una página por proceso, por
 Con cada interrupción de reloj se suma al contador el bit R fragmentación interna
 lleva la cuenta del nº de pulsos en los que se ha hecho referencia  Más espacio se desperdicia
 Más porción de programa en memoria sin utilizar
 Se sustituye la que tenga el contador más bajo
 Si son pequeñas
 Problema: nunca olvida
 Tablas de páginas más grandes
 Puede ser que al principio de un programa se utilicen algunas páginas
 Se tarda prácticamente lo mismo en transferir
muy frecuentemente y luego ya no se utilicen.

Segmentación Funcionamiento de la MMU


 16 procesos Tabla de segmentos
 El espacio de direcciones se divide en segmentos
 Páginas de 4K
 Cada segmento tiene un nombre y una longitud 0
 1024 páginas por proceso Proceso 0
 Una dirección se especifica como (s,d)
 espacio de direcciones 63
 El compilador construye los distintos segmentos
virtuales del proceso de 4M
 Para realizar la correspondencia:
 Espacio de direcciones
 Tabla de segmentos
 base: comienzo del segmento
virtuales total de 64 M Entrada en la tabla de segmentos

 límite: tamaño del segmento  64 segmentos por proceso Longitud Protección P. A tabla de Páginas
 (s,d) => base+d (d< límite)  16 páginas por segmento
 Se utiliza segmentación paginada  64 K por segmento 0

15

Prof. Karina Rojas C. 6


SISTEMAS OPERATIVOS. Semestre
2016-2

Segmentación
Traducción de direcciones virtuales
 Dirección virtual de 22 bits (4 M)
 Registro especial de 4 bits indicando el proceso

4 6 4 12

Proceso Nº de segmento Nº de página Posición dentro de la página

 Para cambiar de proceso se cambia el registro


 Se puede compartir un segmento haciendo apuntar a la
misma tabla de páginas
38

Segmentación Segmentación
Control del acceso en los sistemas con segmentación

39 40

Sistemas de ESTRATEGIAS DE ADMINISTRACIÓN DE


Paginación/Segmentación MEMORIA VIRTUAL
 Estrategias de obtención. Determinan cuándo se
debe transferir una página o un segmento del
almacenamiento secundario al primario.
 obtención por demanda esperan a que un proceso en
ejecución haga referencia a una página o un segmento
antes de extraer la página o el segmento al
almacenamiento primario
 obtención anticipada intentan determinar por adelantado a
cuáles páginas o segmentos hará referencia un proceso

41 42

Prof. Karina Rojas C. 7


SISTEMAS OPERATIVOS. Semestre
2016-2

ESTRATEGIAS DE ADMINISTRACIÓN DE ESTRATEGIAS DE ADMINISTRACIÓN DE


MEMORIA VIRTUAL MEMORIA VIRTUAL
 Estrategias de colocación. Determinan en qué lugar del  Estrategias de reemplazo. Consiste en decidir que
almacenamiento primario se debe colocar una página o página o segmento será reemplazado para colocar en
un segmento entrante. ese espacio una página o segmento traído desde
 Para paginación: primer ajuste memoria secundaria, esto ocurre cuando el
 Para segmentación:
almacenamiento primario está completamente ocupado
 Primer ajuste
 mejor ajuste
 Peor ajuste

43 44

ESTRATEGIAS DE REEMPLAZO DE
ESTRATEGIAS DE ADMINISTRACIÓN DE MEMORIA VIRTUAL PÁGINAS
 ESTRATEGIAS DE REEMPLAZO DE PÁGINAS  El principio de optimalidad
 El principio de optimalidad  para obtener un rendimiento óptimo se reemplaza la página
 Reemplazo de páginas aleatorio que demorará más en ser utilizada
 Primeras entradas-primeras salidas (PEPS)  Reemplazo de páginas aleatorio
 La menos recientemente utilizada (LRU)  elegir al azar la página que será reemplazada
 La menos frecuentemente utilizada (LFU)  Primeras entradas-primeras salidas (PEPS)
 La no utilizada recientemente (NUR)  se elige la página que lleva más tiempo en el
 Modificaciones de PEPS almacenamiento primario
 Frecuencia de fallas de página  La menos recientemente utilizada (LRU)
 Paginación por demanda  se elige aquella página que no ha sido utilizada durante
 Paginación Anticipada mucho tiempo

45 46

ESTRATEGIAS DE REEMPLAZO DE
PÁGINAS Paginación por demanda
 La menos frecuentemente utilizada (LFU)  Es un método lógico, cargar la página cuando se necesite
 elegir la página que se utiliza con menos intensidad  razones de su uso
 La no utilizada recientemente (NUR)  no se puede predecir el futuro
 elegir la página que no ha sido modificada recientemente  sólo se llevan a memoria principal las páginas que se necesitan
 Modificaciones de PEPS  no se ocupa tiempo en saber que página desplazar
 basado en PEPS con lista circular y puntero
 Frecuencia de fallas de página
 si un proceso presenta muchos fallos de página se le
otorga más espacio de memoria

47 48

Prof. Karina Rojas C. 8


SISTEMAS OPERATIVOS. Semestre
2016-2

Paginación Anticipada LIBERACIÓN DE PÁGINA


 Los procesos deben liberar las páginas que ya no usen, dejando
 El S.O. Intenta predecir cuáles son las páginas que se usarán espacio libre
a continuación y las traslada si hay espacio
 el usuario debería en forma voluntaria liberar página, pero
 si la decisión es correcta, se ahorra tiempo de ejecución implica comandos complejos
 como la memoria ha bajado en costo y se ha incrementado en  la liberación de página permite eliminar el desperdicio de
los equipos, es menos serio si la decisión fue incorrecta espacio y acelerar la ejecución de los procesos
 el SO y los compiladores deberían detectar automáticamente las
situaciones de liberación de páginas

49 50

TAMAÑO DE LAS PÁGINAS


 A <tamaño, más páginas, más marcos de página, mayor tabla
de página y más espacio primario ocupa la tabla
 A >tamaño, más espacio se ocupa de memoria con
información que puede que no sea usada
 A >tamaño, menos viajes a memoria secundaria
 A >tamaño, más espacio se pierde en una página que no se
usa completamente

51

Prof. Karina Rojas C. 9

También podría gustarte