Semaforos
Publicado por abyss666 (2 intervenciones) el 13/12/2009 18:41:05
Buenas tardes.
Si alguien me puede echar una mano o indicarme como solucionar esto lo agradeceré eternamente:
// *** EjeMetropolitano *** //
void main () {
while (true) {
ConstruirTramoAutovía ();
}
}
// ******** TGP ******* //
void main () {
while (true) {
ConstruirTramoLíneaFerrea ();
}
}
a) Modificad el código anterior de manera que mediante semáforos podamos asegurar la alternancia pedida. Indicad el valor inicial de cada semáforo utilizado. (NOTA: Podéis suponer que empezamos construyendo el eje metropolitano.)
b) Construir un sistema de señales de manera tal que cuando uno de los dos procesos reciba una notificación SIGUSR1 acabe el tramo empezado, pero no se le permita hacer ningún tramo más hasta la nueva recepción de SIGUSR1. Entretanto la otra obra continúa adelante y va construyendo tantos tramos como pueda hasta que se recupera la alternancia. (NOTA: No se pueden usar variables compartidas.)
Si alguien me puede echar una mano o indicarme como solucionar esto lo agradeceré eternamente:
// *** EjeMetropolitano *** //
void main () {
while (true) {
ConstruirTramoAutovía ();
}
}
// ******** TGP ******* //
void main () {
while (true) {
ConstruirTramoLíneaFerrea ();
}
}
a) Modificad el código anterior de manera que mediante semáforos podamos asegurar la alternancia pedida. Indicad el valor inicial de cada semáforo utilizado. (NOTA: Podéis suponer que empezamos construyendo el eje metropolitano.)
b) Construir un sistema de señales de manera tal que cuando uno de los dos procesos reciba una notificación SIGUSR1 acabe el tramo empezado, pero no se le permita hacer ningún tramo más hasta la nueva recepción de SIGUSR1. Entretanto la otra obra continúa adelante y va construyendo tantos tramos como pueda hasta que se recupera la alternancia. (NOTA: No se pueden usar variables compartidas.)
Valora esta pregunta


0