Diferencia entre revisiones de «SO multiprogramables con particiones fijas»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Criterios de asignación)
Línea 37: Línea 37:
 
[[solución ajuste dinámico|Ver solución]]
 
[[solución ajuste dinámico|Ver solución]]
  
*'''Mejor que quepa con aplazamiento limitado''': Cuando queda una partición libre, se selecciona el mayor proceso que quepa en ella, pero se cuenta el nº de veces que un proceso se aplaza. Si se superan esas n veces (umbral), se le da paso.
+
*'''Mejor que quepa con aplazamiento limitado''': Cuando queda una partición libre, se selecciona el mayor proceso que quepa en ella, pero se cuenta el nº de veces que un proceso se aplaza. Si se superan esas '''n''' veces (umbral), se le da paso.
  
 
*'''Subparticiones'''
 
*'''Subparticiones'''
 +
 +
= Métodos de colocación en memoria =
 +
 +
*'''Montaje absoluto''': Se asigna una dirección de memoria constante, siendo por tanto este método muy restrictivo. Se utiliza para la carga del sistema operativo.
 +
 +
* '''Carga con reubicación''': Al realizar la carga, se le aplica a las direcciones lógicas del programa un ''offset'' o desplazamiento asociada. Este desplazamiento es establecido por el programador antes de que se ejecute el programa.
 +
 +
* '''Reubicación dinámica''': A diferencia de la carga con reubicación, el desplazamiento se asigna en tiempo de ejecución.
 +
** '''Reubicación dinámica parcial''': Es una variante del anterior, en la que existe también un registro límite.

Revisión del 17:40 16 may 2011

La memoria se encuentra dividida en particiones, en cada una habrá un proceso.

Estrategias

  • Cancelación: "no hay memoria, prueba luego"
  • Espera: añadir a la cola

Limitaciones

  • Procesos partición máxima -> No se ejecuta
  • Desperdicio de memoria. Por ejemplo, si los procesos son muy pequeños y las particiones grandes

Criterios de asignación

Se lanza un proceso, y hay que elegir a que partición va (estrategia de espera). Puede haber una cola por partición, o una sola para todas las particiones.

Ej: tenemos los siguientes procesos: m(P1) = 6KB, m(P2) = 1KB, m(P3) = 3KB, m(P4) = 31KB, m(P5) = 30KB;
    y una memoria de 64 KB divididos en 4 huecos como sigue:
 _
|_| H1 = 8KB   
|_| H2 = 8KB 
| |
|_| H3 = 16KB
| |
| |
| | H4 = 32KB   
|_|


  • Mejor ajuste estático: se adjudica cada proceso a la menor partición que quepa. Complejidad: O(1)

Ver solución

  • Primer ajuste: cuando una partición queda libre, se asigna el primer proceso que quepa en ella. Complejidad: O(1)

Ver solución

  • Mejor ajuste dinámico: cuando una partición queda libre, se asigna el mayor proceso que queda en ella. Complejidad: O(nlog(p))

Ver solución

  • Mejor que quepa con aplazamiento limitado: Cuando queda una partición libre, se selecciona el mayor proceso que quepa en ella, pero se cuenta el nº de veces que un proceso se aplaza. Si se superan esas n veces (umbral), se le da paso.
  • Subparticiones

Métodos de colocación en memoria

  • Montaje absoluto: Se asigna una dirección de memoria constante, siendo por tanto este método muy restrictivo. Se utiliza para la carga del sistema operativo.
  • Carga con reubicación: Al realizar la carga, se le aplica a las direcciones lógicas del programa un offset o desplazamiento asociada. Este desplazamiento es establecido por el programador antes de que se ejecute el programa.
  • Reubicación dinámica: A diferencia de la carga con reubicación, el desplazamiento se asigna en tiempo de ejecución.
    • Reubicación dinámica parcial: Es una variante del anterior, en la que existe también un registro límite.