Diferencia entre revisiones de «SO multiprogramables con particiones fijas»
De Wiki de Sistemas Operativos
(→Mecanismos de protección de memoria: tildes) |
(→Criterios de asignación) |
||
Línea 39: | Línea 39: | ||
[[solución ajuste dinámico|Ver solución]] | [[solución ajuste dinámico|Ver solución]] | ||
− | *'''Mejor | + | *'''Mejor ajuste dinamico 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 la 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. | *'''Subparticiones''': No es un criterio como tal sino que viene a complementar a los anteriores. Si no hay un proceso que pueda aprovechar la 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. |
Revisión del 12:44 4 jun 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 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)
- 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 quepa en ella. Complejidad: O(nlog(p))
- Mejor ajuste dinamico 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 la 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.
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 está entre esas dos posiciones no se permite el acceso a memoria.