Sei sulla pagina 1di 25

ESAMI di SISTEMI OPERATIVI

Dal 2001 al 2004 Professor. Graziano Pravadelli

Che questo lavoro possa servire da monito ed esser da esempio affinch gli studenti si agevolino la vita gli uni con gli altri

Materiale messo a disposizione da Ambra Fausti Scansioni e creazione pdf a cura di Brew Justice Isaac Ederle Margherita
Verona il 14-11-2011

Corso di Laurea in Intormatica

Seconda prova parziale di Sistemi Operativi

20 Giugno 2001

lstruzioni
Scrivere Cognome, Nome, e Numero di Matricola sulla prima pagina di ogni foglio Scrivere le risposte alle domande relative al torso di Laboratorio di Sistemi Operativi su un foglio separato Tempo a disposizione: 2 ore

Sistemi Operativi

1.

consideri un disco rigido con blocchi di 4KB. Quanti blocchi occupa un file di 61K? Quanti i-node sono necessari per la memorizzazione del file di 61K? Giustificare le risposte.
Si

2. Si

consideri un disco rigido con 3200 cilindri e la seguente sequenza di richieste di accesso ai cilindri: 12, 3000, 1274, 1366, 3101, 7, 1400. Si supponga the la testina si trovi sul cilindro 1401. Dopo aver descritto brevemente gli algoritmi FCFS, SCAN, CSCAN si calcoli ii numero di cilindri attraversati dalla testina per evadere le richieste di cui sopra secondo ognuno degli algoritmi citati.
Si
,

3.

consideri una macchina con due schede di rete S 1 S2. La scheda Si ha indirizzo 80.81.82.83 e maschera 255.255.0.0, mentre la scheda 82 ha indirizzo 81.80.82.83 e maschera 255.255.0.0. Sia 80.81.100.100 l'indirizzo a cui spedire un pacchetto nel caso in cui nessuna scheda sia in grado di gestire l'indirizzo richiesto. Stabilire su quale scheda vengono instradati i pacchetti destinati ai seguenti indirizzi: (a) (b) (c) (d) 80.80.82.83 80.81.80.81 81.80.80.81 81.81.82.83

Giustificare le risposte. 4. Si dia una breve descrizione del meccanismo di chiamata di procedura remota.

1. Si descriva la struttura dati usata da Linux per allocare e liberare pagine di memoria fisica. Si descriva inoltre come si svolge la allocazione di nn blotto di 2i pagine. 2. Si scriva una classe Java the realizza le primitive di sincronizzazione per lettori e scrittori (con priorita ai lettori). 3. Si descrivano e si confrontino le tecniche di comunicazione tra processi basate su shared memory e su memory mapping.

Corso di Laurea in intormatica Esame di Sistemi Operativi 6 Luglio 2001

Istruzioni Scrivere Cognome, Nome, e Numero di Matricola sulla prima pagina di ogni foglio Scrivere le risposte die domande relative al torso di Laboratorio di Sistemi Operativi su un foglio separate Tempo a disposizione: 3 ore

