Sistemes Operatius - Seminari 3 1. Explica el funcionamiento de las opraciones wait(s) y signal(s) de un semáforo. 2. Usando semáforos, da una solución al problema de la sección crítica para tres procesos. 3. Demuestra (con un trace de ejecución) que si las operaciones wait() y signal() no se ejecutan atómicamente, entonces se puede violar el principio de exclusión mutua en el problema de la sección critica. 5. Asume dos semáforos S and Q inicializados a 1. Puede el siguiente programa concurrente con 2 procesos entrar en deadlock? P0 wait(S); wait(Q); .. signal(S); signal(Q); P1 wait(Q); wait(S); .. signal(Q); signal(S); 6. Propón una solución al problema del productor-consumidor (bounded buffer problem) usando semáforos y explica tu solución. 7. Usando semáforos propón una solución al problema de los filosofos comensales que esté libre de deadlock. 9. Propón una solución al problema del productor-consumidor (bounded buffer problem) usando monitores y explica tu solución. 10. Contrasta las operaciones wait y signal de los semáforos y de los monitores. 11. Propón una implementación de semáforos usando monitores. 12. ¿Cual es la relacion entre el modelo de programación concurrente de Java y los monitores? Es decir, ¿como programas un monitor en Java y que operaciones en Java corresponden a las operaciones de los monitores?