• Non ci sono risultati.

nome e cognome ___________________________ numero di matricola _____________________ (numero di matricola completo: 10 cifre numeriche)

N/A
N/A
Protected

Academic year: 2021

Condividi "nome e cognome ___________________________ numero di matricola _____________________ (numero di matricola completo: 10 cifre numeriche)"

Copied!
4
0
0

Testo completo

(1)

nome e cognome ___________________________ numero di matricola _____________________

(numero di matricola completo: 10 cifre numeriche)

CORSO DI SISTEMI OPERATIVI

CORSO DI LAUREA IN INFORMATICA - UNIVERSITA’ DI BOLOGNA SECONDO APPELLO DELLA SESSIONE ESTIVA AA 2000/2001

10 luglio 2001

Esercizio -1. Essersi iscritti per sostenere questa prova.

Esercizio 0. Scrivere correttamente il proprio nome e cognome e numero di matricola in tutti i fogli.

Come si vede dalla cartina qui di lato Gibilterra ha una particolarità. Esiste una sola strada di accesso alla penisola e questa strada attraversa la pista dell'aeroporto internazionale (con un passaggio a livello simile a quelli ferroviari).

Quando un aereo deve decollare o atterrare viene vietato il transito alle automobili e ai pedoni.

L'aeroporto è anche militare, data l'importanza strategica del controllo del passaggio dall'oceano al mar mediterraneo.

La procedura di decollo degli aerei è la seguente:

gib.begintakeoff(flight, type) /* takeoff */

gib.endtakeoff(flight, type) La procedura di atterraggio è:

gib.beginlanding(flight, type) /* landing */

gib.endlanding(flight, type)

dove flight rappresenta l'identificativo del volo e type è 0 (volo civile) o 1 (volo militare) Le auto che intendono entrare o uscire dalla penisola compiono i seguenti passi:

gib.begincrossing(flight, type) /* cross the runway */

gib.endcrossing(flight, type)

Le regole di sincronizzazione sono le seguenti:

- nessun attività sulla pista deve aver luogo se ci sono autoveicoli in transito

- nessuna autovettura deve essere sulla pista durante le operazioni di atterraggio/decollo - hanno la priorità le attività militari su quelle civili

- confrontando fra loro o voli civili o voli militari hanno maggiore priorità gli atterraggi rispetto ai decolli.

Esercizio 1.

Se venisse posto che:

- dopo 10 atterraggi consecutivi viene effettuato un decollo

- dopo 20 operazioni di voli militari viene effettuata una operazione su voli civili - dopo 30 operazioni aeree viene fatta passare 1 autovettura

il sistema può generare starvation?

(2)

Esercizio 2.

Scrivere il monitor gib

(3)

nome e cognome ___________________________ numero di matricola _____________________

(numero di matricola completo: 10 cifre numeriche)

Esercizio 3.

La tecnica di token passing è un metodo per realizzare la mutua esclusione.

Ogni processo risulta composto da due thread: uno provvede a eseguire il codice dell'applicazione, l'altro provvede a fare gestire il gettone.

I processi nono numerati da 0 a N-1. Se nessun thread esecutivo richiede la mutua esclusione il thread di gestione del gettone quando riceve il gettone lo passa al thread-gettone del processo successivo (i+1)%N. Il gettone continua così a circolare.

Quando un processo ha necessità di operare in mutua esclusione spedisce il gettone al proprio thread di gestione del gettone, questo non appena riceve il gettone lo mantiene (non lo ritrasmette al processo successivo) fino a quando il processo (il thread esecutivo del processo) non comunica la terminazione della mutua esclusione.

Process P[i,i:0..N-1]: process Thread ExT: thread

...

asend(P[i].TokT, mutexin);

arecv(P[i].TokT, ACK) .../* sezione critica */

asend(P[i].TokT,mutexout);

Thread TokT: thread (to be completed) Scrivere il Thread TokT.

(4)

Esercizio 4a: Un programma concorrente può essere soggetto sia a casi di deadlock sia a casi di starvation?

Esercizio 4b: Un processo concorrente può essere soggetto nello stesso istante sia a deadlock sia a starvation?

Riferimenti

Documenti correlati

Sotto il profilo oggettivo la richiesta è egualmente ammissibile in quanto riconducibile alla materia della contabilità pubblica (disposizioni che regolano il sistema del bilancio ed

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

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

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 `

request è utile per riattivare un processo in attesa; xmf può valere m (sblocca un processo in attesa maschile) f (riattiva un processo in attesa femminile) a (any, sblocca

Dato un supporto di semafori Fair caratterizzato dalle chiamate P e V implementare un supporto per semafori unfair, che quindi rispettino gli invarianti del semafori ma che

Esercizio 5: Indicare le modifiche da apportare al codice dell'esercizio 1 per gestire classi di messaggi con diversa priorità, ipotizzare che la funzione class(f) restituisca

Tutte le comunicazioni sono asincrone, i ritardi sono impredicibili ma in genere inferiori a t millisecondi, ad eccezione della comunicazione fra il clock e l'handler che ha