32
Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Embed Size (px)

Citation preview

Page 1: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Administración de Memoria no contigua

Capítulo 6 (Milenkovic)

Page 2: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Asignación no contigua

• Partes de un solo objeto lógico pueden ser colocadas en áreas no contiguas de memoria física.

• Traducción de direcciones:– Establecen la correspondencia necesaria

entre un espacio de direcciones virtuales contiguo y las direcciones físicas discontiguas.

Page 3: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Paginación

• Suprime el requisito de asignación contigua en memoria física.

• La memoria se divide en una serie de porciones de tamaño fijo, llamadas marcos de página.

• El espacio de direcciones virtuales de un proceso se divide en bloques de tamaño fijo del mismo tamaño llamados páginas.

Page 4: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Paginación: principios de operación.

• Las direcciones virtuales se dividen en dos partes:– El número de página.– El desplazamiento dentro de esa página.– Por ejemplo: 003 200

• Por conveniencia en la traducción se recomienda un tamaño de página que sea potencia de 2.

Page 5: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Traducción de direcciones

• La traducción se efectúa con ayuda de una tabla de correspondencia, llamada tabla de mapa de páginas (TMP).

• La TMP se construye en tiempo de carga del proceso con el fin de establecer la correspondencia entre direcciones virtuales y físicas.

• Hay una entrada por cada página del proceso.• Cada entrada contiene el número de marco de

página.

Page 6: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Traducción de direcciones cont.

• La porción de la dirección virtual que refiere al número de página es un índice en la TMP.

• Se toma el valor de esa entrada y se concatena el desplazamiento.

Page 7: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Tabla de mapa de memoria

• El SO lleva la cuenta del estado de cada marco de página.

• LIBRE o ASIGNADO.

• Por tanto, una TMM tiene un número fijo de entradas igual al número de marcos de página:– f = m/p, donde m es la memoria total y p es

el tamaño de página.

Page 8: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Carga de un proceso

• Cuando se solicita cargar un proceso de tamaño t, el SO debe asignar n marcos de página libres:– n=ceil(t/p)

• El SO asigna memoria en términos de un número entero de marcos de página.

• El último marco puede estar parcialmente inutilizado:– Fragmentación o ruptura de página.

Page 9: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Asignación

• Hallar “cualesquiera” n marcos de página libres.

• Todos los marcos son de tamaño idéntico:– política de asignación no influye en la utilización.

• No hay consideraciones sobre mejor o peor ajuste:– todas las páginas encajan en todos los marcos.

Page 10: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Asignación cont.

• Hay una TMM en cada sistema.

• Hay tantas TMP como procesos activos.

• Cuando el proceso termina o es retirado de memoria, su memoria es desasignada liberando los marcos utilizados.

Page 11: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Protección

• Las referencias a memoria del proceso están restringidas a su propio espacio de direcciones.

• Utilizar la TMP para detectar y abortar los intentos de acceder a memoria más allá de las fronteras legales.

Page 12: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Protección cont.

• Es posible incluir bits de acceso a las entradas de la TMP:– Sólo lectura.– Sólo ejecución.

Page 13: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Compartición

• Una sola copia de una página compartida puede hacerse corresponder fácilmente con tantos espacios de direcciones como se desee.

• Diferentes procesos pueden tener diferentes privilegios.

Page 14: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Memoria virtual

• Permite que sólo una parte del espacio de direcciones virtuales de un proceso “residente” sea cargada realmente en memoria física.– Es decir, procesos parcialmente cargados.

• La suma de los espacios de todos los procesos puede exceder a la capacidad de la memoria física.

Page 15: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Memoria virtual cont.

• Los esquemas de memoria real se esfuerzan por alcanzar la utilización al 100% de la memoria.

• Memoria virtual proporciona factores de utilización aparente arriba del 100%.

• El tamaño permisible de un proceso puede ser más grande que la memoria física.

Page 16: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Memoria virtual cont.

• La gestión de la memoria virtual es transparente a los programadores:– No se preocupan por ajustar sus programas

a un tamaño.– Programan para una plataforma, no para

una configuración en específico.

• Es posible ejecutar procesos parcialmente cargados.

Page 17: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Principios de operación de la memoria virtual

• Se puede implementar como una extensión de memoria paginada o segmentada.

• Traducción de direcciones por medio de una función f:V->M que regrese:– r si el elemento x está en memoria real en la