Sistemi Operativi 1. Si mostri come implementare un semaforo binario con le regioni critiche. 2. In un sistema i processi possono accedere ad una risorsa condivisa in 3 modality che chiamiamo A, B, e C. Per accedere alla risorsa in modality X un processo invoca una funzione ACCESSOJ(. Al termine dell'accesso alla risorsa in modalith, X un processo invoca una funzione TERMINAJ(. Le regale di accesso sono le seguenti: nel moment() in cui un ottiene it permesso di accedere alla risorsa in modality A ii numero di processi che stanno utilizzando la risorsa in modality non deve eccedere la meta dei processi che stanno utilizzando la risorsa in modality B o C. Si utilizzino le regioni critiche per descrivere la politica di accesso alla risorsa condivisa. 3. Come si fa a stabilire se in un sistema con risorse ad istanze multiple ci troviamo in uno stato di deadlock? E se le risorse sono ad istanza singola? 4. Si fornisca un esempio di situazione in cui gli algoritmi SCAN e C-SCAN evadono una sequenza di richieste di accesso al disco rigido facendo attraversare alla testina lo stesso numero di cilindri.

Laboratorio di Sistemi Operativi 1. Cosa sono i pipe di tipo half-duplex (o unnamed) di UNIX e in cosa di -fferiscono dai pipe FIFO (o named). Come funziona it collegarnento tramite pipe di un comando che strive su stdout con un comando che legge da stdin? 2. Qua sono i passi da seguire per la compilazione ed esecuzione di programmi Java che realizzino una comunicazione client-server basata su RMI? 3. Il problema dei 5 filosofi non ammette una soluzione semplice e robusta con i semafori ordinari. Viceversa, i semafori UNIX consentono una soluzione elegante. Si spieghi perche e si abbozzi la soluzione. 4. Dato it raetodo Java public synchronized void Loop() { P10 ; try { wait(100); catch(Exception e){} P2();
}

lo si converta in uno equivalente che usi sleep() al posto di waitO. Spiegare perche questa seconda realizzazione a Nulnerabile (nel senso delle race condition).

Corso di Laurea in Intormatica

Prova scritta di Sistemi Operativi


24 Settembre 2001

lstruzioni Scrivere Cognome, Nome, e Numero di Matricola sulla prima pagina di ogni foglio Scrivere le risposte alle domande relative al torso di Laboratorio di Sistemi Operativi su un foglio separato Tempo a disposizione: 3 ore

Sistemi Operativi
1. Si consideri un sistema con memoria virtuale in cui i frame hanno dimensione 2k. Si supponga che servano 32 bit per descrivere l'indirizzo di un frame. Quanti KB di memoria virtuale possono essere indirizzati se it sistema di paginazione ha 2 livelli? Si giustifichi la risposta. 2. Si descriva un monitor con le seguenti procedure: una procedura PRODUCLA che produce una risorsa di tipo A, una procedura PRODUCI_B che produce una risorsa di tipo B, una procedura PRODUCI_C che produce una risorsa di tipo C, e una procedura CONSUMA che dati in input tre parametri N_A, N_B, N_C consuma N_A risorse di tipo A, N_B risorse di tipo B e N_C risorse di tipo C. La procedura CONSUMA pone it processo invocante in attesa nel caso non vi siano abbastanza risorse a disposizione. 3. Si descrivano le differenze tra una directory e un file dati in un file system unix. 4. Si descriva it meccanismo di controllo degli accessi ai file in un file system unix.

1. Si descrivano i passi necessari per attivare la comunicazione tra due processi mediante memoria condivisa in UNIX. Come avviene la rimozione dell'area di memoria condivisa? Si puo6 controllare da shell l'allocazione dell'area di memoria condivisa? 2. Si commenti dettagliatamente la seguente realizzazione del metodo swait 0 di un semaforo:
public synchronized void swait() { count -= 1; if (count < 0) while (true) { try { wait(); break; } catch (InterruptedException e) { System.err.println("Semaphore.swait() Interrupted, swait again"); if (count >= 0) break; else continue; }
)}

3. Come funziona la gestione delle pagine libere in Linux? Come 6 fatta la struttura free_area? 4. Descrivere le due modalita di creazione e attivazione di un thread in Java.

University degli studi di Verona


Corso di Laurea in Informatica/Tecnologie dell'informazione Sistemi Operativi
17 Dicembre 2002

Esercizi 1. Scrivere lo pseudocodice di una soluzione basata su semafori che coordini la seguente situazione: Un buffer di dimensione N elementi a condiviso tra tre processi P, CI e C2. Il primo rappresenta it produttore e strive nel buffer, mentre gli altri due rappresentano due consumatori che possono prelevare dati dal buffer. Il buffer 6 una risorsa ad accesso mutuamente esclusivo, ed un solo processo alla volta pub accedervi. In fase di lettura tut tavia, C1 ha sempre la precedenza su C2, per cui in caso di richiesta simultanea, C2 deve lasciare via libera a C1 . Si supponga che C1, C2 e P operino secondo it classico schema dell'elaborazione "infinita" (cioe while (1)
{ ).

SUGGERIMENTO: partire dalla soluzione classics con un produttore ed un consumatore. [7 punti] 2. Si consideri ii seguente insieme di processi:
Process Burst Tempo di Arrivo

1 2 3 4

1 4 2.5 1

0 0.5 1 1.5

Si mostri l'esecuzione dei processi usando gli algoritmi di scheduling FCFS, SJF non preemptive, HRRN, e Round-Robin (quanto=0.5). Si calcoli it tempo di turnaround per ogni processo, e i rispettivi tempi medi (su tutti i processi). [4 punti] 3. Si descriva la struttura e it principio di funzionamento della tabella delle pagine invertita (inverted pagetable), indicando quando it suo use si rende necessario. [4 punti] 4. Derivare una stringa di riferimenti in memoria per la quale si verifichi l'anomalia di BeIady, indicando possibilmente una caratteristica di validith, generale di questa stringa stringa. [6 punti] 5. Descrivere la tecnica del buddy system per Pallocazione di memoria ai processi. [4 punti] 6. Descrivere la funzione della Region Table nel kernel di UNIX, dove viene utilizzata e con qua strutture dati essa si interfaccia. [6 punti]

Corso di Laurea in intormatica Prova scritta di Sistemi Operativi


20 Marzo 2002

Istruzioni Scrivere Cognome, Nome, e Numero di Matricola sulla prima pagina di ogni foglio Scrivere le risposte alle domande relative al torso di Laboratorio di Sistemi Operativi su un foglio separato Tempo a disposizione: 3 ore

Sistemi Operativi
1. Si consideri un disco rigido con blocchi di 8KB. Quanti blocchi occupa un file di 210K? Assumendo un'implementazione del file system tipo UNIX, quanti i-node S011.0 necessari per la memorizzazione del file di 210K? Giustificare le risposte. 2. Si mostri come implementare un semaforo binario usando i monitor. 3. Si descriva in dettaglio it meccanismo di chiamata a procedura remota (RPC). 4. Costruire una stringa di riferimento (accessi a memoria) per la quale it corrispondente numero di page fault ottenuto usando un'algoritmo di rimpiazzamento delle pagine FIFO (FCFS) sia uguale a quello dell' algoritmo ideale. Si assuma the vengano associati 4 frame al processo in questione. Giustificare la scelta.

1. Come viene realizzato it meccanismo di comunicazione tra due processi tramite pipe UNIX, in termini di system call? Si indichi uno pseudocodice che descriva it caso di un processo padre che apre una pipe con un processo figlio. 2. Si descrivano brevemente le system call per la comunicazione tra processi utilizzando la memoria condivisa. E' possibile controllare da shell la memoria condivisa allocata? 3. Si scriva una classe Java the realizzi le primitive di di lettura e scrittura su un buffer produttoreconsumatore. Si assuma che it buffer abbia dimensione massima pari a N, e le due primitive siano Preleva e Deposita. 4. Descrivere le due modalita di creazione e attivazione di un thread in Java.

L.orso ai Laurea in nuormaucai iecnologie Lien Informant:me Prova di accertamento di Sistemi Operativi 8 Maggio 2002

Esercizi 1. Scrivere lo pseudocodice di una soluzione basata su semafori che coordini la seguente situazione: Un processo server S detiene due istanze di una risorsa W the a necessaria a due processi client C1 e C2 per effettuare la loro elaborazione. In particoiare, C1 necessita di entrambe le istanze di W, mentre C2 necessita di una sola istanza. Le istanze di W sono condivise, e dopo essere state usate una volta (da C1 o C2) devono essere rimesse a disposizione del server, che deve avere it controllo dell'assegnazione della risorsa. Si supponga the C1, C2 e S operino secondo it classico schema dell'elaborazione "infinita" (cioe while (1) { } ).
[6 punti]

2. Si consideri il,seguente insieme di processi:

Process
1 2 3 4

Burst
3 5 1.5 2

Tempo di Arrive
0 0.5 1 1.5

Si mostri l'esecuzione dei processi usando gli algoritmi di scheduling FCFS, SJF, HRRN, Round-Robin (quanto=1). Si calcoli it tempo di risposta e di turnaround per ogni processo, e i rispettivi tempi medi (su tutti i processi).
[4 punti]

3. Si descriva la struttura e it principio di funzionamento della tabella delle pagine invertita (inverted page-table), indicando quando it sue use si rende necessario. [4 punti] 4. Si fornisca un esempio di situazione (sequenza di accessi a disco) in cui gli algoritmi SCAN e C-SCAN fanno attraversare alla testina lo stesso numero di cilindri. [5 punti] 5. Date 5 partizioni di memoria di dimensioni 100K, 500K, 200K, 300K, and 600K (nell'ordine), come vengono allocati processi di dimensioni 212K, 417K, 112K e 426K (nell'ordine) applicando gli algoritmi First-fit, Best-fit e Worst-fit? Quale algoritmo fa un use piu efficiente della memoria? [5 punti] 6. Si consideri it seguente programma C:
#def ins N 300 int main() {

int i;
for (i = 0; i < N/2 ; i++) scambia (A [i] , A [N-i-1] ) ;
}

Il programma e interamente memorizzato negli indirizzi 0-99 di una memoria con 32 bit per parola. II vettore int A [N] ; e memorizzato a partire dalla locazione 100. Si assuma the it tipo int occupi una parola di memoria. Tale programma viene eseguito in un sistema con gestione della memoria con paginazione pura, avente dimensione di pagina pari a 400 byte (100 parole di memoria). Sapendo che al processo siano allocati 2 frame, e che it primo frame contiene inizialmente it programma (e l'altro 6 vuoto), determinare: . La reference string corrispondente all'esecuzione del programma; Il numero di page fault the si verificano durante l'esecuzione del programma usando l'algoritmo FIFO, LRU e quello ideate.
NOTA: l'operazione scambia (A [l] A [i-1]) viene realizzata come:

(i) A [N-i-1] 4 registrol;


-

(i) A[i] registro2; registrol A [N-i-1] (iv) registro2 A [i]

[7 punti]

k.arso al Laurea in truormatica/ lecnorogie Elea imormazione

Sisterni Operativi
19 Giugno 2002

Esercizi 1. Si mostri come implementare un semaforo binario tramite monitor. [5 punti]

2. Si consideri la seguente "fotografia" di un sistema che possiede 4 tipi di risorsa e 5 processi in competizione per queste risorse. La situazione dei tre processi e rappresentata dalle seguenti matrici: Available Max 0 0 1 2 1 5 2 0 Po P1 1 6 5 0 P2 2 3 5 6 P3 0 6 4 2 P4 0 6 5 6 Successivamente, si supponga che adesso i1 processo P1 effettui una richiesta Req = (0,4,2,0). Usando l'algoritmo del banchiere, indicare se questa richiesta porti in uno stato safe, e in caso affermativo, indicare una sequenza safe. [6 punti] 0 1 1 0 0 3. Si fornisca un esempio di situazione (sequenza di riferimenti a pagine di memoria) in cui gli algoritmi FIFO e quello ideate producono lo stesso numero di page fault. Si assuma che vengano associati 4 frame al processo in questione. Giustificare in scelta [5 punti] 4. Descrivere le strutture dati utilizzate da UNIX per in gestione dei processi, e mostrare come queste vengono modificate ed interagiscono quando viene invocata una fork O . [5 punti] 5. Si consideri in seguente sequenza di richieste di allocazione/rilascio di blocchi memoria (in byte): 128K (A), 32K (A), 512K (A), 300K (A), 32K (R), 128K (R), 256K (A), 512K (It). Dove (A) rappresenta una richiesta di allocazione, ed (R) it corrispondente rilascio. Assumendo di avere una memoria di dimensione 4MB, mostrarne l'evoluzione in corrispondenza delle vane richieste, nel caso venga usato it meccanismo del buddy system per la gestione della memoria. [5 punti] 6. Per quale motivo none possibile ridurre oltre un certo limite it numero di frame assegnato ad un processo aratto della sua esecuzione? Da che cosa e definito it numero minimo di frame allocabili? [4 punti] Allocation 0 1 2 0 0 0 3 5 4 6 3 2 0 1 4

Lorso aI Laurea in intormaticaf 'ecru:mg:ogle aeui truormazione

Sistemi Op erativi
10 Luglio 2002

Esercizi 1. Mostrare una soluzione del problema del buffer produttore-consumatore basata su semafori, che preveda due processi produttori PI e P2, ed un processo consumatore C. Giustificare le scelte fatte. [5 punti] 2. Dimostrare che l'esistenza di un ciclo in un grafo di allocazione delle risorse (RAG), in presenza di istanze singole di ogni risorsa implicano sernpre un deadlock. NOTA: E' necessario mostrare l'esistenza delle 4 condizioni necessarie. [7 punti] 3. Si traducarlo i suenti indirizzi logici su 13 bit [5 punti] 0101010010010, 0000010010011, 0101111000001, 0000001011110, 0001010011110, 0001010010011 in indirizzi fisici, supponendo uno schema di memoria paginata, con la seguente tabella delle pagine: 0-1K 1K-2K 2K-3K 3K-4K 4K-5K 5K-6K 6K-7K 7K-8K 8K-9K 2 1 6 0 4 8 3 5 7 [5 punti]

4. Descrivere l'algoritmo di schedulazione della CPU utilizzato da UNIX.

5. Si consideri un disco rigido con blocchi di 8KB. Quanti blocchi occupa un file di 210K? Assumendo un'implementazione del file system tipo UNIX, quanti i node sono necessari per la memorizzazione del file di 210K?
-

Giustificare le risposte.

[5 punti]

6. Si abbia un disco con un'unica superficie, dotato di 200 tracce. Data la sequenza di richieste di access() alle tracce di un disco:
23, 111, 26, 190, 143, 102, 77, 89, 111, 4,

Si calcoli it numero di spostamenti della testina the si ottengono applicando i seguenti algoritmi di scheduling: FCFS, STTF, SCAN e C-SCAN. Quare l'algoritmo che minimizza gli spostamenti? [5 punti]

t..orso UI L.aurea in imormatica/ lecnologie ueu muormazione


Sistemi Operativi 10 Settembre 2002

Esercizi 1. Mostrare una possibile implementazione di un semaforo a valori interi senza ricorrere al busy waiting (o riducendolo al minimo indispensabile). [5 punti] 2. Si consideri ii seguente algoritmo di scheduling basato su priorita variabili dinamicamente, nel quale valori alti di priorita implicano valori alta priorita (cio6 0 =minimo, oo =max). Quando un processo 6 in attesa della CPU (non in esecuzione), la sua priorita aumenta linearmente ad una velocita a. Quando e in esecuzione, la sua priorita aumenta linearmente ad una velocita /3. I parametri a e /3 determinano it tipo di algoritmo. Tutti i processi entrano inizialmente nel sistema con una priorita pari a 0. Qual e l'algoritmo corrispondente alla seguente assegnazione:

/3>a>0
a > /3 > 0 Giustificare it risultato. punti] 3. Si descriva it meccanismo della segmentazione paginata, indicando chiaramente uno schema a blocchi, ed un esempio di traduzione degli indirizzi. [6 punti] 4. Si consideri un sistema the utilizzi la paginazione su domanda per la gestione della memoria. La tabella delle pagine e memorizzata nella memoria principale, avente un tempo di accesso di T,,,, = 50ns. Il costo di gestione di un page fault 6 di 8ms nel caso in cui la pagina rimpiazzata non e modificata, e di 20ms nel caso in cui sia modificata. Assumendo the la pagina rimpiazzata risulti modificata il 70% delle volte, qual e il massimo tasso di page fault accettabile per avere un tempo di memoria effettivo non superiore a 100ms? [4 punti] 5. Descrivere la struttura del file system (su disco) di UNIX. 6. Descrivere la differenza tra user-level e kernel-level thread. [5 punti] [5 punti]

LANs ai Laurea in informalucaf lecnologie nen myormazione

Sistemi Op erativi
25 Settembre 2002

Esercizi 1. Due processi concorrenti P1 e P2 operano su una risorsa R, esistente in 3 esemplari. Tutte e tre le copie di R sono inizialmente disponibili. P1 e P2 utilizzano R rispettivamente attraverso due operazioni 01 e 02. L'accesso a R ovviamente mutuamente esclusivo. Le due operazioni hanno le seguenti caratteristiche: 01 pub essere effettuata soltanto se almeno un esemplare di R e disponibile; 02 pub essere effettuata soltanto se almeno un esemplare di R e utilizzato. Scrivere uno pseudocodice the sincronizzi i due processi. NOTA: Si rappresenti lo stato di R usando un semaforo.
[8 punti]

2. Si descrivano quali sono le possibili soluzioni per gestire lo spazio allocato su disco, indicandone le caratteristiche principali. [5 punti] 3. Si consideri un sistema di indirizzamento paginato con pagine di 2Kbytes, la cui page table a la seguente: 0-2K 2K-4K 4K-8K 8K-10K 10K-12K 3 0 4 5

Si traducano i seguenti indirizzi virtuali in indirizzi fisici: 2148, 1076, 0, 4096, 4095, 8992, 4096, 4095, 8993, 12240, mostrando i passaggi effettuati. Data poi la corrispondente reference string, calcolare it numero di page fault applicando gli algoritmi LRU, FIFO e l'algoritmo ideale, nel caso di 2 frame.
[4 punti]

4. Indicare quali caratteristiche deve avere una page table e come pub essere realizzata fisicamente. Indicare anche dove viene memorizzata la lista di tutti gli Mode?

[4 punti]

5. Spiegare the cos'e un anode. Mostrarne poi la struttura e come viene usato per memorizzare informazioni su disco.
[4 punti]

6. Cosa si intende per modello del working set? Indicare dove e come viene utilizzato, e si mostri un esempio numerico di calcolo del working set. [5 punti]

University degli studi di Verona


Corso di Laurea in Informatica/Tecnologie dell'informazione Sistemi Operativi
26 Marzo 2003

Esercizi
1. Scrivere lo pseudocodice di una soluzione basata su semafori che coordini la seguente situazione: Un processo P accede ad una risorsa A, condivisa con altri due processi P1 e P2. P e it primo ad utilizzare A, e, successivamente al suo utilizzo, attivera l'accesso di P i e P2 ad A. Prima di utilizzare A nuovamente, tuttavia, P dovra. attendere che Pl e P2 utilizzino entrambi A, in qualsiasi ordine. In altre parole, la sequenza di utilizzo di A sax& del tipo:

dove i = {1,2}. Si supponga che P, P1 e P2 operino second() it classico schema dell'elaborazione "infinita" (cioe while (1)
{ } ).

