Gestión de memoria en el sistema operativo: contigua, intercambio, fragmentación

¿Qué es la gestión de memoria?

Gestión de la memoria es el proceso de controlar y coordinar la memoria de la computadora, asignando porciones conocidas como bloques a varios programas en ejecución para optimizar el rendimiento general del sistema.

Es la función más importante de un operaSistema de control que gestiona la memoria primaria. Ayuda a los procesos a avanzar y retroceder entre la memoria principal y el disco de ejecución. Ayuda al sistema operativo a realizar un seguimiento de cada ubicación de memoria, independientemente de si está asignada a algún proceso o permanece libre.

¿Por qué utilizar la gestión de memoria?

Estas son las razones para utilizar la gestión de memoria:

  • Le permite verificar cuánta memoria se debe asignar a los procesos que deciden qué procesador debe obtener memoria en qué momento.
  • Realiza un seguimiento cada vez que el inventario se libera o no se asigna. Según él se actualizará el estado.
  • Asigna el espacio a las rutinas de la aplicación.
  • También garantiza que estas aplicaciones no interfieran entre sí.
  • Ayuda a proteger diferentes procesos entre sí.
  • Coloca los programas en la memoria para que la memoria se utilice en toda su extensión.

Técnicas de gestión de la memoria

Estas son algunas de las técnicas de gestión de memoria más importantes:

Asignación única contigua

Es la técnica de gestión de memoria más sencilla. En este método, todos los tipos de memoria de la computadora, excepto una pequeña porción reservada para el sistema operativo, están disponibles para una aplicación. Por ejemplo, MS-DOS operaEl sistema operativo asigna memoria de esta manera. Un sistema integrado también se ejecuta en una única aplicación.

Asignación particionada

Divide la memoria primaria en varias particiones de memoria, que en su mayoría son áreas de memoria contiguas. Cada partición almacena toda la información para una tarea o trabajo específico. Este método consiste en asignar una partición a un trabajo cuando comienza y desasignarla cuando finaliza.

Gestión de memoria paginada

Este método divide la memoria principal de la computadora en unidades de tamaño fijo conocidas como marcos de página. Esta unidad de gestión de memoria de hardware asigna páginas a marcos que deben asignarse por página.

Gestión de memoria segmentada

La memoria segmentada es el único método de gestión de memoria que no proporciona al programa del usuario un espacio de direcciones lineal y contiguo.

Los segmentos necesitan soporte de hardware en forma de tabla de segmentos. Contiene la dirección física de la sección en la memoria, el tamaño y otros datos como bits de protección de acceso y estado.

¿Qué es el intercambio?

El intercambio es un método en el que el proceso debe intercambiarse temporalmente desde la memoria principal al almacén de respaldo. Será later devuelto a la memoria para continuar con la ejecución.

El almacén de respaldo es un disco duro o algún otro dispositivo de almacenamiento secundario que debe ser lo suficientemente grande como para albergar copias de todas las imágenes de la memoria para todos los usuarios. También es capaz de ofrecer acceso directo a estas imágenes de la memoria.

Intercambio

Beneficios del intercambio

A continuación se detallan los principales beneficios/ventajas del intercambio:

  • Ofrece un mayor grado de multiprogramación.
  • Permite la reubicación dinámica. Por ejemplo, si se utiliza el enlace de direcciones en el momento de la ejecución, los procesos se pueden intercambiar en diferentes ubicaciones. De lo contrario, en el caso de enlaces de tiempo de compilación y carga, los procesos deben moverse a la misma ubicación.
  • Ayuda a conseguir una mejor utilización de la memoria.
  • Desperdicio mínimo de tiempo de CPU al finalizar, por lo que se puede aplicar fácilmente a un método de programación basado en prioridades para mejorar su rendimiento.

¿Qué es la asignación de memoria?

La asignación de memoria es un proceso mediante el cual a los programas de computadora se les asigna memoria o espacio.

Aquí, la memoria principal se divide en dos tipos de particiones.

  1. Memoria bajaOperasistema de ting reside en este tipo de memoria.
  2. Memoria alta– Los procesos de usuario se mantienen en memoria alta.

Asignación de partición

La memoria se divide en diferentes bloques o particiones. Cada proceso se asigna según el requisito. La asignación de particiones es un método ideal para evitar la fragmentación interna.

A continuación se muestran los distintos esquemas de asignación de particiones:

  • Primer ajuste: En este tipo de ajuste, se asigna la partición, que es el primer bloque suficiente desde el principio de la memoria principal.
  • Mejor ajuste: Asigna el proceso a la partición que es la primera partición más pequeña entre las particiones libres.
  • Peor ajuste: Asigna el proceso a la partición, que es la partición más grande y disponible de forma gratuita en la memoria principal.
  • Próximo ajuste: Es en gran medida similar al primer Ajuste, pero este Ajuste busca la primera partición suficiente desde el último punto de asignación.

¿Qué es la paginación?

La paginación es un mecanismo de almacenamiento que permite al sistema operativo recuperar procesos del almacenamiento secundario a la memoria principal en forma de páginas. En el método de paginación, la memoria principal se divide en pequeños bloques de memoria física de tamaño fijo, que se denominan marcos. El tamaño de un marco debe mantenerse igual que el de una página para aprovechar al máximo la memoria principal y evitar la fragmentación externa. Paging se utiliza para un acceso más rápido a los datos y es un concepto lógico.

