Академический Документы
Профессиональный Документы
Культура Документы
Problema 1 (semáforos)
Suponiendo que N procesos comparten la variable ch de tipo carácter cuyo valor inicial es 'a',
que se sincronizan mediante el semáforo s cuyo valor inicial es 1, y teniendo en cuenta que
todos ejecutan el algoritmo siguiente. ¿Cuál sería la salida que aparecería en la terminal?
while (CIERTO) {
wait(s);
printf("%c", ch);
ch++;
if (ch == 'z') {
printf("%c\n", ch);
ch = 'a';
}
signal(s);
}
Problema 2 (semáforos)
Sean A y B dos procesos que se sincronizan mediante los semáforos S1 y S2, con valores
iniciales 2 y 0, respectivamente. Sabiendo que ejecutan los algoritmos que se muestran a
continuación, ¿cuáles de las siguientes salidas podrían producirse?
a) 01201234012, b) 01320124, c) 3012012, d) 01203120412, e) 0120134012
A B
while (CIERTO) { while (CIERTO) {
int i; int j;
1
La notacion zi significa que el hilo i ejecuta la instrucción z.
Carlos Pérez y Rafael Martínez
Departamento de Informática-UVEG
10 de octubre de 2016 Ingeniería Multimedia 2 de 3
Sistemas operativos Problemas de: Comunicación y sincronización