Placa de memoria.
 




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
  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

  22.  

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:

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:

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


Inicio:   Fin:

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:


Inicio:   Fin:

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:


Inicio:   Fin:

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]).

Organización jerárquica del almacenamiento.

Un nivel adicional es el “caché” o memoria de alta velocidad, que posee las siguientes características:


Inicio:   Fin:

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:

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.

Inicio:   Fin:

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.

Inicio:   Fin:

Asignación Contigua de Almacenamiento de Un Solo Usuario

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]).

Asignación contigua de almacenamiento de un solo usuario.

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]):

Estructura de recubrimiento típica.

Protección en los sistemas de un solo usuario

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

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:

Durante la instalación y descarga de los trabajos la cpu no está ejecutando dichos trabajos requeridos, por lo cual: 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”:

Inicio:   Fin:

Multiprogramación de Partición Fija

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

Utilización de la cpu en un sistema de un solo usuario.

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

Inicio:   Fin:

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

Las “particiones” del almacenamiento principal:

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

Multiprogramación de partición fija con traducción y carga absolutas.

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

Inicio:   Fin:

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

Los compiladores, ensambladores y cargadores de relocalización:


Multiprogramación de partición fija con traducción y carga relocalizable.

Inicio:   Fin:

Protección en los Sistemas de Multiprogramación

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:


Protección del almacenamiento con asignación contigua de un solo proceso de usuario.

Protección del almacenamiento con asignación contigua en sistemas de multiprogramación.

Inicio:   Fin:

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:

Inicio:   Fin:

Multiprogramación de Partición Variable

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

Asignación de particiones iniciales en la multiprogramación de partición variable.

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”:

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.

Inicio:   Fin:

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:


Agujeros del almacenamiento en la multiprogramación de partición variable.

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:


Combinación de agujeros adyacentes de almacenamiento en la multiprogramación de partición variable.

Principales desventajas de la compresión

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

Compresión (compactación) del almacenamiento en la multiprogramación de partición variable.

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:

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

Inicio:   Fin:

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:


Inicio:   Fin:

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:

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 de intercambio:

Las imágenes de usuario (imágenes de memoria) retiradas del almacenamiento principal se graban en el almacenamiento secundario (discos).

Inicio:   Fin:

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:

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:

Inicio:   Fin:

Conceptos Básicos de Almacenamiento Virtual

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

Los principales conceptos son los siguientes: Los procesos hacen referencia a direcciones virtuales pero éstas deben ejecutarse en el almacenamiento real: Existen varios medios para asociar las direcciones virtuales con las reales (ver Figura 3.13 [7, Deitel]).

Transformación de ítems del espacio de direcciones virtuales al espacio de direcciones reales.

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]).

Contigüidad artificial.

Inicio:   Fin:

Organización del Almacenamiento de Niveles Múltiples

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

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


Almacenamiento de dos niveles.

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

El almacenamiento real es compartido por varios procesos:

Inicio:   Fin:

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”:

Las direcciones son “bidimensionales”, es decir que una dirección virtual “v” se indica por un par ordenado “(b,d)”, donde: 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]): 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.

Formato de la dirección virtual dentro de un sistema de transformación de bloques.

Transformación de direcciones virtuales con transformación de bloques.

Inicio:   Fin:

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 bloques llamados “marcos de páginas”:

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


Formato de dirección virtual en un sistema de paginación pura.

La tabla de “mapa de páginas” debe indicar si se encuentra o no en el almacenamiento primario la página referenciada:

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]).

Almacenamiento real dividido en marcos de páginas.

Una entrada en la tabla de mapa de páginas.

Correspondencia entre las direcciones de almacenamiento virtual y las direcciones de almacenamiento real en un sistema de paginación.

Inicio:   Fin:

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]).

Traducción de direcciones de página por transformación directa.

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”:

“Esto es un ejemplo de 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 virtual de 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:

Inicio:   Fin:

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]).

Traducción de direcciones de página por transformación asociativa pura.

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”:

Cada una de las células del almacenamiento asociativo se registra de manera simultánea: Inicio:   Fin:

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

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]).

Traducción de direcciones de paginación por combinación de transformación asociativa / directa.

Las entradas de página contenidas en este mapa reducido corresponden solo a las páginas referenciadas recientemente:

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:

Inicio:   Fin:

Compartimiento de Recursos en un Sistema de Paginación

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


Compartimiento en un sistema de paginación pura.

El compartimiento:

Inicio:   Fin:

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]).

Asignación no contigua de almacenamiento.

