administración de la memoria

75
 Administración de la Memoria  1. Introducción al Almacenamiento Real  2. Organización y Administración del Almacenamiento 1. Organización del Almacenamiento 2. Administración del Almacenamiento 3. Jerarquía de Almacenamiento 4. Estrategias de Administración del Almacenamien to  1. Asignación Contigua de Almacenamiento Versus No Contigua  2. Asignación Contigua de Almacenamien to de Un Solo Usuario  5. Multiprogramación de Partición Fija 1. Multiprogramación de Partición Fija: Traducción y Carga Absolutas  2. Multiprogramación de Partición Fija: Traducción y Carga Relocalizables  3. Protección en los Sistemas de Multiprogramación 4. Fragmentació n en la Multiprogramación de Partición Fija 6. Multiprogramación de Partición Variable 1. Compresión o Compactación de Almacenamien to 2. Estrategias de Colocación del Almacenamiento  7. Multiprogramación con Intercambio de Almacenamiento 8. Introducción a la Organización del Almacenamiento Virtual  9. Conceptos Básicos de Almacenamiento Virtual  10. Organización del Almacenamiento de Niveles Múltiples  11. Transformación de Bloques  12. Conceptos Básicos de Paginación  1. Traducción de Direcciones de Paginación por Transformación Directa  2. Traducción de Direcciones de Paginación por T ransformación Asociativa 3. Traducción de Direcciones de Paginación por Co mbinación de Transformación Asociativa / Directa 4. Compartimiento de Recursos en un Sistema de Paginación  13. Segmentación 1. Control de Acceso en Sistemas de Segmentación  2. Traducción de Direcciones de Segmentación por Transformación Directa 3. Compartimiento en un Sistema de Segmentación 

Upload: victor-mugiwara-manzo

Post on 12-Jul-2015

56 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 1/75

Administración de la Memoria 

1.  Introducción al Almacenamiento Real 

2.  Organización y Administración del Almacenamiento 1.  Organización del Almacenamiento 

2.  Administración del Almacenamiento 

3.  Jerarquía de Almacenamiento 

4.  Estrategias de Administración del Almacenamiento 

1.  Asignación Contigua de Almacenamiento Versus No Contigua 

2.  Asignación Contigua de Almacenamiento de Un Solo Usuario 

5.  Multiprogramación de Partición Fija 

1.  Multiprogramación de Partición Fija: Traducción y Carga Absolutas 

2.  Multiprogramación de Partición Fija: Traducción y Carga

Relocalizables 

3.  Protección en los Sistemas de Multiprogramación 

4.  Fragmentación en la Multiprogramación de Partición Fija 

6.  Multiprogramación de Partición Variable 

1.  Compresión o Compactación de Almacenamiento 

2.  Estrategias de Colocación del Almacenamiento 

7.  Multiprogramación con Intercambio de Almacenamiento 

8.  Introducción a la Organización del Almacenamiento Virtual 

9.  Conceptos Básicos de Almacenamiento Virtual 

10.  Organización del Almacenamiento de Niveles Múltiples 

11.  Transformación de Bloques 

12.  Conceptos Básicos de Paginación 1.  Traducción de Direcciones de Paginación por Transformación Directa 

2.  Traducción de Direcciones de Paginación por Transformación

Asociativa 

3.  Traducción de Direcciones de Paginación por Combinación de

Transformación Asociativa / Directa 

4.  Compartimiento de Recursos en un Sistema de Paginación 

13.  Segmentación 

1.  Control de Acceso en Sistemas de Segmentación 

2.  Traducción de Direcciones de Segmentación por Transformación

Directa 3.  Compartimiento en un Sistema de Segmentación 

Page 2: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 2/75

14.  Sistemas de Paginación / Segmentación 

1.  Traducción Dinámica de Direcciones en Sistemas de Paginación / 

Segmentación 

2.  Compartimiento en un Sistema de Paginación / Segmentación 

15.  Estrategias de Administración del Almacenamiento Virtual 1.  Estrategias de Reposición de Página 

2.  El Principio de Optimización 

3.  Reposición de Página al Azar 

4.  Reposición de Página por el Sistema de Primero en Entrar - Primero en

Salir (FIFO) 

5.  Reposición de Página Menos - Recientemente - Usada (LRU) 

6.  Reposición de Página Menos - Frecuentemente - Usada (LFU) 

7.  Reposición de Página No Usada - Recientemente (NUR) 

16.  Localidad 

17.  Conjuntos de Trabajo 

18.  Paginación por Demanda y Paginación Anticipada 1.  Paginación por Demanda 

2.  Paginación Anticipada 

19.  Liberación de Página y Tamaño de Página 1.  Liberación de Página 

2.  Tamaño de Página 

20.  Comportamiento de un Programa en la Paginación 

21.  Fin 

Introducción al Almacenamiento Real 

La organización y administración de la “memoria principal ”, “memoria primaria” o

“memoria real” de un sistema ha sido y es uno de los factores más importantes en el

diseño de los S. O. [7, Deitel]. 

Los términos “memoria” y “almacenamiento” se consideran equivalentes.

Los programas y datos deben estar en el almacenamiento principal para:

  Poderlos ejecutar.

  Referenciarlos directamente.

Se considera “almacenamiento secundario” o “almacenamiento auxiliar” al

generalmente soportado en discos.

Los hechos demuestran que generalmente los programas crecen en requerimientos de

memoria tan rápido como las memorias:

Page 3: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 3/75

  “Ley de Parkinson parafraseada”: Los programas se desarrollan para ocupar toda

la memoria disponible para ellos.

La parte del S. O. que administra la memoria se llama “administrador de la memoria”:

  Lleva un registro de las partes de memoria que se están utilizando y de aquellasque no.

  Asigna espacio en memoria a los procesos cuando estos la necesitan.

  Libera espacio de memoria asignada a procesos que han terminado.

Organización y Administración del Almacenamiento 

Organización del Almacenamiento 

Históricamente el almacenamiento principal se ha considerado como un recurso

costoso, por lo cual su utilización debía optimizarse [7, Deitel]. 

Por organización del almacenamiento se entiende la manera de considerar este

almacenamiento:

  ¿ se coloca un solo programa de usuario o varios ?.

  Si se encuentran varios programas de usuario:

o  ¿ se concede a cada uno la misma cantidad de espacio o se divide el

almacenamiento en porciones o “particiones” de diferente tamaño ?.o  ¿ se utilizará un esquema rígido de número y tamaño de particiones o un

esquema dinámico y adaptable ?.

o  ¿ se requerirá que los trabajos de los usuarios sean diseñados para

funcionar en una partición específica o se permitirá que se ejecuten en

cualquiera donde quepan ?.

o  ¿ se requerirá o no que cada trabajo sea colocado en un bloque contiguo

de memoria ?.

Administración del Almacenamiento Independientemente del esquema de organización hay que decidir las estrategias que se

utilizarán para optimizar el rendimiento.

Las “estrategias de administración” deben considerar:

  ¿ cuándo se consigue un nuevo programa para colocar en la memoria ?:

o  ¿ cuando el sistema lo pide específicamente o se intenta anticiparse a las

peticiones ?.

  ¿ dónde se colocará el programa que se ejecutará a continuación ?:

o  ¿ se prioriza el tiempo de carga o la optimización en el uso delalmacenamiento ?.

Page 4: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 4/75

  ¿ con qué criterio se desplazarán programas ?.

Jerarquía de Almacenamiento 

Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o

ser referenciados [7, Deitel]. 

Los programas y datos que no son necesarios de inmediato pueden mantenerse en el

almacenamiento secundario.

El almacenamiento principal es más costoso y menor que el secundario pero de acceso

más rápido.

Los sistemas con varios niveles de almacenamiento requieren destinar recursos para

administrar el movimiento de programas y datos entre niveles (ver Figura 3.1 [7,

Deitel]).

Un nivel adicional es el “caché” o memoria de alta velocidad, que posee las

siguientes características:

  Es más rápida y costosa que la memoria principal.

  Impone al sistema un nivel más de traspaso:

o  Los programas son traspasados de la memoria principal al caché antes de

su ejecución.

  Los programas en la memoria caché ejecutan mucho más rápido que en lamemoria principal.

Page 5: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 5/75

  Al utilizar memoria caché se espera que:

o  La sobrecarga que supone el traspaso de programas de un nivel de

memoria a otro sea mucho menor que la mejora en el rendimiento

obtenida por la posibilidad de una ejecución mucho más rápida en la

caché.

Estrategias de Administración del Almacenamiento 

Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento

principal [7, Deitel]. 

Se dividen en las siguientes categorías: 

  Estrategias de búsqueda:

o  Estrategias de búsqueda por demanda.

o  Estrategias de búsqueda anticipada.

  Estrategias de colocación.

  Estrategias de reposición.

Las “estrategias de búsqueda” están relacionadas con el hecho de cuándo obtener el

siguiente fragmento de programa o de datos para su inserción en la memoria principal.

En la “búsqueda por demanda” el siguiente fragmento de programa o de datos se carga

al almacenamiento principal cuando algún programa en ejecución lo referencia.

Se considera que la “búsqueda anticipada” puede producir un mejor rendimiento del

sistema.

Las “estrategias de colocación” están relacionadas con la determinación del lugar de la

memoria donde se colocará (cargará) un programa nuevo.

Las “estrategias de reposición” están relacionadas con la determinación de qué

fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.

Asignación Contigua de Almacenamiento Versus No Contigua 

En la “asignación contigua” cada programa ocupa un bloque contiguo y sencillo de

localizaciones de almacenamiento.

En la “asignación no contigua” un programa se divide en varios bloques o“segmentos” que pueden almacenarse en direcciones que no tienen que ser

necesariamente adyacentes, por lo que es más compleja pero más eficiente que la

asignación continua.

Asignación Contigua de Almacenamiento de Un Solo Usuario 

Page 6: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 6/75

Se consideran S. O. que ya poseen desarrollado el “sistema de control de entrada / 

 salida”: IOCS: input / output control system (ver Figura 3.2 [7, Deitel]).

El tamaño de los programas está limitado por la cantidad de memoria principal, pero se

puede superar este límite con técnicas de “recubrimientos”, con las siguientes

características (ver Figura 3.3 [7, Deitel]):

  Si una sección particular del programa ya no es necesaria, se carga otra sección

desde el almacenamiento secundario ocupando las áreas de memoria liberadas

por la sección que ya no se necesita.

  La administración manual por programa del recubrimiento es complicada y

dificulta el desarrollo y el mantenimiento.

Protección en los sistemas de un solo usuario 

Page 7: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 7/75

El usuario tiene un completo control sobre la totalidad del almacenamiento principal:

  El almacenamiento se divide en porciones que contienen el S. O., el programa

del usuario y una porción sin usar.

  El programa del usuario podría destruir áreas del S. O. que podrían:

o  Detener el sistema.o  Producir salidas erróneas.

  El S. O. debe estar protegido contra el proceso usuario:

o  La protección se instrumenta mediante un “registro de límites” 

incorporado a la cpu:

  Contiene la dirección de la instrucción más alta utilizada por el S.

O.

  Si se intenta ingresar al S. O. la instrucción es interceptada y el

proceso finaliza.

Procesamiento por lotes de flujo único 

Los sistemas de un solo usuario se dedican a un trabajo durante más tiempo del que

toma su ejecución.

Los trabajos requieren de:

  “tiempo de instalación”: el necesario para preparar el entorno operativo

requerido.

  “tiempo de descarga”: el necesario para desmontar el entorno operativo que fue

requerido.

Durante la instalación y descarga de los trabajos la cpu no está ejecutando dichos

trabajos requeridos, por lo cual:

  Automatizar la “transición de trabajo a trabajo” reduce la cantidad de tiempo

perdido entre trabajos.

  Surgieron los sistemas de “procesamiento por lotes”. 

En el “procesamiento por lotes de flujo único” los trabajos se agrupan en “lotes” 

encolándose para su ejecución.

El “procesador de flujos de trabajos”: 

  Lee las instrucciones del “lenguaje de control de trabajos”. 

  Facilita la preparación del trabajo siguiente.

  Emite instrucciones al operador del sistema.

  Automatiza funciones anteriormente manuales.

  Cuando finaliza un trabajo efectúa las “operaciones de mantenimiento” 

apropiadas para facilitar la transición del siguiente trabajo.

Multiprogramación de Partición Fija 

Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionalesdebido a que [7, Deitel] (ver Figura 3.4 [7, Deitel]):

Page 8: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 8/75

  Cuando ocurre una petición de e / s la cpu normalmente no puede continuar el

proceso hasta que concluya la operación de e / s requerida.

  Los periféricos de e / s frenan la ejecución de los procesos ya que

comparativamente la cpu es varios órdenes de magnitud más rápida que los

dispositivos de e / s.

Los sistemas de “multiprogramación” permiten que varios procesos usuarios compitanal mismo tiempo por los recursos del sistema:

  Un trabajo en espera de e / s cederá la cpu a otro trabajo que esté listo para

efectuar cómputos.

  Existe paralelismo entre el procesamiento y la e / s.

  Se incrementa la utilización de la cpu y la capacidad global de ejecución del

sistema.

  Es necesario que varios trabajos residan a la vez en la memoria principal.

Multiprogramación de Partición Fija: Traducción y Carga Absolutas 

Las “particiones” del almacenamiento principal:

  Son de tamaño fijo.

  Alojan un proceso cada una.

  La cpu se cambia rápidamente entre los procesos creando la ilusión desimultaneidad. 

Los trabajos se traducían con ensambladores y compiladores absolutos para serejecutados solo dentro de una partición específica (ver Figura 3.5 [7, Deitel]).

Page 9: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 9/75

 

El S. O. resulta de implementación relativamente sencilla pero no se optimiza la

utilización de la memoria. 

Multiprogramación de Partición Fija: Traducción y Carga Relocalizables 

Los compiladores, ensambladores y cargadores de relocalización:

  Se usan para producir programas relocalizables que puedan ser ejecutados en

cualquier partición disponible de tamaño suficiente para aceptarlos (ver Figura

3.6 [7, Deitel]).

  Son más complejos que los absolutos.  Mejoran la utilización del almacenamiento.

  Confieren más flexibilidad en el armado de la carga de procesos.

Protección en los Sistemas de Multiprogramación 

Page 10: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 10/75

Si se utiliza asignación contigua de memoria la protección suele implementarse con

varios “registros de límites” (ver Figura 3.7 y Figura 3.8 [7, Deitel]).

Los extremos superior e inferior de una partición pueden ser:

  Delineados con dos registros.  Indicados el límite inferior o superior y el tamaño de la partición o región.

Fragmentación en la Multiprogramación de Partición Fija 

La “fragmentación de almacenamiento” ocurre en todos los sistemas

independientemente de su organización de memoria.

En los S. O. de multiprogramación de partición fija la fragmentación se produce

cuando:

  Los trabajos del usuario no llenan completamente sus particiones designadas.

Page 11: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 11/75

  Una partición permanece sin usar porque es demasiado pequeña para alojar un

trabajo que está en espera.

Multiprogramación de Partición Variable 

Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superarel espacio disponible de memoria [7, Deitel] (ver Figura 3.9 [7, Deitel]).

No hay límites fijos de memoria, es decir que la partición de un trabajo es su propio

tamaño.

Se consideran “esquemas de asignación contigua”, dado que un programa debe ocupar

posiciones adyacentes de almacenamiento.

Los procesos que terminan dejan disponibles espacios de memoria principal llamados

“agujeros”: 

  Pueden ser usados por otros trabajos que cuando finalizan dejan otros

“agujeros” menores.

  En sucesivos pasos los “agujeros” son cada vez más numerosos pero más

pequeños, por lo que se genera un desperdicio de memoria principal.

Combinación de agujeros (áreas libres) 

Consiste en fusionar agujeros adyacentes para formar uno sencillo más grande.

Se puede hacer cuando un trabajo termina y el almacenamiento que libera tiene límites

con otros agujeros.

Page 12: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 12/75

Compresión o Compactación de Almacenamiento 

Puede ocurrir que los agujeros (áreas libres) separados distribuidos por todo el

almacenamiento principal constituyan una cantidad importante de memoria:

  Podría ser suficiente (el total global disponible) para alojar a procesos encoladosen espera de memoria.

  Podría no ser suficiente ningún área libre individual (ver Figura 3.10 [7, Deitel]).

La técnica de compresión de memoria implica pasar todas las áreas ocupadas del

almacenamiento a uno de los extremos de la memoria principal:

  Deja un solo agujero grande de memoria libre contigua.

  Esta técnica se denomina “recogida de residuos” (ver Figura 3.11 [7, Deitel]).

Page 13: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 13/75

 

Principales desventajas de la compresión 

Consume recursos del sistema (ver Figura 3.12 [7, Deitel]).

El sistema debe detener todo mientras efectúa la compresión, lo que puede afectar los

tiempos de respuesta.

Implica la relocalización (reubicación) de los procesos que se encuentran en la

memoria:

Page 14: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 14/75

  La información de relocalización debe ser de accesibilidad inmediata.

Una alta carga de trabajo significa mayor frecuencia de compresión que incrementa el

uso de recursos. 

Estrategias de Colocación del Almacenamiento 

Se utilizan para determinar el lugar de la memoria donde serán colocados los

programas y datos que van llegando y se las clasifica de la siguiente manera:

  “Estrategia de mejor ajuste”: 

o  Un trabajo nuevo es colocado en el agujero en el cual quepa de forma

más ajustada:

  Debe dejarse el menor espacio sin usar.

  “Estrategia de primer ajuste”: 

o  Un trabajo nuevo es colocado en el primer agujero disponible con

tamaño suficiente para alojarlo.  “Estrategia de peor ajuste”: 

o  Consiste en colocar un programa en el agujero en el que quepa de la peor

manera, es decir en el más grande posible:

  El agujero restante es también grande para poder alojar a un

nuevo programa relativamente grande.

Multiprogramación con Intercambio de Almacenamiento 

En el esquema de “intercambio” los programas del usuario no requieren permanecer 

en la memoria principal hasta su terminación [7, Deitel]. 

Una variante consiste en que un trabajo se ejecuta hasta que ya no puede continuar:

  Cede el almacenamiento y la cpu al siguiente trabajo.

  La totalidad del almacenamiento se dedica a un trabajo durante un breve período

de tiempo.

  Los trabajos son “intercambiados”, dándose que un trabajo puede ser

intercambiado varias veces antes de llegar a su terminación.

Es un esquema razonable y eficiente para un número relativamente reducido de

procesos de usuarios.

 Los sistemas de intercambio fueron los predecesores de los sistemas de paginación. 

El rendimiento de los sistemas de intercambio mejora al reducir el tiempo deintercambio: 

  Manteniendo al mismo tiempo varias “imágenes de usuario o imágenes de

memoria” en la memoria principal.

Page 15: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 15/75

  Retirando una imagen de usuario de la memoria principal solo cuando es

necesario su almacenamiento para una nueva imagen.

  Incrementando la cantidad de memoria principal disponible en el sistema.

Las imágenes de usuario (imágenes de memoria) retiradas del almacenamiento principal

se graban en el almacenamiento secundario (discos).

Introducción a la Organización del Almacenamiento Virtual 

“Almacenamiento virtual ” significa la capacidad de direccionar un espacio de

almacenamiento mucho mayor que el disponible en el almacenamiento primario de

determinado sistema de computación [7, Deitel]. 

Esta tecnología apareció en 1960 en la Universidad de Manchester (Inglaterra), en el

sistema “Atlas”.

Los métodos más comunes de implementación son mediante:

  Técnicas de “paginación”. 

  Técnicas de “segmentación”. 

  Una combinación de ambas técnicas.

Las direcciones generadas por los programas en su ejecución no son, necesariamente,

aquellas contenidas en el almacenamiento primario (memoria real), ya que las

direcciones virtuales suelen seleccionarse dentro de un número mucho mayor de

direcciones que las disponibles dentro del almacenamiento primario.

La evolución en las organizaciones de almacenamiento puede resumirse como sigue:

  Real:

o  Sistemas dedicados a un solo usuario.

  Real:

o  Sistemas de multiprogramación en memoria real:

  Multiprogramación en partición fija:

  Absoluta.

  Relocalizable (reubicable).

  Multiprogramación en partición variable.

  Virtual:o  Multiprogramación en almacenamiento virtual:

  Paginación pura.

  Segmentación pura.

  Combinación paginación / segmentación.

Conceptos Básicos de Almacenamiento Virtual 

La clave del concepto de memoria (almacenamiento) virtual esta en la disociación:

  De las direcciones a las que hace referencia un programa.

  De las direcciones disponibles en la memoria real (almacenamiento primario).

Page 16: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 16/75

Los principales conceptos son los siguientes:

  “Direcciones virtuales”: 

o  Son las referidas por un proceso en ejecución.

  “Direcciones reales”: 

o  Son las disponibles dentro del almacenamiento primario.  “Espacio de direcciones virtuales (v)” de un proceso:

o  Es el número de direcciones virtuales a que puede hacer referencia el

proceso.

  “Espacio de direcciones reales (r)” de un computador:

o  Es el número de direcciones reales disponibles en el ordenador.

 Los procesos hacen referencia a direcciones virtuales pero éstas deben ejecutarse en el

almacenamiento real:

  Las direcciones virtuales deben ser transformadas dentro de las direcciones

reales, mientras el proceso está en ejecución.  La traducción de direcciones deberá hacerse rápidamente para no degradar al

sistema.

Existen varios medios para asociar las direcciones virtuales con las reales (ver Figura

3.13 [7, Deitel]).

Los mecanismos de “traducción dinámica de direcciones” (dat) convierten las

direcciones virtuales en reales al ejecutarse el proceso.

Las direcciones contiguas dentro del espacio de direcciones virtuales de un proceso no

tienen por qué ser contiguas dentro del almacenamiento real, a esto se denomina

“contigüidad artificial ” (ver Figura 3.14 [7, Deitel]).

Page 17: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 17/75

 

Organización del Almacenamiento de Niveles Múltiples 

Se deben proporcionar los medios para retener programas y datos en un gran

almacenamiento auxiliar para:

  Permitir que el espacio de direcciones virtuales de un usuario sea mayor que el

espacio de direcciones reales.

  Soportar multiprogramación de forma efectiva en un sistema con muchos

usuarios que compartan el almacenamiento real.

Se utiliza un esquema de almacenamiento de dos niveles (ver Figura 3.15 [7, Deitel]):

  Primer nivel: “almacenamiento real ”: 

o  En él se ejecutan los procesos y en él deben estar los datos para que un

proceso pueda referirse a ellos.

Page 18: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 18/75

 

  Segundo nivel: “almacenamiento auxiliar, secundario o adicional ”: 

o  Generalmente consta de discos de gran capacidad que pueden mantener

los programas y datos que no caben al mismo tiempo en el más limitado

almacenamiento real.

Cuando se va a ejecutar un proceso su código y datos se pasan al almacenamiento

principal.

Page 19: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 19/75

El almacenamiento real es compartido por varios procesos:

  Cada proceso puede tener un espacio de direcciones virtuales mucho mayor que

el almacenamiento real.

  Solo se mantiene al mismo tiempo una pequeña parte de los programas y datos

de cada proceso en el almacenamiento real.

Transformación de Bloques 

Los mecanismos de traducción dinámica de direcciones deben mantener “mapas” que

ilustren qué direcciones del almacenamiento virtual se encuentran en el almacenamiento

real y dónde se encuentran [7, Deitel]. 

La información se agrupa en “bloques”: 

  El sistema está informado del lugar del almacenamiento real donde han sido

colocados los bloques de almacenamiento virtual.

  Cuanto mayor sea el bloque menor será la fracción del almacenamiento real que

debe dedicarse a contener la información del mapa.

  Con bloques grandes:

o  Se reduce la sobrecarga de almacenamiento del mecanismo de

transformación.

o  Se incrementa el tiempo de transferencia entre los almacenamientos

secundario y primario.

o  Consumen más almacenamiento real pudiendo limitar el número de

procesos que pueden compartirlo.

  Los bloques pueden ser de tamaño: o   Igual : se denominan “páginas” y la organización de almacenamiento

virtual asociada se denomina “paginación”. 

o   Diferente: se denominan “segmentos” y la organización de

almacenamiento virtual asociada se denomina “segmentación”. 

  Se pueden combinar ambas técnicas: segmentos de tamaño variable compuestos

de páginas de tamaño fijo.

Las direcciones son “bidimensionales”, es decir que una dirección virtual “v” se indica

por un par ordenado “(b,d)”, donde:

  “b”: número del bloque donde reside.  “d”: desplazamiento a partir del inicio del bloque.

La traducción de una dirección virtual “v = (b,d)” a la dirección real “r” considera lo

siguiente (ver Figura 3.16 y Figura 3.17 [7, Deitel]):

  Cada proceso tiene su “tabla de mapa de bloques” mantenida por el sistema enel almacenamiento real.

  Un registro especial del procesador llamado “registro origen de la tabla de

bloques” se carga con la dirección real “a” de la “tabla de mapa de bloques”:

o  Contiene una entrada para cada bloque del proceso.

o  Las entradas se mantienen en orden secuencial para el bloque 0, bloque1, etc.

Page 20: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 20/75

o  Se añade el bloque número “b” a la dirección base “a” de la “tabla de

 bloques” para formar la dirección real de la entrada de la “tabla de mapa

de bloques” para el bloque “b”:

  Contiene la dirección real “b ’ ” para el bloque “b”.

  El desplazamiento “d” se añade a la dirección de inicio del

 bloque, “b ’ ”, para formar la “dirección real” deseada: “r = b ’ +d”.

 La transformación de bloques se efectúa en forma dinámica mientras se ejecuta un

 proceso, por lo cual, si la implementación no es eficiente, su sobrecarga puede causar

una degradación del rendimiento que podría eliminar en parte las ventajas de la

utilización del almacenamiento virtual.

Page 21: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 21/75

Conceptos Básicos de Paginación 

Frecuentemente se diferencia entre la “paginación pura” y la “combinación de

 paginación y segmentación”[7, Deitel]. 

Las páginas se transfieren del almacenamiento secundario al primario en bloquesllamados “marcos de páginas”: 

  Tienen el mismo tamaño que las páginas.

  Comienzan en direcciones del almacenamiento real que son múltiplos enteros 

del tamaño fijo de la página.

  Podrá colocarse una nueva página dentro de cualquier “marco de página” o

“celda de página” disponible.

La “traducción dinámica de direcciones” incluye:

  Un proceso en ejecución hace referencia a una dirección virtual “v = (p,d)” (ver 

Figura 3.18 [7, Deitel]).

  Un mecanismo de transformación de páginas busca la página “p” en la “tabla de

 páginas” y determina si la página “p” se encuentra en el marco de página “p ’ ”.

  La dirección de almacenamiento real se forma por la concatenación de “p ’ ” y

“d”.

La tabla de “mapa de páginas” debe indicar si se encuentra o no en el almacenamiento

primario la página referenciada:

  En caso afirmativo dónde está en la memoria real.

  En caso negativo dónde puede estar en el almacenamiento secundario.

La dirección de almacenamiento primario “a”, donde comienza el marco de pagina “p ’

” (suponiendo un tamaño de página “p”), está dada por: “a = (p) (p ’)”; se supone

marcos de página numerados 0, 1, 2, etc. (ver Figura 3.19, Figura 3.20 y Figura 3.21 [7,

Deitel]).

Page 22: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 22/75

 

Page 23: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 23/75

 

Traducción de Direcciones de Paginación por Transformación Directa 

Un proceso en ejecución hace referencia a la dirección virtual v = (p,d). 

Antes que un proceso comience su ejecución, el S. O. carga la dirección de

almacenamiento primario de la “tabla de mapa de páginas” en el “registro origen de la

tabla de mapa de páginas” (Ver Figura 3.22 [7, Deitel]).

Page 24: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 24/75

 

