Unidad 3. Administración de Memoria

13
Unidad 3 Administración de memoria. 3.1 Política y Filosofía Filosofía La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene asignada una dirección que la identifica. Una de las funciones básicas que debe implementar un SO es la Administración de la Memoria para tener un control sobre los lugares donde están almacenados los datos y procesos que actualmente se están utilizando. Sea cual sea es esquema de organización del almacenamiento que se adopte para un sistema especifico es necesario decidir que estrategias se deben utilizar para obtener un rendimiento optimo. Políticas FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si un proceso llega al procesador sale hasta que termine. La política FIFO actualmente no se usa como el esquema principal de un sistema, pero si por ejemplo cuando se usa una política de prioridades y hay procesos con la misma prioridad, a estos se les podría aplicar FIFO. (Ver figura (1) Figura 1 Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se les asigna una cantidad limitada de tiempo

description

describe la administración de memoria

Transcript of Unidad 3. Administración de Memoria

Page 1: Unidad 3. Administración de Memoria

Unidad 3 Administración de memoria.

3.1 Política y Filosofía Filosofía

La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene asignada una dirección que la identifica.

Una de las funciones básicas que debe implementar un SO es la Administración de la Memoria para tener un control sobre los lugares donde están almacenados los datos y procesos que actualmente se están utilizando.

Sea cual sea es esquema de organización del almacenamiento que se adopte para un sistema especifico es necesario decidir que estrategias se deben utilizar para obtener un rendimiento optimo.

Políticas FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si un proceso llega al procesador sale hasta que termine. La política FIFO actualmente no se usa como el esquema principal de un sistema, pero si por ejemplo cuando se usa una política de prioridades y hay procesos con la misma prioridad, a estos se les podría aplicar FIFO. (Ver figura (1)

Figura 1

Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se les asigna una cantidad limitada de tiempo (CUANTUM) en el procesador, si no termina en ese lapso se manda al final de la lista de procesos listos. (Ver figura(2)

Figura 2

Page 2: Unidad 3. Administración de Memoria

SJF (Shortest job first - Prioridad del trabajo mas corto): Se ejecuta primero el proceso en espera que tiene el menor tiempo estimado. SJF favorece a los procesos cortos, ya que los largos podrían llegar a rezagarse mucho tiempo e incluso nunca ejecutarse. (Ver Figura(3)

Figura 3

SRT (Sortest remaining time scheduling ? Tiempo restante más cortó. En SJF una vez que un proceso comienza su ejecución continúa hasta terminar. En SRT, un proceso en ejecución puede ser desposeído por uno nuevo de menor tiempo de ejecución. (Ver Figura(4)

Figura 4

HRN: (highest response ratio next ? Prioridad de la tasa de respuesta mas alta): Política no apropiativa que corrige el retraso excesivo de procesos grandes que produce el SJF, para así no caer en un favoritismo excesivo por los procesos cortos, lo logra usando una formula basada en el tiempo de espera y el tiempo de servicio, con lo cual la prioridad de cada trabajo no solo esta en función del tiempo de servicio sino también del tiempo que ha esperado para ser atendido.(Ver Figura(5)

Figura 5

Page 3: Unidad 3. Administración de Memoria

3.2 Memoria Real

La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos.

Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso.

Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.

Cuando no existe memoria virtual no hay diferenciación entre el espacio de direcciones y la memoria real; el espacio de direcciones que puede ser usado en los programas tiene idéntico tamaño al espacio de memoria real posible. Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es aquel determinado por el tamaño de la memoria virtual implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de la memoria virtual será mayor que el de la memoria 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 mas importantes en el diseño de los S. O. (Ver la figura 3.2.1)

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

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

Poderlos ejecutar. Referenciarlos directamente

Page 4: Unidad 3. Administración de Memoria

3.2.1 Administración de almacenamiento

¿Cómo se maneja la administración de almacenamiento?

Para que un sistema informático sea cómodo para los usuarios, el sistema operativo proporciona una lista lógica y uniforme del sistema de almacenamiento de la información. El sistema operativo abstrae las propiedades físicas de los dispositivos de almacenamiento y define una unidad de almacenamiento lógico, el archivo.

El sistema operativo asigna los archivos a los soportes físicos y accede a dichos archivos a través de los dispositivos de almacenamiento.

3.2.2 Jerarquía

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 mas costoso y menor que el secundario pero de acceso mas 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 “cache” 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 cache antes de su ejecución. Los programas en la memoria cache ejecutan mucho más rápido que en la memoria principal. Al utilizar memoria cache 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 mas rápida en la cache.

3.2.3 Estrategias de Administración de Memoria

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:

Page 5: Unidad 3. Administración de Memoria

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 cuando 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 colocara (cargara) un programa nuevo.Las “estrategias de reposición” están relacionadas con la determinación de que fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.

3.2.4 Asignación continúa V.S No continua

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

Asignación contigua de almacenamiento de un solo usuarioSe consideran S. O. que ya poseen desarrollado el “sistema de control de entrada / salida”: IOCS: input / output control system (ver Figura 3.2.4.1):

El tamaño de los programas esta limitado por la cantidad de memoria principal, pero se puede superar este limite con técnicas de “recubrimientos”, con las siguientes características.

Page 6: Unidad 3. Administración de Memoria

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.

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 mas compleja pero mas eficiente que la asignación continua. (Ver figura 3.2.4.2)

3.2.5 Multiprogramación de partición fija, Partición Variable de intercambio de almacenamiento

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 ordenes de magnitud mas rápida que los dispositivos de e / s. (Ver figura 3.2.5.1)

Page 7: Unidad 3. Administración de Memoria

Figura 3.2.5.1 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 este 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 especifica.(Ver figura 3.2.5.2)

Page 8: Unidad 3. Administración de Memoria

Figura 3.2.5.2El 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 (Ver figura 3.2.5.3)) :

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.

Figura 3.2.5.3

Page 9: Unidad 3. Administración de Memoria

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 limites” .(Ver figura 3.2.5.4 y figura 3.2.5.5)Los extremos superior e inferior de una partición pueden ser:

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

Figura 3.2.5.4

Figura 3.2.5.5Fragmentació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 10: Unidad 3. Administración de Memoria

Una partición permanece sin usar porque es demasiado pequeña para alojar un trabajo que esta en espera.

Multiprogramación de Partición Variable.Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio disponible de memoria. (Ver figura 3.2.5.6)

Figura 3.2.5.6No hay limites 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 mas numerosos pero mas 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 limites con otros agujeros.Multiprogramación con Intercambio de AlmacenamientoEn 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:

Page 11: Unidad 3. Administración de Memoria

Cede el almacenamiento y la cpu al siguiente trabajo.La totalidad del almacenamiento se dedica a un trabajo durante un breve periodo 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).