posición r– Excepción por elemento ausente si el

elemento x no está en memoria real – fallo de página.

Page 18: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Principios de operación de la memoria virtual cont.

• Generalmente se maneja añadiendo el indicador presencia en la TMP:– Dentro: la página se encuentra en memoria

física.– Fuera: la página se encuentra en disco.

Page 19: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Tabla de mapa de archivo

• La TMA contiene la dirección en disco de la página.

• Tiene el mismo tamaño que la TMP.

• Por facilidad, puede ser incluida como un campo extra de la TMP.

Page 20: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Interrupción de instrucciones

• Algunas instrucciones hacen más de una referencia a memoria.

• Si alguna de estas referencias resulta en un fallo de página el hardware de soporte de memoria virtual deberá ser capaz de:– Deshacer los efectos parciales de la instrucción

interrumpida.– Reanudar la instrucción desde el punto exacto de

interrupción.– Preexaminar las referencias a memoria buscando

fallos de página.

Page 21: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Políticas en la gestión de memoria virtual

• Política de asignación: que cantidad de páginas se asignan a cada proceso.

• Política de acceso: que elementos se incorporan y cuando se les incorpora.

• Política de sustitución: Si no existe memoria real libre, qué elemento se desaloja con el fin de dejar espacio para uno nuevo.

• Política de ubicación: dónde se coloca un nuevo elemento.

Page 22: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Políticas de acceso

• En la mayoría de los casos los elementos son traidos a memoria cuando se produce un fallo de página:– Paginación por demanda.

• Aunque también son concebibles políticas anticipatorias o de prebusqueda.

Page 23: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Políticas de ubicación

• En paginación no importa que marco de página se asigne.

• Todos los marcos libres son adecuados para alojar una página.

Page 24: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Comportamiento de los programas

• La velocidad de ejecución está limitada por arriba por la velocidad de ejecución del mismo programa bajo gestión de memoria no virtual.

• Minimizando el número de fallos de página la utilización efectiva del CPU y el tiempo de ejecución puede ser mejorado.

Page 25: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Comportamiento de los programas

• No podemos predecir que páginas van a ser utilizadas.– Algunas partes no se ejecutan bajo ciertas

condiciones.

• Localidad de referencia: favorecer ciertos subconjuntos de direcciones.– Localidad espacial: tendencia de un

programa a referenciar posiciones agrupadas.

– Localidad temporal: referenciar la misma posición o grupo de posiciones varias veces durante breves intervalos de tiempo.

Page 26: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Políticas de sustitución

• Si no existen marcos de página disponibles es posible:– Suspender el proceso hasta que haya

espacio disponible en memoria real.– Desalojar una página para dejar sitio a la

recién llegada.

• La política de sustitución gobierna la elección de la página “víctima” cuando se va a producir un desalojo.

Page 27: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Políticas de sustitución cont.

• Dependiendo de si la página ha sido modificada o no será necesario reescribirla a disco o descartala.

• Utilizar un bit de modificación:– 0 cuando se carga.– 1 cuando se modifica.

Page 28: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Algoritmo FIFO

• Se sustituye la página que lleve más tiempo en memoria.

• Se puede implementar con una lista.• El rendimiento es relativamente pobre:

– Páginas que acaban de ser desalojadas pueden ser requeridas a continuación.

– Anomalía de Belady: FIFO hace que aumente el número de fallos de página cuando se asignan más páginas reales al programa.

Page 29: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Ejemplos

• Uso de 3 marcos: 144, A1, 144, 263, 144, 168, 144, A1, 179, A1, A2, 263

• Anomalía de Belady (3 y 4 marcos): 3, 2, 1, 0, 3, 2, 4, 3, 2, 1, 0, 4

Page 30: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Algoritmo LRU

• Least Recently Used.• Sustituye la página residente menos

recientemente usada.• Toma en cuenta los patrones de

comportamiento de programas.• Supone que la página utilizada en el pasado

más distante es menos probable que sea referenciada en el futuro cercano.

• No experimenta la anomalía de Belady.

Page 31: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Algoritmo LRU cont.

• La implementación impone demasiado recargo.

• La actualización a la pila de referencias debe hacerse en cada referencia a página.

• La cola de FIFO solo necesita ser actualizada cuando ocurre un fallo de página.

Page 32: Administración de Memoria no contigua Capítulo 6 (Milenkovic)

Proyecto