La dirección base de la tabla de mapa de páginas es “b”. 

El número de página es “p”. 

La dirección en el almacenamiento primario de la entrada en la tabla de mapa de

páginas para la página “p” es “b + p”: 

  Indica que el marco de página “p ’ ” corresponde a la página virtual.

  “p ’ ” se concatena con el desplazamiento “d” par formar la dirección real “r”. 

“Esto es un ejemplo d e transformación directa debido a que la tabla de mapa de

 páginas contiene una entrada por cada una de las páginas del almacenamiento virtualde este proceso”. 

La dirección virtual que se está traduciendo y la dirección base de la tabla de mapa de

páginas son mantenidas en un registro de alta velocidad del control del procesador.

La tabla de mapa de páginas transformada directamente suele mantenerse en el

almacenamiento primario:

  Las referencias a esta tabla requieren un ciclo completo de almacenamiento

primario, que generalmente es la parte más larga de un ciclo de ejecución de

instrucciones.

Page 25: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 25/75

  Se requiere otro ciclo de ejecución de almacenamiento primario para la

transformación de páginas, lo que puede ocasionar degradación equivalente a un

50%, para lo cual una solución sería tener la tabla completa de mapa de páginas

de transformación directa en la “caché” de muy alta velocidad.

Traducción de Direcciones de Paginación por Transformación Asociativa 

Una forma de acelerar la traducción dinámica de páginas consiste en colocar la tabla

completa de mapa de páginas en un “almacenamiento asociativo” que tenga un tiempo

de ciclo mucho más rápido que el almacenamiento primario.

Una variante es la “transformación asociativa pura” (ver Figura 3.23 [7, Deitel]).

Un programa en ejecución hace referencia a la dirección virtual v = (p,d). 

Cada entrada en el almacenamiento asociativo se busca de forma simultánea para la

página “p”: 

  Se obtiene “p ’ ” como el marco de página correspondiente a la página “p”. 

  Se concatena “p ’ ” con “d” formando la dirección real “r”. 

Cada una de las células del almacenamiento asociativo se registra de manera

simultánea:

  Hace costoso el almacenamiento asociativo.

  Implementar la transformación asociativa pura resulta demasiado costoso, tal lo

ocurrido con la implementación de la transformación directa pura utilizando

“caché”. 

Traducción de Direcciones de Paginación por Combinación de TransformaciónAsociativa / Directa 

Page 26: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 26/75

Se utiliza un almacenamiento asociativo capaz de mantener solo un pequeño porcentaje

del mapa completo de páginas para un proceso (ver Figura 3.24 [7, Deitel]).

Las entradas de página contenidas en este mapa reducido corresponden solo a las

 páginas referenciadas recientemente: 

  Se presupone que una página recientemente referenciada tendrá posibilidades deserlo de nuevo próximamente.

  Los rendimientos obtenidos con este esquema de mapa asociativo parcial 

superan aproximadamente en un 100 % a los rendimientos obtenidos con

esquemas de mapa asociativo de página completo. 

Un programa hace referencia a la dirección virtual v = (p,d). 

El mecanismo de traducción de direcciones intenta encontrar la página “p” en el mapa

de página asociativo parcial:

  Si “p” se encuentra allí:

Page 27: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 27/75

o  El mapa asociativo devuelve “p ’ ” como el número de marco de página

correspondiente a la página virtual “p”. 

o  “p ’ ” se concatena con el desplazamiento “d” para formar la dirección

real “r” que corresponde a la dirección virtual v = (p,d). 

  Si “p” no se encuentra en el mapa de pagina parcial:

o  Se utiliza un mapa directo convencional.o  La dirección “b” del registro de origen de la tabla de páginas se añade a

“p” para localizar la entrada apropiada a la página “p” en la tabla de

mapa de páginas de transformación directa del almacenamiento primario.

o  La tabla indica que “p ’ ” es el marco de página correspondiente a la

página virtual “p”. 

o  “p ’ ” se concatena con el desplazamiento “d” para formar la dirección

real “r” correspondiente a la dirección virtual v = (p,d). 

Compartimiento de Recursos en un Sistema de Paginación 

En sistemas multiprogramados, especialmente en los de tiempo compartido, es comúnque más de un usuario estén ejecutando los mismos programas:

  Para optimizar el uso de la memoria real se comparten las páginas que pueden

ser compartidas:

o  El compartimiento debe ser cuidadosamente controlado para evitar que

un proceso modifique datos que otro proceso esta leyendo (ver Figura

3.25 [7, Deitel]).

o  Los programas se encuentran divididos en áreas separadas de

“procedimiento” y “datos”. 

o  Los procedimientos no modificables se llaman “procedimientos puros

reentrantes”. 

o  Los datos y procedimientos modificables no pueden ser compartidos.

o  Los datos no modificables (ej.: tablas fijas) son compartibles.

  Se debe identificar cada página como compartible o no. 

  Habrá marcos (celdas) de páginas compartidos por varios procesos.

Page 28: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 28/75

 

El compartimiento:

  Reduce la cantidad de almacenamiento primario necesario para la ejecución

eficaz de un grupo de procesos.

  Puede hacer posible que un sistema determinado mantenga una cantidad mayor

de usuarios (procesos).

Segmentación 

En los sistemas de “segmentación” un programa y sus datos pueden ocupar varios

bloques separados de almacenamiento real (ver Figura 3.26 [7, Deitel]).

Page 29: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 29/75

 

Los bloques: 

  No necesitan ser de igual tamaño.

  Los bloques separados no necesitan ser adyacentes.

  Deben estar compuestos de posiciones contiguas de almacenamiento.

Se complica la protección de bloques de memoria de un proceso de usuario.

Es más difícil limitar el rango de acceso de cualquier programa [7, Deitel]. 

Un esquema posible de protección es el uso de claves de protección del

almacenamiento (ver Figura 3.27 [7, Deitel]):

  Las claves están bajo el control estricto del S. O.

  Un programa de usuario, a quien corresponde una cierta clave en la cpu, solo

puede hacer referencia a los otros bloques del almacenamiento con igual clavede protección.

Page 30: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 30/75

 

Una dirección virtual es un par ordenado v=(s,d) (ver Figura 3.28 [7, Deitel]):

  “s” es el número del segmento del almacenamiento virtual en el cual residen los

elementos referidos.

  “d” es el desplazamiento en el segmento “s” en el cual se encuentra el elemento

referido.

Page 31: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 31/75

 

Un proceso solo puede ejecutarse si su segmento actual (como mínimo) está en el

almacenamiento primario.

Los segmentos se transfieren del almacenamiento secundario al primario como unidades

completas. 

Un nuevo segmento puede ser colocado en una serie disponible de posiciones contiguas

del almacenamiento primario de tamaño suficiente para alojar al segmento.

La traducción dinámica de direcciones utiliza una “tabla de mapa de segmentos”. 

Control de Acceso en Sistemas de Segmentación 

Se le otorga a cada proceso ciertos derechos de acceso a todos los segmentos y se le

niega completamente el acceso a muchos otros.

Si un proceso tiene “acceso de lectura” a un segmento, puede obtener cualquier

elemento de información contenido en ese segmento.

Si un proceso tiene “acceso de escritura” a un segmento, puede modificar cualquier

contenido del segmento y puede introducirle información adicional, incluso destruir

toda la información del segmento.

Un proceso con “acceso de ejecución” de un segmento puede ejecutarlo como si fueraun programa.

Page 32: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 32/75

Un proceso con “acceso de adición” puede escribir información adicional al final del

segmento, pero no puede modificar la información existente.

En base a los “tipos de control de acceso” indicados pueden crearse distintos “modos

de control de acceso”. 

Ejemplos de combinación de los accesos de lectura, escritura y ejecución para producir

modos de protección útiles se dan en la Tabla 3.1 y en la Tabla 3.2 [7, Deitel]. 

Modo Lectura Escritura Ejecución Explicación 

0 N N NNo hay permiso de

acceso

1 N N S Solo ejecución

2 S N N Solo lectura3 S N S Lectura / ejecución

4 S S NLectura / escritura pero

no ejecución

5 S S S Acceso no limitado

Tabla 3.1: Ejemplo de combinación de accesos. 

Modo Aplicación 0 Seguridad

1Un programa disponible a los usuarios, que no pueden

copiarlo ni modificarlo, pero sí ejecutarlo

2 Recuperación de información

3Un programa puede ser copiado o ejecutado, pero no

puede ser modificado

4Protege los datos contra un intento erróneo de

ejecutarlos

5 Este acceso se concede a los usuarios de confianzaTabla 3.2: Ejemplo de aplicaciones de la combinación de

accesos. 

Traducción de Direcciones de Segmentación por Transformación Directa 

Existen varias estrategias para la implementación de la traducción de direcciones de

segmentación:

  Por transformación directa, asociativa o combinación de asociativa / directa.

Page 33: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 33/75

  Con caché suficiente para alojar la tabla completa de mapa de segmentos o

caché parciales que contengan solo las entradas de los segmentos de referencia

más reciente (ver Figura 3.29 [7, Deitel]).

Se considerará la traducción de direcciones de segmentación con la tabla completa de

mapa de segmentos en la caché.

Un proceso en ejecución hace referencia a la dirección virtual v = (s,d): 

  El segmento número “s” se añade a la dirección base “b” en el registro origen

de la tabla de mapa de segmentos formando la dirección de memoria real “b +

 s”, de la entrada para el segmento “s” de la tabla de mapa de segmentos, que

contiene la dirección del almacenamiento primario “s ’ ”, donde comienza el

segmento.

  El desplazamiento “d” se añade a “s ’ ” formando la dirección real “r = d + s ’ 

”, correspondiente a la dirección virtual “v = (s,d)”. 

Un “bit de residencia”, “r”, indica si en la actualidad el segmento se encuentra o no en

el almacenamiento primario.

Si el segmento se encuentra en el almacenamiento primario “s ’ ” es la dirección en este

almacenamiento donde comienza el segmento.

Si el segmento no se encuentra en el almacenamiento primario “a” es la dirección en el

almacenamiento secundario de donde debe recuperarse antes que el proceso pueda

continuar.

Se compara cada referencia a un segmento con los bits de protección para determinar si

se permite la operación que se está intentando.

Page 34: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 34/75

Si el segmento buscado no está en el almacenamiento primario se genera un “fallo de

 pérdida de segmento”: 

  El S. O. obtiene el control y carga el segmento referido desde la dirección “a” 

del almacenamiento secundario.

  Se comprueba si el desplazamiento “d” es menor o igual a la longitud delsegmento “l ”: 

o  Si no es así se genera un “fallo de desbordamiento de segmento” y el S.

O. obtiene el control y termina la ejecución del proceso.

o  Si el desplazamiento está en el rango del segmento se comprueban los

bits de protección para asegurarse si se permite la operación que se está

intentando:

  Si es así entonces la dirección base del segmento, “s ’ ”, en el

almacenamiento primario se añade al desplazamiento “d” 

formando la dirección de memoria real “r = s ’ + d”, que

corresponde a la dirección del almacenamiento virtual “v =

(s,d)”.   Si la operación intentada no se permite se genera un “fallo de

 protección de segmento” y el S. O. obtiene el control y termina la

ejecución del proceso.

Compartimiento en un Sistema de Segmentación 

Una de las ventajas de la segmentación sobre la paginación es que se trata más de un

hecho lógico que físico:

  En un sistema de segmentación, una vez que un segmento ha sido declarado

como compartido, entonces las estructuras que lo integran pueden cambiar de

tamaño.

  Lo anterior no cambia el hecho lógico de que residen en un segmento

compartido.

 Dos procesos pueden compartir un segmento con solo tener entradas en sus tablas

generales que apunten al mismo segmento del almacenamiento primario (ver Figura

3.30 [7, Deitel]).

Sistemas de Paginación / Segmentación 

Page 35: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 35/75

Ofrecen las ventajas de las dos técnicas de organización del almacenamiento virtual [7,

Deitel]. 

El tamaño de los segmentos es múltiplo del de las páginas.

 No es necesario que todas las páginas de un segmento se encuentren al mismo tiempoen el almacenamiento primario. 

Las páginas de almacenamiento virtual, que son contiguas en este almacenamiento, no

necesitan ser contiguas en el almacenamiento real.

El direccionamiento es tridimensional con una dirección de almacenamiento virtual “v

= (s,p,d)”: 

  “s” es el número del segmento.

  “p” es el número de página.

  “d” es el desplazamiento en la página donde se encuentra asignado el elementodeseado.

Traducción Dinámica de Direcciones en Sistemas de Paginación / Segmentación 

Se considera la traducción dinámica de direcciones de virtuales a reales en un sistema

de paginación / segmentación utilizando la combinación de transformación asociativa / 

directa (ver Figura 3.31 [7, Deitel]).

Page 36: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 36/75

 

El proceso en ejecución hace referencia a la dirección virtual v = (s,p,d) (ver Figura

3.32 [7, Deitel]).

Page 37: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 37/75

 

Las páginas de referencia más reciente tienen entradas en un almacenamiento

asociativo.

Se realiza una búsqueda asociativa para intentar localizar (s,p) en el almacenamiento

asociativo:

  Si se encuentra (s,p), entonces el marco de página “p ’ ” en el cual reside dicha

página en la memoria real, se concatena al desplazamiento “d” para formar la

dirección de memoria real “r” correspondiente a la dirección virtual v= (s,p,d). 

  Si no se encuentra (s,p), entonces:

o  La dirección base “b” de la tabla de segmentos se añade al número de

segmento “s” formando la dirección “b + s” de la entrada de la tabla de

mapa de segmentos para el segmento “s” de la memoria real.

Page 38: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 38/75

o  La entrada de la tabla de mapa de segmentos indica la dirección base “s ’ 

” de la tabla de páginas para el segmento “s”. 

o  El número de página “p” se añade a “s ’ ” formando la dirección “p + s

’ ” de la entrada en la tabla de páginas para la página “p” del segmento

“s”: 

  Indica que “p ’ ” es el número del marco correspondiente a lapágina virtual “p”. 

  “p ’ ” se concatena con el desplazamiento “d” formando la