Los bloques:

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]):


Protección del almacenamiento con claves en sistemas de multiprogramación de asignación no contigua de almacenamiento.

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


Traducción de direcciones virtuales en un sistema de segmentación pura.

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”.

Inicio:   Fin:

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 fuera un programa.

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
N
No hay permiso de acceso
1
N
N
S
Solo ejecución
2
S
N
N
Solo lectura
3
S
N
S
Lectura / ejecución
4
S
S
N
Lectura / 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
1 Un programa disponible a los usuarios, que no pueden copiarlo ni modificarlo, pero sí ejecutarlo
2 Recuperación de información
3 Un programa puede ser copiado o ejecutado, pero no puede ser modificado
4 Protege los datos contra un intento erróneo de ejecutarlos
5 Este acceso se concede a los usuarios de confianza
Tabla 3.2: Ejemplo de aplicaciones de la combinación de accesos.

Inicio:   Fin:

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:


Entrada de tabla de mapa de segmentos.

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):

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.

Si el segmento buscado no está en el almacenamiento primario se genera un “fallo de pérdida de segmento”:

Inicio:   Fin:

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:

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]).

Compartimiento en un sistema de segmentación pura.

Inicio:   Fin:

Sistemas de Paginación / Segmentación

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 tiempo en 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)”:

Inicio:   Fin:

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]).

Traducción de direcciones virtuales con combinación de transformación asociativa / directa dentro de un sistema de paginación y segmentación.

El proceso en ejecución hace referencia a la dirección virtual v = (s,p,d) (ver Figura 3.32 [7, Deitel]).

Estructura de tablas para un sistema de paginación y segmentación.

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 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 de mapa 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:

Cada referencia a un elemento comprende tres ciclos de almacenamiento: 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.

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.

Inicio:   Fin:

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]).

Dos procesos compartiendo un sistema de paginación y segmentación.

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.

Inicio:   Fin:

Estrategias de Administración del Almacenamiento Virtual

Las diferentes organizaciones de almacenamiento virtual generalmente implementadas son [7, Deitel]:

Las estrategias para la administración de sistemas de almacenamiento virtual condicionan la conducta de los sistemas de almacenamiento virtual que operan según esas estrategias.

Se consideran las siguientes estrategias:

Inicio:   Fin:

Estrategias de Reposición de Página

Las principales son:

Inicio:   Fin:

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íodo de tiempo más largo.

El problema es que no es factible predecir el futuro.

Inicio:   Fin:

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.

Inicio:   Fin:

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”:


Ejemplo de anomalía FIFO.

Inicio:   Fin:

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:

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.

Inicio:   Fin:

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:

Inicio:   Fin:

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:

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:

Con el transcurso del tiempo la mayoría de los “bits referenciados” serán activados: Los “bits modificados” no se ajustan periódicamente según esta estrategia.

Inicio:   Fin:

Localidad

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

La “localidad” se manifiesta en el “tiempo” y en el “espacio”: “Localidad temporal ”: significa que las localidades de almacenamiento referenciadas recientemente tienen una alta probabilidad de ser referenciadas en un futuro próximo: “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: 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.

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]).

Fenómeno de localidad.

Inicio:   Fin:

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):

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]).

Una definición del conjunto de trabajo de páginas de un proceso.

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”:


Tamaño del conjunto de trabajo como una función del tamaño de la ventana.

“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:

Inicio:   Fin:

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:

El principal inconveniente está en los procesos que requieren acumular sus páginas una por una: 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 proceso es una meta importante de las estrategias de administración del almacenamiento” (ver Figura 3.38 [7, Deitel]).

Producto espacio - tiempo con paginación por demanda.

Inicio:   Fin:

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.

Inicio:   Fin:

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”.

Inicio:   Fin:

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.

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

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

Inicio:   Fin:

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]:

Respecto de variar el tamaño de la página manteniendo constante la cantidad de almacenamiento primario: 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: 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]).

Comportamiento de un programa en la paginación.

Inicio:   Fin:
 
 

Para mayor información, seleccione una opción:

Número de visitas efectuadas desde el 17/12/2001: 

Estadísticas diarias desde el 10/07/2002:   Free counter and web stats

Número de visitantes actuales disponible desde el 14/07/2002:

 

AddFreeStats.com Free Web Stats in real-time !  

 

 

 

Autor: lrmdavid@exa.unne.edu.ar

Ó FACENA - http://exa.unne.edu.ar

Servicios WEB: webmaster@exa.unne.edu.ar