[7 punti]
2. Si consideri ii seguente insieme di processi:

Processo 1 2 3 4

Burst 1 4 2 1

Tempo di Arrivo 0 1 1 3

Si mostri l'esecuzione dei processi usando gli algoritmi di scheduling FCFS, SJF non preemptive, HRRN, e Round-Robin (quanto=1). Si calcoli it tempo di turnaround per ogni processo, e i rispettivi tempi medi (su tutti i processi).

[4 punti]
3. Si descrivano le differenze principali tra una thread e un processo, indicando un esempio pratico in cui l'uso di thread 6 conveniente rispetto all'uso dei processi.

[4 punti]
4. Descrivere it modello del working set, indicando dove e per quale scopo viene usato. possibile soluzione pratica per implementarlo.

Si indichi poi una [6 punti]

5. Si abbia un disco con un'unica superficie, dotato di 200 tracce. Data la sequenza di richieste di accesso alle tracce di un disco:

23, 111, 26, 27, 112, 102, 77, 30, 111, 21, Si calcoli ii numero di spostamenti della testina che si ottengono applicando i seguenti algoritmi di scheduling: FCFS, SSTF, SCAN e C-SCAN. Quare l'algoritmo che minimizza, gli spostamenti?

[4 punti]
6. Si descriva la struttura su disco di un file system (o volume) dello Unix File System. In particolare, si mostrino in dettaglio it contenuto e it significato delle yank porzioni in cui esso a suddiviso.

[6 punti]

University degli studi di Verona


Corso di Laurea in informatica/Tecnologie deli nformazione Sistemi Operativi 25 Giugno 2003

1. Scrivere lo pseudocodice di una soluzione basata su semafori che coordini la seguente situazione: Una risorsa R, presente in N esemplari, e condivisa tra due processi PI e P2 the la usano per effettuare la loro elaborazione. In particolare, PI necessita di N1 < N istanze di R per in sua esecuzione, mentre P2 necessita di N2 < N istanze di R, e + N2 > N Si emuli l'utilizzo di R da paste di P1 e P2 tramite una funzione process(10. Le istanze di R sono condivise e vanno usate in mutua esclusione. Si supponga che Pl e P2 operino secondo ii classico schema dell'elaborazione "infinita" (cioe while(1) ...} ). Si indichino esplicitamente i semafori utilizzati ed i relativi valori iniziali. SUGGERIMENTO: Si consiglia di non utilizzare una variabile per contare it numero di risorse disponibili e di usare solo semafori. [7 punti] 2. Descrivere le differenze tra thread a livello utente e thread a livello kernel, descrivendone relativi vantaggi e svantaggi. [4 punti] 3. Si consideri ii seguente insieme di processi: 0 2 5 1 3 2 2.5 4 1 1 Si mostri l'esecuzione dei processi usando gli algoritmi di scheduling FCFS, SJF non preemptive, HRRN, e RoundRobin (quanto=0.5). Si calcoli it tempo di turnaround per ogni processo, e i rispettivi tempi medi (su tutti i processi). [5 punti] 4. E' corretto dire the l'algoritmo di schedulazione del disco SSTF tende a favorire le tracce centrali rispetto a quelle periferiche (cioe verso l'inizio e verso in fine)? Perche? [5 punti] 5. Si fornisca un esempio di stringa di riferimenti a pagina nella quale l'algoritmo ideate si ha le prestazioni del caso peggiore, e cioe risulti in un page fault per ogni accesso a memoria. Si assuma the al processo corrispondente siano assegnati 3 frame, ed esso abbia uno spazio di indirizzamento virtuale di 10 pagine. [5 punti] 6. Si consideri un disco rigido con blocchi di 4KB, ed una organizzazione del file system tipo UNIX. Quanti i-node sono necessari per la memorizzazione di un file di 2MB? Quanti blocchi occupy complessivamente it file di 2MB? Giustificare le risposte.
Processo 1 Burst 1 Tempo di Arrive)