dirección real “r ” que corresponde a la dirección virtual v =

(s,p,d). 

Si el segmento “s” no se encuentra en el almacenamiento primario se produce un “fallo

de pérdida de segmento”, cuyo caso el S. O. localiza el segmento en el almacenamiento

secundario, crea una tabla de páginas para el segmento y carga la página apropiada en el

almacenamiento primario, pudiendo producir reemplazos de páginas.

Si el segmento “s” está en el almacenamiento primario y si la referencia a la tabla demapa de páginas indica que la página deseada no se encuentra en el almacenamiento

primario, se produce un “fallo de pérdida de página”, en tal caso el S. O. obtiene el

control, localiza la página en el almacenamiento secundario y la carga, pudiendo

reemplazar otra página.

Si una dirección de almacenamiento virtual está más allá del final del segmento se

genera un “fallo de desbordamiento de segmento”, el que debe ser atendido por el S. O.

Si los bits de protección indican que la operación que se va a ejecutar en la dirección

virtual referida no se permite, se genera un “fallo de protección de segmento”, el que

también debe ser atendido por el S. O.

Si se utiliza un mecanismo de transformación directa pura, manteniendo el mapa

completo dentro del almacenamiento primario, la referencia promedio de

almacenamiento virtual requeriría:

  Un ciclo de almacenamiento para acceder a la tabla de mapa de segmentos. 

  Un segundo ciclo de almacenamiento para hacer referencia a la tabla de mapa

de páginas. 

  Un tercer ciclo de almacenamiento para referenciar al elemento deseado del

almacenamiento real. 

Cada referencia a un elemento comprende tres ciclos de almacenamiento: 

  El sistema correría casi a 1 / 3 de su velocidad nominal.

  La traducción de direcciones insumiría 2 / 3 del tiempo.

Con la utilización de registros asociativos (por ej. 16 registros), se logran velocidades de

ejecución del 90 % o más de la velocidad total de procesamiento de sus procesadores de

control.

Page 39: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 39/75

La estructura de tablas de procesos, de mapas de segmentos y de mapas de páginas

puede consumir un porcentaje importante del almacenamiento primario cuando se

ejecutan un gran número de procesos.

La traducción procede mucho más rápido si todas las tablas están en el almacenamiento

primario, lo que resta espacio para los procesos.

Compartimiento en un Sistema de Paginación / Segmentación 

Se implementa disponiendo entradas en tablas de mapa de segmentos para diferentes

procesos que apunten a la misma tabla de mapa de páginas (ver Figura 3.33 [7, Deitel]).

El compartimiento requiere una administración cuidadosa por parte del S. O., ya sea en

sistemas de paginación, segmentación o paginación / segmentación, pues se debe

considerar qué sucedería si una nueva página reemplazara a otra página compartida por

muchos procesos.

Estrategias de Administración del Almacenamiento Virtual 

Las diferentes organizaciones de almacenamiento virtual generalmente

implementadas son [7, Deitel]:

Page 40: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 40/75

  Paginación.

  Segmentación.

  Segmentación y paginación.

 Las estrategias para la administración de sistemas de almacenamiento virtual

condicionan la conducta de los sistemas de almacenamiento virtual que operan segúnesas estrategias. 

Se consideran las siguientes estrategias:

  “Estrategias de búsqueda”: 

o  Tratan de los casos en que una página o segmento deben ser traídos del

almacenamiento secundario al primario.

o  Las estrategias de “búsqueda por demanda” esperan a que se haga

referencia a una página o segmento por un proceso antes de traerlos al

almacenamiento primario.

o  Los esquemas de “búsqueda anticipada” intentan determinar poradelantado a qué páginas o segmentos hará referencia un proceso para

traerlos al almacenamiento primario antes de ser explícitamente

referenciados.

  “Estrategias de colocación”: 

o  Tratan del lugar del almacenamiento primario donde se colocará una

nueva página o segmento.

o  Los sistemas toman las decisiones de colocación de una forma trivial ya

que una nueva página puede ser colocada dentro de cualquier marco de

página disponible.

  “Estrategias de reposición”: 

o  Tratan de la decisión de cuál página o segmento desplazar para hacer

sitio a una nueva página o segmento cuando el almacenamiento primario

está completamente comprometido.

Estrategias de Reposición de Página 

Las principales son:

  El principio de optimización.  Reposición de páginas al azar.

  Primero en entrar - primero en salir.

  Menos recientemente usada.

  Menos frecuentemente usada.

  No usada recientemente.

  Conjuntos de trabajo.

El Principio de Optimización 

El “principio de optimización” indica que para obtener un rendimiento óptimo, la

página que se va a reponer es una que no se va a utilizar en el futuro durante el períodode tiempo más largo.

Page 41: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 41/75

El problema es que no es factible predecir el futuro.

Reposición de Página al Azar 

Consiste en escoger al azar la página que va a ser reemplazada.

Todas las páginas del almacenamiento principal deben tener la misma probabilidad de

ser reemplazadas.

Debe poder seleccionar cualquier página, incluyendo la que va a ser referenciada a

continuación (peor selección).

Este esquema es raramente usado.

Reposición de Página por el Sistema de Primero en Entrar -Primero en Salir(FIFO) 

Se registra el momento en que cada página ingresa al almacenamiento primario.

Para reemplazar una página, se selecciona aquella que ha estado más tiempo

almacenada.

Se presenta el inconveniente de que se pueden reemplazar páginas muy usadas, que

serán llamadas de nuevo al almacenamiento primario casi de inmediato.

Se puede presentar la llamada “anomalía FIFO”: 

  Belady, Nelson y Shedler descubrieron que con la reposición FIFO, ciertos

patrones de referencias de páginas causan más fallos de páginas cuando se

aumenta el número de marcos (celdas) de páginas asignados a un proceso: en

esto consiste la “anomalía FIFO”. 

  Esta anomalía contradice a la intuición (ver Figura 3.34 [7, Deitel]).

Page 42: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 42/75

 

Reposición de Página Menos - Recientemente - Usada (LRU) 

Esta estrategia selecciona para ser reemplazada la página que no ha sido usada durante

el mayor período de tiempo.

Se basa en la heurística de que el pasado reciente es un buen indicador del futuro próximo. 

Requiere que cada página reciba un “sello de tiempo” cada vez que se referencia:

  Puede significar una sobrecarga adicional importante.

  No se implementa frecuentemente.

La página seleccionada para reemplazo podría ser la próxima en ser requerida, por lo

que habría que paginarla de nuevo al almacenamiento principal casi de inmediato.

Reposición de Página Menos - Frecuentemente - Usada (LFU) 

Acá interesa la intensidad de uso que haya tenido cada página.

La página que será reemplazada es aquella que ha sido usada con menos frecuencia o

que ha sido referida con menos intensidad.

El inconveniente es que se puede seleccionar fácilmente para su reposición la página

equivocada:

Page 43: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 43/75

  Ej.: La página de uso menos frecuente puede ser la página de entrada más

reciente al almacenamiento principal, y por lo tanto existe una alta probabilidad

de que sea usada de inmediato.

Reposición de Página No Usada - Recientemente (NUR) 

Presupone que las páginas que no han tenido uso reciente tienen poca probabilidad de

ser usadas en el futuro próximo y pueden ser reemplazadas por otras nuevas.

 Es deseable reemplazar una página que no ha sido cambiada mientras estaba en el

almacenamiento primario. 

La estrategia NUR se implementa con la adición de dos bits de hardware por página: 

  “Bit referenciado”: o  = 0 si la página no ha sido referenciada.

o  = 1 si la página ha sido referenciada.

  “Bit modificado” (también llamado “bit sucio”):

o  = 0 si la página no ha sido modificada.

o  = 1 si la página ha sido modificada.

La selección de la página que será reemplazada comienza buscando una página que no

ha sido referenciada, pero si no la encuentra habrá que reemplazar una página que ha

sido referenciada.

Si una página ha sido referenciada se comprueba si ha sido modificada o no:

  Si no ha sido modificada se la reemplaza:

o  Su reposición representa menos sobrecarga que la de una página

modificada, ya que debería grabarse de nuevo en el almacenamientos

secundario.

  Si no se encuentra una página que no ha sido modificada será reemplazada una

página modificada.

Con el transcurso del tiempo la mayoría de los “bits referenciados” serán activados:

  Se pierde la capacidad para distinguir las páginas más deseables para serreemplazadas.

  Para evitarlo se ajustan periódicamente todos los “bits referenciados” a “0”:

o  Se logra un nuevo inicio.

o  Se vuelve vulnerable al reemplazo aún a las páginas activas, pero solo

brevemente, mientras se reajustan los bits.

Los “bits modificados” no se ajustan periódicamente según esta estrategia.

Localidad 

El concepto de “localidad” expresa [7, Deitel]: 

Page 44: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 44/75

  “Los procesos tienden a hacer referencia al almacenamiento en patrones no

uniformes y muy localizados”. 

La “localidad” se manifiesta en el “tiempo” y en el “espacio”: 

  Es una propiedad empírica (observada).  Nunca está garantizada pero es altamente probable.

  Ej.: Los procesos tienden a favorecer ciertos subconjuntos de páginas, las que

tienden a ser adyacentes entre sí en el espacio de direcciones virtuales del

proceso.

  Está relacionada con la forma en que se escriben los programas y se organizan

los datos.

“Localidad temporal ”: significa que las localidades de almacenamiento referenciadas

recientemente tienen una alta probabilidad de ser referenciadas en un futuro próximo:

  Se apoya en la utilización de:o  Formación de ciclos (loops).

o  Subrutinas.

o  Pilas.

o  Variables usadas para contar y totalizar.

“Localidad en el espacio”: significa que las referencias de almacenamiento tienden a

acumularse de manera tal que, una vez que se hace referencia a una localidad, es muy

probable que las localidades cercanas sean también referenciadas:

  Se apoya en la utilización de:

o  Recorrido de arreglos.

o  Ejecución secuencial de código.

o  Tendencia de los programadores a colocar definiciones de variables

relacionadas, próximas entre sí.

Un programa puede ejecutar eficientemente mientras su subconjunto de páginas

 preferido se encuentre en el almacenamiento primario. 

El número de fallos de páginas de un proceso depende de la cantidad de

almacenamiento primario disponible para sus páginas.

Generalmente los procesos no muestran patrones de referencias aleatorios

uniformemente distribuidos por sus diferentes páginas.

Al reducir el número de marcos (celdas) de páginas disponibles para un proceso existe

un intervalo durante el cual la razón de fallos de páginas no se afecta excesivamente.

En determinado punto, cuando se reduce más el número de marcos de páginas, el

número de fallos de páginas aumenta drásticamente.

Mientras el subconjunto de páginas favorecidas por un proceso permanezca en el

almacenamiento primario, el número de fallos de páginas no aumenta mucho.

Page 45: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 45/75

Tan pronto como las páginas del subconjunto favorecido son retiradas del

almacenamiento primario, la actividad de paginación del proceso aumenta en gran

medida al referenciar y traer de nuevo estas páginas al almacenamiento primario.

Los “subconjuntos favorecidos” también son llamados “conjuntos de trabajo” o

“working sets” (ver Figura 3.35 [7, Deitel]).

Conjuntos de Trabajo 

Denning desarrolló un punto de vista de la actividad de paginación de un programa

llamado la “teoría de conjunto de trabajo del comportamiento de un programa”  [7,

Deitel]. 

Un “conjunto de trabajo” es una colección de páginas a las cuales un proceso hace

activamente referencia. 

Denning sostenía que para que un programa se ejecutara eficientemente, su conjunto de

trabajo debe ser mantenido en el almacenamiento primario, para evitar la

“hiperpaginación”. 

Una “política de administración de almacenamiento por conjunto de trabajo” trata de

mantener el conjunto de trabajo de los programas activos en el almacenamiento

primario.

La decisión de añadir un nuevo proceso al conjunto activo de procesos (aumentar el

nivel de multiprogramación):

  Se basa en si hay suficiente espacio disponible en el almacenamiento primario

como para acomodar el conjunto de trabajo del nuevo proceso.

  Se toma generalmente de forma heurística ya que es imposible para el sistema

conocer por anticipado el tamaño del conjunto de trabajo de un proceso dado.

Page 46: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 46/75

El conjunto de trabajo de páginas de un proceso “w(t,w)” en el momento “t” es el

conjunto de páginas referidas por un proceso durante el intervalo de tiempo del proceso

“t - w” a “t ” (ver Figura 3.36 [7, Deitel]).

El “tiempo del proceso” es el tiempo durante el cual este proceso tiene la cpu.

La variable “w” se denomina “tamaño de la ventana del conjunto de trabajo”: 

  La determinación del tamaño de “w” es muy importante.

  Al aumentar el tamaño de la ventana “w” aumenta el tamaño del conjunto de

trabajo (ver Figura 3.37 [7, Deitel]).

“El verdadero conjunto de trabajo de un proceso es el conjunto de páginas que deben

estar en el almacenamiento primario para la ejecución eficaz de este proceso”.  

Los conjuntos de trabajo cambian mientras un proceso está en ejecución:

  Complica la administración precisa del almacenamiento primario en base a esta

estrategia.

  “Los conjuntos de trabajo son transitorios y el siguiente conjunto de trabajo del 

 proceso puede diferir substancialmente de su conjunto de trabajo anterior”. 

Page 47: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 47/75

  Se debe evitar un exceso de compromiso del almacenamiento primario y la

consecuente hiperpaginación.

Paginación por Demanda y Paginación Anticipada 

Paginación por Demanda 

Las paginas son cargadas por demanda [7, Deitel]. 

No se llevan páginas del almacenamiento secundario al primario hasta que son

referenciadas explícitamente por un proceso en ejecución.

Las razones del atractivo de esta estrategia son:

  Los resultados de computabilidad, en especial el “problema de parada”, indican

que el camino que tomará la ejecución de un programa no se puede predecir 

con exactitud. 

  Garantiza que solo las páginas que necesita el proceso sean traídas al

