• Non ci sono risultati.

Nome e Cognome Numero di Matricola

N/A
N/A
Protected

Academic year: 2021

Condividi "Nome e Cognome Numero di Matricola"

Copied!
4
0
0

Testo completo

(1)

Nome e Cognome Numero di Matricola(10 cifre numeriche)

UNIVERSIT `A DEGLI STUDI DI BOLOGNA – CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI

III APPELLO (STRAORDINARIO) AUTUNNALE – ANNO ACCADEMICO 2000/2001 20 ottobre 2001

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

Esercizio 0: Scrivere correttamente il proprio nome, cognome e numero di matricola in ogni foglio prima di svolgere ogni altro esercizio seguente.

Esercizio 1: Un semaforo ternario `e un semaforo che soddisfa il seguente invariante 0 ≤ ntV + tinit − ntP ≤ 2, dove ntV `e il numero di operazioni tV completate sul semaforo e ntP `e il numero di operazioni tP . Scrivere un monitor che implementi le funzionalit`a di tinit, tP , tV su un semaforo ternario.

1

(2)

Esercizio 2: Dato un servizio di semafori generali che fornisca le chiamate init, P , V implementare i semafori ternari come definiti nell’esercizio 1.

Esercizio 3: In un servizio di message passing completamente asincrono n`e l’operazione send n`e l’operazione receive sono bloccanti. Se non vi sono messaggi in coda al quando un processo chiede di fare la receive, viene restituito un messaggio NULL ma la funzione comunque immediatamente ritorna il controllo al chiamante. Sia dato un servizio di message passing asincrono operante con le primitive asend e arecv, implementare un servizio di message passing completamente asincrono implementando le chiamate casend e carecv facendo uso di un processo gestore. (per semplicit`a si pu’‘o implementare per una singola coda di messaggi)

2

(3)

Nome e Cognome Numero di Matricola(10 cifre numeriche)

3

(4)

Esercizio 4a. Cosa fa il seguente codice? Descriverne il comportamento.

bool b1=false;b2=false;

cond c1,c2;

procedure entry p1():

if (b1) c1.wait;

c1.signal;

b1=false; b2=true;

c2.signal;

end;

procedure entry p2():

if (b2) c2.wait;

c2.signal;

b2=false; b1=true;

c1.signal;

end;

Esercizio 4b. Il codice dell’esercizio 4a pu`o causare situazioni di deadlock?

4

Riferimenti

Documenti correlati

I punteggi di ciascuna domanda sono indicati tra parentesi: attenzione, una risposta errata verr` a valutata con il numero negativo indicato sempre in parentesi, per

Modificare opportunamente la struttura di dati tabella ad indirizzamento diretto in modo che possa contenere pi`u oggetti con la medesima chiave (ma con dati satellite

Scrivere in forma leggibile il proprio nome, cognome e matricola sul testo del compito e su ogni foglio consegnato.. Consegnare solo la bella copia e il testo

Scrivere in forma leggibile il proprio nome, cognome e matricola sul testo del compito e su ogni foglio consegnato;.. Consegnare solo la bella copia e il testo

Scrivere in forma leggibile il proprio nome, cognome e matricola sul testo del compito e su ogni foglio consegnato.. Consegnare solo la bella copia e il testo

Esercizio 0: Scrivere correttamente il proprio nome, cognome e numero di matricola in ogni foglio prima di svolgere ogni altro esercizio seguente.. Esercizio 1: L’algoritmo

Quando un camion vuole scaricare si reca al molo 1 e chiama la funzione harbour.truckunload(int capacity) Quando un camion vuole caricare si reca al molo 2 e chiama la

Esercizio 2a: Dato un meccanismo di message passing sincrono (dotato delle chiamate ssend sreceive viste a lezione) im- plementare un sistema di supporto per il message passing