• Non ci sono risultati.

UNIVERSITA' DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI - ANNO ACCADEMICO 2004/2005 COMPITO CONCORRENZA - 9 Febbraio 2005

N/A
N/A
Protected

Academic year: 2021

Condividi "UNIVERSITA' DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI - ANNO ACCADEMICO 2004/2005 COMPITO CONCORRENZA - 9 Febbraio 2005"

Copied!
1
0
0

Testo completo

(1)

Nome/cognome ____________________ N. di matricola (10 cifre) ______________________ Posizione: Riga _______ Col _______

UNIVERSITA' DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI - ANNO ACCADEMICO 2004/2005

COMPITO CONCORRENZA - 9 Febbraio 2005

Esercizio -1: essersi iscritti correttamente per svolgere questa prova.

Esercizio 0: Su entrambi i fogli, scrivere correttamente nome, cognome, matricola e posizione prima di svolgere ogni altro esercizio.

Esercizio 1

Siano dati i seguente cinque processi:

stampa(X): X={a,i,o,p,r}

{

synchroin(x);

while(true) { print(x);

syncroout(x);

} }

Scrivere le due funzioni synchroin e synchroout in modo che l'unico output possibile sia la string infinita piroparopiroparopiroparo...

Esercizio 2.

Si consideri il seguente monitor.

monitor Counter { int na=0, nb=0;

condition ca, cb;

procedure entry a() { na++;

ca.wait();

printf(“A: %d\n”, na);

na--;

if (na > 0) ca.signal();

}

procedure entry b() { nb++;

if (nb < MAX || na <= MAX) cb.wait();

printf(“B: %d\n”, nb);

nb--;

if (na > 0) ca.signal();

if (nb > 0) cb.signal();

} }

Si assuma di avere un numero arbitrario di processi che invocano a() e un numero arbitrario di processi che invocano b(); la velocità relativa di questi processi è ovviamente sconosciuta (finite progress). Mostrare l'output dei processi (evidenziando eventuali pattern).

Esercizio 3.

Tre operai (Francesco (Moser), Gino (Bartali) e Fausto (Coppi)) costruiscono biciclette. Gino fa le ruote che, appena sono pronte, appende su un portaruote con capacità finita RMAX. Francesco fa i telai che, una volta pronti, mette su un portatelai con capacità finita TMAX. Fausto assembla le biciclette usando un telaio e due ruote per ogni bicicletta. Poi le deposita fuori al negozio dove non ci sono limiti di spazio. Scrivere, in pseudo- codice, le procedure seguite dai tre operai (processi), assieme al monitor (o ai monitor) utilizzati per la sincronizzazione.

Riferimenti

Documenti correlati

Esercizio 0: Su entrambi i fogli, scrivere correttamente nome, cognome, matricola e posizione prima di svolgere ogni altro esercizio.. Spiegate concisamente l'algoritmo seguito

b) Descrivere una sequenza di allocazioni e deallocazioni di memoria principale che possa essere allocata correttamente da best-fit, ma che non possa essere gestita da first-fit (una

Siano date le funzioni void allocate(resourceset x), void deallocate(resourceset x), and boolean safe() che rispettivamente

p1. 3ms CPU, I/O traccia 10,  3 ms CPU, I/O traccia 3, 3 ms CPU

Dati quattro processi A,B,C,D e tre risorse (singole risorse, non classi) R1, R2, R3 seriali non prerilasciabili, fornire una sequenza di richieste che porti tutti e quattro i

Esercizio 0: Su entrambi i fogli, scrivere correttamente nome, cognome, matricola e posizione prima di svolgere ogni altro esercizio..

Quindi la a2recv deve sempre attendere due messaggi che rispettino le richieste del ricevente (mittente giusto, o ogni mittente se '*') provenienti dallo stesso mittente prima

Data la struttura del processo Presidente, in ogni istante vi può essere al più un solo elettore in possesso di scheda ma in attesa di matita. Ovviamente, le cabine possono