almacenamiento principal.

  La sobrecarga de proceso para decidir qué página traer al almacenamiento

principal es mínima.

El principal inconveniente está en los procesos que requieren acumular sus páginas una

por una:

  Los tiempos de espera de páginas son considerables.

  Es creciente la cantidad de almacenamiento primario afectada al proceso queespera páginas, por lo que el “producto espacio - tiempo” se incrementa.

El “producto espacio - tiempo” indica la cantidad de almacenamiento que usa un

proceso y la cantidad de tiempo que lo usa.

“La reducción del producto espacio - tiempo de las esperas de páginas de un procesoes una meta importante de las estrategias de administración del almacenamiento” (ver

Figura 3.38 [7, Deitel]).

Page 48: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 48/75

 

Paginación Anticipada 

El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación

precarga estas páginas cuando hay espacio disponible [7, Deitel]. 

Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que

estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de

un proceso se puede reducir.

Liberación de Página y Tamaño de Página 

Liberación de Página 

Un proceso usuario puede emitir una “liberación voluntaria de página” para liberar el

marco de página cuando ya no necesitara esa página [7, Deitel]. 

Se puede eliminar el “desperdicio” y acelerar la ejecución.

El inconveniente es que la incorporación de mandatos de liberación de páginas dentro

de los programas de usuarios puede ser peligroso y retrasar el desarrollo de

aplicaciones.

“Los compiladores y S. O. deberían detectar automáticamente situaciones de liberación

de página mucho antes de lo que es posible con estrategias de conjuntos de trabajo”.  

Tamaño de Página 

Generalmente el almacenamiento real se divide en marcos o celdas de página de tamaño

fijo [7, Deitel]. 

Los interrogantes tienen que ver con el tamaño de las páginas, si todas las páginas

tendrán igual tamaño, si en caso de utilizar páginas de diferente tamaño las páginas

mayores deben ser o no múltiplos enteros de las menores, etc.

Page 49: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 49/75

Algunas consideraciones para determinar el tamaño de página son las siguientes:

  Cuanto más pequeño sea el tamaño de una página, más páginas y marcos de

páginas habrá y mayores serán las tablas de páginas:

o  El desperdicio de almacenamiento debido al tamaño excesivo de las

tablas de página se llama “fragmentación de tablas”. o  Esto indica la necesidad de páginas más grandes. 

  Con páginas grandes, grandes cantidades de información que nunca llegaría a ser

referenciada, se paginarán hacia el almacenamiento primario:

o  Esto indica la necesidad de páginas más pequeñas. 

  Debido a que las transferencias de e / s del disco (paginación) consumen

bastante tiempo, se debe minimizar la paginación que un proceso requiera:

o  Esto indica la necesidad de páginas grandes. 

  Los programas tienden a mostrar la propiedad de localidad de referencia y esta

localidad tiende a ser pequeña:

o  Esto indica la necesidad de páginas pequeñas. 

  Los procedimientos y datos rara vez comprenden un número entero de páginas,por lo que los sistemas de paginación experimentan una “fragmentación

interna”: 

o  El desperdicio promedio es de 1 / 2 página no usada por segmento

(grupo) de páginas, que estará en la última página del segmento.

o  Esto indica la necesidad de páginas pequeñas. 

Los tamaños de pagina mas utilizados son: 512 b, 1 kb, 2 kb, 4 kb.

Comportamiento de un Programa en la Paginación 

Respecto del porcentaje de las páginas de un proceso típico referenciadas desde el

momento de iniciarse su ejecución [7, Deitel]: 

  Un proceso tiende a hacer referencia a una parte significativa de sus páginas

inmediatamente después de iniciar su ejecución.

  El proceso puede concluir sin haber referenciado a algunas de sus páginas,

correspondientes a rutinas que atienden errores que no se produjeron.

Respecto de variar el tamaño de la página manteniendo constante la cantidad de

almacenamiento primario:

  El número de fallos de páginas experimentados por un proceso en ejecución

tiende a aumentar con el tamaño de la página, debido a que se traen al

almacenamiento primario un mayor número de procedimientos y datos que no

serán referenciados, restando lugar para los que sí lo serán.

Respecto de cómo el promedio de tiempo interfallos (tiempo entre fallos de página)

varía al aumentar el número de marcos de página asignados al proceso:

  Cuanto más marcos de página tenga un proceso, mayor será el tiempo entre los

fallos de páginas.

  El punto de inflexión se da cuando el proceso tiene todo su conjunto de trabajoen el almacenamiento primario.

Page 50: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 50/75

  Asignar marcos de página adicionales más allá del punto de inflexión no

produce efectos significativos sobre el tiempo interfallos.

Respecto del porcentaje de instrucciones de una página que son ejecutadas antes de

transferirse el control a otra página, los valores experimentales obtenidos indican un

máximo de 200 instrucciones por página de 1 kb (ver Figura 3.39 [7, Deitel]).

Page 51: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 51/75

 

Page 52: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 52/75

 INTRODUCCIÓN

La memoria es uno de los principales recursos de la

computadora, la cual debe de administrarse con muchocuidado.Aunque actualmente la mayoría de los sistemas de

cómputo cuentan con una alta capacidad de memoria, deigual manera las aplicaciones actuales tienen también altosrequerimientos de memoria, lo que sigue generando escasezde memoria en los sistemas multitarea y/o multiusuario.

La parte del sistema operativo que administra la memoria

se llama administrador de memoria y su labor consiste enllevar un registro de las partes de memoria que se esténutilizando y aquellas que no, con el fin de asignar espacio enmemoria a los procesos cuando éstos la necesiten yliberándola cuando terminen, así como administrar elintercambio entre la memoria principal y el disco en los casosen los que la memoria principal no le pueda dar capacidad atodos los procesos que tienen necesidad de ella.

Estos sistemas de administración de memoria se pueden

clasificar en dos tipos: _ los que desplazan los procesos de lamemoria principal al disco y viceversadurante la ejecución, y, _ los que no. 

ESTRUCTURAS DE HARDWARE Y DE CONTROL 

Los métodos de administración de la memoria principal, que noutilizan Memoria Virtual y esquemas de Paginación y Segmentación, esdecir que llevan a las direcciones directamente al bus de la memoria,tienen un inconveniente: producen lo que se denomina fragmentación.

La fragmentación, que son huecos en la memoria que no puedenusarse debido a lo pequeño de su espacio, provoca un desperdicio dememoria principal.

Una posible solución para la fragmentación externa es permitir que

espacio de direcciones lógicas lleve a cabo un proceso en direcciones nocontiguas, así permitiendo al proceso ubicarse en cualquier espacio de

Page 53: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 53/75

memoria física que esté disponible, aunque esté dividida. Una forma deimplementar esta solución es a través del uso de un esquema depaginación. La paginación evita el considerable problema de ajustar lospedazos de memoria de tamaños variables que han sufrido losesquemas de manejo de memoria anteriores. Dado a sus ventajas sobre

los métodos previos, la paginación, en sus diversas formas, es usada enmuchos sistemas operativos.

Al utilizar la memoria virtual, las direcciones no pasan en formadirecta al bus de memoria, sino que van a una unidad administradorade la memoria (MMU  – Memory Management Unit). Estas direccionesgeneradas por los programas se llaman direcciones virtuales yconforman el hueco de direcciones virtuales. Este hueco se divide enunidades llamadas páginas. Las unidades correspondientes en lamemoria física se llaman marcos para página o frames. Las páginas ylos marcos tienen siempre el mismo tamaño.

Comparando la paginación y segmentación simple por un lado, conla partición estática y dinámica por el otro, se establecen las bases paraun avance fundamental en la gestión de memoria, y es que:

  Se puede cargar y descargar un proceso de la memoria principal detal forma que ocupe regiones diferentes de la memoria principal enmomentos distintos a lo largo de su ejecución.

  Un proceso puede dividirse en varias partes (páginas o segmentos) yno es necesario que estas partes se encuentren contiguas en lamemoria principal.

Si estas dos características están presentes, no será necesario quetodas las páginas o todos los segmentos de un proceso estén en lamemoria durante la ejecución.

El término fragmento hace referencia tanto a páginas como asegmentos, dependiendo de si se emplea paginación o segmentación.Supóngase que se trae un proceso a la memoria en un momento dado, elS.O comienza trayendo sólo unos pocos fragmentos, incluido elfragmento que contiene el comienzo del programa.

Se llamará conjunto residente del proceso a la parte que estárealmente en la memoria principal.

Si el procesador encuentra una dirección lógica que no está en lamemoria principal, genera una interrupción que indica un fallo deacceso a la memoria. El S.O pone al proceso interrumpido en estadoBloqueado y toma el control. Para que la ejecución de este proceso sigamás tarde, el S.O necesita traer a la memoria principal el fragmento delproceso que contiene la dirección. Para ello se emite una solicitud deLectura de E/S al disco; luego se expide otro proceso para que se ejecutemientras se realiza la operación.

Una vez que el fragmento deseado se ha traído a la memoria principal y se ha emitido la interrupción de E/S, se devuelve el control al S.O, quecoloca el proceso afectado en el estado de Listo.

Page 54: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 54/75

 

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 unamáquina. Esta "ilusión" permite que los programas se hagan sin teneren cuenta el tamaño exacto de la memoria física.

La ilusión de la memoria virtual está soportada por el mecanismo detraducción de memoria, junto con una gran cantidad dealmacenamiento rápido en disco duro. Así en cualquier momentoel espacio de direcciones virtual hace un seguimiento de tal forma queuna pequeña parte de él, está en memoria real y el resto almacenado enel disco, y puede ser referenciado fácilmente.

Debido a que sólo la parte de memoria virtual que está almacenada enla memoria principal, es accesible a la CPU, según un programa vaejecutándose, la proximidad de referencias a memoria cambia,necesitando que algunas partes de la memoria virtual se traigan a lamemoria principal desde el disco, mientras que otras ya ejecutadas, sepueden volver a depositar en el disco (archivos de paginación).

La memoria virtual ha llegado a ser un componente esencial de lamayoría de los S.O actuales. Y como en un instante dado, en la memoriasólo se tienen unos pocos fragmentos de un proceso dado, se pueden

mantener más procesos en la memoria. Es más, se ahorra tiempo,porque los fragmentos que no se usan no se cargan ni se descargan de lamemoria. Sin embargo, el S.O debe saber cómo gestionar este esquema.

La memoria virtual también simplifica la carga del programa para suejecución llamado reubicación, este procedimiento permite que el mismoprograma se ejecute en cualquier posición de la memoria física. 

En un estado estable, prácticamente toda la memoria principal estaráocupada con fragmentos de procesos, por lo que el procesador y el S.Otendrán acceso directo a la mayor cantidad de procesos posibles, ycuando el S.O traiga a la memoria un fragmento, deberá expulsar otro.Si expulsa un fragmento justo antes de ser usado, tendrá que traer denuevo el fragmento de manera casi inmediata. Demasiados intercambiosde fragmentos conducen a lo que se conoce como hiperpaginación:donde el procesador consume más tiempo intercambiando fragmentosque ejecutando instrucciones de usuario. Para evitarlo el S.O intentaadivinar, en función de la historia reciente, qué fragmentos se usaráncon menor probabilidad en un futuro próximo.

Los argumentos anteriores se basan en el principio de cercanía o principio de localidad  que afirma que las referencias a los datos y elprograma dentro de un proceso tienden a agruparse. Por lo tanto, esválida la suposición de que, durante cortos períodos de tiempo, se

necesitarán sólo unos pocos fragmentos de un proceso.

Page 55: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 55/75

Una manera de confirmar el principio de cercanía es considerar elrendimiento de un proceso en un entorno de memoria virtual.

El principio de cercanía sugiere que los esquemas de memoria virtualpueden funcionar. Para que la memoria virtual sea práctica y efectiva, senecesitan dos ingredientes. Primero, tiene que existir un soporte de

hardware y, en segundo lugar, el S.O debe incluir un software paragestionar el movimiento de páginas o segmentos entre memoriasecundaria y memoria principal.

 Justo después de obtener la dirección física y antes de consultar eldato en memoria principal se busca en memoria-cache, si esta entre losdatos recientemente usados la búsqueda tendrá éxito, pero si falla, lamemoria virtual consulta memoria principal , ó, en el peor de los casosse consulta de disco (swapping).

Memoria Virtual = Memoria Física + Area de Swapping en Disco 

PAGINACION 

El término memoria virtual se asocia normalmente con sistemas que empleanpaginación, aunque también se puede usar memoria virtual basada en lasegmentación. El uso de la paginación en la memoria virtual fue presentadopor primera vez en el computador Atlas.

Cada proceso tiene su propia tabla de páginas y cuando carga todas suspáginas en la memoria principal, se crea y carga en la memoria principal una

Page 56: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 56/75

tabla de páginas. Cada entrada de la tabla de páginas contiene el número demarco de la página correspondiente en la memoria principal. Puesto que sóloalgunas de las páginas de un proceso pueden estar en la memoria principal, senecesita un bit en cada entrada de la tabla para indicar si la páginacorrespondiente está presente (P) en la memoria principal o no. Si el bit indica

que la página está en la memoria, la entrada incluye también el número demarco para esa página.Otro bit de control necesario en la entrada de la tabla de páginas es el bit de

modificación (M), para indicar si el contenido de la página correspondiente seha alterado desde que la página se cargó en la memoria principal. Si no hahabido cambios, no es necesario escribir la página cuando sea sustituida en elmarco que ocupa actualmente.

Estructura de la tabla de páginas 

El mecanismo básico de lectura de una palabra de la memoria supone la

traducción por medio de la tabla de páginas de una dirección virtual o lógica,formada por un número de página y un desplazamiento, a una dirección físicaque está formada por un número de marco y un desplazamiento.

Con la memoria virtual, la CPU produce direcciones virtuales que sontraducidas por una combinación de hardware y software a direcciones físicas,pues pueden ser utilizadas para acceder a memoria principal. Este proceso sedenomina correspondencia de memoria o traducción de direcciones.Actualmente los dos niveles de la jerarquía de memoria controlados por lamemoria virtual son las DRAM y los Discos magnéticos.