[4 punti]

SAE lin Va.. ...WY* I " , 0

I.,

al I

Sisterni Operativi 3 Settembre 2003

1. Scrivere lo pseudocodice di una soluzione basata su semafori the coordini la seguente situazione: Una risorsa A viene condivisa da n processi; m < n di questi processi (R 1 , , /1) utilizzano A solo in lettura e vengono detti lettori (reader). I restanti p = m m processi (W1, , Wp ) utilizzano A solo in scrittura e vengono detti scrittori (writer). Devono essere rispettate i seguenti vincoli: Se uno scrittore sta scrivendo A, nessun altro processo pub accedere (neppure in lettura); Solo uno scrittore alla volta puo accedere ad A; PIu lettori possono leggere simultaneamente A (a patto the nessuno stia scrivendo, ovviamente).

SUGGERIMENTI:
'Matti i lettori g gli scrittori hanno la stessa struttura (quindi si tratta di scrivere solo un lettore ed uno scrittore); Per implementare la possibility di lettori multipli si consiglia di utilizzare una variabile nr per contaze quanti lettori stanno cercando di entrare; solo it primo lettore dovra eventualmente aspettare.

[9 punti]
2. Si consideri la seguente "fotografia" di un sistema the possiede 3 tipi di risorsa e 5 processi in competizione per queste risorse. La situazione dei tre processi a rappresentata dalle seguenti matrici:
Allocation Request Available

Po

0
1 1

P1
P2

1 0 3

2 0 2

0
1 2

0 0 0
2 1

1 0 1
0

P3
P4

0
2

2 dove la matrice Request indica l'insieme di richieste dei vari processi. Si determini se tale insieme porta it sistema in uno stato di deadlock. [6 punti]

0 0

1 1

0 0

3. Si consideri la seguente implementazione della segmentazione: gli m bit meno significativi dell'indirizzo virtuale vengono usati per identificare it segmento, mentre l'offset b determinato dai rimanenti bit. Discutere l'efficienza di questo schema di gestione della memoria.

[6 punti]
[4 punti]

4. Che cosa si intende per anomalia di Belady? In quali algoritmi si pub veiificare?

5. Si descrivano le strutture dati del kernel di UNIX coinvolte nell'accesso ad un file (per esempio con una open 0). [5 punti]

yr yr.., am 1.= ....ow.

Sistemi perativi 17 Settembre 2003

0./

WM% NV YI II ...m.

1. Scrivere lo pseudocodice di una, soluzione basata su semafori the realizzi un meccanismo di barriera (barrier). Una barriera rappresenta una sorts di punto di sincronizzazione per un insieme di processi. Si assuma the it generico processo
{

esegua uno pseudocodice del tipo:

<barriera> <sezione critica>


}

La funzione della barriera a quella di far al the nessun processo inizi ad eseguire la sezione critica finche tutti i processi abbiano eseguito <barriera> Si assuma the ci siano N processi.

[7 punti]

