Sol-ejer6-planif-procesos

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar

Apartado a

                   ____|_PA_|_PB_|_PC_|_PD_|
        Datos del  _H0_|_0__|_2__|_3__|_5__|
         problema  _t__|_3__|_1__|_4__|_6__|
                     < = indica el instante de lanzamiento del proceso
                     > = indica el instante de finalización del proceso
                     & = el proceso bloquea debido a una llamada bloqueante
                     # = el proceso bloquea debido a que ha consumido su cuanto
                     X = se ejecuta el código del planificador
                     p = el proceso pasa a estado preparado
                 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PA  <---&   |   |   p---&   |   |   p--->   |   |   |   |   |   |   |   |   |   |   |
             PB  |   |   <--->   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PC  |   |   |   <---#   |---&   p---#   |--->   |   |   |   |   |   |   |   |   |   |
             PD  |   |   |   |   |   <   |---#   |   |   |---|---|---|---|--->   |   |   |   |   |
    Planificador X   X   X   X   X   X   X   X   X   X   X   |   |   |   |   X   |   |   |   |   |
            -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
                 0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20

-Respuesta: debido a que el quantum tiene un tamaño muy pequeño el planificador de tareas se ejecuta continuamente (tiempo del sistema alto) con lo que el rendimiento se verá afectado.


DUDA: En t=5 ¿por qué se inicia PC en vez de PD? Si entra PD en t=5 se debería ejecutar porque en RR estricto los procesos recién lanzados deben ejecutarse, similar a lo de orden de llegada. He pensado que puede ser por la prioridad pero esque aquí en la tabla no viene las prioridades, solo H0 y t. --Luisa Mª.

- En t=4 se han ejecutado Pa,Pb y Pc, entonces le tocaría el turno a Pd pero como en ese momento no está preparado se le pasa el turno a Pa otra vez, después de ejecutarse este se le pasa el turno a Pb pero como ya ha terminado de ejecutarse se salta al proceso siguiente: Pc. ¡Aunque también es posible que me haya equivocado! --jesgonbel.

- Creo que como dice Luisa se debería ejecutar PD, porque los recien llegados tienen prioridad frente a los que ya se han iniciado.--Josmorsot 12:39 11 nov 2011 (UTC)

- Mirad el enunciado, el proceso C tiene una prioridad superior a D, imagino que será por eso. --Juan Ignacio.

OTRA DUDA: En t=8 porqué se ejecuta A en lugar de D (que sería el siguiente en el turno después de C. --Danjurfer

Mi propuesta de solución, creo que es la correcta, a ver que os parece (por --Josazcrom 10:34 23 nov 2011 (UTC))

                 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PA  <---&   |   |   p---&   |   |   p--->   |   |   |   |   |   |   |   |   |   |   |
             PB  |   |   <--->   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PC  |   |   |   <---#   |   |---&   p   |---|   |--->   |   |   |   |   |   |   |   |   
             PD  |   |   |   |   |   <---#   |---#   |   |---|   |---|---|--->   |   |   |   |   |
    Planificador X   X   X   X   X   X   X   X   X   X   X   X   X   |   |   X   |   |   |   |   |
            -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
                 0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20

Hitos importantes:

- en t=4, lo que ha dicho --jesgonbel arriba.
- en t=5, como bien dice Luisa María, se le dá oportunidad de ejecución al proceso recién lanzado que en este caso es Pd, el cual llegaría a la cola de preparados por delante de Pc que en ese momento sería el único preparado de la cola.
- en t=8 es donde llega mi DUDA, puesto que pasan a estado preparado Pa y Pc a la vez y el enunciado del problema debería de especificar un orden de prioridad para estos casos. En mi solución le he dado mayor prioridad a Pa respecto a Pc, de ahí que se ejecute primero.

Apartado b

En ambos casos la solución es la misma.


                   ____|_PA_|_PB_|_PC_|_PD_|
        Datos del  _H0_|_0__|_2__|_3__|_5__|
         problema  _t__|_3__|_1__|_4__|_6__|
                     < = indica el instante de lanzamiento del proceso
                     > = indica el instante de finalización del proceso
                     & = el proceso bloquea debido a una llamada bloqueante
                     # = el proceso bloquea debido a que ha consumido su cuanto
                     X = se ejecuta el código del planificador
                     p = el proceso pasa a estado preparado
                 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PA  <---&   |   |   p---&   |   |   |   |--->   |   |   |   |   |   |   |   |   |   |
             PB  |   |   <--->   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PC  |   |   |   <---#   |---&   p---|--->   |   |   |   |   |   |   |   |   |   |   |
             PD  |   |   |   |   |   <   |---#   |   |   |---|---|---|---|--->   |   |   |   |   |
    Planificador X   X   X   X   |   |   X   X   |   X   X   |   |   |   |   X   |   |   |   |   |
            -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
                 0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20

DUDA: No entiendo que eso de que bloquea cuando su quantum es 1 si en uno de SJF no hay quantum además dudo que ambas soluciones sean iguales ya que en uno apropiativo se le puede retirar el proceso, en cuanto haya uno mas corto en estado preparado, que alguien me corrija si me equivoco, gracias.

Resp: Estoy contigo, esta solucion seria para el Apropiativo y sin contar con el quantum ni la prioridad, ya que se mira al que le quede menos. Para el No Apropiativo yo tengo otra solución totalmente diferente, la pongo y me decis si tengo algo mal:

                 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PA  <---&   |   |   p   <---&   |   |   p   |   |   |   |   |--->   |   |   |   |   |
             PB  |   |   <--->   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PC  |   |   |   <-------&   p------->   |   |   |   |   |   |   |   |   |   |   |   |
             PD  |   |   |   |   |   <   |   |   |---|---|---|---|---|--->   |   |   |   |   |   |
                 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
            -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
                 0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20

Si yo creo que es correcto, hemos hecho el ejercicio dos personas y nos ha dado el mismo resultado.

A mi también me ha dado lo mismo la solución No Apropiativa (--Josazcrom 10:58 23 nov 2011 (UTC))

Apartado c

                   ____|_PA_|_PB_|_PC_|_PD_|
        Datos del  _H0_|_0__|_2__|_3__|_5__|
         problema  _t__|_3__|_1__|_4__|_6__|
                     < = indica el instante de lanzamiento del proceso
                     > = indica el instante de finalización del proceso
                     & = el proceso bloquea debido a una llamada bloqueante
                     # = el proceso bloquea debido a que el planificador le retira el procesador
                     X = se ejecuta el código del planificador
                     p = el proceso pasa a estado preparado
                 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PA  <---&   |   |   p---&   |   |   p   |   |---&   |   |   >   |   |   |   |   |   |
             PB  |   |   <--->   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PC  |   |   |   <---#   |---&   p---|---&   >   |   |   |   |   |   |   |   |   |   |
             PD  |   |   |   |   |   <   |---#   |   |---|   |---|---|---|--->   |   |   |   |   |
    Planificador X   X   X   X   X   X   X   X   X   X   X   |   |   |   |   X   |   |   |   |   |
            -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
                 0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20

Indices de penalizacion: PA=9 PB=1 PC=7/4 PD=9/6


Duda: ¿porqué en el instante t=8 no se le asigna el recurso procesador al proceso A, siendo su penalizacion mayor que C? Yo diría que este ejercicio esta mal.A ver si el profesor nos da su opinión.

Resp: Yo opino igual que tu, en el enunciado pone que es APROPIATIVO, en el t=8 se deberia revaluar la situación, los indices de penalización son: Pa=3, Pc=1'5 y Pd=1'33, por tanto entraria el Pa, luego iria Pc de t9 a t10 que termina y por ultimo Pd de t10 a t15.

Resp: En el enunciado actualmente pone NO apropiativo, por lo que este ejercicio no estaría correcto. En t=4 debería seguir el proceso C ¿no?

Efectivamente, este ejercicio creo que no está bien, pongo mi solución para ver si os dá lo mismo

                 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PA  <---&   |   |   p   |---&   |   |   p   |   |   |   |   |---x   |   |   |   |   |
             PB  |   |   <--->   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
             PC  |   |   |   <---|---&   p---|--->   |   |   |   |   |   |   |   |   |   |   |   |
             PD  |   |   |   |   |   <   |   |   |---|---|---|---|---|--->   |   |   |   |   |   |
    Planificador X   X   X   X   X   X   X   |   X   X   |   |   |   |   X   X   |   |   |   |   |
            -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
                 0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20

Hitos importantes:
- en t=5 se comparan los índices de Pa y Pd, ya que Pb ha terminado y Pc está bloqueado (el mayor índice lo dá Pa)
- en t=6 se comparan los índices de Pc y Pd, dándo Pc el mayor índice
- en t=8 se ejecuta el proceso Pc al no haber ningún otro proceso preparado que se pueda evaluar su índice

Espero que a alguien más le de el mismo resultado :) (por --Josazcrom 13:21 23 nov 2011 (UTC))