Author: Valued Acer Customer

Compito di Sistemi Operativi
13 Settembre 2010

Esercizio 1 (4 punti)
Quattro processi, P_1, P_2, P_3, P_4, vengono eseguiti contemporaneamente. Si supponga che i processi siano cpu-bound, e che il loro tempo stimato di esecuzione sia di 800, 400, 700 e 500 ms, rispettivamente. I processi hanno la stessa priorità. Calcolare il tempo medio di completamento e stabilire quale fra le politiche FCFS, SJF, RR con q=300ms produce le migliori prestazioni.

Esercizio 2 (6 punti)
Sia dato il sistema descritto da P insieme dei processi, R insieme delle risorse R_ij di indice i e molteplicità j, E(P) insieme delle richieste di accesso a risorse in R emesse da processi in P e attualmente pendenti, e E(R) insieme degli accessi attualmente soddisfatti di processi in P a risorse in R:
P={P_1, P_2, P_3, P_4, P_5, P_6}
R={R_12, R_21, R_32, R_41}
E(P)={P_2→R_2, P_3→R_4, P_4→R_1, P_5→R_4, P_6→R_3}
E(R)={R_1→(P_1,P_2), R_2→P_3, R_3→(P_4,P_5), R_4→P_6}
1)	Si analizzi il grafo di allocazione delle risorse, determinando se il sistema si trovi attualmente in situazione di stallo o meno.
2)	Si studi l’evoluzione successiva dello stato del sistema se il processo P_1 richiedesse la risorsa R_2.

Esercizio 3 (10 punti)
1)	[4 punti] Un programma concorrente effettua alcuni aggiornamenti di una variabile x all’interno di una sezione critica. La stessa variabile x viene anche usata nella seguente parte di codice che non è inserita all’interno di una sezione critica:
		if  x<c
		    then y=x;
		else  
		    y=x+10;
		print x, y;

Può verificarsi una race condition?

2)	[6 punti] Due processi concorrenti condividono il dato somma, inizializzato a 0, ma non utilizzano la mutua esclusione per accedere al suo valore. Ogni processo contiene un ciclo che viene eseguito 50 volte e contiene la singola istruzione somma=somma+1. Se non vengono effettuate altre operazioni su somma, indicare il limite inferiore e superiore del suo valore quando terminano entrambi i processi.

Motivare le risposte fornite.

Esercizio 4 (6 punti)
Si consideri un sistema a memoria virtuale con indirizzi a 32 bit, indirizzi fisici a 20 bit e pagine da 512 byte, calcolare:
a)	la struttura dell’indirizzo virtuale e dell’indirizzo fisico;
b)	il numero delle pagine negli spazi di indirizzi virtuale e fisico; 
c)	quante pagine occupa un programma di 2100 byte?

Esercizio 5 (10 punti)
Scrivere le seguenti istruzioni bash:
1)	crea due named pipe di nome mynp1 e mynp2;
2)	inserisci in mynp1 la lista dei primi tre file in ordine alfabetico della directory /tmp;
3)	sposta il contenuto di  mynp1 in mynp2;
4)	cancella i file il cui nome è contenuto in  mynp2;
5)	lista i file in /tmp se l’owner è mario oppure se il nome-file contiene la stringa “mario”.