En el sistema operativo, las siguientes son cuatro técnicas comunes de administración de memoria.
Asignación contigua única: el método de asignación más simple utilizado por MS-DOS. Toda la memoria (excepto parte reservada para el sistema operativo) está disponible para un proceso.
Asignación dividida: la memoria se divide en diferentes bloques o particiones. Cada proceso se asigna de acuerdo con el requerimiento.
Gestión de memoria paginada: la memoria se divide en unidades de tamaño fijo denominadas marcos de página, que se utilizan en un entorno de memoria virtual.
Gestión de memoria segmentada: La memoria se divide en diferentes segmentos (un segmento es una agrupación lógica de los datos o código del proceso). En esta gestión, la memoria asignada no tiene por qué ser contigua.
La mayoría de los sistemas operativos (por ejemplo, Windows y Linux) utilizan la segmentación con paginación. Un proceso se divide en segmentos y los segmentos individuales tienen páginas.
En Asignación de particiones , cuando hay más de una partición disponible libremente para acomodar la solicitud de un proceso, se debe seleccionar una partición. Para elegir una partición en particular, se necesita un método de asignación de partición. Un método de asignación de particiones se considera mejor si evita la fragmentación interna.
Cuando llega el momento de cargar un proceso en la memoria principal y si hay más de un bloque libre de memoria de tamaño suficiente, el sistema operativo decide qué bloque libre asignar.
Hay diferentes algoritmos de colocación:
A. Primer ajuste
B. Mejor ajuste
C. Peor ajuste
D. Ajuste siguiente
1. Primer ajuste : en el primer ajuste, se asigna la partición que es el primer bloque suficiente desde la parte superior de la memoria principal. Escanea la memoria desde el principio y elige el primer bloque disponible que sea lo suficientemente grande. Por lo tanto, asigna el primer agujero que es lo suficientemente grande.
2. Mejor ajuste Asigne el proceso a la partición que sea la primera partición suficiente más pequeña entre las particiones libres disponibles. Busca en toda la lista de agujeros para encontrar el agujero más pequeño cuyo tamaño sea mayor o igual que el tamaño del proceso.
3. Peor ajuste Asigne el proceso a la partición que sea lo suficientemente grande entre las particiones disponibles gratuitamente en la memoria principal. Es opuesto al algoritmo de mejor ajuste. Busca en toda la lista de huecos para encontrar el hueco más grande y asignarlo al proceso.
4. Next Fit: Next fit es similar al primer ajuste pero buscará la primera partición suficiente desde el último punto de asignación.
¿Es Best-Fit realmente lo mejor?
Aunque el mejor ajuste minimiza el espacio de desperdicio, consume mucho tiempo de procesador para buscar el bloque que está cerca del tamaño requerido. Además, Best-fit puede funcionar peor que otros algoritmos en algunos casos. Por ejemplo, vea el siguiente ejercicio.
Ejercicio: considere las requests de los procesos en el orden dado 300K, 25K, 125K y 50K. Deje que haya dos bloques de memoria disponibles de tamaño 150K seguidos de un tamaño de bloque de 350K.
¿Cuál de los siguientes esquemas de asignación de particiones puede satisfacer las requests anteriores?
A) Mejor ajuste pero no primer ajuste.
B) Primer ajuste pero no mejor ajuste.
C) Tanto el primer ajuste como el mejor ajuste.
D) Ni primer ajuste ni mejor ajuste.
Solución: Probemos todas las opciones.
Mejor ajuste:
300 000 se asignan a partir de un bloque de tamaño 350 000. Quedan 50 en el bloque.
Se asignan 25K del bloque restante de 50K. Quedan 25K en el bloque.
125K se asignan del bloque de 150K. También quedan 25K en este bloque.
No se pueden asignar 50 000 aunque haya 25 000 + 25 000 de espacio disponible.
Primer ajuste:
la solicitud de 300 000 se asigna desde el bloque de 350 000, se omiten 50 000.
Se asignan 25K del bloque de 150K, 125K se deja fuera.
Luego, 125K y 50K se asignan a las particiones restantes omitidas.
Entonces, el primer ajuste puede manejar requests.
Entonces la opción B es la opción correcta.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA