Ejercicios sincronización y comunicación

De Wiki de Sistemas Operativos
Revisión del 09:22 9 may 2011 de Pneira (discusión | contribuciones) (ejercicio 2)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

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 del código representado anteriormente supone una unidad de ejecución, por tanto, todas las instrucciones toman el mismo tiempo de ejecución.

El cronograma deberá incluir qué instrucción se ejecuta en cada unidad de ejecución.

Ver solución del ejercicio 1