• Non ci sono risultati.

Nome e cognome ______________________________________ N. di matricola (10 cifre num.) ___________________________ UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI - ANNO ACCADEMICO 2002/2003 CONCORRENZA – 30 g

N/A
N/A
Protected

Academic year: 2021

Condividi "Nome e cognome ______________________________________ N. di matricola (10 cifre num.) ___________________________ UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI - ANNO ACCADEMICO 2002/2003 CONCORRENZA – 30 g"

Copied!
1
0
0

Testo completo

(1)

Nome e cognome ______________________________________ N. di matricola (10 cifre num.) ___________________________

UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA CORSO DI SISTEMI OPERATIVI - ANNO ACCADEMICO 2002/2003

CONCORRENZA – 30 giugno 2003 Esercizio -1: essersi iscritti correttamente per svolgere questa prova.

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

Esercizio 1: Passaggio a livello a senso unico alternato

Una linea ferroviaria a due binari incrocia una strada a due corsie. Ovviamente, sia la sede stradale che quella ferroviaria sono a due corsie. Il passaggio livello, però, è molto stretto, quindi il passaggio per le auto è a senso unico alternato. Per passare, i treni chiamano void trenoEntra(int direzione); una volta passati chiamano void trenoEsci(int direzione); le auto

chiamano invece void autoEntra(int direzione) e void autoEsci(int direzione). Scrivere il monitor PassaggioALivello, avendo cura di evitare starvation, deadlock e attese inutili. Spiegare come il vostro codice evita questi problemi.

Esercizio 2: Parrucchiera “disonesta”

Un negozio di parrucchiera è dotato di N sedie per le clienti in attesa, e una sedia per la cliente attualmente servita (una sola

parrucchiera, quindi una sola cliente). Quando una cliente arriva, se la parrucchiera è libera, viene subito servita. Se la parrucchiera è occupata, si mette in attesa su una delle sedie; se non c'e' più posto, se ne va (atterniTurno() ritorna null). La parrucchiera ha alcune clienti “privilegiate”, che quando arrivano passano davanti nella fila (senza far alzare la cliente attualmente servita, però). Le clienti privilegiate sono poche, e quindi aspettano in piedi (impazienti). La vita della parrucchiera e delle clienti normali e privilegiate è la seguente:

parrucchiera:

while (true) {

Cliente c = attendiCliente();

/* taglia i capelli e chiacchera di cose senza senso */

salutaeringrazia(c);

}

cliente: cliente-privilegiata:

Client me = getMyIdentifier(); Client me = < my identifier >

if (attendiTurno(me)) { attendiTurnoPrivilegiato(me)};

/* chiacchera di cose senza senso */ /* chiacchera di cose senza senso */

pagaeringrazia(me) pagaeringrazia(me);

} else

/* Torna un altro giorno */

Scrivere le funzioni descritte qui sopra tramite semafori generali.

Riferimenti

Documenti correlati

Esercizio 3: Scrivere un servizio di message passing asincrono (quello classico che consenta alla arecv di aspettare un messaggio da un utente specifico o da tutti usando '*')

Esercizio 0: Scrivere correttamente nome, cognome, matricola e posizione prima di svolgere ogni altro esercizio.. Esercizio 1: Sia dato un servizio di pronto soccorso con piu' di

Esercizio 1bis: Un sistema operativo gestisce un file system basato su i-nodes mantenendo in memoria principale la tabella degli i-node (precaricata al boot) e la bitmap dei

Esercizio 0: Scrivere correttamente nome, cognome, matricola e posizione prima di svolgere ogni altro esercizio.. Esercizio 1: Il

Esercizio 1: A Vallettopoli esistono i valletti e i dirigenti. I dirigenti sono rigorosamente organizzati per ruolo in maniera gerarchica: 1 direttore generale, 3 direttori di rete,

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