SO multiprogramables con particiones variables
Definición
En este tipo de sistemas, las particiones para cada proceso se van creando a medida que son asignadas al procesador. Tiene como ventaja principal que evitamos el desperdicio de memoria dentro de cada bloque ya que cada uno está hecho a medida para el proceso que contiene. Por el contrario, una vez que un proceso ha concluido, su partición se queda en desuso y sería necesario aplicar algoritmos de desfragmentación de memoria(supone un alto coste de rendimiento) para poder unificar todas las partes que han quedado libres y así reciclar las particiones que quedaron huérfanas. Otra forma de obtener particiones de mayor tamaño es unificar dos o más huecos adyacentes en uno sólo.
Ejemplo:
_ _ |_| P1 = 3KB |_| P1 = 3KB |_| P2 = 1KB |_| P2 = 1KB |_| P3 = 6KB => Finaliza P3 => |_| Libre = 6KB | | | | |_| P4 = 31KB |_| P4 = 31KB | | | | |_| Libre = 21KB |_| Libre = 21KB
Si un nuevo proceso P5 requiriese 24KB de memoria, no podrían serle asignados, ya que los huecos no son contiguos y para disponer de los 27KB libres en total habría que realizar previamente una desfragmentación.
Elementos de administración
- Mapas de bits: Dividiendo la memoria en bloques, se utiliza un bit para representar si dicho bloque está libre o asignado.
- Listas de control: Se almacena en una lista el tamaño de los huecos y las posiciones de memoria entre las que se encuentran comprendidos.
Criterios de asignación
- Primer ajuste: Consiste en asignar el primer hueco disponible que tenga un espacio suficiente para almacenar el programa. Las dos principales desventajas son su alto desperdicio interno, y el elevado uso de las primeras posiciones de memoria. Este último inconveniente repercute negativamente en la circuitería, debido a que se produce un mayor desgaste en dichas posiciones.
- Siguiente ajuste: Se continúa a partir de la posición de la última asignación realizada.Es muy probable que haya un hueco a partir de esa posición, reduciendo la longitud de la búsqueda. De esta forma se resuelve el inconveniente de usar en exceso las primeras posiciones de la memoria.
- Mejor ajuste: Consiste en asignarle al proceso el hueco con menor ajuste interno. Su mayor inconveniente es su orden de complejidad (orden lineal, O(n))
- Peor ajuste: Al contrario que el criterio anterior, se asigna a cada proceso el hueco con mayor ajuste interno. Tiene el mismo inconveniente en cuanto a orden de complejidad que el mejor ajuste.
- Ajuste rápido: Mediante listas de control, se agrupan los huecos disponibles según su tamaño (0 < t < 10, 10 < t < 20, etc.). De esta manera, cuando se necesite un hueco, se seleccionarán los del grupo del tamaño que corresponda. En el caso de que haya varios huecos disponibles, se seleccionará uno en base a cualquiera de los criterios anteriores.
- Método de los compañeros: Es una variante del ajuste rápido, en el que los huecos se dividen en potencias de 2: 21, 22, ..., 2k. No es un método usado en la práctica, ya que al realizar redondeos a potencias de 2, se produce un elevado desperdicio interno
Petición:Por favor,alguien que entienda bien el mejor ajuste y el peor ajuste, que explique lo que significa que tenga menor o mayor ajuste interno, que no se entiende bien.
Gracias.