You are on page 1of 4

SISTEMI OPERATIVI STISI Soluzioni del III appello 2012

Cognome: Matricola: Nome:

1. Ricordate che non potete usare calcolatrici o materiale didattico. 2. Ricordate che potete consegnare al massimo tre prove scritte per anno accademico.

ESERCIZI RELATIVI ALLA PARTE DI TEORIA DEL CORSO (18 punti)


ESERCIZIO 1 (5 punti) Processi (1.1) Completare lo schema di soluzione al problema classico di sincronizzazione dei lettori-scrittori: semafori, variabili significative e loro inizializzazione: sem mutex = 1 sem scrittura = 1 int num_lettori = 0 Processo Scrittore: forever { P(scrittura); <scrive> V(scrittura); } Processo Lettore: forever { P(mutex); numlettori++; if (numlettori == 1) P(scrittura); V(mutex); <legge> P(mutex); numlettori--; if (numlettori == 0) V(scrittura); V(mutex); } (1.2) Indicare se le seguenti definizioni sono corrette o sbagliate motivando le risposte: per le risposte ritenute corrette aggiungere qualche dettaglio a supporto, per quelle ritenute errate spiegare il motivo dell'errore. NB: nel caso non venga fornita alcuna motivazione ad una risposta, la risposta verr considerata sbagliata. 1

(a) Modalit kernel : un possibile stato dei thread. falso [X ] Spiegazione/Motivazione: una delle due modalit di esecuzione previste dal dual mode. Un processo passa in modalit kernel durante l'esecuzione di una system call. (b) Vettore delle interruzioni : una pila contenente gli interrupt ancora da gestire (normalmente contenuta in memoria bassa). falso [X ] Spiegazione/Motivazione: l'array dei riferimenti agli interrupt handler (gestori delle interruzioni). (c) Scheduling a lungo termine : un meccanismo che si attiva al termine dell'esecuzione di un processo. Sceglie uno dei processi in memoria secondaria e lo carica in RAM per consentirne l'esecuzione. vero [X] Spiegazione/Motivazione: viene utilizzato quando il numero e la dimensione dei processi tale da non riuscire a mantenerli tutti in RAM. (d) TLB : un insieme di registri di CPU che contiene una porzione di tabella delle pagine. falso [X] Spiegazione/Motivazione: quella tramite registri solo una delle possibili implementazioni del TLB, utilizzabile quando questo ha piccole dimensioni. ESERCIZIO 2 (3 punti) Memoria Secondaria Illustrare (tramite un disegno corredato di opportune spiegazioni) il meccanismo di traduzione di indirizzi logici in indirizzi fisici nel caso in cui la RAM sia gestita tramite paginazione multilivello e la tabella delle pagine sia a due livelli: si veda lo schema della lezione del 3/11/11 ESERCIZIO 3 (4 punti) RAM e Memoria Virtuale (3.1) Fare un esempio che illustri il meccanismo noto come copiatura su scrittura: Si considerino un processo padre e uno dei suoi figli. Per default essi condividono le pagine in RAM. Se per il processo padre esegue un assegnamento su di una variabile globale X, la pagina di RAM contenente tale variabile non potr pi essere condivisa dai due processi. Ne verr quindi fatta una copia e mentre il processo figlio continuer ad utilizzare la pagina precedente, quello padre utilizzer la nuova pagina. (3.2) Supponiamo che il processo P abbia a disposizione 3 frame di RAM e che esegua la seguente sequenza di richieste di accesso a proprie pagine. Supponiamo inoltre che l'algoritmo di sostituzione sia LRU. Simulare l'esecuzione degli accessi richiesti, mostrando come varia il contenuto dei tre frame e calcolando il numero di page fault che si generano: sequenza accessi richiesti: 1 1 1 2 3 2 1 1 2 4 4 5 5 2 Inizio a contare il tempo da T1 2

11123211244552 1 2 3
T3 T4 T5

1 2 3

T8 T9 T5

1 2 4

T8 T9 T11

5 2 4

T12 T9 T11

2 5 4

T14 T13 T11

numero dei page fault: 5 (i primi cinque sottolineati nella sequenza) ESERCIZIO 4 (6 punti) File system, Memoria secondaria e Device (4.1) Spiegare la differenza fra device driver e device controller: Device driver e device controller sono rispettivamente le interfacce software e hardware di un device. Permettono al SO di interagire con il device stesso. (4.2) Spiegare la differenza fra inode e in-core inode: Un inode il descrittore di un file in memoria secondaria (o terziaria). Quando il file in uso da parte di qualche processo le informazioni che lo riguardano sono caricate in RAM. L'in-core inode il descrittore in RAM del file. Contiene informazioni extra oltre a quelle contenute nell'inode (es. se lockato). (4.3) Cos' e a che cosa serve l'algoritmo namei ? Namei un algoritmo che permette di tradurre un path in un inode. (4.4) Spiegare la politica di scheduling del disco nota come Shortest Seek Time First: SSTF ordina le richieste di accesso ai blocchi in modo tale da minimizzare il tempo di seek, quindi dando priorit a quella che riguarda la traccia pi vicina all'attuale posizione della testina. (4.5) Qual la funzione del file system virtuale? Il VFS fornisce agli utenti e ai processi un meccanismo di accesso uniforme a file e directory, i quali potrebbero appartenere a file system fisici di tipo differente. Per essere integrato nel VFS un file system fisico deve implementare le system call previste da questo a livello di interfaccia. ESERCIZI RELATIVI ALLA PARTE DI UNIX (9 punti) ESERCIZIO 1 (3 punti) (1.1) Qual l'effetto di una semop se applicata a un semaforo che non stato allocato? Restituisce -1 (1.2) In quali circostanze la terminazione di un processo produce uno zombie? Quando il processo che ha termine ha un padre che sta eseguendo del codice diverso da una wait (o waitpid). (1.3) Qual l'effetto di: msgget(QID, 0) ? restituisce l'identificatore della coda di messaggi avente chiave pari a QID se stata allocata in precedenza (e se i suoi diritti di accesso consentono al processo l'accesso), -1 in caso contrario. 3

ESERCIZIO 2 (4 punti) Spiegare dettagliatamente cosa fanno e quale sar l'effetto dei seguenti comandi: (2.1) make prog1 prog2 -f mak1 make cercher le regole relative ai target prog1 e prog2 nel makefile avente nome mak1 e, se qualche dipendenza risulta essere stata aggiornata, (ri)gener prog1 e prog2. (2.2) ipcs > status riversa l'output del comando ipcs nel file status, che se non esiste viene creato e se esiste viene sovrascritto. Ipcs restituisce informazioni sulle strutture di IPC attualmente allocate. (2.3) ps >> proc & esegue in background il comando ps (lista dei processi) riversandone l'output nel file proc. Se tale file non esiste viene creato, se esiste l'output di ps viene appeso in fondo al file. (2.4) chmod 744 file.sh setta i diritti di accesso al file file.sh nel seguente modo: il proprietario potr leggere, modificare, eseguire il file, gli utenti del suo gruppo e tutti gli altri utenti potranno solo leggerne il contenuto. ESERCIZIO 3 (2 punti) (3.1) Utilizzando le system call di IPC studiate nel modulo di laboratorio, implementare la funzione int zero(int s, int num) che realizza l'attesa dello zero sul semaforo specificato dai parametri della funzione medesima. La funzione restituisce all'ambiente chiamante -1 in caso di errore, 0 in caso di successo: #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> int zero (int s, int num) { struct sembuf cmd; cmd.sem_num = num; cmd.sem_op = 0; return semop(s, &cmd, 1); }

You might also like