Puesto que la tabla de páginas es de longitud variable, en función deltamaño del proceso, no es posible suponer que quepa en los registros.

La figura anterior sugiere una implementación en hardware de esteesquema. Cuando se está ejecutando un proceso en particular, la dirección decomienzo de la tabla de páginas para este proceso se mantiene en un registro.

El número de página de la dirección virtual se emplea como índice en esta tablapara buscar el número de marco correspondiente. Este se combina con la parte

Nº Pag Desplaza-miento

DirecciónVirtual

Puntero a tablade páginas

Registro

Nº Pag Desplazamiento

+ Nº Marco

Programa

Mecanismo depaginaciónMemoria

Desplaza-miento

MarcodePágina

Traducción de direcciones en un sistema de paginación

Page 57: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 57/75

de desplazamiento de la dirección virtual para generar la dirección realdeseada.

La mayoría de los esquemas de memoria virtual almacenan las tablas depáginas en la memoria virtual en vez de en la memoria real. Esto significa que

estas tablas de páginas están también sujetas a paginación, de la misma formaque las otras páginas.

Cuando un proceso se está ejecutando, al menos una parte de su tabla depáginas debe estar en la memoria principal, incluyendo la entrada de la tablade páginas para la página actualmente en ejecución. Algunos procesadoresusan un esquema de dos niveles para organizar grandes tablas de páginas,donde hay un directorio de páginas en el que cada entrada señala a una tablade páginas. Así pues, si la longitud del directorio de páginas es X, y la longitudmáxima de una tabla de páginas es Y, un proceso puede estar formado porhasta X x Y páginas. Normalmente, la longitud máxima de una tabla depáginas está limitada a una página. Por ejemplo, el procesador Pentium utiliza

este método.

Un enfoque alternativo al uso de tablas de páginas de uno o dos niveles es eluso de una estructura de tabla de páginas invertida. Con este método, laparte del número de página de una dirección virtual se traduce a una tabla dedispersión por medio de una función de dispersión simple. La tabla dedispersión contiene un puntero a la tabla de páginas invertida, que contiene asu vez las entradas de la tabla de páginas.

Con esta estructura, hay una entrada en la tabla de dispersión y en la tablade páginas invertida por cada página de memoria real en lugar de una por cadapágina virtual. Así pues, se necesita una parte fija de la memoria real para las

tablas, sin reparar en el número de procesos o de páginas virtuales soportados.La técnica de dispersión genera normalmente cadenas cortas, de dos a tresentradas cada una.

Buffer de traducción adelantada 

Cada referencia a la memoria virtual puede generar dos accesos a lamemoria: uno para obtener la entrada de la tabla de páginascorrespondientes y otro para obtener el dato deseado.

Un esquema sencillo de memoria virtual podría tener el efecto dedoblar el tiempo de acceso a la memoria. Para solucionar este problema,la mayoría de los esquemas de memoria virtual hacen uso de una cacheespecial para las entradas de la tabla de páginas, llamada generalmentebuffer de traducción adelantada (TLB,Translation Lookaside Buffer)que contiene aquellas entradas de la tabla de páginas usadas hacemenos tiempo.

La organización de hardware de paginación resultante se muestra enla figura siguiente.

Page 58: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 58/75

 

Dada una dirección virtual, el procesador examinará primero la TLB.Si la entrada de la tabla de páginas buscada está presente se obtiene elnúmero de marco y se forma la dirección real. Si no se encuentra, elprocesador emplea el número de página como índice para buscar en la

tabla de páginas del proceso y examinar la entrada correspondiente de latabla de páginas. Si no se encuentra activo el bit de presencia, es que lapágina está en la memoria principal y el procesador puede obtener elnúmero de marco de la entrada de la tabla de páginas para formar ladirección real. El procesador, además, actualiza la TLB para incluir estanueva entrada de la tabla de páginas. Si el bit de presencia no estáactivo, es que la página buscada no está en la memoria principal y seproduce un fallo en el acceso a la memoria, llamado fallo de página.

Existe una serie de detalles adicionales sobre la organización real dela TLB. Puesto que la TLB contiene sólo algunas de las entradas de la

tabla de páginas completa, no se puede indexar simplemente la TLB porel número de páginas. Cada entrada debe incluir el número de página,

Nº pág. Desplaza-

Dirección virtual

nº marco Desplaza. .miento

Desplaza

Cargarpágina

Memoria Principal Memoria

Buffer de traducción

adelantada

Tabla de páginas

Dirección Real

Page 59: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 59/75

además de la entrada completa a la tabla de páginas. El procesadorestará equipado con un hardware que permita consultarsimultáneamente varias entradas de la TLB para determinar si haycoincidencia en el número de página. Esta técnica se denominacorrespondencia asociativa y contrasta con la correspondencia directa,

que se emplea para buscar en la tabla de páginas de la figura deBúsqueda directa y asociativa. El diseñador de la TLB también debeconsiderar la forma en que se organiza las entradas en la TLB y queentrada reemplazar cuando se introduce una nueva.

ESQUEMA DE CORRESPONDENCIA DIRECTA

Dirección virtual

nª pág. Desplazam.

nº marco Desplaza-

miento

Dirección realTabla de páginas

ESQUEMA DE CORRESPONDENCIA ASOCIATIVA

Dirección virtual

nª pág. Desplazam.

nº pág. Entrada a PTE

.

.

37 502

37

.

.

.

5 502

5 502

37 502

19 

5 37

511

Page 60: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 60/75

.

.

.

nº marco Desplaza-

miento

Dirección realBuffer de traducción adelantada

Por último, el mecanismo de la memoria virtual debe interactuar con elsistema de cache de la memoria principal. La de traducción con buffer ilustraesta interacción. Una dirección virtual estará formada por el número de páginamás el desplazamiento. Una vez que se ha generado la dirección real, que estáen forma de etiqueta(formada por los bits más significativos de la dirección real)

 y un resto, se consulta la cache para ver si está presente el bloque que contienedicha palabra. Si lo está, es devuelto a la CPU. Si no, se toma la palabra de lamemoria principal.

Tamaño de Página 

Hay varios factores que considerar. Uno es la fragmentación interna. Sinduda, cuanto menor sea el tamaño de página, menor será la cantidad defragmentación interna. Para optimizar el uso de la memoria principal, espositivo reducir la fragmentación interna. Por otro lado, cuanto menor sea lapágina, mayor será el número de páginas que se necesitan por proceso. Unnúmero mayor de páginas por proceso significa que las tablas de páginas quese necesitan por proceso serán mayores. Así pues, pueden suceder dos fallos depágina para una única referencia a la memoria: primero, para traer la partenecesaria de la tabla de páginas y, segundo, para traer la página del proceso.

Se puede considerar el efecto que tiene el tamaño de página en el porcentaje

de fallos de página y se basa en el principio de cercanía. Si el tamaño de páginaes muy pequeño, normalmente estarán disponibles en la memoria principal ungran número de páginas para cada proceso. Después de un tiempo, todas las

Page 61: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 61/75

páginas de la memoria contendrán parte de las referencias más recientes delproceso y la tasa de fallos de página será menor. Cuando de incrementa eltamaño de la página, cada página individual contendrá posiciones cada vezmás distantes de cualquier referencia reciente; se atenúa el efecto de principiode cercanía y comienza a aumentar la tasa de fallos de página, que comenzará

a bajar cuando, finalmente, el tamaño de página se aproxime al tamaño de todoel proceso. Cuando una sola página abarca todo el proceso, no hay fallos depágina.

Una dificultad más es que la tasa de fallos de página viene determinadatambién por el número de marcos asignados a un proceso. Por último el diseñodel tamaño de página está relacionado con el tamaño de la memoria físicaprincipal. Al mismo tiempo que la memoria principal se hace mayor, el espaciode direcciones que emplean las aplicaciones también crece. Esta tendencia esmás evidente en las computadoras personales y estaciones de trabajo, dondelas aplicaciones se hacen cada vez más complejas.

SEGMENTACION 

Implicaciones de la memoria virtual 

La segmentación permite al programador contemplar la memoria como siconstara de varios espacios de direcciones o segmentos. Los segmentos puedenser de distintos tamaños, incluso de forma dinámica. Las referencias a lamemoria constan de una dirección de la forma (número de segmento,desplazamiento).

Esta organización ofrece al programador varias ventajas sobre un espacio dedirecciones no segmentado:

1.  Simplifica la gestión de estructuras de datos crecientes. Si el

programador no conoce a priori cuán larga puede llegar a ser unaestructura de datos determinada, es necesario suponerlo a menos quese permitan tamaños de segmentos dinámicos. Con memoria virtualsegmentada, a la estructura de datos se le puede asignar a su propiosegmento y el S.O expandirá o reducirá el segmento cuando se necesite.

2.  Permite modificar y recopilar los programas independientemente, sinque sea necesario recopilar o volver a montar el conjunto de programaspor completo.

3.  Se presta a la compartición entre procesos. Un programador puedesituar un programa de utilidades o una tabla de datos en un segmentoque puede ser referenciado por otros procesos.

4.  Se presta a la protección. Puesto que un segmento puede serconstruido para albergar un conjunto de procedimientos y datos biendefinido, el programador o el administrador del sistema podrá asignarlos permisos de acceso de la forma adecuada.

Organización 

En el estudio de la segmentación simple, se llegó a la conclusión de que cadaproceso tiene su propia tabla de segmento y que, cuando todos los segmentosse encuentran en la memoria principal, la tabla de segmentos del proceso secrea y se carga en la memoria. Cada entrada de la tabla contiene la direcciónde comienzo del segmento correspondiente de la memoria principal, así como

su longitud. La misma estructura se necesitará al hablar de un esquema dememoria virtual basado en la segmentación donde las entradas de la tabla de

Page 62: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 62/75

segmentos pasan a ser más complejas. Puesto que sólo algunos de lossegmentos de un proceso estarán en la memoria principal, se necesita un biten cada entrada de la tabla de segmentos para indicar si el segmentocorrespondiente está presente en la memoria principal. Si el bit indica que elsegmento está en la memoria, la entrada incluye también la dirección de

comienzo y la longitud del segmento.Otro bit de control necesario en la entrada de la tabla de segmentos es un bitde modificación que indique si el contenido del segmento correspondiente hasido modificado desde que se cargó por última vez en la memoria principal. Sino ha habido cambios, no será necesario escribir en el disco el segmentocuando llegue el momento de reemplazarlo en el espacio que ocupaactualmente.

Traducción de direcciones en un sistema con segmentación 

PAGINACION Y SEGMENTACION COMBINADAS 

 Tanto la paginación como la segmentación tienen sus ventajas. Lapaginación elimina la fragmentación externa y de este modo, aprovecha lamemoria principal de forma eficiente. Además, puesto que los fragmentos quese cargan y descargan de la memoria principal son de tamaño fijo e iguales, esposible construir algoritmos se gestión de memoria sofisticados que aprovechenmejor el comportamiento de los programas. La segmentación tiene las ventajasantes citadas, incluida la capacitación de gestionar estructuras de datos que

puedan crecer, la modularidad y el soporte de la compartición y la protección.Para combinar las ventajas de ambas, algunos sistemas están equipados conhardware del procesador y software del S.O.

En un sistema con paginación y segmentación combinadas, el espacio dedirecciones de un usuario se divide en varios segmentos según el criterio delprogramador. Cada segmento se vuelve a dividir en varias páginas de tamañofijo, que tienen la misma longitud que un marco de memoria principal. Si elsegmento tiene menor longitud que la página, el segmento ocupará sólo unapágina. Desde el punto de vista del programador, una dirección lógica todavíaestá formada por un número de segmento y un desplazamiento en el segmento.

Desde el punto de vista de sistema, el desplazamiento del segmento se ve como

Dirección real

Nºseg Desplaza-miento= d

DirecciónVirtual

Puntero a tablade segmentos

Registro

BASE + D

+Longitud Base

Programa

Mecanismo depaginación

Memoria

Desplaza-miento

MarcodePágina

Page 63: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 63/75

un número de página dentro del segmento y un desplazamiento dentro de lapágina.

La entrada de la tabla de segmentos contiene la longitud del segmento. Los

bits de presencia y modificación no son necesarios, puesto que estos elementosse gestionan en la página. Pueden usarse otros bits de control paracomparición y protección. La entrada de la tabla de páginas es, la misma quese usa en un sistema de paginación pura. Cada número de página se convierteen el número de marco correspondiente si la página está presente en lamemoria. El bit de modificación indica si se necesita escribir la página en eldisco cuando se asigna el marco a otra página.

Dirección virtual

Programa Mecanismo de Mecanismo de MemoriaPrincipal

segmentación paginación

-T raducción de direcciones en un sistema con segmentación y paginación- 

PROTECCION Y COMPARTIMIENTO 

Un proceso de usuario sólo puede acceder memoria localizada en su espacio de

direccionamiento virtual y un espacio de memoria compartido para sus procesos-hijo.

Habilidad de separar completamente las tareas, al poder dar a cada tareaun espacio de direcciones virtuales diferentes. Esto se hace dando un mapa de

} Marco

Puntero a

+

N.º Despl

+Tabla

Se . Desp.á . 

Page 64: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 64/75

traducción de direcciones virtuales diferente a cada tarea.Los otros mecanismos funcionan dentro de una tarea: para proteger al

propio sistema operativo de la intrusión por parte de esa tarea, y al uso deregistros especiales del procesador e instrucciones reservadas únicamente alsistema operativo.

Sólo un proceso kernel puede controlar y acceder cualquier espacio dedireccionamiento.

Además la segmentación se presta a la implementación de políticas deprotección, puesto que cada entrada de la tabla de segmentos incluye lalongitud, además de la dirección base, un programa no podrá acceder pordescuido a una posición de la memoria principal más allá de los límites de unsegmento.

Para conseguir la compartición, es posible que un segmento se referenciadesde las tablas de segmentos de más de un proceso. Este mismo mecanismoes válido en un sistema de paginación.