2. Si spieghi cosa si intende per traiettoria delle risorse (nel contesto dell'analisi dei deadlock), e si mostri un esempio di come essa pub essere usata per analizzare l'esistenza o meno di un deadlock. [6 punti]

3. Si consideri la seguente stringa di riferimenti in memoria (pagine), relativi ad un programma avente uno spazio di indirizzamento su 10 pagine (da 0 a 9): 2 3 4 4 . 4 5 0 2 3 4 4 5 1 2 3. 4 9 Si calcoli la dimensione del working set W SS(A), per i valori di A = 1,2,3,4, 5. WSS e definito come it numero massimo di pagine nel working set. Si tracci inoltre un grafico di WSS in funzione di A e commentare it risultato [7 punti]

4. A cosa serve it dirty bit (bit di "sporco") nella tabella delle pagine? Pue essere utile usare pill di un bit? Perche? [5 punti]

5. Si descriva un modo per implementare in pratica l'algoritmo Shortest Job First (SJF) per la schedulazione della CPU.

[5 punti]

University degli studi di Verona


Corso di Laurea in Informatica/Tecnologie dell'informazione Sistemi Operativi B Luglio 2004

1. Si consideri un ponte con un carico limite di 8 automobili. Le automobili attraversato it ponte sempre nella stessa direzione (per esempio da sinistra a destra), e dopo un tempo indefinito ritornano nuovamente sul ponte. E' previsto the i1 ponte possa essere attraversato anche da camion, the hanno lo stesso comportamento delle auto, ma che hanno un peso doppio. Si risolva it problema dell'accesso at ponte usando i senaafori. Si strive lo pseudocodice per it processo Auto() e per it processo Carrion(), strutturati secondo it solito modello del ciclo infinito while (1) { 1). NOTA: E' ovviamente possibile the in un dato istante transitino sul ponte sia auto che camion. S UGGERIMENTO: Per evitare deadlock, si modern l'ingresso al ponte con un apposito mutex.

punti]
2. Si consideri la seguente sequenza di richieste di allocazioneirilascio di blocchi memoria (in byte): 128K (A) , 32K (A) , 512K (A), 200K (A) , 32H. (II), 64H. (A) , 200K (R), 512K (It). Dove (A) rappresenta una richiesta di allocazione, ed (R) it corrispondente rilascio. Assumendo di avere una memoria di dimensione 1MB, mostrarne Pevoluzione in corrispondenza delle vane richieste, nel caso venga usato it meccanisrno del buddy system per la gestione della memoria.

[5 punti] 3. Si consideri un file inizialmente costituito da 100 blocchi. Si assuma che it relativo file control block (e it relativo blocco indite,
nel caso di allocazione indicizzata) sia gib, in memoria. Calcolare it numero di operazioni di I/O su disco richieste, nel caso di allocazione (i) contigua, (ii) a lista (linked) e (iii) indicizzata (ad un solo livello) nei seguenti casi: (a) Un blocco viene aggiunto all'inizio del file (b) Un blocco viene aggiunto a meta del file (c) Un blocco viene aggiunto alla fine (d) Un blocco viene rimosso dall'inizio del file (e) Un blocco viene rimosso a meta del file (f) Un blocco viene rimosso dalla fine del file Nel caso di allocazione contigua, si assuma the non ci sia spazio per aggiungere un blocco all'inizio, ma ci sia spazio per far crescere it file dopo la fine. In tutti i casi sopraindicati, it blocco che deve essere aggiunto si trova in memoria.

[1+1+1+1+1+1 punti]
4. Indicate due possibili implementazioni (eventualmente anche approssimate) dell'algoritmo LRU in un contesto di rimpiazzamento delle pagine.

[4 punti] 5. Si consideri uno scheduler a due livelli con feedback, costituito da due code Q1 (quella a pia alta priorita) e
Q2

(quella a pia

bassa priorita) gestite con una politica round-robin, con valori di quanto ql e 42. Perche 6 conveniente che sia qi < q2? Qual it comportamento dello scheduler a regime, nel case in cui qi > qz?

[4 punti] 6. Si descriva in dettaglio l'organizzazione della buffer cache di UNIX. punti]

1... 11J1b1J

UI L.dUICal III IIIIUI Illd LILA/ I el.111.711JUIC 11011 11111.JIIIIdLIIJIle

Sistemi Operativi 10 Dicembre 2003

1. Scrivere lo pseudocodice di una soluzione basata su semafori the realizzi ii seguente meccanismo: Tre processi, P1, P2 and P3 utilizzano due risorse R1 and R2 nel seguente modo: P1 : richiede prima R 1 e poi R2;
P2: richiede prima R2 e poi R1; P3: richiede R2;

R1 esiste in un unico esemplare, mentre R2 esiste in due esemplari. Lo pseudocodice deve gestire opportunamente la sincronizzazione per l'accesso alle risorse.

[8 punti]

2. Si spieghi cosa si intende per prevenzione statica dei deadlock, e si indichino le possibili soluzioni.

[5 punti]

3. Si fornisca un esempio di situazione (sequenza di riferimenti a pagine di memoria) in cui gli algoritmi FIFO e quello ideale producono lo stesso numero di page fault. Si assuma the vengano associati 4 frame al processo in question. Giustificare la scelta. [5 punti]

4. Descrivere la tecnica del buddy system per Pallocazione di memoria al processi. Come si colloca questa tecnica rispetto alla tecnica basata su partizioni fisse e su quella basata su partizioni variabili?

[6 punti]

5. Descrivere l'algoritmo di schedulazione della CPU utilizzato da UNIX, e si mostri un esempio di funzionamento.

[6 punti]

University degli studi di Verona


Corso di Laurea in Informatica/Tecnologie dell'Informazione Sistemi Operativi 22 Giugno 2004

1. Si considerino i seguenti due processi, i quali eseguono in modo concorrente. Le 5 operazioni indicate A, B, C, D, e E sono operazioni atomiche.
P1
{

P2
{

A; B;
} }

D; E;

