• Non ci sono risultati.

UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA PROVA SCRITTA DI SISTEMI OPERATIVI ANNO ACCADEMICO 2013/2014 03 giugno 2014

N/A
N/A
Protected

Academic year: 2021

Condividi "UNIVERSITA' DEGLI STUDI DI BOLOGNA - CORSO DI LAUREA IN INFORMATICA PROVA SCRITTA DI SISTEMI OPERATIVI ANNO ACCADEMICO 2013/2014 03 giugno 2014"

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 2013/2014 03 giugno 2014

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: Nel giorno di sabato in un albergo ad Haifa funziona un solo ascensore in modo automatico. L'ascensore si ferma a ogni piano a partire dal piano terra all'ultimo piano e poi inverte la marcia fermandosi ancora ad ogni piano e cosi' torna al piano terra. Per tutto il giorno di sabato l'ascensore funziona in questo modo.

Il programma dell'ascensore e' il seguente.

up,down=0,1 process elevator:

while True:

for floor in range(0,N):

...chiude le porte, va al piano floor, apre le porte...

sabelev.atfloor(floor,up) for floor in range(N,0,-1):

...chiude le porte, va al piano floor, apre le porte...

sabelev.atfloor(floor,down)

Gli utenti quindi aspettano l'ascensore, salgono quando arriva l'ascensore che va nella direzione desiderata e scendono al piano dove sono diretti. Per usare l'ascensore da un piano gli utenti richiamano questa funzione:

def changefloor(from, to):

if from != to and 0<=from<N and 0<=to<N:

sabelev.enter(from, to) sabelev.exit(from, to)

dove from e' il piano di partenza e to il piano di arrivo. Quando l'ascensore arriva ad un piano non puo' ripartire se non sono scese tutte le persone che volevano giungere a quel piano. Per semplicita' assumeremo che la capienza della cabina non sia limitata.

Esercizio c.2: Siano dati 4 processi:

prchar=”IATL”

Process i: i=range(4) while True:

sync(i)

print(prchar[i])

Scrivere la funzione sync in modo che in un sistema di processi a memoria privata, usando message passing asincrono, l'unico output possibile sia la stringa di lunghezza infinita: “ITALIAITALIAITALIA....”

Esercizio g.1: Costruire un Grafo di Holt con 6 processi e 6 classi di risorse in modo che valgano contemporaneamente le seguenti proprieta':

– la situazione sia di Deadlock

– non sia sufficente eliminare un processo perche' il Deadlock venga risolto – ogni processo abbia esattamente una richiesta in sospeso

– il grafo sia connesso (ci sono archi fra nodi di partizioni diverse comunque si partizioni l'insieme dei nodi) Esercizio g.2: Rispondere alle seguenti domande:

1.

Quali sono le differenze fra un device driver di una unita' con funzionalita' di DMA e quello di una unita' senza DMA?

2.

L'algoritmo del Banchiere e il grafo di Holt servono entrambi per gestire i Deadlock. Quali sono le differenze, quando e perche' si usa l'uno e quando e perche' l'altro?

3.

Quali problemi risolve la paginazione e quali la segmentazione?

Riferimenti

Documenti correlati

La pagina da liberare e' quella memorizzata nel frame avente come indice il resto della divisione del numero di pagina da inserire e il numero di frame presenti nel sistema3.

Altcolbb deve implementare un buffer limitato con la particolarita' che gli elementi devono essere inseriti nel buffer (fino a un numero massimo MAX) a colori alternati: se

La funzione dualshift puo' essere usata al posto della test&amp;set per la sincronizzazione fra processi? Dimostrare la risposta.. b) Si consideri ora la funzione andor(a,b) che

Se la dimensione viene incrementata I processi eventualmente in attesa di scrivere devono poter inserire I loro elementi nel buffer fino a che e' consentito della

b- Usando l'algoritmo di rimpiazzamento FIFO si costruisca la più corta stringa di riferimenti che inizi con 2,3,4,0 e che al termine abbia la pagina 0 nel frame 0, la pagina 1

Ogni processo chiama la procedure entry rendezvous.sync specificando due parametri: il numero dei processi con i quali il processo corrente vuole sincronizzarsi e un vettore di

I pacchetti devono essere sempre tracciati (forniti a un logger) prima di poter essere ricevuti da un consumatore e i pacchetti devono essere forniti ai processi logger e ai

*Esame opzionale particolarmente consigliato dal corso di studio: “Scienze per la società e il territorio” (Modulo I - Comunicazione interculturale in epoca web 2.0, I semestre 4