Corso di Laurea in Informatica Applicata – La Spezia

7 Luglio 2003

Sistemi Operativi

Prova Scritta




PRIMA PARTE

1. Descrivere in C o pseudo-codice l’algoritmo di Peterson per la mutua esclusione.


2. Chiamate di sistema per la gestione dei threads in Linux

3. Differenza tra job, processi, threads e fibre in Windows 2000. Quali di essi vengono schedulati in Windows 2000?

4. Si supponga che tre clienti arrivino ad una stazione di servizio per chiedere un servizio, il cui tempo (espresso in mimuti primi) e’ noto a priori


Cliente

Ora di arrivo

Tempo di servizio (minuti)

P

10.00

8’

Q

10.05

4’

R

10.07

1’


Tenendo presente i dati sopra riportati, nell’ipotesi che la stazione di servizio alle ore 10.00 sia libera, rispondere alle seguenti domande:

  1. Qual e’ il tempo medio di risposta (tempo medio trascorso dal cliente nel sistema, comprensivo del tempo trascorso in coda e del tempo di servizio) se adottiamo una politica di schedulazione FCFS?

  2. Qual e’ il tempo medio di risposta se adottiamo una politica di schedulazione SJF non preemptive?

  3. (OPZIONALE) Qual e’ il tempo medio di risposta se adottiamo una politica di schedulazione SJF preemptive?

5. Si supponga di avere un sistema con 4 processi e 3 tipi di risorse disponibili. La matrice delle richieste da parte dei processi ha la struttura:

dove con Max(i,j) si indica il numero massimo di istanze della risorsa j richieste dal processo i. Il numero totale di risorse e’ espresso dal vettore:

mentre la matrice di allocazione e’

Allocation(i,j) rappresenta il numero di istanze della risorsa j che sono attualmente allocate al processo i. Si determini:

  1. se il sistema e’ in uno stato sicuro;

  2. se con l’assegnazione di un’instanza della risorsa 1 al processo P1, il sistema e’ in uno stato sicuro.

SECONDA PARTE

6. Si consideri un sistema a memoria virtuale con indirizzi virtuali a 32 bit, indirizzi fisici a 24 bit e pagine di 4K byte, e descrittori di pagina di 8 byte:

  1. di quante pagine sono costituiti rispettivamente lo spazio di indirizzamento virtuale e quello fisico?

  2. di quanti bit è costituito l'offset?

  3. di quante righe è costituita e quanti byte occupa la tavola delle pagine?

  4. quante pagine occupa una procedura il cui codice occupa 9734 byte.


7. Descrivere la struttura generale di un device driver.


8. Descrivere l’implementazione dei files utilizzante liste linkate di blocchi disco con tabella in memoria.


9. Motivazioni e funzionamento del file locking in Unix.


10. In cosa consiste il problema di instruction backup in relazione a un page fault e come viene risolto nelle CPU moderne ?