Administración de Memoria

Revisión del 15:00 10 may 2014 de Yudislaidis jc.cmg (discusión | contribuciones) (Página creada con ' {{Definición |nombre= Administración de Memoria. |imagen= Admt memoria.jpg |tamaño= |concepto= Se refiere a los distintos métodos y operaciones que se encargan de obtener l...')
Administración de Memoria.
Información sobre la plantilla
Admt memoria.jpg
Concepto:Se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible..

Administración de Memoria. Los métodos actuales tiene como base la administración de memoria que se usaban antiguamente.

Los programas deben ser llevados a la memoria y convertirse en procesos para ser ejecutados. Cola de entrada – colección de programas en disco que esperan para ser llevados a la memoria para ejecución.

La parte del sistema operativo que administra la memoria se llama administrado de memoria. La memoria principal es un depósito de datos a los que se puede acceder rápidamente y que son compartidos por la cpu y los dispositivos de E/S.

Funciones: Que memoria se esta usando, quien la usa, que procesos pueden cargarse, asignación y liberaciones de memoria.

Cuando un programa se carga en memoria principal se convierte en procesos.

Las técnicas que existen para la carga de programas en la memoria son: partición fija, que es la división de la memoria libre en varias partes (de igual o distinto tamaño) y la partición dinámica, que son las particiones de la memoria en tamaños que pueden ser variables, según la cantidad de memoria que necesita cada proceso.

Entre las principales operaciones que desarrolla la administración de memoria se encuentran la reubicación, que consiste en trasladar procesos activos dentro y fuera de la memoria principal para maximizar la utilización del procesador; la protección, mecanismos que protegen los procesos que se ejecutan de interferencias de otros procesos; uso compartido de códigos y datos, con lo que el mecanismo de protección permite que ciertos procesos de un mismo programa que comparten una tarea tengan memoria en común.

Vinculación de las instrucciones y los datos a la memoria

Pueden realizarse en tres estadios Tiempo de compilación: si se conoce previamente la ubicación de memoria, puede generarse código absoluto, el código debe ser recompilado si la dirección de inicio cambia.

Tiempo de carga: Si se conocen las direcciones en tiempo de compilación, debe generarse código reubicable.

Tiempo de ejecución: La vinculación se retarda hasta el tiempo de corrida si los procesos pueden ser movidos durante su ejecución de una posición de memoria a otra.

Overlays (Superposiciones)- Mantiene en memoria solo aquellas instrucciones y datos que se requieren en un momento determinado.- Se utilizaba cuando el proceso era mayor que la cantidad de memoria destinada para él- Se implementaba por el usuario, no se requería un soporte especial del sistema operativo, su programación era compleja.

Antiguamente los programas no corrían si no tenia la memoria requerida, hoy si se puede debido a que se carga por partes.

Ejemplo:

Cobol se escribe por secciones, Overlays es una sección.


Asignación contigua

  • Generalmente la memoria principal tiene dos particiones.-Para el sistema operativo residente que puede ser colocado en memoria baja o alta de acuerdo a la ubicación del vector de interrupciones-Los procesos de los usuarios se colocan en otra partición
  • Asignación de partición única

- Se usa el esquema de registro de reubicación para proteger a los procesos de los usuarios entre si, y para proteger el código y los datos del SO. - El registro de ubicación tiene el valor de la dirección física mas pequeña; el registro limite…

  • Asignación con múltiples particiones

-Hueco: Bloque de memoria disponible; se establecen varios huecos (particiones) de diferentes tamaños a través de la memoria. -Cuando un proceso llega, es asignado a un hueco lo suficientemente grande para contenerlo -El SO mantiene información acerca de las particiones asignadas.

Asignación con múltiples particiones fijas

