Diferencia entre revisiones de «SO multiprogramables con particiones variables»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Definición)
Línea 1: Línea 1:
 
== Definición ==
 
== Definición ==
  
En este tipo de sistemas, las particiones para cada proceso se van creando a medida que son asignadas al procesador. Como ventaja principal tiene 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 para poder unificar todas las partes que han quedado libres y así reciclar las particiones que quedaron huérfanas.
+
En este tipo de sistemas, las particiones para cada proceso se van creando a medida que son asignadas al procesador. Como ventaja principal tiene 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 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:
+
''Ejemplo:''
 
   _                                _
 
   _                                _
 
  |_| P1 = 3KB                      |_| P1 = 3KB   
 
  |_| P1 = 3KB                      |_| P1 = 3KB   
Línea 13: Línea 13:
 
  |_| Libre = 21KB                  |_| Libre = 21KB
 
  |_| 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 ==
 
== Elementos de administración ==

Revisión del 16:57 16 may 2011

Definición

En este tipo de sistemas, las particiones para cada proceso se van creando a medida que son asignadas al procesador. Como ventaja principal tiene 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 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. 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 correspondiente. 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