Introducción
En el procesamiento secuencial cada uno de los procesos que llega a la memoria utiliza cualquiera de los recursos del sistema sin ningún tipo de prerrequisito.
Para un sistema multigprogramado, cada proceso tiene la necesidad de compartir con los demás el espacio de direcciones y por ello se necesita dividir de manera apropiada la memoria, no necesariamente en partes iguales, de tal forma que se puedan ejecutar la mayor cantidad de procesos. De esta manera, se optimiza el uso del procesador durante una mayor cantidad de tiempo.
Esta partición constituye la base fundamental de dos tipos de gestión de memoria denominados paginación y segmentación.
Al incorporar al esquema la memoria virtual, el procesador deja de realizar el procedimiento de traducción de direcciones y para ello se crea el acceso directo a memoria o DMA, el controlador que permite la traducción de direcciones o CDMA, la función de intercambio y conceptos relevantes como hiperpaginación y tamaño de página.
Propósitos de aprendizaje
Propósito Global
Establecer la importancia de la memoria principal y secundaria para los sistemas de cómputo actuales, identificando los diferentes niveles, interacciones y recursos presentes, determinando de esta forma un conjunto de acciones propias del sistema operativo en su función de administrador de la memoria y el almacenamiento.
Propósitos Específicos
- Conocer la jerarquía y organización general de la memoria y su importancia para el procesamiento por parte del sistema operativo.
- Desarrollar y aplicar diferentes algoritmos para la obtención, colocación y reemplazo de procesos en memoria.
- Identificar la evolución de las técnicas de división de memoria, desde las particiones y fijas y dinámicas hasta paginación y segmentación con memoria virtual.
- Conceptualizar sobre tamaño de página, función de intercambio, traducción de direcciones e hiperpaginación.
- Identificar las principales estrategias para la administración del almacenamiento, entendido como la gestión de archivos y directorios.
Gestión de la memoria
Los sistemas operativos monoprogramados no tenían problema para administrar la memoria, simplemente se dividía entre los segmentos reservados para el sistema y el resto podía ser utilizado indistintamente por el programa de usuario. Sin embargo, la multiprogramación involucró, entre muchos otros, el concepto de división de memoria que permitiera la ubicación de múltiples procesos de ejecución concurrente.
La gestión de memoria tiene como objetivo establecer los parámetros bajo los cuales la memoria será dividida, para dar espacio al sistema operativo y a los diferentes procesos que la comparten.
Por ello, la existencia de unos requisitos básicos para su implementación, los cuales determinan las acciones y políticas a implementar para que los procesos que ocupen la memoria, sean llevados al uso del procesador de manera eficiente y equitativa.
La gestión de memoria se clasifica en dos: memoria principal y memoria virtual.
Implementación en hardware para la carga de programas
El procesamiento de las instrucciones se logra a través de la interacción entre los registros del procesador, las instrucciones del proceso y los datos necesarios para su ejecución, la cual incorpora una memoria de alta velocidad entre los registros del procesador y la memoria principal, la cual se denomina memora caché. Si los datos no están en la memoria, se deben mover allí antes que la CPU pueda operar sobre ellos.
Cuando un proceso llega a memoria es necesario determinar el rango de direcciones legales al cual puede tener acceso, esto se logra a través del uso de los registros base y límite en el bloque de control de procesos PCB. Dichos registros solo pueden ser modificados por el sistema operativo ejecutándose en modo núcleo ya que afectan la estructura del PCB.
De igual forma, la gestión de memoria requiere del método de división de memoria, el cual se clasifica en: particiones fijas de igual tamaño y particiones fijas de diferentes tamaños. Estos métodos de división de memoria traen consigo algún grado de desperdicio del espacio en memoria, de acuerdo con el tipo de partición.
Paginación simple
Este método divide la totalidad de la memoria en fragmentos del mismo tamaño denominados marcos de página. Difiere de las particiones fijas porque éstos son de inferior tamaño. De igual forma, en este modelo, los procesos son divididos en fragmentos del mismo tamaño de los marcos, los cuales se les denomina páginas.
De esta forma, un proceso tendrá varias páginas asignadas que podrán ocupar marcos de página en la memoria, no necesariamente de forma contigua.
Las direcciones lógicas para el modelo de paginación se componen de un número de página y un desplazamiento.
Este método se convierte en la base de la división de la memoria en los sistemas operativos actuales.
|
En el siguiente enlace podrá consultar más información acerca de un sistema de direcciones. |
Segmentación simple
La memoria es dividida de acuerdo al tamaño de cada proceso en pequeños fragmentos denominados segmentos, el cual tiene un tamaño máximo asignado. En memoria, los segmentos pueden ocupar posiciones no necesariamente contiguas.
Se elimina la fragmentación interna manteniéndose la fragmentación externa en cantidades inferiores debido a la reducción del tamaño del segmento.
Al igual que en paginación, se hace necesario la utilización de una estructura de datos en la cual se establece la ubicación en memoria de cada uno de los segmentos que componen el proceso denominada tabla de segmentos.
Las direcciones lógicas en el esquema de segmentación también están compuestas por un número de segmento y un desplazamiento.
Memoria virtual
El método de memoria virtual fue introducido para garantizar que un mayor número de procesos pueda ser llevado a memoria para su ejecución y consiste en reservar un pequeño sitio del almacenamiento secundario, disco duro, para ser tratado bajo técnicas de lectura, trasporte y acceso de memoria principal.
En este método, los procesos tendrán sus páginas o segmentos divididos unos en la memoria principal y otros en la memoria virtual, de tal forma que puedan compartir la memoria y por supuesto los demás recursos del sistema.
La incorporación de la memoria virtual involucra la función de intercambio, encargada de establecer qué páginas o segmentos deberán ser removidas de la memoria principal en el caso en que un proceso solicite una página o segmento que no se encuentre en ella.
Si la función de intercambio se realiza de manera frecuente, donde el procesador es monopolizado por la misma sin permitir la ejecución efectiva de procesos, se presenta el fenómeno de hiperpaginación.
Paginación y segmentación con memoria virtual
El modelo de paginación con memoria virtual distribuye las páginas de cada proceso en: aquellas indispensables para la ejecución del proceso, que se ubican en la memoria principal, a las cuales se les denomina conjunto residente, y el resto de páginas que se ubican en la memoria virtual.
Para optimizar la búsqueda en memoria de las páginas de utilización más frecuente, cada proceso recurre a un apoyo adicional en hardware denominado Buffer de Traducción Adelantada o TLB, el cual contiene una lista con dichas páginas.
El modelo de segmentación con memoria virtual cumple con las mismas características de paginación beneficiando en este caso la programación orientada a objetos, por ejemplo una clase que contiene múltiples métodos solo se compilan en el momento de ser necesitados por el programa, adicionalmente beneficia el concepto de protección.
En estos modelos se hace evidente el uso de la función de intercambio, la definición de tamaño de página y el concepto de hiperpaginación.
Soluciones en software para problemas de gestión de memoria
Los algoritmos utilizados para cada una de las políticas mencionadas en este apartado, obedecen al mejoramiento del rendimiento general del sistema, minimizando la tasa de fallos de página. Dentro de las políticas se encuentran:
- Lectura: Son estrategias que se utilizan para saber cuándo cargar una página en memoria. Esta política se clasifica a su vez en dos tipos de paginación.
- Ubicación: consiste en saber dónde se ubicará la página que llega a la memoria principal en un proceso de intercambio. Se conforma de cuatro algoritmos.
- Reemplazo: determina cuál página será la que cause las menores alteraciones al sistema y además colabore para que la página candidata a ser bajada tenga las menores opciones de ser la referenciada en el futuro inmediato. Existen cuatro algoritmos en esta categoría.
- Vaciado: determina cuando debe escribirse una página modificada en la memoria virtual o mejor en el disco. Constituido por dos tipos de algoritmos.
Resumen
La administración de la memoria es una de las acciones asignadas al sistema operativo, con mayores incidencias en el rendimiento final del sistema. Hace parte de la planificación de mediano plazo, que es la encargada de establecer si se agrega un proceso más al conjunto de procesos que se encuentran parcial o totalmente en memoria.
Dividir la memoria para hacer que múltiples procesos puedan hacer uso de la misma, requiere establecer qué criterio se tendrá en cuenta para este propósito, si es por paginación o por segmentación.
En este punto, se integran dos conceptos importantes: tamaño de página y fragmentación interna que consiste en aquella porción de memoria asignada a un proceso, ubicada en la última página asignada al mismo, pero que este no utiliza.
Finalmente se hace evidente hablar de la función de intercambio, la cual permite identificar, gestionar y traducir las direcciones de las páginas que deben moverse de la memoria principal a la memoria virtual, para lo cual se observan algunas políticas de ubicación, reubicación reemplazo y vaciado.
Actividad de aprendizaje
![]() |
A continuación se encontrará una sopa de letras con los conceptos principales sobre la gestión de memoria. |
Bibliografía ()
- Carretero Pérez, J., De Miguel Anasagasti, P., García Carballeira, F., & Pérez Costoya, F. (2001). Sistemas Operativos. Una visión aplicada. Madrid: McGraw-Hill
- Deitel , H. M. (1993). Sistemas Operativos (2nd ed.). Wilmington, Delaware: Addison-Wesley Iberoamericana SA.
- Deitel, H. M. (2004). Operating Systems (3rd ed.). Wilmington, Delawere: Prentice Hall.
- Flynn, I. M., & McHoes, A. M. (2001). Sistemas Operativos (3rd ed.). México, D.F., México, D.F., México: Thomson Learning.
- Ruiz Múzquiz, P. (2004). Sistemas Operativos (Vol. 5.0). Creative Commons Attribution-Non comercial-Share A like License.
- Silverschats, A., Galvin, P. B., & Gagne, G. (2005). Operating System Concepts (7th ed.). Danvers: John Wiley & Sons Inc.
- Stallings, W. (1997). Sistemas Operativos (2nd ed.). Madrid: Prentice Hall.
- Tanenbaum, A., & Woodhull, A. S. (2003). Sistemas Operativos: Diseño e implementación (2nd ed.). Mexico: Pearson educación S.A.










