• 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 30 maggio

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 30 maggio"

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 30 maggio 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 eventp che realizzi un servizio di sincronizzazione cosi' definito:

procedure entry EP *create(unsigned value): crea un nuovo descrittore. Ogni descrittore ha un contatore associato.

Value e' il valore iniziale del contatore.

procedure entry void write(EP *d, unsigned value): se il contatore ha un valore tale che se si sommasse value causerebbe overflow, sospende il processo chiamante. In ogni caso (se la somma e' possibile senza overflow o quando la somma e' possibile senza overflow) somma value al valore del contatore.

procedure entry unsigned read(EP *d): se il contatore ha valore nullo sospende il processo chiamante fino a che il contatore diventi non nullo. In ogni caso restituisce il valore del contatore e riporta il contatore al valore zero.

procedure entry void close(EP *d): termina le operazioni del descrittore d e cancella il descrittore.

Esercizio c.2: I semafori v2p hanno come invariante 2*np <= nv + Init, dove np e' il numero di operazioni P

completate, nv e' il numero delle operazioni V completate e Init e' il valore iniziale (cioe' occorrono 2 operazioni V per sbloccare un processo che ha fatto P).

I semafori v2p hanno lo stesso potere espressivo dei semafori generali o no?

Produrre una dimostrazione della tesi sostenuta.

Esercizio g.1: Si consideri un i-node che contenga 7 indici diretti, 1 indice indiretto, uno a indirezione doppia e uno a indirezione tripla.

Se la dimensione dei blocchi è 1KB e gli indirizzi di blocco sono a 32 bit, a) qual è la dimensione massima di un file?

b) Oltre all'inode, quanti blocchi devono essere acceduti per leggere un byte nel blocco 100000?

In entrambi i casi, la risposta non deve essere limitata al valore numerico, ma deve illustrare il ragionamento.

Esercizio g.2: Si considere gli insiemi di grafi di Holt A e B con le seguenti caratteristiche:

A={G, G e' un grafo di Holt tale che: G rappresenta uno stato di deadlock && G contiene 5 processi && G contiene 5 classi di risorse && in G è possibile effettuare 3 passi di riduzione }.

B={G, G e' un grafo di Holt tale che: G rappresenta uno stato di deadlock && G contiene 4 processi && G contiene 4 classi di risorse && in G è possibile effettuare 3 passi di riduzione }.

Domanda a) L'insieme A e' vuoto? In caso affermativo spiegare perchè altrimenti mostrare un grafo appartenente all'insieme.

Domanda b) L'insieme B e' vuoto? In caso affermativo spiegare perchè altrimenti mostrare un grafo appartenente all'insieme.

Riferimenti

Documenti correlati

Devono essere presenti elementi da leggere in almeno N/2 buffer perche' la chiamata abbia successo (negli elementi relativi a buffer vuoti la chiamata restituisce il valore

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