UTNianos

Versión completa: [Sistemas Operativos] Duda Ejercicio 7 Guía de Sincronización 2012
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Hola gente, el ejercicio es igual problema del productor/consumidor.


a) int Mutex = 1 ; int Esperar = 0 ;

KLT compilador (N instancias)

While (TRUE){
id_programa = obtener_nuevo_programa();
r = compilar_programa(id_programa);
Wait(Mutex)
depositar_resultado(r, lista);
signal(Mutex);
signal(Esperar);

}

KLT notificador (1 instancia)

While (TRUE){
wait(Esperar);
Wait(Mutex);

r2 = retirar_resultado(lista);
Signal (Mutex);
enviar_email(r2);
}
b) int Mutex = 1 ; int Esperar = 0 ; int Lleno = M ;

KLT compilador (N instancias)

While (TRUE){
id_programa = obtener_nuevo_programa();
r = compilar_programa(id_programa);
[b]Wait (Lleno)
wait(Mutex);[/b]
depositar_resultado(r, lista);
signal(Mutex);
signal(Esperar);

;
}

KLT notificador (1 instancia)

While (TRUE){
wait(Esperar);
Wait(Mutex);

r2 = retirar_resultado(lista);
signal(Mutex);
Signal(Lleno);

enviar_email(r2);
}
fele, alan2506

Con la solución que planteó Fele, me queda la misma duda que tenía Alan, la lista llega en algún momento va a tener más de un elemento?

Después de insertar hace los dos signal y ya estaría habilitando a que retire de la lista. Salvo que cuando haga signal(mutex) ya esté un proceso antes con el wait(mutex) y entra, luego hace el signal(esperar) y el consumidor se ejecuta. Pero no veo que se llenen muchos elementos en la lista o qué estoy viendo mal?

Gracias!
Páginas: 1 2
URLs de referencia