Images

Unidad 3: Administración de Memoria


3.1 Política y filosofía.
3.2 Memoria real.
3.2.1 Administración de almacenamiento.
3.2.2 Jerarquía.
3.2.3 Estrategia de administración de memoria.
3.2.4 Asignación contigua v.s. no contigua.
3.2.5 Multiprogramación de partición fija, partición variable, con intercambio de almacenamiento.
3.3 Organización de memoria virtual.
3.3.1 Evaluación de las organizaciones de almacenamiento.
3.3.2 Paginación.
3.3.3 Segmentación.
3.3.4 Sistemas de paginación segmentación.
3.4 Administración de memoria virtual.
3.4.1 Estrategias de administración.
3.4.2 Técnicas de reemplazo de páginas.
3.4.3 Paginación por demanda.
3.4.4 Paginación anticipada.
3.4.5 Liberación de página.
3.4.6 Tamaño de página.

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 procesos y datos que actualmente se están utilizando.

Sea cual sea el esquema de organización del almacenamiento que se adopte para un sistema específico, es necesario decidir qué estrategias se deben utilizar para obtener un rendimiento óptimo. Las estrategias de administración del almacenamiento determinan el comportamiento de la administración de memoria cuando se siguen ciertas políticas:

  • ¿Cuándo se toma un nuevo programa para colocarlo en memoria? 
  • ¿Se toma el programa cuando el sistema lo solicita específicamente o intenta anticiparse a las peticiones del sistema? 
  • ¿En qué lugar del almacenamiento principal se coloca el programa por ejecutar? 
  • ¿Se colocan los programas lo más cerca unos de otros en los espacios disponibles de la memoria principal para reducir al mínimo el desperdicio de espacio, o se colocan los programas lo más rápido posible para reducir al mínimo el tiempo de ejecución? 
  • Si se necesita colocar un nuevo programa en el almacenamiento principal y éste está lleno, ¿Cuál de los otros programas se desaloja?

POLÍTICAS.



Organización de la memoria
Forma de considerar este almacenamiento: ¿se coloca un solo programa de usuario o varios? Si se encuentran varios programas de usuario:
  • ¿se les concede la misma cantidad de espacio o particiones de diferente tamaño?
  • ¿se usa un esquema rígido de número y tamaño de particiones o un esquema dinámico y adaptable?
  • ¿se requiere que los trabajos funcionen en una partición específica o en cualquiera donde quepan?
  • ¿se requerirá o no que cada trabajo sea colocado en un bloque contiguo de memoria?
Independiente del esquema de organización hay que decidir las estrategias que se usarán para optimizar el rendimiento.

Las “estrategias de administración” deben considerar:
  • ¿cómo se consigue un nuevo programa para colocar en la memoria: cuando el sistema lo pide o 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 de la memoria? 
  • ¿con qué criterio se desplazarán programas?
3.2 Memoria real.

Cantidad de memoria principal con que cuenta un equipo
Memoria secundaria auxiliar.- la soportada generalmente en discos.
Para que un programa pueda ser ejecutado, él y sus datos deben estar en memoria principal. Para mejorar el rendimiento del cpu se pueden repartir sus servicios entre varios programas que necesitan estar cargados simultáneamente en memoria “compartiéndola”.
La memoria real o principal se considera el recurso central, ya que tanto el cpu como los dispositivos e/s la acceden para leer o grabar.

Hay 2 parámetros relacionados con la velocidad de r/w en memoria real: 
  • Tiempo de acceso.- Tiempo que transcurre del inicio al fin de una operación r/w.
  • Tiempo de ciclo de memoria.- Retraso que impone el hardware entre una operación y otra.

3.2.1 Administración de almacenamiento.

Direccionamiento

La memoria se puede ver como una sucesión de bytes, cada uno con su dirección y se puede acceder a ellos indicando dicha dirección.

