1.09k likes | 1.22k Views
Memory Management. M.C. Juan Carlos Olivares Rojas. Operating Systems jolivares@uvaq.edu.mx April, 2009. Outline. Política y filosofía de A.M. Mecanismos de asignación Estrategias de Asignación El concepto de memoria virtual Mecanismos de localización. Outline.
E N D
Memory Management M.C. Juan Carlos Olivares Rojas Operating Systems jolivares@uvaq.edu.mx April, 2009
Outline Política y filosofía de A.M. Mecanismos de asignación Estrategias de Asignación El concepto de memoria virtual Mecanismos de localización
Outline Implantación de mecanismos de memoria virtual Base limite Segmentación Paginación Segmentación paginada Mapa de Memoria Memoria expandida Memoria extendida
Objective • The student will know and apply the basis of memory management
Política y filosofía de A.M. • Una de las principales características de una computadora es la capacidad que tienen para almacenar datos e información. • El primero en tener la idea de almacenar un programa en una computadora fue Jonh Von Neumman (participante en la ENIAC). • El utilizó la memoria para almacenar datos y programas.
Memoria • En otro modelo de arquitectura de computadoras conocida como Arquitectura Harvard, existe una memoria especial para datos y otra memoria para programas. Esto hace que los circuitos sean más eficientes pero más costosos a la vez. • La gran mayoría de la computadoras (incluyendo las PC) utilizan la arquitectura Von Neumman.
Concepto de memoria • 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. • La memoria principal es el lugar donde el CPU lee las instrucciones a ejecutar, así como algunos datos a emplear.
Memoria • ¿Por qué es importante la memoria? • Programas = Algoritmos + Estructuras de Datos • Estructuras de Datos (pilas, listas, colas, etc.) son memoria.
Conceptos de memoria • Existen dos tipos de memoria primaria: volátil (RAM) y no volátil (ROM). • La memoria volátil es parecida a un pizarrón. Puede perder los datos. • El administrador de memoria se va a encargar de gestionar la memoria RAM. La memoria ROM sólo la utiliza para funciones específicas.
Memoria • La memoria se puede ver como un casillero en el cual se almacena información. • La memoria puede ser estática o dinámica dependiendo de cómo se gestione. • La memoria está divida en secciones de código, datos estáticos, Pila y el Heap (monton).
Conceptos de memoria • Todo sistema operativo tiene un mapa de memoria que indica como están administrada la memoria y que partes se pueden ocupar. • La filosofía del administrador de memoria consiste en optimizar el uso de este recurso, ya que la memoria es uno de los componentes críticos de todo sistema de cómputo.
Mapa de Memoria • Mapa de Memoria de Windows
Volcado de memoria • Vista del estado de la memoria a través del comando debug.
Memoria • La principal problemática de la memoria principal es que no es persistente. Por este motivo se tienen que implementar estrategias de almacenamiento y recuperación de información. • Las operaciones básicas que se realizan sobre una memoria son dos: lectura (r) y escritura (w).
Memoria • Las operaciones anteriores son a nivel usuario. A nivel sistema se tienen llamadas al sistema como malloc, free, allocate, etc. También debe proporcionar opciones de bloqueo y desbloqueo (protección). • La ley de Parkinson dice: “los programas se expanden hasta llenar la memoria disponible para contenerlos”.
Memoria • No por tener el doble de memoria instalada en un sistema legado, este será el doble de rápido. • La memoria física es utilizado por muchos procesos en lugar de la memoria virtual. • Todo proceso necesita memoria física para poderse ejecutar.
Administrador de memoria • Sirve para tener un control sobre los lugares donde están almacenados los procesos y datos que actualmente se están utilizando. • Las políticas de administración de memoria generalmente son duras, es decir no modificables, pero se pueden configurar algunos parámetros para su mejor uso.
Administrador de Disponibilidad • Tanto el administrador de memoria y el de archivos son ejemplos claros de un administrador de disponibilidad sobre recursos. • La memoria basa sus políticas y mecanismos en base a jerarquía. Por ejemplo se tienen los registros en el microprocesador, la memoria caché y la RAM
Políticas de asignación • La memoria caché es una memoria de acceso rápido. Es finita, se utiliza en muchos niveles como por ejemplo en microprocesadores, servicios como la Web, etc. • Otro ejemplo de memoria son los buffer o memorias temporales de E/S
Políticas de asignación • Pueden ser locales o globales. Es más difícil obtener una buena administración local. • Las políticas en general son globales mientras los mecanismos son locales
Ejemplos de memoria • Las tendencias actuales sobre el manejo de memoria indican el uso en diversas aplicaciones: • Portapapeles: permite guardar datos y transferirlo a otros programas. • Uso de base de datos en memoria. Algunas versiones de MySQL Lite permiten hacerlo.
Ejemplos de memoria • Las computadoras actuales permiten guardar los datos al apagar una computadora, para tener un mejor desempeño (hibernación, suspensión). • Los punteros permiten desplazarnos por las localidades de memoria. Una variable es una localidad de memoria.
Mecanismos de asignación • Un mecanismo de asignación determina la cantidad de bloques (particiones) que serán administrados en la memoria. • El esquema básico de asignación consiste en particionar (dividir) la memoria en diferentes partes. • Existen 3 mecanismos de Asignación:
Mecanismos de asignación de memoria • Asignación de una partición. En la memoria se considera la existencia de una sola partición, esto es, se tiene la capacidad de ejecutar un proceso. • La partición es toda la memoria, cuya administración corre por cuenta del usuario, o sea, no hay un sistema operativo. Por ejemplo las consolas de videojuegos de 8bits al introducir un cartucho “ROM” se apodera de toda la máquina.
Mecanismos de asignación de memoria • Asignación de dos particiones. La memoria se divide en 2 bloques. En una partición se carga el Sistema Operativo y en la otra el programa del usuario. • Es el concepto de Sistema Operativo Monousuario. Existen direcciones que un programa no puede acceder.
Mecanismos de asignación de memoria • Asignación de múltiples particiones. La memoria es dividida en varias particiones una para el Sistema Operativo y las demás para los procesos de usuarios u otras funciones especiales del Sistema Operativo. • Este es el concepto teórico de asignación de memoria en los Sistemas Operativos de Multiparticiones y de Multitarea.
Estrategias de asignación de memoria • Una estrategia de asignación de memoria determina el lugar donde será cargado un nuevo proceso en base a un criterio. Las estrategias de asignación son: • Primer ajuste. El Sistema Operativo asigna el primer bloque de memoria libre con espacio suficiente para satisfacer la información. La búsqueda de este bloque es de manera secuencial.
Estrategias de asignación de memoria • Mejor ajuste.El sistema operativo busca el bloque de memoria que represente el menor desperdicio según el requerimiento. • Peor ajuste. El sistema operativo asigna el bloque mas grande que encuentre.
Estrategias de asignación • Existen otras estrategias de asignación poco implementadas como: • Siguiente ajuste: en este esquema se accede a la siguiente partición de memoria disponible, es semejante al primer ajuste. Es útil para garantizar espacios extras.
Estrategias de Asignación • Sea el siguiente mapa de memoria en donde se cuentan con particiones fijas del tamaño indicado y tres procesos ya cargados en memoria. • Llegan los procesos p4, p5 y p6 de tamaño 100, 75 y 120. ¿cómo queda el mapa de memoria si se aplican las estrategias de mejor, primer, segundo y peor ajuste?
Estrategias de asignación • Listas variables: en este esquema, se propone un forma de mejorar el acceso a las unidades de asignación (partición) disponibles. • Este método mantiene varias listas con diferentes tamaños de particiones. La desventaja radica en actualizar la lista de control de dichas particiones.
Complejidad de los mecanismos y estrategias de asignación • Cualquier método para manejar la disponibilidad de la memoria presenta inconvenientes como: • Fragmentación • Overhead • Relocalización de programas • Trashing (sacar un programa inmediatamente después de haber sido asignado memoria)
Concepto de Memoria virtual • Es un método mediante el cual, un sistema operativo simula tener mas memoria principal que la que existe físicamente. Para implementar la memoria virtual se utiliza un medio de almacenamiento secundario de alta velocidad de acceso, generalmente en disco duro de la maquina. • Se utiliza la paginación como método de administración de memoria básica y algún mecanismo de intercambio.
Memoria virtual • En las tablas de paginas se agrega un campo mas a cada entrada: el bit valido/invalido (p). • En los procesadores 80386 y posteriores, que indica si la página a la que se está haciendo referencia en un momento dado se encuentra en la memoria principal (válido) o en el disco duro (inválido). Cuando el sistema operativo haga referencia a una página inválida, deberá ir al disco duro y cargarla a memoria principal para continuar el procesamiento.
Virtual Memory • Espacio de Direcciones de 32-bit (4 GB) • 2 GB espacio de usuarios • 2 GB sistema operativo • Espacio de Direcciones de 64-bit • 7192 GB espacio de usuario (Itanium) • 8192 GB espacione de usuario (x64) • ~6000 GB sistema operativo Espacio de Direcciones De 32-bit Único por proceso 2 GB Espacio de Procesos de Usuario Systemwide 2 GB Sistema Kernel/HAL drivers Sistema de cache
Mecanismos de localización • Los mecanismos de localización hacen referencia a la forma en como se puede ubicar un programa en memoria. • Los programas se localizan en base a un mecanismo y estrategia de asignación. • La relocalización de un programa es más complicado ya que implica volver asignar un nuevo programa en memoria cuidando los demás espacios.
Implantación de mecanismos de memoria virtual • Existen 2 métodos para cargar programas en memoria: • Demanda de página:consiste en iniciar la ejecución de los procesos sin páginas cargadas, estas se irán cargando conforme el proceso las demande. • Prepaginación: consiste en que el sistema operativo predice cuales páginas se ocuparán durante la ejecución de un proceso.
Algoritmos de descarga (Reemplazo) • Se utiliza para determinar cuales páginas serán descargadas hacia el disco duro cuando se quiera cargar nuevas paginas y no haya memoria libre. Existen 3 algoritmos básicos: • MIN: Consiste en descargar la o las páginas que no se necesitarán en el periodo de tiempo más largo en el futuro. Esta implementación es imposible.