Si indichino inizialmente tutte le possibili combinazioni di esecuzione dei due processi, in termini di sequenze delle operazioni atomiche. Successivamente, si mostrino due modifiche al codice tramite semafori, le quali forzino it verificarsi delle seguenti specifiche sequenze:

^^ A.13D.-->C)-E; DLAB)-EC;
[2+2+2 punti]

2. Si considerino due processi (P 1 e P2 ) che abbiano it seguente comportamento durante la loro esecuzione nel tempo: Pi
P2

CPU 1
CPU 2

DEV 3 DEV 5

CPU 2 CPU 3

DEV 2 DEV 3

CPU 1 CPU 1

DEV 4 DEV 2

"CPU N" significa, che it processo esegue un burst di CPU da N unita, di tempo in esecuzione CPU, mentre "DEV N" significa che it processo deve usare un dispositivo per N units di tempo. Si supponga the i processi arrivino nel sistema al tempo 0. Si assuma the it sistema utilizzi uno scheduler di tipo SM. Descrivere con un diagramma temporale l'evoluzione dell'esecuzione dei due processi nei due casi: (a) I dispositivi usati da P1 e P2 siano diversi (e quindi it tempo di I/O si pub sovrapporre); (b) Pi e P2 usino lo stesso dispositivo (e quindi it tempo di I/O NON si pub sovrapporre);

[6 punti]

3. Si consideri una stringa di riferimenti a pagina relativa ad un processo a cui sono assegnati in frame. La stringa ha lunghezza p e contiene n riferimenti a pagine distinte. Indipendentemente dall'algoritmo di rimpiazzamento, si calcoli un limite inferiore ed un limite superiore al numero di page fault per questa stringa. [3+3 punti]

4. Si costruisca un esempio di sequenza di riferimenti a traccia the mostri the l'algoritmo di schedulazione degli accessi a disco SSTF none ottimo. Si cerchi in particolare una sequenza di riferimenti a traccia the rappresenti ii pi i possibile un caso peggiore per SSTF.
[6 punti]

5. Si descriva la struttura su disco di un file system (o volume) dello Unix File System. In particolare, si mostrino in

dettaglio it contenuto e it significato delle vane porzioni in cui esso a suddiviso.

[6 punti]

University degli studi di Verona


Corso di Laurea in Informatica/Tecnologie dell'Informazione Sistemi Operativi

8 Settembre 2004
1. Si consideri ii seguente frammento di codices
if (a > 0) p(e1);
else

P(e2); b-H-; P(s3); if (b < 0 && a <= 0) P(el) ; else if (I) >= 0 && a > 0) p(s2); else
P(s4) ;

a++; V(s4); 11(63);


V(e2);
V(B1);

dove sl,... ,s4 sono semafori. Si supponga che due processi eseguano questo frammento in parallelo. Pub verificarsi un deadlock? Si giustifichi Ia risposta, indicando I'eventuale deadlock. [7 punti] 2. lndicare una possibile implementazione (eventualmente a,pprossimata) delPa1goritmo SJF in un contesto di schedulazione della CPU.
[5 punti]

3. Un sistema ha un indirizzo virtuale su 3(1 bit, con una dimensione di pagina di 8KB, e 4 byte per ogni elemento della tabella delle pagine. (a) Quante pagine ci sono nello spazio di indirizzamento virtuade? (b) Qual 6 la massima dimensione indirizzabile di memoria fisica in questo sistema? (c) Se Ia dimensione media di un processo 6 di 8GB, qual 6 la dimensione media (in byte) della tabella delle pagine di un processo?
[1+2+2 punti]

4. Si consideri un file system su disco che ha dimensione del blocco (logico e fisico) di 512 byte. Si assuma che Pinformazione

relativ-a a ciascun file sia gia, in memoria. Si assume poi che !'ultimo blocco letto o scritto sia it blocco numero 10, e che si voglia fare accesso al blocco 4.
Per ognuna delle tre strategic di allocazione (contigua, a lista e indicizzata), determinare quanti blocchi fisici devono letti dal disco. Si giustifichino i valori ottenuti.

essere

NOTA: Per l'allocazione indicizzata, si assuma che la dimensione del file sia minore di 512 byte.
[8 punti]

5. Si consideri un sistema nel quale Ie richieste di accesso al disco possiedano una certa localita (che fb, si eke esse non siano

distribuite in modo uniforme). Supponendo che it 50% delle richieste si riferiscano ad un numero fisso (piccolo) di tracce: (a) Discutere le prestazioni degli algoritmi SSTF e FIFO nel caso di una simile distribuzione degli accessi; (b) Proporre uno o pia possibili miglioramenti all'algoritmo SSTF in modo che Palgoritmo modificato sfrutti at massimo questa locality, confrontandone le prestazioni con SSTF standard tramite un semplice esempio.
[3+4 punti]

University degli studi di Verona


Corso di Laurea in Informatica/Tecnologie dell'Informazione Sistemi Operativi 22 Settembre 2004

1. Si scriva uno pseudocodice utilizzando dei semafori the implementi uno schema di tipo produttore-consumatore, dove it consumatore "consuma" elementi del buffer M calk volta. Cie implica the se M elementi non sono disponibili ii consumatore si blocchera in attesa the questo avvenga. Sia N la dimensione massima del buffer.

[7 punti]

2. Si deve progettare un file system da zero. Si assuma di aver optato per un algoritmo di scheduling del disco SSTF, di avere compl6ta liberty di decidere la disposizione dei dati, e the it file system preveda una FAT (o una tabella simile). Dove conviene memorizzare questa tabella sul disco, per ottimizzare le prestazioni? Perche?

[5 punti]

3. Si spieghi cosa si intende per prevenzione statica dei deadlock, e si indichino le possibili soluzioni.

[6 punti]

4. Un sistema ha un indirizzo virtuale su 32 bit, ed utilizza uno schema di gestione della memoria basato su paginazione a due liven L'indirizzo e suddiviso come segue:

10 bit 12 bit 10 bit


(a) Qual 6 la dimensione di una pagina? (b) Qual 6 la dimensione della tabella delle pagine per un processo the ha dimensione pari a 256KB?

[3+4 punti] 5. Si mostrino le operazioni effettuate dal kernel di UNIX in corrispodenza di una system call open 0. [5 punti]

University degli studi di Verona


Corso di Laurea in Informatica/Tecnologie dell'Informazione Sistemi Operativi
23 Marzo 2005

Esercizi 1. Si consideri it seguente insieme di processi:


Processo I 2 3 4 Burst 1 5 2 1 Tempo di Arrivo 0 1 2.5 1

Si mostri ii diagramma dell'esecuzione dei processi usando gli algoritmi di scheduling FCFS, SJF non

preemptive e Round-Robin con quanto=0.5. Si calcoli it tempo di turnaround e di risposta per ogni processo, e i rispettivi tempi medi su tutti i processi. [9 punt]]
2. Si consideri un sistema con 5 processi, P1, P2, P3, P4, P5, e 4 tipi di risorse R1, R2, R3, R4. Si supponga che al tempo To it sistema si trovi nella seguente situazione: Risorse allocate Richiesta massima Processo /711 R2 R3 R4 R1 R2 R3 B4 1 0 0 1 2 0 0 1 2 2 2 0 0 0 2 7 5 0 3 0 0 3 4 6 6 5 6 4 2 3 5 4 4 3 5 6 5 0 3 3 2 0 6 5