Se pueden ofrecer también mecanismos más sofisticados. Un esquemahabitual consiste en usar una estructura de anillo de protección donde losanillos interiores gozan de mayores privilegios que los anillos externos.Normalmente, el anillo 0 está reservado para las funciones del núcleo del S.O ylas aplicaciones están situadas a un nivel más alto. Algunos servicios del S.Opueden ocupar un anillo intermedio. Los principios básicos del sistema deanillos son los siguientes:

1.  Un programa puede acceder sólo a datos que estén en el mismo anillo oen un anillo de menor privilegio.

2.  Un programa puede hacer llamadas a servicios que residan en el mismoanillo o en anillos más privilegiados.

SOFTWARE DEL SISTEMA OPERATIVO 

El diseño del gestor de memoria en un sistema operativo depende de tresáreas fundamentales de decisión:

  Si se emplean o no técnicas de memoria virtual.  El uso de paginación, segmentación o ambas.  Los algoritmos empleados para los problemas de la gestión de memoria.

Las decisiones tomadas en las dos primeras áreas dependen de la plataforma

de hardware disponible. Las decisiones del tercer punto (los algoritmos) sondel dominio del software del S.O.. En las políticas, elementos claves de diseño,que luego se desarrollarán, el punto clave es el rendimiento: se buscaminimizar el porcentaje de fallos de página. Los fallos de página originan unaconsiderable sobrecarga en el software. Como mínimo, la sobrecarga incluye ladecisión que el S.O. debe tomar sobre las páginas residentes o páginas que sedeben reemplazar y la E/S de intercambiar páginas. Además, el S.O. debeplanificar la ejecución de otro proceso durante el intercambio de página,dando lugar a un cambio de proceso.Los elementos clave del diseño son los desarrollados a continuación:

POLÍTICAS DE LECTURA (FETCH) 

Page 65: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 65/75

Es la que está relacionada con la decisión de cuándo se debe cargar unapágina en la memoria principal. Las dos alternativas más comunes son: 

  Paginación por demanda : Se trae una página a la memoriaprincipal sólo cuando se hace referencia a una posición en dichapágina.

 

Paginación previa: Se cargan otras páginas distintas a lasdemandadas debido a un fallo de página.Esta política no es efectiva si la mayoría de las páginas extra que se traen nose referencian.La utilidad no ha sido demostrada.

POLÍTICAS DE UBICACIÓN 

 Tiene que ver con determinar dónde va ha residir una parte de un proceso en lamemoria principal. Es un aspecto importante del diseño en un sistema puro desegmentación.

Como posibles alternativas se tiene:  Políticas del mejor ajuste.  Políticas del primer ajuste  Y otras.

Sin embargo, para un sistema que usa tanto paginación pura como paginacióncombinada con segmentación, la ubicación carece de importancia puesto queel hardware de traducción de direcciones y el hardware de acceso a lamemoria principal pueden desarrollar sus funciones en cualquier combinaciónde marco de página con idéntica eficiencia.

POLÍTICAS DE REEMPLAZO 

 Trata de la selección de la página a reemplazar en la memoria principalcuando se debe cargar una nueva página. Esto resulta difícil de explicar por loque se debe tener en cuenta algunos conceptos interrelacionados como ser:  El numero de marcos de página a asignar a cada proceso activo.  Si el conjunto de páginas a considerar para el reemplazo debe limitarse a

las del proceso que provocó el fallo de página o abarcar todos los marcosde página situados en la memoria principal.

  De entre el conjunto de páginas consideradas, cuál es la página específica

que debe elegirse para el reemplazo.

X6

Page 66: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 66/75

 

MEMORIA PRINCIPAL MEMORIA

SECUNDARIA- X6 FUE EL MARCO ELEGIDO PARA REALIZAR EL REEMPLAZO DE PÁGINAS. SE ELIMINA LA PÁGINA QUE NO SE ESTA USANDO Y SE TRAE A MEMORIA PRINCIPAL LA PÁGINA QUE EL SISTEMA OPERATIVO NECESITA .

La Política de Reemplazo se encarga de seleccionar la página a reemplazarde entre las que están actualmente en la memoria, cuando todos los marcosde memoria principal están ocupados y es necesario traer una nueva páginapara atender a un fallo de página.

 Todas las políticas tienen como objetivo que la página a reemplazar sea la

que tenga una menor posibilidad de ser referenciada en un futuro cercano.Debido al principio de cercanía, hay una alta correlación entre la historia dereferencias recientes y las pautas de futuras referencias.

Es necesario tener en cuenta una restricción de la política de reemplazo:algunos de los marcos de la memoria principal pueden estar bloqueados; si esasí, la página cargada actualmente en ese marco no puede ser reemplazada.En los marcos bloqueados se albergan: la mayoría del núcleo del S.O. y lasestructuras clave de control. El bloqueo se consigue asignando un bit debloqueo a cada marco, este bit puede guardarse en una tabla de marcos oestar en la tabla de página actual.

Algoritmos básicos  

Los algoritmos que se emplean para seleccionar una página a reemplazar sonlas siguientes:

  Óptima: selecciona para reemplazar la página que tiene que esperarmás tiempo hasta que se produzca la referencia siguiente. Esta políticagenera el menor número de fallos de página. Este algoritmo resultaimposible de implementar ya que requiere que el S. O. Tenga unconocimiento exacto de los sucesos futuros.

  Algoritmo de reemplazo de páginas según el uso no tan reciente:

Este algoritmo hace uso de los dos bits de estado que están asociados acada página. Estos bits son: R, el cual se activa cuando se hacereferencia (lectura / escritura) a la página asociada; y M, que se activacuando la página asociada es modificada (escritura). Estos bits debende ser actualizado cada vez que se haga referencia a la memoria, poresto es de suma importancia que sean activados por el hardware. Unavez activado el bit, permanece en ese estado hasta que el sistemaoperativo, mediante software, modifica su estado.Estos bits pueden ser utilizados para desarrollar un algoritmo dereemplazo que cuando inicie el proceso, el sistema operativo asigne unvalor de 0 a ambos bits en todas las páginas. En cada interrupción de

reloj, limpie el bit R para distinguir cuáles páginas tuvieron referencia ycuáles no.

Page 67: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 67/75

Cuando ocurre un fallo de página, el sistema operativo revisa ambosbits en todas las páginas y las clasifica de la siguiente manera:

-  Clase 0: La página no ha sido referenciada, ni modificada.

Clase 1: La página no ha sido referenciada, pero ha sido modificada.-  Clase 2: La página ha sido referenciada, pero no ha sido modificada.

-  Clase 3: La página ha sido referenciada y también modificada.Estrategia: Sustituir primero celdas tipo 0 (mejor opción), ó tipo 1(lento) pero grabando celda de salida, ó tipo 2 (posible hiperpaginación),ó tipo 3 (peor) pero grabando celda de salida.Una vez obtenida la clasificación, elimina una página de maneraaleatoria de la primera clase no vacía con el número más pequeño. Estoporque para el algoritmo es mejor eliminar una página modificada sinreferencias en al menos un intervalo de reloj, que una página en blanco

de uso frecuente.A pesar de que este algoritmo no es el óptimo, es fácil de implementar yde comprender y con mucha frecuencia es el más adecuado.

  Usada menos recientemente (LRU, Last Recently Used): reemplaza lapágina de memoria que no ha sido referenciada desde hace más tiempo.Debido al principio de cercanía esta debería ser la página con menorprobabilidad de ser referenciada en un futuro cercano. El problema de estemétodo es su dificultad de implementación. Una solución sería etiquetarcada página con el momento de su última referencia; tanto parainstrucciones como datos. Este esquema produce sobrecarga.  Primera en entrar, primera en salir (FIFO, First In First Out): trata los

marcos asignados a un proceso como un buffer circular y las páginas sesuprimen de la memoria según la técnica de Round-Robin. Lo que senecesita es un puntero que circule a través de los marcos del proceso.Esta es una de las políticas de reemplazo más sencillas de implementar.Se reemplaza la página que a estado más tiempo en la memoria, teniendocomo desventaja que habrá regiones del programa o de datos que son muyusadas a lo largo de la vida de un programa por lo cual estas páginas secargarán y expulsarán repetidas veces.  Reloj (Clock): requiere asociar un bit adicional a cada marco,denominado „bit de uso‟. Cuando se carga una página por primera vez elbit de uso se pone a cero. Cuando se hace referencia a la páginaposteriormente, el bit de uso se pone a uno. Para el algoritmo de

reemplazo de páginas, el conjunto de marcos candidatos a serreemplazados se considera como un buffer circular con un punteroasociado. Al reemplazar una página, se hace que el puntero señale a laprimer puntero del buffer. Cuando llega el momento de reemplazar unapágina, el S.O. recorre el buffer buscando un marco con el bit de uso acero. Cada vez que se encuentra un marco con el bit de uso a uno, lo ponea cero. Si algún marco del buffer tiene el bit de uso a cero, al comienzo dela búsqueda, se elige para reemplazar el primero que se haya encontrado.Si todo los marcos tienen el bit de uso a uno, el puntero dará una vueltacompleta al buffer, poniendo todos los bits a cero y se detendrá en laposición inicial, reemplazando la página de dicho marco.

Almacenamiento intermedio de páginas 

Page 68: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 68/75

El coste de reemplazar una página que ha sido modificada es mayor queel de una que no lo ha sido, porque las páginas modificadas deben volver aescribirse en la memoria secundaria.

Una solución representativa es la del VAX/VMS. El algoritmo dereemplazo es simplemente un FIFO. Para mejorar el rendimiento, no se pierde

la pista de la página reemplazada, sino que se asigna a una de las dos listassiguientes:-  la lista de páginas libres (si no ha sido modificada), o,-  la lista de páginas modificadas (si lo ha sido).Pero la página no se mueve físicamente de la memoria principal,

sino que se suprime su entrada en la tabla de páginas y se pone en la lista depáginas libres o modificadas.Así, si la página que fue agregada a una de las listas (permanente en lamemoria) y si el proceso hace referencia a dicha página, simplemente sedevuelve al conjunto residente del proceso con un coste pequeño.Estas listas de páginas libres y modificadas actúan como una caché depáginas.

La lista de páginas modificadas tiene otra función provechosa: las páginasmodificadas son reescritas por bloques, en vez de una a una; esto reducesignificativamente el número de operaciones se E/S y por tanto, la cantidad detiempo de acceso al disco.

Políticas de reemplazo y tamaño de caché  

Por ser el tamaño de la memoria cada vez más grande, y la cercanía enlas aplicaciones cada vez menor; se busca compensar haciendo más grande eltamaño de las caches.Con una caché grande, el reemplazo de páginas de memoria virtual puedetener un gran impacto en el rendimiento. Si el marco seleccionado parareemplazar se encuentra en la caché, entonces se pierde el bloque de caché,así como la página que contiene.Una estrategia cuidadosa de reemplazo de páginas puede dar como resultadode un 10 a un 20% menos de fallos de caché que la ubicación arbitraria,utilizando una política de ubicación de páginas en el buffer de páginas.

GESTION DEL CONJUNTO RESIDENTE 

Tamaño del conjunto residente Con memoria virtual paginada no es necesario y, puede no ser posible, traer

todas las páginas de un proceso a la memoria principal para preparar suejecución. El sistema operativo debe decidir cuantas paginas traer, es decir,cuanta memoria principal asignar a un proceso. Aquí entran en juego variosfactores:

  Cuanto menor es la cantidad de memoria asignada a un proceso,mayor es el número de procesos que pueden estar en la memoriaprincipal. Esto aumenta la probabilidad de que el sistema operativoencuentre al menos un proceso Listo y, por lo tanto, reduzca el tiempoperdido en el intercambio.

 

Si en la memoria principal hay un número relativamente pequeño depaginas de un proceso entonces a pesar del principio de cercanía, elporcentaje de fallos de pagina será algo mayor.

Page 69: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 69/75

  La asignación de memoria adicional a un proceso en particular notendrá efectos notables en el porcentaje de fallos de pagina para eseproceso debido al principio de cercanía.

Con estos factores en los sistemas operativos actuales se pueden encontrarcon dos tipos de políticas. La política de asignación fija otorga a cada proceso

un número fijo de paginas en las que ejecutar. Con una política de asignaciónfija, cada vez que se produce un fallo de pagina en la ejecución de un proceso,se debe reemplazar una de las paginas de dicho procesador la pagina que senecesite.

La política de asignación variable permite que el núcleo de marcosasignados a un proceso cambie a lo largo de su vida.

La política de asignación variable parece ser la mas potente. La dificultadde este método esta en que requiere que el sistema operativo evalué elcompartimiento de los procesos activos.

Alcance del reemplazo  El alcance de una estrategia de reemplazo puede clasificarse en global o

local. Un fallo de pagina, producido cuándo no hay marcos libres, es leactivador de ambos tipos de políticas. Para seleccionar la pagina a reemplazar,una política de reemplazo local escoge únicamente de entre las paginasresidentes del proceso que originó el fallo de pagina. Una política dereemplazo global considera todas las páginas de la memoria comocandidatas para reemplazar, independientemente del proceso particular a quepertenezcan.

Reemplazo local Reemplazo globalAsignaciónfija

  El número de marcosasignados a un proceso es

fijo.  La pagina a reemplazar se

elige de entre los marcosasignados al proceso.

  No es posible.

Asignaciónvariable

  El número de marcosasignados a un procesopuede cambiar de unmomento a otro paramantener su conjunto detrabajo.

  La pagina a reemplazar se

elige de entre las paginasasignadas al proceso.

  La pagina a reemplazar seelige de entre todos losmarcos disponible en lamemoria principal; estohace que cambie el tamañodel conjunto residente delos procesos.

Asignación fija y alcance local 

En este caso, se tiene un proceso que se ejecuta en la memoria principal conun número fijo de paginas. Cuando se produce un fallo de pagina, el sistemaoperativo debe elegir la pagina a reemplazar entre las de dicho proceso queestán actualmente en la memoria.

Con una política de asignación fija, es necesario decidir por anticipado lacantidad de memoria asignada a un proceso.