¿Qué es la fragmentación?

Los procesos se almacenan y eliminan de la memoria, lo que crea espacio de memoria libre, que es demasiado pequeño para que otros procesos lo utilicen.

Después, a veces, los procesos que no pueden asignar bloques de memoria porque su pequeño tamaño y los bloques de memoria siempre permanecen sin usar se denomina fragmentación. Este tipo de problema ocurre durante un sistema de asignación de memoria dinámica cuando los bloques libres son bastante pequeños, por lo que no puede cumplir con ninguna solicitud.

Dos tipos de métodos de fragmentación son:

  1. Fragmentación externa
  2. Fragmentación interna
  • La fragmentación externa se puede reducir reorganizando el contenido de la memoria para colocar toda la memoria libre en un solo bloque.
  • La fragmentación interna se puede reducir asignando la partición más pequeña, que aún sea lo suficientemente buena para llevar a cabo todo el proceso.

¿Qué es la segmentación?

El método de segmentación funciona casi de manera similar a la paginación. La única diferencia entre los dos es que los segmentos tienen una longitud variable, mientras que, en el método de paginación, las páginas siempre tienen un tamaño fijo.

Un segmento de programa incluye la función principal del programa, estructuras de datos, funciones de utilidad, etc. El sistema operativo mantiene una tabla de mapa de segmentos para todos los procesos. También incluye una lista de bloques de memoria libres junto con su tamaño, segmento numbersy sus ubicaciones de memoria en la memoria principal o memoria virtual.

¿Qué es la carga dinámica?

La carga dinámica es una rutina de un programa que no se carga hasta que el programa lo llama. Todas las rutinas deben estar contenidas en el disco en un formato de carga reubicable. El programa principal se cargará en la memoria y se ejecutará. La carga dinámica también proporciona una mejor utilización del espacio de memoria.

¿Qué es el enlace dinámico?

La vinculación es un método que ayuda al sistema operativo a recopilar y fusionar varios módulos de código y datos en un único archivo ejecutable. El archivo se puede cargar en la memoria y ejecutar. El sistema operativo puede vincular bibliotecas a nivel de sistema en un programa que combine las bibliotecas en el momento de la carga. En el método de vinculación dinámica, las bibliotecas se vinculan en el momento de la ejecución, por lo que el tamaño del código del programa puede seguir siendo pequeño.

Diferencia entre carga estática y dinámica

Carga estática Carga dinámica
La carga estática se utiliza cuando desea cargar su programa estáticamente. Luego, en el momento de la compilación, todo el programa se vinculará y compilará sin necesidad de ningún módulo externo o dependencia del programa. En un programa cargado dinámicamente, se proporcionarán referencias y la carga se realizará en el momento de la ejecución.
En el momento de la carga, todo el programa se carga en la memoria y comienza su ejecución. Las rutinas de la biblioteca se cargan en la memoria sólo cuando son requeridas en el programa.

Diferencia entre enlaces estáticos y dinámicos

A continuación, se muestra la principal diferencia entre enlaces estáticos y dinámicos:

Enlace estático Vinculación dinámica
El enlace estático se utiliza para combinar todos los demás módulos que requiere un programa en un único código ejecutable. Esto ayuda al sistema operativo a evitar cualquier dependencia del tiempo de ejecución. Cuando se utiliza el enlace dinámico, no es necesario vincular el módulo o biblioteca real con el programa. En su lugar, utilice una referencia al módulo dinámico proporcionado en el momento de la compilación y la vinculación.

Resumen

  • La gestión de la memoria es el proceso de controlar y coordinar la memoria de la computadora, asignando porciones llamadas bloques a varios programas en ejecución para optimizar el rendimiento general del sistema.
  • Le permite verificar cuánta memoria se debe asignar a los procesos que deciden qué procesador debe obtener memoria en qué momento.
  • En la asignación única contigua, todos los tipos de memoria de la computadora, excepto una pequeña porción que está reservada para el sistema operativo, están disponibles para una aplicación.
  • El método de asignación particionada divide la memoria primaria en varias particiones de memoria, que en su mayoría son áreas de memoria contiguas.
  • El método de administración de memoria paginada divide la memoria principal de la computadora en unidades de tamaño fijo conocidas como marcos de página.
  • La memoria segmentada es el único método de gestión de memoria que no proporciona al programa del usuario un espacio de direcciones lineal y contiguo.
  • El intercambio es un método en el que el proceso debe intercambiarse temporalmente desde la memoria principal al almacén de respaldo. Será later devuelto a la memoria para continuar con la ejecución.
  • La asignación de memoria es un proceso mediante el cual a los programas de computadora se les asigna memoria o espacio.
  • La paginación es un mecanismo de almacenamiento que permite al sistema operativo recuperar procesos del almacenamiento secundario a la memoria principal en forma de páginas.
  • La fragmentación se refiere a la condición de un disco en la que los archivos se dividen en partes esparcidas por el disco.
  • El método de segmentación funciona casi de manera similar a la paginación. La única diferencia entre los dos es que los segmentos tienen una longitud variable, mientras que, en el método de paginación, las páginas siempre tienen un tamaño fijo.
  • La carga dinámica es una rutina de un programa que no se carga hasta que el programa lo llama.
  • La vinculación es un método que ayuda al sistema operativo a recopilar y fusionar varios módulos de código y datos en un único archivo ejecutable.