miércoles, 28 de noviembre de 2012

3.3.1 Evaluación de las organizaciones de almacenamiento.


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 .
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:
    • Sistemas dedicados a un solo usuario.
  • Real:
    • Sistemas de multiprogramación en memoria real:
      • Multiprogramación en partición fija:
        • Absoluta.
        • Relocalizable (reubicable).
      • Multiprogramación en partición variable.
  • Virtual:
    • 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).
Los principales conceptos son los siguientes:
  • “Direcciones virtuales”:
    • Son las referidas por un proceso en ejecución.
  • “Direcciones reales”:
    • Son las disponibles dentro del almacenamiento primario.
  • “Espacio de direcciones virtuales (v)” de un proceso:
    • Es el número de direcciones virtuales a que puede hacer referencia el proceso.
  • “Espacio de direcciones reales (r)” de un computador:
    • 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 .
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 ” .

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 .
  • Primer nivel: “almacenamiento real ”:
    • En él se ejecutan los procesos y en él deben estar los datos para que un proceso pueda referirse a ellos.

  • Segundo nivel: “almacenamiento auxiliar, secundario o adicional ”:
    • 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.
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 .
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:
    • Se reduce la sobrecarga de almacenamiento del mecanismo de transformación.
    • Se incrementa el tiempo de transferencia entre los almacenamientos secundario y primario.
    • Consumen más almacenamiento real pudiendo limitar el número de procesos que pueden compartirlo.
  • Los bloques pueden ser de tamaño:
    • Igual : se denominan “páginas” y la organización de almacenamiento virtual asociada se denomina “paginación”.
    • 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
  • Cada proceso tiene su “tabla de mapa de bloques” mantenida por el sistema en el 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”:
    • Contiene una entrada para cada bloque del proceso.
    • Las entradas se mantienen en orden secuencial para el bloque 0, bloque 1, etc.
    • 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.


No hay comentarios:

Publicar un comentario