Asignación variable y alcance global 

Page 70: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 70/75

Esta combinación es sencilla de implementar y ha sido adoptada por unbuen número de sistemas operativos. En un instante en la memoria principalhabrá varios procesos, cada uno de ellos con un cierto número de marcosasignados. El sistema operativo también mantiene una lista de marcos libres.Cuando se produce un fallo de página, se añade un marco libre al conjunto

residente del proceso y se carga la pagina.La dificultad de este método es la elección del reemplazó. Cuando no haymarcos libres, el sistema operativo debe elegir una pagina que este en lamemoria para reemplazar. La selección se realiza entre todos los marcos de lamemoria excepto los marcos bloqueados.

Asignación variable y alcance local

Es otro método de agnación variable, que intenta superar los problemas dealcance global. La estrategia de asignación variable y alcance local puederesumirse como sigue:

1.  cuando se carga un nuevo proceso en la memoria, se le asigna cierto

número de marcos en función del tipo de aplicación, las necesidadesdel programa u otros criterios. La asignación puede cubrirse tanto conpaginación previa como con paginación por demanda.

2.  cuando se produce un fallo de pagina, se selecciona la pagina areemplazar de entre las del conjunto residente del proceso que sufre elfallo.

3.  de vez en cuando, se vuelve a evaluar la asignación otorgada alproceso y se aumenta o disminuye para mejorar el rendimiento global.

El conjunto de trabajo ha tenido un gran impacto en el diseño de la gestiónde la memoria virtual. El conjunto de trabajo de un proceso en un instante

virtual t y con parámetro *, denotado por W(t,*), es el conjunto de paginas alas que el proceso ha hecho referencia en las ultimas * unidades de tiempovirtual. Se usa el termino tiempo virtual par indicar el tiempo que transcurremientras que el proceso está en ejecución.

La variable * es una ventana de tiempo para la observación del proceso. Eltamaño del conjunto de trabajo será una función no decreciente del tamaño dela ventana. Los puntos indican unidades de tiempo en las que no cambia elconjunto de trabajo, cuando mayor es el conjunto de trabajo, menosfrecuentes son los fallos de página.

Este concepto de conjunto de trabajo puede modificar la siguienteestrategia para el tamaño del conjunto residente:

1.  Supervisar el conjunto de trabajo de cada proceso.2.  Eliminar periódicamente del conjunto residente de un proceso

aquellas paginas que no pertenezcan a su conjunto de trabajo.3.  Un proceso puede ejecutar si su conjunto de trabajo es en la memoria

principal (es decir, si su conjunto residente incluye a su conjunto detrabajo).

Esta estrategia resulta atractiva porque toma un principio reconocido, elprincipio de cercanía y lo aprovecha para obtener la estrategia de gestión dememoria que permita minimizar los fallos de página. Por desgracia, laestrategia del conjunto de trabajo presenta una serie de problemas.

1.  El pasado no siempre predice el futuro. Tanto el tamaño como elcontenido del conjunto de trabajo cambiarán con el tiempo.

Page 71: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 71/75

2.  Es impracticable una medida real del conjunto de trabajo para cadaproceso. Sería necesario marcar cada referencia de pagina de cadaproceso con su tiempo virtual y mantener una cola ordenada entornode las páginas de cada proceso.

3.  El valor óptimo de es desconocido y, en cualquier caso, puede

variar.El algoritmo de frecuencia de fallo de página (PFF. Page Fault Frequency)

sigue esta estrategia. El algoritmo exige que se asocie un bit de uso a cadapagina de la memoria. El bit se pone cuando se accede a la página. Cuandoproduce un fallo de pagina el sistema operativo anota el tiempo virtualtranscurrido desde el ultimo fallo de pagina para ese proceso. Se define unumbral F . Si el tiempo transcurrido desde el ultimo fallo de página es menorque F , entonces una página se añade al conjunto residente del proceso. Enotro caso, descartan todas las páginas con bit de uso a 0 y, en consecuencia,se reduce el conjunto residente. Al mismo tiempo, se restauran a 0 el valor delbit de uso en las paginas restantes.

Un método que intenta solucionar el fenómeno de las transiciones entreubicaciones con una pequeña sobrecarga, es la política de conjunto de trabajocon muestreos en intervalo variables (VSWS, Variable Interval SampledWorking Set). La política VSWS evalúa el conjunto de trabajo de un procesotomando muestras en función del tiempo virtual transcurrido. Al comienzo deun intervalo de muestreo, se restauran los bit de uso de todas las páginasresidentes del proceso durante el intervalo siguiente, descartándose el resto.Así pues, el tamaño del conjunto residente puede disminuir sólo al final de unintervalo.

La política del VSWS está gobernada por los siguientes parámetros:M: Duración mínima del intervalo de muestreo.

L: Duración máxima del intervalo de muestreo.Q: Número de fallos de página permitidos entre cada par de muestras.La política VSWS es la siguiente:

1.  Si el tiempo virtual transcurrido desde la última muestra alcanza L,suspende el proceso y explora los bits de uso.

2.  Si, antes de que transcurra un tiempo virtual L, se producen Q fallosde página:

a)  Si el tiempo virtual desde la última muestra es menor que M,espera hasta que el tiempo virtual transcurrido alcance M parasuspender el proceso y explorar los bit de uso.

b)  Si el tiempo virtual desde la última muestra es mayor o igual

que M, suspende el proceso y explora los bits de uso.

POLÍTICA DE VACIADO 

Una política de vaciado es la contraria a una política de lectura: sepreocupa de determinar el momento en que hay que escribir en la memoriasecundaria una página modificada. Las dos alternativas son el vaciado pordemanda y el vaciado previo. Con vaciado por demanda, una pagina seescribirá en la memoria secundaria sólo cuando haya sido elegida parareemplazarse. Una política de vaciado previo escribe las páginas modificadasantes de que se necesiten sus marcos, de forma que las páginas pueden

escribirse por lotes.Existe un peligro si se sigue estrictamente cualquiera de las dos políticas.Con el vaciado previo, una pagina se escribe pero permanece en la memoria

Page 72: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 72/75

principal hasta que el algoritmo de reemplazo de pagina diga que se suprime.El vaciado previo permite escribir las paginas por lotes, pero tiene poco sentidoescribir miles de páginas para encontrarse que la mayoría de ellas han sidomodificadas antes de ser reemplazadas. La capacidad de transferencia de lamemoria secundaria es limitada y no debe malgastarse con operaciones de

vaciado innecesarias.Por otro lado, en el vaciado por demanda, la escritura de una páginamodificada es anterior a la lectura de una nueva página. Esta técnica puedeminimizar las escrituras de paginas, pero hace que un proceso que sufra unfallo de pagina pueda tener que esperar dos transferencias de pagina antes dedesbloquearse.

Una solución es incorporar almacenamiento intermedio de paginas, quepermite la adopción de la siguiente política: vaciar solo las paginas que esposible reemplazar, pero desconectar las operaciones de vaciado y reemplazo.Con almacenamiento intermedio de páginas reemplazadas pueden situarse endos listas: modificadas y no modificadas

GESTION DE MEMORIA EN UNIX Y SOLARIS 

Las primeras versiones de Unix sólo utilizaban particiones variables sinningún esquema de memoria virtual., pero en las implementaciones actuales,incluidas SVR4 y Solaris 2.x, utilizan memoria virtual paginada.En SVR4 y Solaris, tienen dos esquemas de memoria separados. El sistema de  paginación  ofrece una memoria virtual que asigna marcos de pagina en lamemoria principal a los procesos y también asigna marcos de pagina a lasmemorias intermedias de los bloques de disco.Un esquema de memoria virtual paginado se adapta peor a la gestión de la

asignación de memoria para el núcleo, por lo que se utiliza un asignador de memoria del núcleo. 

SISTEMA DE PAGINACIÓN 

Estructuras de datos 

Para la memoria virtual paginada, UNIX, hace uso de una serie de estructurasde datos que son independientes de la maquina:

  Tabla de páginas: posee una tabla por proceso, con una entrada paracada página de la memoria virtual en proceso.

  Descriptor de bloques de disco: asociado a cada página del proceso hay

una entrada en la tabla que describe la copia en el disco de la páginavirtual.

  Tabla de marcos de página: describe cada marco de la memoria real yestá indexada por el número de marco.

  Tabla de uso de intercambios: existe una tabla por cada dispositivo deintercambio.

Reemplazo de páginas  

La tabla de marcos de página se utiliza en el reemplazo de páginas,utilizando varios punteros para crear listas dentro de esta tabla.

El algoritmo de reemplazo de paginas utilizado en SVR4 es conocido comoalgoritmo del reloj de dos agujas, ya que utiliza un bit de referencia para cadapagina de la memoria que reúne los requisitos (no bloqueada) para ser

Page 73: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 73/75

expulsada. Este bit se pone a 0 cuando la página entra por primera vez y a 1cuando se hace referencia a la pagina para una lectura o escritura. La agujafrontal recorre la lista y pone el bit de referencia a 0, así en algún tiempo laaguja trasera recorre la misma lista y comprueba el bit de referencia. Si el bitestá a 1, entonces la página se ha referenciado y se ignora el marco, en cambio,

si el bit está todavía 0, entonces la página no se ha referenciado en el intervalo y se pone a estas páginas en una lista para ser reemplazadas.Dos parámetros determinan la operación del algoritmo:

  Velocidad de recorrido: la velocidad con la que las agujas se mueven através de la lista de páginas, en páginas por segundo.

  Alcance entre agujas: el espacio entre la aguja frontal y la trasera.

GESTION DE MEMORIA EN LINUX 

Linux comparte algunas características de UNIX, pero su esquema de gestiónde memoria es bastante complejo (DUBE98).

MEMORIA VIRTUAL DE LINUX 

Direccionamiento de memoria virtual  

Linux hace uso de una estructura de tabla de páginas con tres niveles:  Directorio de páginas: un proceso activo tiene sólo un directorio de

páginas, donde cada entrada en el mismo, señala a una página deldirectorio intermedio de páginas. Para un proceso activo, el directoriodebe estar en la memoria principal.

  Directorio intermedio de páginas: es el que puede ocupar varias páginas y donde cada entrada al directorio señala a una página de la tabla depáginas.

  Tabla de páginas: ésta también puede ocupar varias páginas y en cadaentrada se hace referencia a una página virtual del proceso.

Para utilizar esta estructura de la tabla de páginas a tres niveles, una dirección

virtual en Linux se ve como un conjunto de cuatro campos. El campo más a laizquierda (el más significativo) se utiliza como índice en el directorio de páginas;el siguiente se utiliza como índice en el directorio intermedio de páginas; eltercero como índice en la tabla de páginas y el cuarto campo indica eldesplazamiento dentro de la página seleccionada de la memoria.

Asignación de páginas 

Desde la memoria principal, Linux define un mecanismo para tratar bloques depáginas contiguos correspondientes a bloques de marcos de páginas contiguos,para ello, se utiliza el sistema de colegas donde el núcleo mantiene una lista degrupos de marcos de página contiguos de tamaño fijo.

Algoritmo de reemplazo de páginas 

Page 74: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 74/75

 El algoritmo de reemplazo de páginas de Linux se basa en el algoritmo del reloj,que, en caso de ser el sencillo, se asocia un bit de uso y un bit de modificacióna cada página de la memoria principal. En Linux utiliza una variable edad que,cada vez que se accede a la página, se incrementa la variable y recorre

periódicamente la reserva de paginas globales y disminuye la variable de edadde cada página cuando rota por todas las páginas de la memoria principal. Unapágina con un envejecimiento 0 es una página “vieja” que no se ha referenciadoen bastante tiempo y es la mejor candidata para el reemplazo, y cuanto mayorvalor de edad, más frecuentemente se ha usado la página recientemente ymenos elegible es para el reemplazo.

GESTION DE MEMORIA EN WINDOWS 2000 

El gestor de memoria virtual de Windows 2000 (W2K) controla como se asignala memoria y como se realiza la paginación.

Mapa de Direcciones Virtuales de W2K  

Cada proceso de usuario de W2K dispone de un espacio de direccionesseparado de 32 bits, lo que permite 4 Gbytes de memoria por proceso. Por loque, una parte de esta memoria esta reservada para el sistema operativo y cadausuario tiene 2 Gbytes de espacio de direcciones virtual disponible.

Paginación en W2K 

Cuando se crea un proceso en principio puede hacer uso de todo el espacio de

usuario de 2 Gbytes. Este espacio se divide en paginas de tamaño fijo, ycualquiera puede cargarse en la memoria principal. En la práctica una páginapuede estar en uno de estos tres estados:

  Disponible: las páginas no usadas actualmente por este proceso.  Reservada: un conjunto de paginas contiguas que el gestor de la

memoria virtual separa para un proceso pero no cuentan para la cuotade memoria del proceso hasta que se usan.

  Confirmada: paginas para las cuales el gestor de memoria virtualmantiene un conjunto de espacio separado en su archivo de paginación.

La distinción entre memoria confirmada y reservada es que la primera permitea procesos o hilos declarar una cantidad de memoria que puede asignarserápidamente cuando sea necesaria; y la otra, minimiza la cantidad de espacioen el disco separada para un proceso particular dejando ese espacio en discopara otros procesos.

Page 75: Administración de la Memoria

5/11/2018 Administraci n de la Memoria - slidepdf.com

http://slidepdf.com/reader/full/administracion-de-la-memoria-55a236a899719 75/75

CONCLUSIÓN 

La memoria virtual ha llegado a ser un componenteesencial de los S.O, convirtiéndose en una herramienta útil

de gestión de memoria. Desde su aparición se ha comprobado que se agilizó la

labor del programador, ya que desarrollando un programa nodebe restringir su tamaño, no teniendo necesidad deconocer la capacidad de memoria principal disponible.

Oculta también la complejidad de los algoritmos utilizadospara el intercambio de los “trozos” de los procesos. 

Por dichas razones, se busca implementarla en la mayoríade los S.O. actuales, dejado como optativa, la no utilización dela misma.