logo

Gestión de memoria en el sistema operativo (SO)

En este artículo, entenderemos la gestión de la memoria en detalle.

¿A qué te refieres con gestión de memoria?

La memoria es la parte importante de la computadora que se utiliza para almacenar los datos. Su gestión es fundamental para el sistema informático porque la cantidad de memoria principal disponible en un sistema informático es muy limitada. En cualquier momento, muchos procesos compiten por ello. Además, para aumentar el rendimiento, se ejecutan varios procesos simultáneamente. Para ello debemos mantener varios procesos en la memoria principal, por lo que es aún más importante gestionarlos de forma eficaz.

Gestión de la memoria

Papel de la gestión de la memoria

Las siguientes son las funciones importantes de la gestión de la memoria en un sistema informático:

  • El administrador de memoria se utiliza para realizar un seguimiento del estado de las ubicaciones de la memoria, ya sea libre o asignada. Aborda la memoria primaria proporcionando abstracciones para que el software perciba que se le ha asignado una gran cantidad de memoria.
  • El administrador de memoria permite que las computadoras con una pequeña cantidad de memoria principal ejecuten programas de mayor tamaño que el tamaño o la cantidad de memoria disponible. Lo hace moviendo información de un lado a otro entre la memoria primaria y la memoria secundaria utilizando el concepto de intercambio.
  • El administrador de memoria es responsable de proteger la memoria asignada a cada proceso para que no sea dañada por otro proceso. Si esto no se garantiza, el sistema puede mostrar un comportamiento impredecible.
  • Los administradores de memoria deberían permitir compartir el espacio de memoria entre procesos. Por tanto, dos programas pueden residir en la misma ubicación de memoria aunque en momentos diferentes.

Técnicas de gestión de la memoria:

Las técnicas de gestión de memoria se pueden clasificar en las siguientes categorías principales:

  • Esquemas de gestión de memoria contigua
  • Esquemas de gestión de memoria no contigua
Gestión de la memoria

Esquemas de gestión de memoria contigua:

En un esquema de gestión de memoria contigua, cada programa ocupa un único bloque contiguo de ubicaciones de almacenamiento, es decir, un conjunto de ubicaciones de memoria con direcciones consecutivas.

Esquemas de gestión de memoria contigua únicos:

El esquema de administración de memoria única contigua es el esquema de administración de memoria más simple utilizado en la primera generación de sistemas informáticos. En este esquema, la memoria principal se divide en dos áreas o particiones contiguas. Los sistemas operativos residen permanentemente en una partición, generalmente en la memoria inferior, y el proceso del usuario se carga en la otra partición.

Ventajas de los esquemas de gestión de memoria contigua única:

  • Sencillo de implementar.
  • Fácil de gestionar y diseñar.
  • En un esquema de administración de memoria contigua única, una vez que se carga un proceso, se le asigna el tiempo completo del procesador y ningún otro procesador lo interrumpirá.

Desventajas de los esquemas de gestión de memoria contigua única:

  • Desperdicio de espacio de memoria debido a memoria no utilizada, ya que es poco probable que el proceso utilice todo el espacio de memoria disponible.
  • La CPU permanece inactiva, esperando que el disco cargue la imagen binaria en la memoria principal.
  • No se puede ejecutar si el programa es demasiado grande para ocupar todo el espacio disponible en la memoria principal.
  • No soporta multiprogramación, es decir, no puede manejar múltiples programas simultáneamente.

Partición múltiple:

El esquema único de administración de memoria contigua es ineficiente ya que limita a las computadoras a ejecutar solo un programa a la vez, lo que genera un desperdicio de espacio de memoria y tiempo de CPU. El problema del uso ineficiente de la CPU se puede superar mediante la multiprogramación que permite ejecutar más de un programa al mismo tiempo. Para cambiar entre dos procesos, los sistemas operativos necesitan cargar ambos procesos en la memoria principal. El sistema operativo necesita dividir la memoria principal disponible en varias partes para cargar múltiples procesos en la memoria principal. Por tanto, múltiples procesos pueden residir en la memoria principal simultáneamente.

Los múltiples esquemas de partición pueden ser de dos tipos:

  • Partición fija
  • Partición dinámica

Partición fija

La memoria principal se divide en varias particiones de tamaño fijo en un esquema de administración de memoria de partición fija o partición estática. Estas particiones pueden ser del mismo tamaño o de diferentes tamaños. Cada partición puede contener un solo proceso. El número de particiones determina el grado de multiprogramación, es decir, el número máximo de procesos en la memoria. Estas particiones se crean en el momento de la generación del sistema y permanecen fijas después de eso.

Ventajas de los esquemas de gestión de memoria de partición fija:

  • Sencillo de implementar.
  • Fácil de gestionar y diseñar.

Desventajas de los esquemas de gestión de memoria de partición fija:

  • Este esquema sufre de fragmentación interna.
  • El número de particiones se especifica en el momento de la generación del sistema.

Partición dinámica

La partición dinámica fue diseñada para superar los problemas de un esquema de partición fija. En un esquema de partición dinámica, cada proceso ocupa sólo la cantidad de memoria que necesita cuando se carga para su procesamiento. A los procesos solicitados se les asigna memoria hasta que se agota toda la memoria física o el espacio restante es insuficiente para contener el proceso solicitante. En este esquema las particiones utilizadas son de tamaño variable y el número de particiones no está definido en el momento de la generación del sistema.

Ventajas de los esquemas de gestión de memoria de partición dinámica:

  • Sencillo de implementar.
  • Fácil de gestionar y diseñar.

Desventajas de los esquemas de gestión de memoria de partición dinámica:

  • Este esquema también sufre de fragmentación interna.
  • El número de particiones se especifica en el momento de la segmentación del sistema.

Esquemas de gestión de memoria no contigua:

En un esquema de administración de memoria no contigua, el programa se divide en diferentes bloques y se carga en diferentes partes de la memoria que no necesariamente tienen que ser adyacentes entre sí. Este esquema se puede clasificar según el tamaño de los bloques y si los bloques residen en la memoria principal o no.

¿Qué es la paginación?

La paginación es una técnica que elimina los requisitos de asignación contigua de memoria principal. En esto, la memoria principal se divide en bloques de memoria física de tamaño fijo llamados marcos. El tamaño de un marco debe mantenerse igual que el de una página para maximizar la memoria principal y evitar la fragmentación externa.

Ventajas de la paginación:

jframe
  • Las páginas reducen la fragmentación externa.
  • Sencillo de implementar.
  • Memoria eficiente.
  • Debido al mismo tamaño de los marcos, el intercambio resulta muy sencillo.
  • Se utiliza para un acceso más rápido a los datos.

¿Qué es la segmentación?

La segmentación es una técnica que elimina los requisitos de asignación contigua de memoria principal. En esto, la memoria principal se divide en bloques de memoria física de tamaño variable llamados segmentos. Se basa en la forma que sigue el programador para estructurar sus programas. Con la asignación de memoria segmentada, cada trabajo se divide en varios segmentos de diferentes tamaños, uno para cada módulo. Funciones, subrutinas, pila, matriz, etc., son ejemplos de dichos módulos.