Particiones configuradas por usuario, predeterminadas, se uso en OS/360/MFT (multiprogramación con un # fijo de tareas). Recolocación: El enlazador debe determinar que direcciones recolocarse vs Carga absoluta x part.

Protección: Bloques de 2K con clave, o Registro de base y limite. FRAGMENTACION. no se puede aplicar overlays en este esquema de administración de memoria Sistemas de protección:-registro limite y base -protección por clave fragmentación interna: desperdicio de espacios de memoria.

Asignación con particiones variables

El tamaño de la partición se establece en el momento de cargar el programa y dependiendo su tamaño.

Los procesos tienen que correr en memoria contigua. Tiene un problema de fragmentación externa, por los huecos que quedan después de ejecución; La solución es mover el proceso, que se están ejecutando, proceso de compresión. Condensación: Fusión de dos huecos contiguos.

Fragmentacion externa.jpg

El esquema actual de administración de memoria nace de los dos anteriores. Nace la paginación y la segmentación.

Problema de la asignación dinámica de memoria

Cómo satisfacer la solicitud de un tamaño n a partir de huecos libres Estrategia de colocación:

  • -Peor ajuste: Hueco más grande
  • -Siguiente ajuste
  • -Estrategia más sofisticada: Sistema Buddy -Listas de huecos con tamaños potencias de 2

El primer ajuste y el mejor ajuste son mejores que el peor ajuste en términos de velocidad y utilización de almacenamiento.

Almacenamiento virtual

  • Capacidad de obtener acceso a direcciones en un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario del sistema.
  • SO Atlas, Manchester 1960
  • Disociación de las direcciones (V) a las que hace referencia un proceso en ejecución de las direcciones disponibles en el almacenamiento primario (R)
  • Las direcciones calculadas por procesos no necesariamente las disponibles en el almacenamiento primario
  • Dirección real: dirección disponible en memoria.
  • Dirección virtual: direcciones usadas por procesos.

Para pasar eficientemente los programas de la memoria de intercambio a la principal, se debe hacer por hw

Intercambio/ Swap

  • Un proceso puede intercambiarse temporalmente de memoria a un almacenamiento de respaldo y luego puede ser retomado hacia la memoria para su ejecución.
  • El almacenamiento de respaldo se hace en el disco, que debe ser rápido y tener suficiente espacio para ubicar copia de todas las imágenes de memoria para todos los usuarios; debe proveer acceso directo a estas imagines de memoria.
  • Descargar (swap out), cargar (swap in) – Variante de intercambio en algoritmos de planificación por prioridad; los procesos de baja prioridad se saca de memoria de tal forma que el proceso de mayor prioridad pueda ser cargado y ejecutado
  • La mayor parte del tiempo es tiempo de transferencia; este es directamente proporcional a la cantidad de memoria intercambiada.
  • Existen versiones modificadas de intercambio de los diferentes sistemas, ejemplo Unix, Linux y Windows.

FUNDAMENTOS DE LA MEMORIA VIRTUAL

El procesador utiliza y genera direcciones virtuales.-Parte del mapa de memoria (virtual) está en disco (swap) y parte en memoria principal-La MMU (memory management unit) traduce las direcciones virtuales en físicas. -La MMU produce un fallo de pagina (trap) cuando la dirección no esta en memoria principal. -El SO trata el fallo de página, haciendo un transvase entre la memoria principal y el área de intercambio (swap disco)

En el esquema de MMU, el valor del registro de reubicación de suma a cada dirección generada por el proceso del usuario al momento de ser enviado a la memoria. El programa del usuario se preocupaba de las direcciones lógicas; nunca tenia que preocuparse por las direcciones físicas.

ALMACENAMIENTO VIRTUAL

Virtual-discs.jpg


-Espacio de direcciones virtuales, V: espacio de direcciones a las que puede hacer referencia un proceso Espacio de direcciones reales, R: Almacenamiento físico disponible, en general V >> R Traducción dinámica de direcciones (DAT): V ===> R Mapa de correspondencia de traducción de direcciones: por bloques: =s paginas, <> segmento. Direccionamiento bidimensional: Bloque, desplazamiento Paginacion: División de la memoria y de los programas en tamaños iguales.

Segmentación: División de la memoria en tamaños correspondientes a los componentes del programa y los programas son divididos en sus componentes básicos (ej, sub-rutinas) “La paginación es a la partición fija como la segmentación a las particiones variables” EL almacenamiento virtual de un usuario no tiene que ser contiguo ni siquiera en almacenamiento secundario.

Conjunto de trabajo: Conjunto de líneas de código cargadas en memoria real necesarias para realizar una tarea determinada (para realizar una tarea no se necesitan todas las líneas de código del programa)

PAGINACION

El espacio de direcciones lógicas de un proceso no necesariamente es contiguo; los procesos se ubican en memoria física donde luego quedan disponibles. Se divide la memoria física en bloques de tamñano fijo llamados marcos (los tamaños con potencias de 2 entre 512 bytes y 8192 bytes).

Se divide la memoria lógica en bloques del mismo tamaño llamados páginas Se mantiene el rastro de todos los marcos. Para correr un programa de tamaño n paginas, se requiere encontrar n marcos libres y cargar el programa.

Se debe poner a punto una tabla para traducir las direcciones fisicas a las logicas. Se puede presentar fragmentacion interna.

Fuentes

  • Consultado en: [1]
  • Consultado en: [2]
  • Revisado en: [3]
  • Extraído de: [4]
* Consultado en: [5]
  • Revisado en: [6]