Saltar al contenido

Gestión de la memoria en el sistema operativo: táctil, intercambio, fragmentación

¿Qué es la gestión de la memoria?

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

La función más importante de un sistema operativo es administrar la memoria primaria. Ayuda a que los procesos se muevan hacia adelante y hacia atrás entre la memoria principal y el disco de ejecución. Ayuda al sistema operativo a realizar un seguimiento de todas las ubicaciones de memoria, independientemente de si está asignada a algún proceso o si permanece libre.

En este tutorial del sistema operativo aprenderás:

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

A continuación, se muestran algunas razones para utilizar la gestión de memoria:

Técnicas de gestión de la memoria

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

Asignación táctil única

Es la técnica de gestión de memoria más sencilla. En este modo, toda la memoria de la computadora reservada para el sistema operativo, excepto una pequeña parte, está disponible para una aplicación. Por ejemplo, un sistema operativo MS-DOS asigna memoria de esta manera. Un sistema integrado también se ejecuta en una aplicación.

Asignación de segmentos

Divide la memoria primaria en diferentes particiones de memoria, que en su mayoría son áreas de memoria táctil. 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 se inicia y no en asignarlo cuando finaliza.

Gestión de memoria paginada

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

Gestión de memoria segmentada

La memoria particionada es el único método de administración de memoria que no proporciona un espacio de direcciones lineal tangencial para el programa de usuario.

Los segmentos necesitan soporte de hardware en forma de tabla de segmentos. La dirección física de la pieza está contenida en la memoria, tamaño y otros datos como bits y estado de protección de acceso.

¿Qué es un Swap?

El intercambio es un método en el que el proceso debe cambiarse temporalmente de la memoria principal al repositorio de soporte. Se recordará más adelante para continuar con su ejecución.

El repositorio de respaldo es un disco duro o algún otro dispositivo de almacenamiento secundario que debe ser lo suficientemente grande para proporcionar copias de todas las imágenes de la memoria a cada usuario. Puede ofrecer acceso directo a estas imágenes de la memoria.

Ventajas de intercambio

Estos son algunos de los principales beneficios del intercambio:

¿Qué es la asignación de memoria?

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

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

  1. Memoria baja – El sistema operativo tiene este tipo de memoria.
  2. Memoria alta– Se mantiene una gran memoria en los procesos del usuario.

Asignación de particiones

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

Los siguientes son los diversos esquemas de asignación segregada:

¿Qué es la paginación?

La paginación es un mecanismo de almacenamiento que le permite a su sistema operativo recuperar procesos del almacenamiento secundario a la memoria principal en forma de página. En el método de Paginación, la memoria principal se divide en pequeños bloques de memoria física de tamaño fijo, llamados marcos. El tamaño del marco debe mantenerse igual que el tamaño de la página para aprovechar al máximo la memoria principal y evitar la fragmentación externa. La paginación se utiliza para obtener 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, creando espacio de memoria libre, que es demasiado pequeño para ser utilizado por otros procesos.

Después de horas, los procesos que no pueden asignarse a bloques de memoria se denominan fragmentación porque su pequeño tamaño y los bloques de memoria no se utilizan. Este tipo de problema ocurre durante los sistemas de asignación de memoria dinámica cuando los bloques libres son relativamente pequeños, por lo que no puede cumplir con ninguna solicitud.

Hay dos tipos de métodos de fragmentación:

  1. Fragmentación externa
  2. Fragmentación interna

¿Qué es una partición?

El método de segmentación funciona casi igual que la paginación. La única diferencia entre los dos es que las secciones son de longitud variable, pero, en el modo de paginación, las páginas son siempre de tamaño fijo.

El segmento de programación incluye la función principal del programa, estructuras de datos, funciones de utilidad, etc. El SO mantiene una tabla de mapas segmentados para todos los procesos. También incluye una lista de bloques de memoria libres junto con su tamaño, números de segmento y sus ubicaciones de memoria en la memoria principal o 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 la solicita. Todas las rutinas deben estar en 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 la conexión dinámica?

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 solo archivo ejecutable. El archivo se puede cargar en la memoria y ejecutar. El sistema operativo puede conectar bibliotecas de nivel de sistema a un programa que combina las bibliotecas en el momento de la carga. En el modo 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 permanecer pequeño.

Diferencia entre carga estática y dinámica

Carga estáticaCarga dinámica
La carga estática se utiliza cuando desea cargar su programa de forma estática. Luego, en la compilación, todo el programa se vinculará y compilará sin ninguna dependencia de un módulo o programa externo.En un programa cargado dinámicamente, se proporcionarán testimonios y la carga se ejecutará en la ejecución.
En el momento de la carga, todo el programa se carga en la memoria y comienza a ejecutarse.Las rutinas de la biblioteca se cargan en la memoria solo cuando el programa lo requiere.

Diferencia entre enlaces estáticos y dinámicos

Estas son las principales diferencias entre enlaces estáticos y dinámicos:

Enlace estáticoVinculación dinámica
La vinculación estática se utiliza para combinar todos los demás módulos, que requieren un programa, en un solo código ejecutable. Esto ayuda al sistema operativo a prevenir cualquier dependencia del tiempo de ejecución.Cuando se utiliza una conexión dinámica, no es necesario conectar el módulo o biblioteca real al programa. En su lugar, utilice una referencia al módulo dinámico proporcionado en el momento de la compilación y el enlace.

Resumen:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *