3.1 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.
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:
- “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 aquellas que no.
- Asigna espacio en memoria a los procesos cuando estos la necesitan.
- Libera espacio de memoria asignada a procesos que han terminado.
3.2 Organización y
Administración del Almacenamiento
Históricamente
el almacenamiento principal se ha considerado como un recurso costoso, por lo
cual su utilización debía optimizarse.
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:
- ¿se concede a cada uno la misma cantidad de espacio o se divide el almacenamiento en porciones o “particiones” de diferente tamaño?
- ¿se utilizará un esquema rígido de número y tamaño de particiones o un esquema dinámico y adaptable?
- ¿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?
- ¿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?:
- ¿cuándo 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?
- ¿se prioriza el tiempo de carga o la optimización en el uso del almacenamiento?
- ¿con qué criterio se desplazarán programas?
3.3 JERARQUÍA DE
ALMACENAMIENTO
·
Los programas y datos tienen que estar
en la memoria principal para poder ejecutarse o ser referenciados.
·
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.
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:
- 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 la memoria principal.
- Al utilizar memoria caché se espera que:
- 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é.
3.4 Estrategias de
Administración del Almacenamiento
Están
dirigidas a la obtención del mejor uso posible del recurso del almacenamiento
principal.
Se dividen
en las siguientes categorías:
- Estrategias de búsqueda:
- Estrategias de búsqueda por demanda.
- 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
Se
consideran S. O. que ya poseen desarrollado el “sistema de control de
entrada / salida”: IOCS: input / output control System.
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.
- 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
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:
- Detener el sistema.
- Producir salidas erróneas.
- El S. O. debe estar protegido contra el proceso usuario:
- 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.
3.5
MULTIPROGRAMACIÓN DE PARTICIÓN FIJA
Los sistemas
de un solo usuario desperdician gran cantidad de recursos computacionales
debido a que:
- 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
compitan al 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 de simultaneidad.
Los trabajos se traducían con
ensambladores y compiladores absolutos para ser ejecutados solo dentro de una
partición específica.
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.
- 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
Si se
utiliza asignación contigua de memoria la protección suele implementarse con
varios “registros de límites”.
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.
- Una partición permanece sin usar porque es demasiado pequeña para alojar un trabajo que está en espera.
3.6 MULTIPROGRAMACIÓN
DE PARTICIÓN VARIABLE
Los procesos
ocupan tanto espacio como necesitan, pero obviamente no deben superar el
espacio disponible de memoria.
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.
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 encolados en espera de memoria.
- Podría no ser suficiente ningún área libre individual.
- 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”
Principales desventajas de la compresión
·
Consume recursos del sistema.
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:
- 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”:
- 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”:
- Un trabajo nuevo es colocado en el primer agujero disponible con tamaño suficiente para alojarlo.
- “Estrategia de peor ajuste”:
- 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.
3.7 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.
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
de intercambio:
- Manteniendo al mismo tiempo varias “imágenes de usuario o imágenes de memoria” en la memoria principal.
- 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).
3.8 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.
3.9 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 artificia”
PREGUNTAS
¿Los programas y datos deben estar en el
almacenamiento principal para?
¿A que se le
considera “almacenamiento secundario” o “almacenamiento
auxiliar”?
¿Cómo se llama la
parte del S. O. que administra la memoria?
¿Porque los
programas y datos tienen que estar en la memoria principal?
Menciona algunas características de la “caché” o memoria de alta velocidad
·
¿A que se le considera estrategias de
búsqueda?
¿A que se le considera búsqueda por
demanda?
¿A que se le considera que
la “búsqueda anticipada?
¿A que se refiere el término asignación contigua?
¿Y en la asignación
no contigua?
La clave del concepto de memoria
(almacenamiento) virtual esta en la disociación:
·
No hay comentarios:
Publicar un comentario