• Non ci sono risultati.

Nome_______________ Cognome ____________________N. di matricola (10 cifre) ______________________ Riga ____ Col ____ UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA PROVA SCRITTA DI SISTEMI OPERATIVI ANNO ACCADEMICO 2012/2013 19 luglio

N/A
N/A
Protected

Academic year: 2021

Condividi "Nome_______________ Cognome ____________________N. di matricola (10 cifre) ______________________ Riga ____ Col ____ UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA PROVA SCRITTA DI SISTEMI OPERATIVI ANNO ACCADEMICO 2012/2013 19 luglio"

Copied!
1
0
0

Testo completo

(1)

Nome_______________ Cognome ____________________N. di matricola (10 cifre) ______________________ Riga ____ Col ____

UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA PROVA SCRITTA DI SISTEMI OPERATIVI

ANNO ACCADEMICO 2012/2013 19 luglio 2013

Esercizio -1: Essere iscritti su AlmaEsami per svolgere questa prova.

Esercizio 0: Scrivere correttamente nome, cognome, matricola e posizione in tutti i fogli prima di svolgere ogni altro esercizio. Scrivere

esclusivamente a penna senza abrasioni. E' vietato l'uso delle penne cancellabili, della matita, dei coprenti bianchi per la correzione (bianchetto) e la scrittura in colore rosso (riservato alla correzione).

Il compito e' formato da tre fogli, sei facciate compresa questa. Le soluzioni che si vogliono sottoporre per la correzione devono essere scritte negli spazi bianchi di questi fogli. Non verranno corretti altri supporti.

E' obbligatorio consegnare il compito, e' possibile chiedere che esso non venga valutato scrivendo “NON VALUTARE”

in modo ben visibile nella prima facciata.

Per svolgere questo compito occorre solo una penna e un documento di identità valido. La consultazione o anche solo la disponibilità di altro materiale comporterà l'annullamento del compito (verra' automaticamente valutato gravemente insufficiente).

Esercizio c.1: scrivere un monitor mvie che gestisca M buffer limitati. Ogni buffer ha l'ampiezza di MELEM elementi. I produttori chiamano la procedure entry:

put(generic *object)

mentre i consumatori chiamano la procedure entry generic *get(int n)

I produttori conferiscono un vettore di M elementi, uno per ogni buffer al buffer.

Per esempio put(v), (dove v e' un vettore di M elementi) inserisce ogni elemento del vettore nel buffer corrispondente. I consumatori ricevono un oggetto dal buffer indicato come parametro oggetti ma attendono sempre che ci sia almeno un elemento in ogni buffer.

Esercizio c.2:

shared val = 0;

shared Semaphore sp = new Semaphore(1);

shared Semaphore sq = new Semaphore(1);

shared Semaphore mutex = new Semaphore(1);

process P { int kp = 3;

while (kp > 0) { sp.P();

mutex.P();

val = val+1;

sq.V();

mutex.V();

kp--;

} }

process Q { int kq = 2;

while (kq > 0) { sq.P();

mutex.P();

val = val*2;

sp.V();

mutex.V();

kq--;

} } a) Al termine di questo programma, quali sono i valori possibili della variabile condivisa val?

b) E' possibile che i processi P o Q restino bloccati indefinitamente?

Esercizio g.1: Siano dati i processi P1, P2 e P3 in ordine descrescente di priorita' (P1 ha massima priorita' e P3 minima).

P1: CPU 2ms, I/O 1ms, CPU 2ms, I/O 2ms, CPU 2ms P2: CPU 3ms, I/O 2ms, CPU 3ms, I/O 2ms, CPU 3ms P3: CPU 1ms, I/O 1ms, CPU 1ms, I/O 1ms, CPU 1ms

I tre processi usano la stessa unita' per l'I/O (le richieste di I/O vengono gestite in ordine FIFO)

Si calcoli il diagramma di Gannt (descrivendo il procedimento) per uno scheduler round robin con time slice 2ms.

Esercizio g.2: Le seguenti affermazioni sono vere o false? (Motivare dettagliatamente le risposte).

a) I processi vengono eseguiti piu' velocemente nei sistemi con memoria virtuale.

b) In un File System di tipo FAT non vi e' limite massimo alla dimensione di un singolo file.

c) In un File System di tipo ext2 non vi e' limite massimo alla dimensione di un singolo file.

d) I file system con allocazione contigua non vengono piu' utilizzati.

e) L'algoritmo di rimpiazzamento LRU non puo' essere utilizzato insieme alla tecnica del Working Set.

Riferimenti

Documenti correlati

In entrambi i casi, la risposta non deve essere limitata al valore numerico, ma deve illustrare il ragionamento. Domanda a) L'insieme A e' vuoto? In caso affermativo spiegare

Esercizio c.1: (a) Scrivere un monitor dualwriter che realizzi un doppio buffer limitato (ogni buffer ha ampiezza BUFSIZE) che consenta a uno scrittore di

Esercizio c.1: (a) Scrivere un monitor nmbb che realizzi un buffer limitato (di ampiezza BUFSIZE) che consenta alle chiamate write (inserimento nel buffer) e read (lettura da

Esercizio c.1: Per lo scopo di questo esercizio si ipotizzi la presenza di infiniti processi che si vogliono sincronizzare a tre a tre sulla base di un contrassegno numerico

Considerando in un sistema di elaborazione dove sono in esecuzione tre istanze del programma P che sono state attivate ai tempi 0,3ms e 7ms e che il sistema usa uno scheduler

La consultazione o anche solo la disponibilità di altro materiale comporterà l'annullamento del compito (verra' automaticamente valutato gravemente insufficiente).. Esercizio c.1:

Un solo processo alla volta deve essere in esecuzione (fra quelli che hanno chiamato init e non ancora fini), yield deve fare avvicendare i processi, deve attivare quello a priorita'

Esercizio 0: Scrivere correttamente nome, cognome, matricola e posizione prima di svolgere ogni altro esercizio. Esercizio 1: Considerare I seguenti processi gestiti mediante