Cognome:
Nome:
Matricola:
Sistemi Operativi
Docente: Paolo D’Arco
Appello del 12/07/2006
Non è ammesso alcun materiale per consultazione. Buon lavoro! 
1
2
3
4
5
1) (20 punti) Sincronizzazione tra processi
Si descriva in pseudocodice la soluzione al problema di sincronizzazione produttore-consumatore con
buffer limitato che fa uso di semafori. Si commenti la funzione svolta da ognuno dei semafori
utilizzati.
2) (20 punti) Scheduling della CPU
Si consideri il seguente insieme di processi:
Processi
P1
P2
P3
P4
P5
Tempo d’arrivo
0
1
2
4
5
Durata del CPU-burst
9
5
7
2
11
1. Si disegni il diagramma di Gantt che illustra l’esecuzione dei processi usando l’algoritmo SJF
preemptive (i.e., shortest-remaining-time-first)
2. Si calcoli il tempo medio di attesa.
Algoritmo a Priorità. Quale problema può comportare l’utilizzo di un algoritmo di schedulazione a
priorità in un sistema di calcolo? Esistono contromisure?
Algoritmo FCFS. Si fornisca una esempio (sequenza processi, durata cpu-burst, richieste I/O) che
riproduca l’effetto convoglio.
3) (20 punti) Memoria Virtuale.
Si descriva, facendo uso di un disegno, la realizzazione della memoria virtuale tramite paginazione su
richiesta (demand paging). In particolare, si descrivano i passi che vengono effettuati in presenza di
una mancanza di pagina (page fault).
A cosa serve e come può essere implementato l’algoritmo LRU?
4) (20 punti) Struttura e gestione dei dischi rigidi.
Si descriva la struttura di un disco rigido e se ne discutano brevemente organizzazione e caratteristiche.
Come può il sistema operativo migliorare l’efficienza d’uso di un disco che riceve richieste da più
processi?
L’algoritmo SSTF (shortest-seek-time-first) ricorda nel nome l’algoritmo di schedulazione della CPU
chiamato SJF (shortest-job-first) che è ottimale rispetto al tempo medio di attesa. Cosa possiamo dire
circa SSTF?
5) (20 punti) Si risponda, in modo chiaro e conciso, alle domande che seguono:
Cosa si intende per Macchine Virtuali? Discutere i vantaggi offerti e le difficoltà relative
all’implementazione. Inoltre, si descrivano brevemente VMware e il framework .NET
Si spieghi brevemente:
1. cos’è un socket e come avviene la comunicazione tramite socket
2. come funziona RPC
3. come funziona RMI
Inoltre, si fornisca una motivazione chiara e concisa dei vantaggi che un programmatore ha nell’usare
RPC ed RMI invece del meccanismo dei socket e delle due principali differenze che esistono tra RPC
ed RMI.
Si spieghi brevemente (al più 4 righe per punto)
1. Quali problemi occorre affrontare nella implementazione delle chiamate di sistema fork() ed
exec() in presenza di thread?
2. Secondo quali strategie può essere implementata la terminazione dei thread?
3. Quali problemi nascono nella gestione dei segnali?
Si descrivano brevemente:
1. le principali violazioni della sicurezza di un sistema di calcolo
2. tecniche di attacco standard
Inoltre, si spieghi cosa si intende con i termini:
1. worm
3. port scanning
4. denial of service