Si supponga infine the al tempo To siano disponibili 2 risorse di tipo R 1 , 1 di tipo R2, 0 di tipo R3 e 0 di tipo R4. Rispondere alle seguenti domande utilizzando l'algoritmo del banchiere: (a) Qua] e it contenuto della matrice need? (b) Il sistema si trova in uno stato safe? Motivare le risposte mostrando l'esecuzione dell'algoritmo passo per passo. [1 + 5 punti]

3. Che coca si intende per disk scheduling? Descrivere quindi l'algoritmo di disk scheduling SCAN. [6 punti]

4. Si consideri un sistema con memoria paginata monolivello da 256MB. La dimension di ciascuna pagina pari a 512KB. Rispondere alle seguenti domande: (a) Da quanti bite composto un'indirizzo di memoria? (b) Come viene suddiviso it numero di bit di un'indirizzo di memoria tra numero di pagina e offset di pagina? (c) Se it sistema usa un TLB con un hit ratio, a, pad al 90% e it tempo di accesso alla memoria, TM, e pad a 8Ons, quanto deve essere it tempo di accesso al TLB, TTLB, affinche it tempo effettivo di accesso alla memoria, EAT, abbia un degrado del 15% rispetto a TM? [1 + 1 + 3 punti] 5. Mostrare una soluzione al problema del produttore/consumatore con buffer limitato che utilizzi ii concetto di monitor. [7punti]

N.B. Non sono ammesse domande al docente. Scrivere nome, cognome e matricola su tutti i fogli. Non consegnare la brutia copia. Soluzioni multiple discordant' dello stesso esercizio verranno valutate con punti 0.

University degli studi di Verona


Corso di Laurea in Informatica/Informatica Multimediale Sistemi Operativi 11 Settembre 2009
1. Due tipi di processi, lettori e scrittori, condividono uno stesso database. I lettori possono accedere contemp.oraneamente at database per leggere i dati contenuti in esso, ma per mantenere la consistenza dei dati.:, stessi, ogni scrittore pub accedere al database solo in modo mutuamente esclusivo rispetto sia ai lettori che ad altri scrittori. Fornire una soluzione che usi i semafori per sincronizzare lettori e scrittori durante [8 puntil l'accesso al database. 2. Si descrivano in dettaglio s concetti di paginazione e memoria virtuale. Si consideri quindi una memoria paginata a 2 livelli, di dimension pafi a 256MB, indirizzata al byte e composta da 1024 pagine, e si risponda alle seguenti domande: (a) Quali sono le dimensioni della memoria logica, dell'indirizzo logico e di una pagina? (b) Quali Bono le dimensioni della memoria fisica, dell'indirizzo fisico e di un frame? (c) coasiderando un tempo di accesso alla memoria pari a 100ns, quale deve essere it tempo di page fault affinche it decremento di prestazioni dovuto aily gestione dei page fault sia inferiore al 10% con uno hit rate pari at 98% ?

[4+1+1+1 punti]
3. Si consideri ii seguente insieme di processi:

Processo Burst Tempo di Arrivo 1 3 0 2 1 1 3 2 3 4 4 4 5 1 8 Si mostri ii diagramma dell'esecuzione dei processi usando gli algoritmi di scheduling HRRN, e RR con quanto uguale a 2. Nel caso di RR, si assuma che i nuovi processi in arrivo vengano inseriti nella ready queue in modo da minimizzare it tempo di risposta. Si calcoli it tempo di risposta, attesa e turnaround per [4 punti] ogni processo.
4. Si definisca it concetto di deadlock e si descrivano le tecniche di prevenzione statica. Quindi, si consideri un sistema con 3 processi, F 1 , P2 , P3 , e 3 tipi di risorse A, B, C. Si supponga che al tempo T it sistema si trovi nella allot max ABC Processo ABC 2 2 3 3 6 8 Pi P2 2 0 3 4 3 3 P3 1 2 4 3 4 4 Si supponga inoltre che at tempo T siano ancora dispombili 2 risorse di tipo A, 3 di tipo B, e 0 di tipo C. (a) II sistema a in uno stato safe? (b) Data la situazione al tempo T, it sistema pub soddisfare una richiesta del tipo (1,0,1) da parte del processo -P1? (c) Data la situazione at tempo T, it sistema pub soddisfare una richiesta del tipo (2,0,0) da parte del processo P1? Motivare le risposte raostrando l'esecuzione dell'algoritmo del banchiere. 5. Descrivere quali alternative esistono per l'esecuzione del sistema operativo. Suggerimento: it sistema operativo pu essere considerato un processo?' [6 punti]

[3+3+1+1 punti]