SO multiprogramables con particiones variables

De Wiki de Sistemas Operativos
Revisión del 12:46 4 jun 2011 de DvS 013 (discusión | contribuciones) (Criterios de asignación)
Saltar a: navegación, buscar

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.

Creo que se refiere al desperdicio interno de una partición, por ejemplo si una partición es de 15 KB y un proceso ocupa 5KB el desperdicio interno de dicha particion serian 10KB.--DvS 013 10:46 4 jun 2011 (UTC)