SO multiprogramables con particiones fijas

De Wiki de Sistemas Operativos
Revisión del 18:44 2 jun 2011 de JCGarrido (discusión | contribuciones) (Mecanismos de protección de memoria: Explicación de "Ampliación bits de protección")
Saltar a: navegación, buscar

La memoria se encuentra dividida en particiones, en cada una habrá un proceso. Por lo tanto, se pueden ejecutar tantos procesos como particiones haya.

Estrategias

Las estrategias a seguir cuando no hay memoria suficiente para otro proceso son dos:

  • Cancelación: "lo siento, no hay memoria libre, prueba más tarde".
  • Espera: añadir el proceso a una cola hasta que haya memoria disponible.

Limitaciones

  • Si un procesos necesita mayor memoria que la partición más grande, entonces este 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;
    suponemos que la decisión sobre la asignación de procesos a particiones se hace ordenadamente de manera consecutiva según el número del proceso
    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 quepa 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: No es un criterio como tal sino que viene a complementar a los anteriores. Si no hay un proceso que pueda aprovechar partición madre: se asignan las subparticiones a procesos pequeños (para que el desperdicio interno sea lo menor posible). Si llega un proceso grande: los procesos pequeños se vuelcan a disco y se asigna partición madre.

Partición madre: tipo especial de partición que se puede dividir en múltiples particiones menores.

Otro ejemplo

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. 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.

Mecanismos de protección de memoria

Es necesario proteger el SO frente a procesos; y proteger a los procesos entre sí.

  • Ampliación bits de protección : Se le asocia a cada palabra un bit para comprobar si es de SO o del proceso.
  • Ampliación registros valla : De esta manera se conocen la posición inicial y final, de manera que si no esta entre esas dos posiciones no se permite el acceso a memoria.