Diferencia entre revisiones de «SO multiprogramables con particiones fijas»
De Wiki de Sistemas Operativos
(→Estrategias) |
|||
Línea 2: | Línea 2: | ||
=Estrategias= | =Estrategias= | ||
− | *Cancelación: "lo siento, no hay memoria libre, prueba más tarde" | + | Las estrategias a seguir cuando no hay memoria suficiente para otro proceso son dos: |
− | *Espera: añadir a la cola | + | *Cancelación: "lo siento, no hay memoria libre, prueba más tarde". |
+ | *Espera: añadir el proceso a la cola hasta que haya memoria disponible. | ||
=Limitaciones= | =Limitaciones= |
Revisión del 16:29 24 may 2011
La memoria se encuentra dividida en particiones, en cada una habrá un proceso. Por lo tanto, se pueden ejecutar tantos procesos como particiones haya.
Contenido
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 la cola hasta que haya memoria disponible.
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)
- Primer ajuste: cuando una partición queda libre, se asigna el primer proceso que quepa en ella. Complejidad: O(1)
- Mejor ajuste dinámico: cuando una partición queda libre, se asigna el mayor proceso que queda en ella. Complejidad: O(nlog(p))
- 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: Si no hay un proceso que pueda aprovechar partición madre: se asignan las subparticiones a procesos pequeños. 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.
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.
Mecanismos de protección de memoria
Es necesario proteger el SO frente a procesos; y proteger frente a procesos entre sí.
- Ampliación bits de protección
- Ampliación registros valla