• 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!
3
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 A-L

PRIMA PROVA PARZIALE – ANNO ACCADEMICO 2001/2002 08 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: Per percorrere un tratto di strada a senso unico alternato le auto utilizzano il seguente protocollo:

altoneway.enter(direction)

... attraversa la parte a senso unico alternato altoneway.leave(direction)

direction `e una variabile che pu`o assumere valore 0 o 1 e rappresenta il senso di attraversamento del tratto di strada.

Pi`u veicoli che intendono attraversare il senso unico alternato nella stessa direzione possono farlo contemporaneamente. Per poter ammettere un veicolo ad attraversare il senso unico alternato occorre che tutti i veicoli che lo hanno attraversato in senso contrario abbiano completato l’operazione.

Al fine di evitare problemi di starvation viene inoltre deciso che se un veicolo `e in attesa si consente al pi`u a 10 veicoli di passare in senso contrario.

Scrivere il monitor altoneway.

1

(2)

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 sincrono secondo Thoth con le chiamate tsend, treceive e treply.

(ricordo che treceive non sblocca il processo che ha fatto la tsend corrispondente. `E la treply a sbloccare il processo, treply spedisce anche un valore quale risposta al messaggio. tsend ha come parametri il processo destinazione e il messaggio da inviare e restituisce il valore specificato nella treply dal destinatario).

2

(3)

Nome e Cognome Numero di Matricola(10 cifre numeriche)

Esercizio 2b: Il servizio di message passing sincrono e di message passing secondo Thoth hanno lo stesso potere espressivo?

(SI/NO)

Esercizio 2c: Motivare la risposta di 2b.

Esercizio 3:

Sia dato il seguente monitor:

monitor x

var c1, c2: condition;

procedure entry p1() begin

c1.wait;

c2.signal;

end;

procedure entry p2() begin

c1.signal;

c2.wait;

end;

begin end.

Ponendo l’esistenza di pi`u processi che chiamano la procedura p1 e di molteplici processi che chiamano p2 spiegare brevemente il comportamento del monitor.

Esercizio 4: Sia dato un sistema dove oltre alle azioni atomiche di lettura e scrittura in memoria sia data la seguente operazione atomica che opera su due variabili booleane:

f(a,b)=<if a {toggle(a);toggle(b)}>

dove la funzione toggle corrisponde alla negazione logica. Scrivere un meccanismo di supporto di sezioni critiche in modo simile al test&set usando la funzione f.

3

Riferimenti

Documenti correlati

 Using Reference Types in parameters provides access Using Reference Types in parameters provides access to arguments even though they are still passed by value to arguments

mentre la coda e’ vuota arrivano prima una richiesta di lettura dalla testa e poi una dalla coda, l’elemento inserito far` a completare la prima richiesta, quella di estrazione

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 algoritmo

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

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

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 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 `