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