3.2.2 Jerarquía.

  • Registro.- memoria de alta velocidad y poca capacidad, integrada en el cpu, que permite guardar y acceder a valores muy usados, generalmente en operaciones matemáticas. Están en la cumbre de la jerarquía de memoria, y son la manera más rápida que tiene el sistema de almacenar datos. Se miden generalmente por el número de bits que almacenan; "registro de 8 bits" o "registro de 32 bits". Se implementan en un banco de registros Los CPU’s tienen además otros registros usados con un propósito especifico, como el contador de programa. 
  • Memoria caché.- tipo especial de memoria que se sitúa entre el cpu y la RAM para almacenar datos que se usan frecuentemente. Agiliza la transmisión de datos entre el CPU y la memoria principal. Es de acceso directo y mucho más rápida que la RAM.
  • Memoria principal.- Son circuitos integrados capaces de almacenar información digital, a los que tiene acceso el CPU. Poseen una menor capacidad de almacenamiento que la memoria secundaria, pero una velocidad millones de veces superior. Hay dos tipos:
  • El CPU direcciona las posiciones de la RAM para poder acceder a los datos almacenados en ellas y para colocar los resultados de las operaciones. Memoria secundaria.- dispositivo encargado de almacenar información de forma permanente.
3.2.3 Estrategia de administración de memoria.

Están dirigidas a la obtención del mejor uso posible del recurso de la memoria principal.
Se dividen en las siguientes categorías:
  • “estrategias de búsqueda”.- establecen cuándo obtener el siguiente fragmento de programa o de datos para su inserción en la memoria principal.
  • “búsqueda por demanda”.- el siguiente fragmento de programa o de datos se carga a memoria principal cuando algún programa en ejecución lo referencia.
  • “búsqueda anticipada”.- puede producir un mejor rendimiento del sistema ya que no espera a que se efectúe la petición, sino que trata de anticiparse a ésta. 
  • “estrategias de colocación”.- determinan el lugar de la memoria dónde se colocará (cargará) un programa nuevo. “estrategias de reposición”.- determinan cuál fragmento de programa o datos liberar para dar lugar a los programas nuevos.
3.2.4 Asignación contigua vs no contigua.
“asignación contigua”.- cada programa ocupa un bloque contiguo de localidades de memoria.
“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 Memoria 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.
  • Si una sección particular del programa ya no es necesaria, se carga otra sección desde la memoria secundaria 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 de la memoria principal: 
  • La memoria 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: bloquear el sistema o producir salidas erróneas. 
  • El S. O. debe estar protegido contra el proceso usuario por medio de un “registro de límites o registro frontera”:
3.2.5 Multiprogramación de partición fija, partición variable, con intercambio de almacenamiento.
Multiprogramación de Partición Fija

Los sistemas de un usuario desperdician gran cantidad de recursos computacionales debido a que: 
  • Cuando ocurre una petición de e/s el 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 el cpu es más rápido 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á el cpu a otro trabajo que esté listo para efectuar cómputos. 
  • Existe paralelismo entre el procesamiento y la e/s. 
  • Se incrementa el uso del 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” de la memoria principal: 
  • Son de tamaño fijo. 
  • Se maneja una lista para cada partición. 
  • Alojan un proceso cada una. 
  • El cpu se cambia rápidamente entre los procesos creando la ilusión de simultaneidad.

Multiprogramación de Partición Fija: Traducción y Carga Relocalizables
  • Se usa una sola lista para todas las particiones y el sistema operativo determinará qué programa cargar y en qué partición. 
  • Se producen programas relocalizables que puedan ser ejecutados en cualquier partición disponible de tamaño suficiente para aceptarlos.
  • Mejoran el uso de la memoria. 
  • Confieren más flexibilidad en el armado de la carga de procesos.
Protección en los Sistemas de Multiprogramación
Si se usa 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. 
  • Indicando 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 memoria” 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. Considerando una memoria dividida en 3 particiones de 128 K, 128 K y 256 K respectivamente: 
  • Fragmentación interna.- si un programa necesita 100 K de memoria y hay una partición de 128K se desaprovechan 28 K al interior de la partición. 
  • Fragmentación externa.- Puede haber un programa de 130 K en una partición de 256 y otro de 100k en una de 128 K, presentándose una petición de un programa de 140K que no podrá ser cargado en la partición libre, habiendo en total, suficiente memoria.
Multiprogramación de Partición Variable
Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio disponible de memoria.

0 comentarios: