Diferencia entre revisiones de «Ejercicios sincronización y comunicación»
De Wiki de Sistemas Operativos
(añadir otro supuesto) |
(matiz sobre supuesto) |
||
Línea 28: | Línea 28: | ||
* El planificación emplea turno rotatorio estrícto con quantum de 3 unidades. | * El planificación emplea turno rotatorio estrícto con quantum de 3 unidades. | ||
* Se sabe que el proceso P2 es seleccionado en primer lugar por el planificador para ejecutarse. | * Se sabe que el proceso P2 es seleccionado en primer lugar por el planificador para ejecutarse. | ||
− | * La ejecución | + | * La ejecución de cada línea de código representado anteriormente supone una unidad de ejecución, por tanto, todas las instrucciones toman el mismo tiempo de ejecución. |
* La función get(semáforo s) devuelve el valor del contador del semáforo. | * La función get(semáforo s) devuelve el valor del contador del semáforo. | ||
Revisión del 08:25 9 may 2011
Ejercicio 1
Realice el cronograma temporal que represente la ejecución de dos procesos P1 y P2. El proceso P1 ejecuta el siguiente código:
for (int i=0; i<2; i++) {
down(s1);
f1();
if (get(s1) == 0)
up(s2);
}
Y el proceso P2 ejecuta el siguiente código:
for (int i=0; i<2; i++) {
down(s2);
f2();
up(s1);
}
Para el semáforo s1 el contador vale 1, mientras que para el semáforo s2 el contador vale 0.
Suponga que:
- El planificación emplea turno rotatorio estrícto con quantum de 3 unidades.
- Se sabe que el proceso P2 es seleccionado en primer lugar por el planificador para ejecutarse.
- La ejecución de cada línea de código representado anteriormente supone una unidad de ejecución, por tanto, todas las instrucciones toman el mismo tiempo de ejecución.
- La función get(semáforo s) devuelve el valor del contador del semáforo.
El cronograma deberá incluir qué instrucción se ejecuta en cada unidad de ejecución.