El Administrador De Memoria 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. Para poder lograrlo, la operación principal que realiza es la de trasladar la información que deberá ser ejecutada por el procesador, a la memoria principal. Actualmente esta administración se conoce como Memoria Virtual ya que no es la memoria física del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente con una memoria más extensa teniendo la misma memoria real, con lo que esta se puede utilizar de manera más eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar innecesario. 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 e 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. ADMINISTRADOR DE LA MEMORIA La administración de memoria 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 forma posible el espacio disponible. Existen cuatro tipos de esquema s de asignación de memoria, estos esquemas de la administración de la memoria rara vez se utilizan en los sistemas operativos actuales. Configuración de un solo usuario Particiones fijas Particiones dinámicas Particiones dinámicas reubicables Ya que estos eran utilizados en los primeros sistemas de cómputo. Pero es importante su estudio, ya que cada uno introdujo conceptos fundamentales que ayudaron a la evolución de la administración de la memoria. ESQUEMA CONTIGUO DE USUARIO UNICO El primer esquema de asignación de la memoria funcionaba de la siguiente manera: cada programa que se iba a procesar se cargaba completo en memoria y se le asignaba tanto espacio contiguo necesitara. Si el programa era demasiado grande y no cabía en el espacio de memoria disponible, no se podía ejecutar. A pesar de que las primeras computadoras eran demasiado grandes tenían muy poca memoria. Esto demuestra un factor limitante para todas las computadoras, tiene una cantidad finita de memoria y si un programa no cabe, hay que incrementar el tamaño de la memoria principal o modificar el programa. PARTICIONES FIJAS El primer intento para posibilitar la multiprogramación fue la creación de las particiones fijas o estáticas, en la memoria principal, una partición para cada tarea. El tamaño de la partición se especificaba al encender el sistema, cada partición podía reconfigurarse al volver encender el sistema o reiniciar el sistema. Este esquema introdujo un factor esencial, la protección del espacio de memoria para la tarea. Una vez asignada una partición a una tarea, no se permitía que ninguna otra tarea entrara en sus fronteras. Este esquema de partición es más flexible que la de usuario único, porque permite que varios programas estén en memoria al mismo tiempo. PARTICIONES DINÁMICAS Con las particiones dinámicas, la memoria principal disponible aún se conserva en bloques contiguos, pero a las tareas nada más se les da memoria que solicitan cuando se cargan para su procesamiento. Aunque es una mejoría significativa en relación con las particiones fijas, no se elimina el problema de las mismas. Un esquema de particiones dinámicas utiliza toda la memoria al cargar las primeras tareas, pero conforme entran nuevas tareas en el sistema que no son del mismo tamaño de las que acaban de salir de la memoria se acomodan en los espacios disponibles de acuerdo con su prioridad. PARTICIONES DINÁMICAS RE LOCALIZABLES Con este esquema de asignación de memoria, el administrador de memoria relocaliza los programas para reunir los bloques vacíos y compactarlos, para hacer un bloque de memoria lo bastante grande para aceptar algunas o todas las tareas en espera de entrar. La compactación no es una tarea sencilla. Primero, todos los programas en memoria se deben relocalizar, de manera que queden contiguos; luego hay que ajustar cada dirección y cada referencia a una dirección en todo programa para tomar en consideración la nueva localización del programa en memoria. ADMINISTRACIÓN DE LA MEMORIA SISTEMAS Recientes ASIGNACIÓN DE LA MEMORIA EN PÁGINAS Se basa en el concepto de dividir cada tarea de llegada en páginas de igual tamaño. Algunos sistemas operativos escogen el tamaño de la página igual al tamaño de bloque de memoria. Que es el tamaño de las secciones de disco en las cuales se almacena la tarea. Las secciones de un disco se conocen como “sectores”. Y los sectores de la memoria principal se denominan marcos de página. Antes de ejecutar un programa, el administrador de la memoria lo prepara mediante: 1.-la determinación del número de páginas del programa. 2.-la ubicación de suficientes marcos de pagina vacios en la memoria principal. 3.-la carga de todas las páginas del programa de los mismos. PAGINACIÓN POR DEMANDA La paginación por demanda introdujo la idea de cargar nada más una porción del programa en la memoria para su procesamiento. Fue el primer esquema ampliamente utilizado que elimino la necesidad de colocar toda la tarea en la memora desde el principio hasta el final. Ejemplo: cuando los usuarios escogen la primera opción del menú de un programa de aplicación, los otros módulos que no se requieren en ese momento se pueden extraer de la memoria y cargar de nuevo cuando sean llamados. No requiere todas las páginas al mismo tiempo 1.- Los módulos de manejo de errores escritos por el usuario se procesan solo cuando se detectan un error específico durante la ejecución. 2.-Muchos módulos son mutuamente excluyentes. 3.- Ciertas opciones de programa son excluyentes entre si o no resultan siempre accesibles. ASIGNACIÓN DE MEMORIA EN SEGMENTOS El concepto de segmentación se basa en la práctica común entre los programadores de estructurar programas en módulos, agrupamientos lógicos de código. Con la asignación de memoria en segmentos, cada tarea se divide en varios segmentos de tamaños diferentes, uno por cada módulo que contiene piezas que ejecutan funciones relacionadas. La tabla de tareas lista todas las tareas en proceso. La tabla de mapa de segmentos lista detalles sobre cada segmento. La tabla de mapa de memoria vigila la asignación de la memoria. Es una combinación de segmentos y de paginación por demanda y ofrece los beneficios lógicos de la segmentación y las ventajas físicas de la paginación.