98
Corso di Laurea in Ingegneria Elettronica e delle Telecomunicazioni Ingegneria Informatica e dell’Automazione Appelli di Sistemi Operativi Informatica per l'Automazione

Appelli di Sistemi Operativi Informatica per l'Automazione

Embed Size (px)

DESCRIPTION

Appelli di Sistemi Operativi Informatica per l'AutomazioneCorso di Laurea in Ingegneria Elettronica e delle TelecomunicazioniIngegneria Informatica e dell’Automazione Indice generaleA Sistemi Operativi 5A.1 Quesiti generali 5A.2 CPU scheduling 7A.3 Memoria 10A.4 File 16A.5 Disk scheduling 18A.6 Interrupt 20A.7 Sezioni critiche 22A.8 Progetti 26B Linux 37B.2 Gestione file e permessi di accesso 40B.3 Gestione utenti e gruppi 42B.4 Comandi da shell 44C Telematica - Protocolli Applicativi 51C.1 Quesiti generali 51C.2 World-wide web 52C.3 Protocollo HTTP 52C.4 Protocollo FTP 58C.5 Protocolli posta elettronica (SMTP, POP3, IMAP) 61C.6 Protocollo DNS 63C.7 Protocolli peer-to-peer 67C.8 Sicurezza 69C.9 Progetti Java HTTP 71C.10 Progetti Java FTP 83C.11 Progetti Java POP3/SMTP 89 Javadoc 95

Citation preview

  • Corso di Laurea in Ingegneria Elettronica e delle Telecomunicazioni

    Ingegneria Informatica e dellAutomazione

    Appelli di Sistemi Operativi Informatica perl'Automazione

  • Indice generaleA Sistemi Operativi........................................................................................................................................... 5

    A.1 Quesiti generali..................................................................................................................................... 5A.2 CPU scheduling..................................................................................................................................... 7A.3 Memoria.............................................................................................................................................. 10A.4 File...................................................................................................................................................... 16A.5 Disk scheduling................................................................................................................................... 18A.6 Interrupt............................................................................................................................................... 20A.7 Sezioni critiche.................................................................................................................................... 22A.8 Progetti................................................................................................................................................ 26

    B Linux............................................................................................................................................................ 37

    B.2 Gestione file e permessi di accesso....................................................................................................40B.3 Gestione utenti e gruppi......................................................................................................................42B.4 Comandi da shell................................................................................................................................. 44

    C Telematica - Protocolli Applicativi................................................................................................................51

    C.1 Quesiti generali................................................................................................................................... 51C.2 World-wide web................................................................................................................................... 52C.3 Protocollo HTTP.................................................................................................................................. 52C.4 Protocollo FTP.................................................................................................................................... 58C.5 Protocolli posta elettronica (SMTP, POP3, IMAP)...............................................................................61C.6 Protocollo DNS.................................................................................................................................... 63C.7 Protocolli peer-to-peer......................................................................................................................... 67C.8 Sicurezza............................................................................................................................................ 69C.9 Progetti Java HTTP............................................................................................................................. 71C.10 Progetti Java FTP............................................................................................................................. 83C.11 Progetti Java POP3/SMTP................................................................................................................89

    Javadoc......................................................................................................................................................... 95

  • A Sistemi Operativi

    2 punti per quesito

    A.1 Quesiti generali

    Quesito A.1.1 5/5/11

    Si spieghi la caratteristica fondamentale dellinterfaccia grafica di una distribuzione Linux chiarendone differenze e tratti di somiglianza con la GUI Microsoft Windows.

    Quesito A.1.2 28/2/13

    Si descriva la tassonomia dei sistemi multiprocessore. Si chiarisca in particolare la differenza tra multi-calcolatori strettamente e debolmente accoppiati.

    Quesito A.1.3 7/5/08

    Si spieghi brevemente qual la caratteristica fondamentale di un sistema multiprocessore conforme al paradigma simmetrico.

    Quesito A.1.4 16/2/11

    Si spieghi brevemente qual la caratteristica fondamentale del symmetric multiprocessing.

    Quesito A.1.5 30/4/09

    Ordinare le seguenti memorie dalla pi lenta alla pi veloce: RAM, CPU register, hard disk, ROM, USB dongle

    Quesito A.1.6 22/7/10, 30/11/12

    Spiegare quali sono e a cosa servono i meccanismi di protezione hardware comunemente adottati nei calcolatori moderni.

    Quesito A.1.7 27/9/12, 12/9/12

    Si descrivano le caratteristiche principali di un sistema operativo su base transazionale. Si chiariscano le basi teoriche su cui questa categoria di O.S. si fondano.

    Quesito A.1.8 12/7/12

    Si descrivano le caratteristiche principali di un HRT OS. Si chiarisca in dettaglio cosa differenzia tali sistemi operativi da quelli general purpose.

    Quesito A.1.9 14/2/12, 9/5/12

    Si chiarisca brevemente cosa accade quando si verifica una commutazione di contesto computazionale tra:

    processi

    thread dello stesso processo

    Quesito A.1.10 24/2/09

    Si chiarisca brevemente significato e applicazione dei due principi di localit.

    Quesito A.1.11 6/9/10

    Si citino i principali schemi di IPC chiarendo le differenze esistenti tra ognuno di essi ed evidenziandone vantaggi e svantaggi.

    Quesito A.1.12 21/11/08

    Si connotino brevemente le caratteristiche di una IPC a rendez-vous con buffer limitato e illimitato.

    Sistemi Operativi / Quesiti generali 5

  • Quesito A.1.13 9/9/09

    Si chiarisca la funzione del marshalling dei parametri in una IPC. Si indichino altres i possibili meccanismi in cui essa trova applicazione.

    Quesito A.1.14 23/9/09

    Supponendo di riferirsi ad una IPC che rispetti il paradigma del produttore/consumatore e data la seguente chiamata del producer: while (in == MAX); in++; buffer[in]= oggetto; in = (in + 1);

    Si scriva un esempio congruente per la chiamata del consumer spiegandone la funzionalit.

    Quesito A.1.15 17/9/08

    Supponendo di riferirsi ad un sistema multithread che rispetti il paradigma del produttore/consumatore per garantire la sincronizzazione e data la seguente chiamata del thread consumer: while (out == 0); --out; oggetto = buffer[out]; out = (out + 1);

    Si scriva un esempio congruente per la chiamata del producer spiegandone la funzionalit.

    Quesito A.1.16 26/2/08

    Si spieghi brevemente a cosa serve una Remote Procedure Call e qual la funzione del client-stub allinterno di essa.

    Quesito A.1.17 24/2/10

    Si spieghi brevemente il meccanismo RMI chiarendo con un esempio la sua utilit.

    6 Sistemi Operativi / Quesiti generali

  • A.2 CPU scheduling

    Quesito A.2.1 8/2/10

    Si specifichi il significato dei seguenti parametri chiarendo in che termini essi consentono di verificare la bont di un algoritmo di CPU scheduling: Load average:

    Throughput:

    Turnaround time:

    Tempo di attesa:

    Tempo di risposta:

    Quesito A.2.2 8/7/08

    Si spieghi brevemente qual la differenza (funzionale ed architetturale) tra lo short-term scheduler ed il long-term scheduler.

    Quesito A.2.3 22/7/09

    Si indichino le differenze fra macro e microschedulatore suddivise secondo le seguenti categorie: Funzionali: Architetturali:

    Quesito A.2.4 22/7/10

    Citare almeno tre aspetti che rendono vantaggioso lutilizzo del multithreading in luogo del multiprocessing.

    Quesito A.2.5 14/2/12

    Si descriva brevemente il convoy effect spiegando in qual modo possibile risolverlo.

    Quesito A.2.6 5/5/11

    Si spieghi cos il convoy effect, quando si verifica e come pu essere corretto.

    Quesito A.2.7 8/7/09

    Si scriva lespressione della predizione in media esponenziale del next CPU burst commentandone le caratteristiche in modo breve.

    Quesito A.2.8 24/2/10

    Si scriva lespressione della stima del next CPU burst nellalgoritmo di schedulazione SJF chiarendone il significato.

    Quesito A.2.9 28/2/13

    Si descriva la serie esponenziale per la stima del next CPU burst in un algoritmo di scheduling SJF.

    Quesito A.2.10 12/2/08

    Si tracci lo schema del contenuto di un Process Control Block evidenziando per ciascuna componente in quale circostanza della vita del processo viene creata/aggiornata.

    Quesito A.2.11 23/9/10

    Si descriva il contenuto di un Process Control Block e si spieghi in quali circostanze un PCB viene creato, in quali aggiornato ed in quali eliminato.

    Sistemi Operativi / CPU scheduling 7

  • Quesito A.2.12 28/2/13, 28/2/12

    Si descriva con laiuto di uno schema il contenuto di un Process Control Block e si spieghi in quali posizioni del ciclo di esecuzione di un processo un PCB viene creato, in quali aggiornato ed in quali eliminato.

    Quesito A.2.13 22/7/08

    Si descriva brevemente il funzionamento di un upcall manager nellambito del meccanismo di attivazione dello schedulatore.

    Quesito A.2.14 21/11/08

    Si spieghi brevemente le caratteristiche e la funzione del meccanismo di attivazione dello schedulatore in uno schema di esecuzione multithread.

    Quesito A.2.15 28/2/13

    Si chiarisca scopo e modalit di funzionamento del meccanismo di attivazione dello schedulatore dopo aver preliminarmente introdotto la problematica generale di riferimento.

    Quesito A.2.16 17/9/08

    Qual la funzione del dispatcher del CPU scheduler? Quali informazioni adopera per svolgere il proprio compito? E dove si trovano tali informazioni?

    Quesito A.2.17 2/3/11

    Si chiarisca la funzione del dispatcher nella schedulazione del processore precisando quali informazioni adopera per svolgere il proprio compito?

    Quesito A.2.18 9/5/12

    A cosa serve il dispatcher? A quale componente del sistema operativo ascrivibile? Con quali strutture dati lavora? Quali vincoli possiede?

    Quesito A.2.19 21/11/08

    Si descriva brevemente il fenomeno della starvation nellambito della organizzazione della coda di ready nel ciclo di esecuzione dei processi e si dica motivando la risposta quale algoritmo di microschedulazione pu produrre un effetto di tal genere.

    Quesito A.2.20 9/9/09, 6/9/10

    Si descriva brevemente il fenomeno della starvation nellambito della schedulazione della coda di ready nel ciclo di esecuzione dei processi e si dica motivando la risposta con quali approcci si pu limitare un effetto di tal genere.

    Quesito A.2.21 22/7/09, 16/2/11

    Qual lentit di ottimizzazione della dispatch latency introdotta nel passaggio da n processi cooperanti a un singolo processo n-thread? Si giustifichi la risposta.

    Quesito A.2.22 8/2/10

    Si spieghino le differenze nel modo e nel grado con cui i seguenti algoritmi di scheduling favoriscono i processi CPU-bound:

    FCFS

    RR

    Multilevel feedback queues

    Quesito A.2.23 23/9/10

    Si descrivano le caratteristiche dellalgoritmo di schedulazione della CPU denominato SJF (Shortest Jobtime First) chiarendo le differenze che esso presenta rispetto ad un algoritmo basato sul merito.

    8 Sistemi Operativi / CPU scheduling

  • Quesito A.2.24 14/2/12

    Si spieghino brevemente le caratteristiche di un algoritmo di scheduling della CPU di tipo RR con calcolo della priorit basata su merito.

    Quesito A.2.25

    Supponendo di adottare un algoritmo di merito, si stabilisca lordine crescente di priorit nel prossimo intervallo statistico T per task i cui contatori di time slice esauriti e time slice assegnati siano i seguenti:

    Task Ni ni p 1 3 42 9 23 5 34 7 6

    Quesito A.2.26 5/5/11

    Si spieghino le caratteristiche e i vantaggi/svantaggi dellalgoritmo di scheduling denominato Multilevel feedback queues.

    Quesito A.2.27 2/3/11

    Si consideri un sistema con quattro processi uguali allocati in memoria. Ipotizzando che lalgoritmo di scheduling della CPU sia Round Robin con time slice pari al doppio della durata di ciascun processo, che i processi restano in attesa di eventi di input e/o di output per due terzi del loro tempo, si calcoli la percentuale di tempo di CPU non fattivamente adoperata. Si dica inoltre quali interventi potrebbero migliorare il throughput.

    Sistemi Operativi / CPU scheduling 9

  • A.3 Memoria

    Quesito A.3.1 8/2/10, 30/11/12

    Si illustri il significato e le conseguenze della cosiddetta anomalia di Belady.

    Quesito A.3.2 22/7/10

    In cosa consiste lanomalia di Belady? Quando e perch si verifica? Chiarire la risposta aiutandosi con un esempio.

    Quesito A.3.3 26/2/08

    Si spieghi in quale senso i principi di localit spaziale e temporale vengono adoperati nelle tecniche di memoria virtuale.

    Quesito A.3.4 9/9/09, 23/9/09

    Si descriva con laiuto di una opportuna schematizzazione il meccanismo di risoluzione degli indirizzi nel caso della gestione della memoria con segmentazione paginata spiegando le funzionalit di ciascun componente coinvolto.

    Quesito A.3.5 24/2/09

    Si spieghino brevemente le caratteristiche dello schema di segmentazione paginata evidenziandone vantaggi e svantaggi rispetto a schemi analoghi.

    Quesito A.3.6 2/9/08

    Si spieghi brevemente quali sono i vantaggi e gli svantaggi introdotti da un meccanismo di gestione della memoria a segmentazione paginata rispetto ad uno a segmentazione semplice.

    Quesito A.3.7 10/2/09

    Si spieghino brevemente le caratteristiche di un algoritmo LRU approssimato per la sostituzione di pagina indicando le due soluzioni implementative pi comuni.

    Quesito A.3.8 2/9/08

    Si spieghino la funzione e le caratteristiche della Page Table invertita.

    Quesito A.3.9 5/5/11

    Si calcoli, motivando la risposta, qual la dimensione della Page Table in una memoria virtuale di 4GB con pagine di 32 kB. Si dica se sono possibili strategie di ottimizzazione.

    Quesito A.3.10 12/2/08

    Supponendo un sistema di indirizzamento che preveda lutilizzo di 24 bit per la pagina e 8 per il displacement,stabilire la dimensione di ciascuna pagina e la capacit massima della memoria RAM.

    Quesito A.3.11 23/9/10

    Supponendo un sistema di indirizzamento che preveda lutilizzo di 24 bit per la pagina e 8 per il displacement, stabilire la dimensione di ciascuna pagina e la capacit massima della memoria RAM.

    Quesito A.3.12 21/11/08

    Si calcoli, motivando opportunamente, qual il numero di bit necessari per rappresentare il numero di pagina in una memoria virtuale costituita da 128 Mbyte con pagine di 16 Kbyte.

    Quesito A.3.13 8/2/10

    Si calcoli, motivando la risposta, qual il numero di bit necessari per rappresentare il numero di pagina in una memoria virtuale di 1GB con pagine di 32 kB.

    10 Sistemi Operativi / Memoria

  • Quesito A.3.14

    Si consideri un processo avente sezione di codice di 2MB (condivisa), sezione dati di 500kB, stack size di 200kB e PCB di 5kB. Supponendo che una trap al kernel venga complessivamente servita e restituisca il controllo in 1 sec e che la CPU copi una parola di 4B tra due locazioni di memoria in 10 nsec, si stimi il tempo impiegato da una fork().

    Quesito A.3.15 9/9/09

    Si consideri un processo avente sezione di codice di 1.5MB (condivisa), sezione dati di 450kB, stack size di 150kB e PCB di 4kB. Supponendo che una trap al kernel venga complessivamente servita e restituisca il controllo in 0.5 sec e che la CPU copi una parola di 4B tra due locazioni di memoria in 8 nsec, si stimi il tempo impiegato da una fork().

    Quesito A.3.16 23/9/09

    Si consideri un processo avente sezione di codice di 1.0MB (condivisa), sezione dati di 300kB, stack size di 150kB e PCB di 5kB. Supponendo che una trap al kernel venga complessivamente servita e restituisca il controllo in 0.5 sec, che il sistema disponga di DMA e che la CPU trasferisca una parola di 8B tra due locazioni di memoria in 10 nsec, si stimi il tempo impiegato da una fork().

    Quesito A.3.17 8/7/08

    Si consideri un sistema con memoria paginata. Supponendo che la page table sia mantenuta in memoria principale e che il tempo di accesso a memoria sia di 50 ns, calcolare lEAT. Supponendo inoltre di introdurre un TLB con =1ns, si dica quale hit ratio bisogna avere per un degrado delle prestazioni del 5%.

    Quesito A.3.18 30/11/10, 14/2/13

    Si consideri un sistema con memoria paginata. Supponendo che la page table sia mantenuta in memoria principale e che il tempo di accesso a memoria sia di 100 ns, calcolare lEAT. Supponendo inoltre di introdurre un TLB con =5 ns, si dica quale hit ratio produce un degrado massimo delle prestazioni del 10%.

    Quesito A.3.19 22/7/10

    Si ipotizzi di poter tollerare un EAT massimo, in presenza di TLB, pari a 280 nsec. Se i tempi di accesso in TLB e in memoria sono rispettivamente pari a 40 nsec e 200 nsec, si dica quale deve essere lhit ratio minimo accettabile. Si giustifichi la risposta.

    Quesito A.3.20 27/9/12

    Si ipotizzi di poter tollerare un EAT massimo, con TLB, pari a 800 nsec. Se i tempi di accesso in TLB e in memoria sono rispettivamente pari a 120 nsec e 480 nsec, si dica quale deve essere lhit ratio minimo accettabile. Si giustifichi la risposta.

    Quesito A.3.21 28/2/12

    Si ipotizzi di poter tollerare un EAT massimo, in presenza di TLB, pari a 320 nsec. Se i tempi di accesso in TLB e in memoria sono rispettivamente pari a 60 nsec e 240 nsec, si dica quale deve essere lhit ratio minimo accettabile. Si giustifichi la risposta.

    Quesito A.3.22

    Si consideri la seguente sequenza di richieste di page-in: 0 1 3 5 1 0 4 1 4 3 2

    Si supponga di disporre di una memoria di 3 blocchi inizialmente disponibili. Si determini il numero totale di page-fault ed il contenuto della memoria al termine della sequenza, se lalgoritmo di rimozione delle pagine LRU.

    Quesito A.3.23 8/7/09

    Si consideri la seguente sequenza di richieste di page-in:

    Sistemi Operativi / Memoria 11

  • 3 1 0 5 3 1 4 1 5 0 2 Si supponga di disporre di una memoria di 4 blocchi inizialmente disponibili. Si confrontino le prestazioni degli algoritmi LRU e FIFO per la rimozione delle pagine.

    Quesito A.3.24 25/11/09

    Si consideri la seguente sequenza di richieste di page-in: 0 3 1 4 5 1 4 3 2 7 2

    Si supponga di disporre di una memoria di 3 blocchi inizialmente disponibili. Si determini il numero totale di page-fault ed il contenuto della memoria al termine della sequenza, se lalgoritmo di rimozione delle pagine LRU.

    Quesito A.3.25 8/2/10

    Si consideri la seguente sequenza di richieste di page-in: 0 1 3 5 4 1 4 5 3 2 7 2

    Si supponga di disporre di una memoria di 4 blocchi inizialmente disponibili. Si determini il numero totale di page-fault ed il contenuto della memoria al termine della sequenza, se lalgoritmo di rimozione delle pagine FIFO.

    Quesito A.3.26 9/6/10

    Si consideri la seguente sequenza di richieste di page-in: 0 1 3 7 2 1 2 3 2 5 2

    Si supponga di disporre di una memoria di 5 blocchi inizialmente disponibili. Si determini il numero totale di page-fault ed il contenuto della memoria al termine della sequenza, se lalgoritmo di rimozione delle pagine LRU.

    Quesito A.3.27 17/9/08

    Si consideri un processo che generi la sequenza di riferimenti a pagine virtuali riportata: 2 0 1 0 1 4 5 3 2 0

    Supponendo che al processo siano stati assegnati 3 frame in memoria fisica gestiti mediante LRU si dica, motivando la risposta, quanti page-fault vengono generati e qual il numero minimo di frame necessario a minimizzarli.

    Quesito A.3.28 30/11/10, 14/2/13

    Si consideri un processo che generi la sequenza di riferimenti a pagine virtuali riportata di seguito: 5 1 4 5 1 4 0 6 2 0

    Supponendo che al processo siano stati assegnati 4 frame in memoria fisica gestiti mediante LRU si dica, motivando la risposta, quanti page-fault vengono generati e qual il numero minimo di frame necessario a minimizzarli.

    Quesito A.3.29 7/5/08

    Ipotizzando una struttura di memoria a quattro frame, i cui istanti di caricamento, di ultima referenziazione sono riportati nella seguente tabella (insieme ai rispettivi reference bit):

    Frame Caricamento Referenziazione R F2 137 289 1F1 260 264 1F0 172 253 0F3 205 269 1

    si stabilisca quale pagina verrebbe liberata per prima dall'algoritmo FIFO e da quello LRU.

    12 Sistemi Operativi / Memoria

  • Quesito A.3.30 22/7/08

    Date le seguenti aree di memoria disponibile, si indichi come gli algoritmi First-Fit e Worst-Fit rispettivamente allocherebbero i seguenti processi: P1: 212kB, P2: 417kB, P3: 112kB, P4: 426kB.

    First-Fit Worst-Fit M1=100kBM2=500kB M3=200kB M4=300kB M5=600kB

    Quale dei due algoritmi utilizza la memoria nel modo pi efficiente? Perch?

    Quesito A.3.31 2/3/11

    Date le seguenti aree di memoria disponibile, si indichi come gli algoritmi First-Fit e Worst-Fit rispettivamente allocherebbero i seguenti processi: P1: 115kB, P2: 417kB, P3: 12kB, P4: 1426kB.

    First-Fit Frammentazione Worst-Fit FrammentazioneM1=100kBM2=1500kB M3=300kB M4=100kB M5=300kB

    Per ciascun caso si determini lentit della frammentazione interna.

    Quesito A.3.32 2/3/11

    Date le seguenti aree di memoria disponibile, si indichi come gli algoritmi Best-Fit e Worst-Fit rispettivamente allocherebbero i seguenti processi: P1: 202kB, P2: 407kB, P3: 112kB, P4: 626kB.

    Best-Fit Worst-Fit M1=200kBM2=500kB M3=200kB M4=400kB M5=300kB

    Quale dei due algoritmi utilizza la memoria nel modo pi efficiente? Perch? Quale dei due pi veloce? Perch?

    Quesito A.3.33 22/7/09

    La tavola che segue riporta, per un blocco di memoria B, listante di caricamento TLoad, quello di ultimo accesso TRef, il reference bit R ed il change bit C:

    B TLoad TRef R C 0 116 289 1 01 190 240 0 12 140 290 1 13 180 210 1 1

    Si dica quale blocco sar rimpiazzato se lalgoritmo di Page Replacement :

    FIFO ____

    LRU ____

    LRU approssimato ____

    Sistemi Operativi / Memoria 13

  • Quesito A.3.34 28/2/12

    La tavola che segue riporta, per un blocco di memoria B, listante di caricamento TLoad, quello di ultimo accesso TRef, il reference bit R ed il change bit C:

    B TLoad TRef R C 0 186 289 1 11 180 200 1 02 096 320 0 03 080 110 1 1

    Si dica quale blocco sar rimpiazzato se lalgoritmo di Page Replacement :

    FIFO ____

    LRU ____

    LRU approssimato ____

    Quesito A.3.35 12/9/12

    La tavola che segue riporta, per un blocco di memoria B, listante di caricamento TLoad, quello di ultimo accesso TRef, il reference bit R ed il change bit C:

    B TLoad TRef R C 0 016 159 1 11 186 200 1 02 1196 1320 0 03 080 110 1 1

    Si dica quale blocco sar rimpiazzato se lalgoritmo di Page Replacement :

    FIFO ____

    LRU ____

    LRU approssimato ____

    Quesito A.3.36 27/9/12

    La tavola che segue riporta, per un blocco di memoria B, listante di caricamento TLoad, quello di ultimo accesso TRef, il reference bit R ed il change bit C:

    B TLoad TRef R C 0 032 318 1 11 086 100 1 02 1196 1320 0 03 078 112 1 1

    Si dica quale blocco sar rimpiazzato se lalgoritmo di Page Replacement :

    FIFO ____

    LRU ____

    LRU approssimato ____

    Quesito A.3.37 14/2/12

    Si calcoli, motivando opportunamente la risposta, qual il numero minimo di bit necessari per indirizzare una memoria virtuale paginata di 16 GB suddivisa in frame di 64 kB. Ipotizzando poi che ogni entry della Page Table occupi 8 B si dica a quanto ammonta la differenza tra il contenuto di PTLR e PTBR.

    14 Sistemi Operativi / Memoria

  • Quesito A.3.38 12/7/12

    Si calcoli, motivando la risposta, qual il numero minimo di bit necessari per indirizzare una memoria virtuale paginata di 4 GB suddivisa in frame di 8 kB. Ipotizzando poi che ogni entry della Page Table occupi 2 B si dica a quanto ammonta la differenza tra il contenuto di PTLR e PTBR.

    Quesito A.3.39 16/2/11

    Si calcoli, motivando opportunamente la risposta, qual il numero minimo di bit necessari per indirizzare una memoria virtuale paginata di 8 GB suddivisa in frame di 64 kB. Ipotizzando poi che ogni entry della Page Table occupi 8 B si dica quanto spazio occupa in memoria la tabella stessa.

    Quesito A.3.40 9/5/12

    Si calcoli, motivando la risposta, qual il numero minimo di bit necessari per indirizzare una memoria virtuale paginata di 8 GB suddivisa in frame di 32 kB. Ipotizzando poi che ogni entry della Page Table occupi 8 B si dica a quanto ammonta la differenza tra il contenuto di PTLR e PTBR.

    Quesito A.3.41 30/4/10

    Si descriva con laiuto di una opportuna schematizzazione il meccanismo di risoluzione degli indirizzi nel caso della gestione della memoria con segmentazione spiegando le funzionalit di ciascun componente coinvolto.

    Quesito A.3.42 8/7/08

    Si consideri la Segment Table seguente:

    Segment Base Length 0 269 6501 2350 642 140 1503 1377 146

    Si dica quali sono gli indirizzi fisici corrispondenti ai seguenti indirizzi logici indicando anche se e perch sono o meno validi: (0, 480) (1, 60) (2, 550) (3, 450) Quesito A.3.43

    Si consideri la Segment Table seguente:

    Segment Base Length 0 256 6301 1810 542 110 1203 1327 116

    Si dica quali sono gli indirizzi fisici corrispondenti ai seguenti indirizzi logici indicando anche se e perch sono o meno validi: (0, 280) (1, 30) (2, 350) (3, 350)

    Sistemi Operativi / Memoria 15

  • A.4 File

    Quesito A.4.1 2/3/11

    Si schematizzi la struttura e si descriva il funzionamento della Device Status Table.

    Quesito A.4.2 2/9/08

    Si spieghino le caratteristiche fondamentali della tecnica dello swapping identificandone la funzione ed i punti di debolezza.

    Quesito A.4.3 25/11/09

    Quali sono le componenti del tempo di accesso a disco? A seguito di quali processi sono generate? Quali sono le strategie hardware generalmente implementate per la loro ottimizzazione? Si motivino le risposte.

    Quesito A.4.4 22/7/10

    Si esprima il tempo di posizionamento della testina, a partire dal cilindro 115, se la successiva operazione di lettura si riferisce al cilindro 182, il tempo medio di seek di 27 msec ed il numero totale dei cilindri del disco pari a 800.

    Quesito A.4.5 10/2/09

    Si richiede di esprimere il tempo di seek della testina, se essa risulta posizionata sul cilindro 105, se la successiva operazione di lettura si riferisce al cilindro 172, il tempo medio di seek di 17 msec ed il numero totale dei cilindri del disco pari a 380.

    Quesito A.4.6 22/7/09

    Determinare, motivando il risultato, il tempo massimo richiesto per accedere ad un settore circolare di un hard disk se il massimo seek time di 11 msec e il disco ruota alla velocit di 3800 giri/minuto.

    Quesito A.4.7 5/5/11

    Determinare, motivando il risultato, il tempo massimo richiesto per accedere ad un settore circolare di un hard disk se il massimo seek time di 8 msec e il disco ruota a 7200 giri/minuto.

    Quesito A.4.8 17/9/08

    Si consideri un file system EXT2 con blocchi da 4kB relativo ad un disco avente seek_time=8 msec e latenza rotazionale pari a 7200 rpm. Si supponga che in un tale dispositivo venga aperto un file i cui blocchi risiedano sulla medesima traccia del rispettivo i-node. Si calcoli, motivando opportunamente, quanto tempo occorre per accedere alla posizione 12000 del file.

    Quesito A.4.9 7/5/08

    Calcolare quanti blocchi saranno stati allocati in totale da un Sistema Operativo UNIX-like dopo aver effettuato 8000 operazioni di scrittura. Per ipotesi si assuma che lallocazione avvenga a blocchi di 16 e che siano previsti tre meccanismi di indirezione. Spiegare brevemente i calcoli.

    Quesito A.4.10 2/9/08

    Si dica, motivando la risposta, quanti blocchi saranno stati fisicamente allocati da un Sistema Operativo UNIX-like dopo aver effettuato 108 operazioni di scrittura? (Si facciano le ipotesi del caso).

    Quesito A.4.11 24/2/09

    Calcolare quanti blocchi saranno stati allocati in totale per un file da un SO UNIX-like dopo aver effettuato 7200 operazioni di scrittura. Indicare le assunzioni fatte.

    Quesito A.4.12 30/4/09

    Calcolare quanti blocchi saranno stati allocati in totale per un file da un SO UNIX-like dopo aver effettuato 15600 operazioni di scrittura. Indicare le assunzioni fatte.

    16 Sistemi Operativi / File

  • Quesito A.4.13 23/9/09

    Quanti saranno i blocchi di indirezione allocati da un SO UNIX-like dopo aver effettuato fisicamente 210 operazioni di scrittura? Si giustifichi la risposta.

    Quesito A.4.14 25/11/09

    Quanti saranno i blocchi di indirezione allocati da un SO UNIX-like dopo aver effettuato fisicamente 1280 operazioni di scrittura? Si giustifichi la risposta.

    Quesito A.4.15 5/5/11

    Calcolare quanti blocchi di indirezione occorrono per allocare in un SO UNIX-like un file che preveda 18256 operazioni di scrittura. Indicare le assunzioni fatte.

    Quesito A.4.16 30/4/10

    Calcolare quanti blocchi saranno stati allocati in totale per un file da un SO UNIX-like dopo aver effettuato 5300 operazioni di scrittura. Indicare le assunzioni fatte.

    Quesito A.4.17 24/2/10

    Si dica, motivando la risposta, quanti blocchi saranno stati fisicamente allocati da un SO UNIX-like dopo aver effettuato 1208 operazioni di scrittura? (Si facciano le ipotesi necessarie).

    Quesito A.4.18 6/9/10

    Quanti saranno i blocchi di indirezione allocati da un SO UNIX-like dopo aver effettuato fisicamente 1450 operazioni di scrittura? Si giustifichi la risposta.

    Quesito A.4.19 16/2/11

    Quanti saranno i blocchi totali (dati e indirezione) allocati da un SO UNIX-like dopo aver effettuato fisicamente 15600 operazioni di scrittura? Calcolare in particolare quanti blocchi dati saranno stati allocati ma non adoperati. Si giustifichi la risposta.

    Quesito A.4.20 30/11/10, 14/2/13

    Quanti saranno i blocchi totali (dati e indirezione) allocati da un SO UNIX-like dopo aver effettuato fisicamente 156 operazioni di scrittura? Si giustifichi la risposta.

    Quesito A.4.21 23/9/10

    Quanti saranno i blocchi totali (dati e indirezione) allocati da un SO UNIX-like dopo aver effettuato fisicamente 22600 operazioni di scrittura? Si giustifichi la risposta.

    Quesito A.4.22 27/9/12

    Calcolare quanti blocchi totali (dati e servizio) saranno stati allocati per un file da un S.O. UNIX-like dopo aver effettuato 16520 operazioni di scrittura. Indicare le assunzioni fatte.

    Quesito A.4.23 12/9/12

    Calcolare quanti blocchi totali (dati e servizio) saranno stati allocati per un file da un S.O. UNIX-like dopo aver effettuato 12597 operazioni di scrittura. Indicare le assunzioni fatte.

    Quesito A.4.24 12/7/12

    Calcolare quanti blocchi saranno stati allocati in totale per un file da un SO UNIX-like dopo aver effettuato 28480 operazioni di scrittura. Indicare le assunzioni fatte.

    Quesito A.4.25 12/7/12

    Spiegare in dettaglio cosa YAFFS, quali prerogative possiede e quali sono le sue caratteristiche principali.

    Sistemi Operativi / File 17

  • A.5 Disk scheduling

    Quesito A.5.1 8/7/09

    Si disegni la struttura di un disco rigido commerciale chiarendo a cosa fanno riferimento le componenti di indirizzamento fondamentali.

    Quesito A.5.2

    Quali sono le componenti del tempo di accesso a disco? Quale di esse tende ad essere dominante? pi conveniente effettuare pochi trasferimenti di blocchi di grosse dimensioni oppure molti trasferimenti di blocchi piccoli? Si motivino le risposte.

    Quesito A.5.3 26/2/08

    Si supponga che sia stata effettuato un I/O del blocco (CYL=12;TRK=6;SEC=20) di un disco. Scrivere lespressione e calcolare il valore del tempo medio richiesto dallI/O del blocco (CYL=10; TRK=10; SEC=20) se il tempo di spostamento delle testine di 0,1 msec/cyl e la velocit di rotazione pari a 7200 giri/minuto.

    Quesito A.5.4 2/9/08

    Si supponga che le testine di un disco fisso siano posizionate sul cilindro 80. Scrivere lespressione del tempo medio per la lettura del blocco B (CYL=65, TRK=8, SEC=12) ipotizzando che il seek time del disco sia di 0,1 msec/cyl e la velocit di rotazione 3200 rpm. Quantificarne il valore nel caso in esame.

    Quesito A.5.5 12/02/08

    Sia dato un disco con velocit di seek di 2 tracce/ms e che impiega 7ms a lettura/scrittura. Sia data la seguente sequenza di richieste t= 0 ms, traccia 1 t= 5 ms, traccia 20 t=10 ms, traccia 5 t=15 ms, traccia 5 t=20 ms, traccia 4 t=25 ms, traccia 10 t=30 ms, traccia 1

    Si mostri il percorso delle testine e si calcoli il tempo necessario per completare tutte le richieste nel caso si utilizzi lalgoritmo C-SCAN.

    Quesito A.5.6 30/4/09

    Si consideri un HD, con richiesta in corso di servizio al cilindro 84, ultima richiesta precedentemente servita al cilindro 65 e con la seguente coda di richieste:

    140, 37, 12, 95, 180, 77, 12, 89 Indicare sequenza e spostamento totale della testina per una schedulazione con algoritmo dell'ascensore (SCAN) e algoritmo dellascensore unidirezionale (C-SCAN) sapendo che il disco conta 256 cilindri totali.

    SCAN:

    C-SCAN:

    Quesito A.5.7 24/2/10

    Si consideri un disco, con richiesta in corso di servizio al cilindro 42, ultima richiesta precedentemente servita al cilindro 55 e con la seguente coda di richieste:

    14, 37, 12, 15, 180, 77, 12, 89

    18 Sistemi Operativi / Disk scheduling

  • Indicare sequenza e spostamento totale della testina per una schedulazione con algoritmo dell'ascensore (SCAN) e algoritmo dellascensore unidirezionale (C-SCAN) sapendo che il disco conta 256 cilindri totali.

    SCAN:

    C-SCAN:

    Quesito A.5.8 21/11/08

    Ipotizzando un algoritmo di disk scheduling di tipo SSTF ascendente, supponendo che le testine siano posizionate sul cilindro 17 e che si abbia la seguente coda di richieste:

    12, 56, 96, 102, 71, 4, 59, 27 si determini la successione di servizio delle richieste e si stabilisca il tempo di seek complessivo sapendo che il suo valore minimo di 0,1 msec.

    Quesito A.5.9 16/2/11

    Ipotizzando un algoritmo di disk scheduling di tipo SSTF ascendente (testine posizionate sul cilindro 7) si determini la successione di servizio delle richieste seguenti e si stabilisca il tempo di seek complessivo sapendo che il suo valore unitario di 0,1 msec:

    2, 96, 6, 102, 71, 14, 59, 97

    Quesito A.5.10 22/7/08

    Si supponga che la testina di un HD con 250 cilindri (0..249) stia servendo una richiesta al cilindro 162 dopo una al cilindro 110. La coda di richieste in ordine darrivo : 78, 39, 83, 169, 86, 142, 94, 167, 122. Ad esse si aggiungono, quando ne sono state servite 4, le richieste per i cilindri 13 e 120. Qual il numero totale di spostamenti della testina, a partire dal cilindro 162, adoperando lalgoritmo di scheduling noto come circular scanning?

    Quesito A.5.11 24/2/09

    Si supponga che la testina di un disco rigido con 180 cilindri (0..179) stia servendo una richiesta sul cilindro 123. La coda delle richieste in ordine darrivo la seguente:

    76, 57, 11, 167, 104, 120, 102, 75, 135

    In aggiunta a tali richieste, due nuove richieste per i cilindri 8 e 110 arrivano quando 4 delle richieste indicate sono state servite. Quale sar la successione di servizio delle richieste e lo spostamento totale se lalgoritmo di scheduling SSTF?

    Quesito A.5.12 9/9/09

    Si supponga che la testina di un HD con 150 cilindri (0..149) sia al cilindro 62 provenendo dal 10. La coda di richieste : 58, 37, 73, 84, 122, 94, 122. A queste si aggiungono, quando ne sono state servite 2, le richieste per i cilindri 13 e 120. Qual lo spostamento totale della testina se lalgoritmo di scheduling SSTF?

    Quesito A.5.13 6/9/10

    Si supponga che la testina di un HD con 250 cilindri (0..249) sia al cilindro 162 provenendo dal 110. La coda di richieste : 158, 127, 173, 184, 22, 194, 222. A queste si aggiungono, quando ne sono state servite 4, le richieste per i cilindri 113 e 220. Qual lo spostamento totale della testina se lalgoritmo di scheduling C-SCAN?

    Quesito A.5.14 12/7/12

    Si consideri un HD, con richiesta in corso di servizio al cilindro 84, ultima richiesta precedentemente servita al cilindro 65 e con la seguente coda di richieste:

    184, 137, 112, 95, 80, 17, 12, 89, 12, 89

    Sistemi Operativi / Disk scheduling 19

  • Indicare sequenza e spostamento totale della testina per una schedulazione con algoritmo dell'ascensore (SCAN) e algoritmo dellascensore unidirezionale (C-SCAN) sapendo che il disco conta 256 cilindri totali.

    SCAN:

    C-SCAN:

    Quesito A.5.15 12/9/12

    Si consideri un HD, con richiesta in corso di servizio al cilindro 84, ultima richiesta precedentemente servita al cilindro 65 e con la seguente coda di richieste:

    184, 137, 112, 95, 80, 17, 12, 89, 12, 89 Indicare sequenza e spostamento totale della testina per una schedulazione con algoritmo LOOK e C-LOOK sapendo che il disco conta 256 cilindri totali.

    LOOK:

    C-LOOK:

    A.6 Interrupt

    Quesito A.6.1 24/2/10

    Spiegare la struttura e descrivere le funzionalit dell'interrupt vector.

    Quesito A.6.2 30/4/10

    Spiegare funzionalit e modalit operative dellinterrupt handler del Sistema Operativo.

    Quesito A.6.3 30/4/10

    Si chiariscano brevemente i vantaggi derivanti da una gestione interrupt-driven dell I/O.

    Quesito A.6.4 10/2/09

    Si descriva brevemente il fenomeno del busy waiting nei semafori spiegando in che modo possibile risolverlo.

    Quesito A.6.5 22/7/09, 30/11/10, 14/2/13

    Si dica in cosa consiste il fenomeno del busy waiting e come possibile superarlo. Si giustifichi con chiarezza la risposta.

    Quesito A.6.6 30/4/09

    Indicare quali delle seguenti affermazioni risultano vere e quali false motivando brevemente la risposta:

    Un interrupt pu, per definizione, determinarsi solo a seguito di un evento hardware V F

    La Device Status Table non memorizza molteplici richieste di I/O relative ad un dispositivo V F V F

    Il DMA usato solo per dispositivi di I/O ad alta velocit V F

    Quesito A.6.7 28/2/13

    Si schematizzi mediante un diagramma a blocchi, che evidenzi la sequenza delle operazioni e delle componenti in gioco, il meccanismo di gestione delle interruzioni in un sistema operativo general purpose.

    20 Sistemi Operativi / Interrupt

  • Quesito A.6.8 7/5/08

    Si consideri un sistema con un controller di I/O interrupt-driven, senza DMA e basato su bus PCI a 66,6 MHz). Ipotizzando che la gestione di ogni interrupt richiede 2 sec mentre ciascun accesso in RAM (a parole di 4 byte) richiede 10 nsec, si calcoli il tempo per gestire un input di 4 kB.

    Quesito A.6.9 30/11/10

    Si consideri un sistema con un controller di I/O interrupt-driven, senza DMA e basato su bus PCI a 133 MHz). Ipotizzando che la gestione di ogni interrupt richiede 4 sec mentre ciascun accesso in RAM (a parole di 4 byte) richiede 20 nsec, si calcoli il tempo per gestire un input di 400 kB.

    Quesito A.6.10 30/11/10, 14/2/13

    Si consideri un sistema con un controller di I/O interrupt-driven, senza DMA e basato su bus PCI a 133 MHz). Ipotizzando che la gestione di ogni interrupt richiede 4 sec mentre ciascun accesso in RAM (a parole di 4 byte) richiede 20 nsec, si calcoli il tempo per gestire un input di 400 kB.

    Sistemi Operativi / Interrupt 21

  • A.7 Sezioni critiche

    Quesito A.7.1 17/9/08, 3/2/12

    Si enuncino e spieghino le condizioni necessarie per il verificarsi di un deadlock.

    Quesito A.7.2 12/2/08

    Qual la condizione indispensabile perch sia possibile realizzare un semaforo?

    Quesito A.7.3 26/2/08

    Dati i processi P1, P2 e P3, essi devono rispettivamente produrre un dato x, calcolare y = g(x) e stampare y. Poich x, y, z sono condivise, i tre processi devono essere opportunamente sincronizzati in modo che g(x) venga calcolata dopo che x stata prodotta e che y venga stampata dopo che stata calcolata. Aggiungere le necessarie sincronizzazioni al codice dei tre processi utilizzando i semafori. P1 { P2 { P3 { while(true) { while(true) { while(true) {

    y = g(x) print(y) } } } } } }

    Quesito A.7.4 7/5/08

    Data la seguente situazione di corrispondenza Processo/Risorsa allinterno di un generico sistema:

    Processo/Risorsa A B C D P1 X XP2 X XP5 X X X

    si determini il grafo di allocazione delle risorse (per ogni risorsa sono disponibili tre esemplari). Si stabilisca se sussistono le condizioni per un deadlock sapendo che i processi richiedono le risorse nel modo seguente:

    Processo/Risorsa A B C D P1 XP3 XP4 X XP5 X

    Quesito A.7.5 30/4/09

    Data la seguente situazione di corrispondenza Processo/Risorsa allinterno di un generico sistema:

    Processo/Risorsa A B C D P1 X X XP2 X X XP5 X X X X

    si determini il grafo di allocazione delle risorse (per ogni risorsa sono disponibili tre esemplari). Si stabilisca se sussistono le condizioni per un deadlock sapendo che i processi richiedono le risorse nel modo seguente:

    Processo/Risorsa A B C D P1P3 XP4 XP5 X

    22 Sistemi Operativi / Sezioni critiche

  • Quesito A.7.6 23/9/10

    Data la seguente situazione di allocazione delle risorse di una macchina ai relativi processi:

    Processo/Risorsa A B C D P1 X X XP2 X XP4 X X

    si determini il grafo di allocazione e si stabilisca in via preliminare se sussistono le condizioni per il verificarsi di un deadlock a seguito delle richieste riportate qui di seguito:

    Processo/Risorsa A B C D P1 XP2 X XP4 XP5 X X

    Quesito A.7.7 12/2/08

    Si consideri un sistema che si trovi nel seguente stato:

    Allocation Max Available

    A B C D A B C D A B C D

    P1 0 0 1 1 0 0 3 2 1 2 2 1P2 1 2 2 3 2 3 4 5P3 1 0 0 0 1 1 5 0P4 0 0 1 2 0 1 1 4P5 0 2 2 2 0 3 5 2Stabilire se lo stato ammissibile motivando la risposta.

    Quesito A.7.8 26/2/08

    Si consideri un sistema che si trovi nel seguente stato: Allocation Max Available

    A B C D A B C D A B C D

    P1 0 0 1 1 0 0 3 2 1 2 2 1P2 1 2 2 3 2 3 4 4P3 1 0 2 0 1 1 5 0P4 0 0 1 2 0 1 1 5P5 0 2 1 2 0 3 5 2Stabilire se lo stato sicuro motivando la risposta.

    Quesito A.7.9

    Si consideri un sistema che si trovi nel seguente stato: Allocation Max Available

    A B C D A B C D A B C D

    P1 1 0 1 2 3 2 3 2 1 2 1 3P2 1 2 2 3 2 3 4 5P3 1 0 3 1 1 0 4 1P4 0 2 1 1 0 2 1 4P5 0 2 3 1 0 3 5 2Stabilire se lo stato sicuro motivando la risposta.

    Sistemi Operativi / Sezioni critiche 23

  • Quesito A.7.10 8/7/09

    Si consideri un sistema che si trovi nel seguente stato:

    Allocation Max Available

    A B C D A B C D A B C D P1 0 1 2 2 1 2 5 3 1 2 2 0P2 0 1 2 1 0 1 2 3P3 1 0 2 0 1 1 2 0P4 2 0 1 2 2 1 1 2P5 0 2 1 2 0 2 1 2Stabilire se esso sicuro motivando la risposta.

    Quesito A.7.11 23/9/09

    Si consideri un sistema che si trovi nello stato descritto qui di seguito:

    Allocation Max Available

    A B C D A B C D A B C D P1 0 0 1 1 0 0 1 2 1 5 3 1P2 0 0 3 4 2 3 4 6P3 1 0 0 0 2 7 5 1P4 4 3 3 4 2 6 5 6P5 0 6 3 2 0 6 5 2Il sistema in uno stato ammissibile? Perch? Il sistema in uno stato sicuro? Perch?

    Quesito A.7.12 25/11/09

    Si consideri un sistema che si trovi nello stato descritto qui di seguito:

    Allocation Max Available

    A B C D A B C D A B C D P1 0 0 1 1 0 0 1 2 1 5 3 1P2 0 0 3 4 2 3 4 6P3 1 0 0 0 2 6 5 1P4 3 3 3 4 5 5 4 4P5 0 5 3 2 0 6 5 2Il sistema in uno stato ammissibile? Perch? Il sistema in uno stato sicuro? Perch?

    Quesito A.7.13 30/11/12

    Si consideri un sistema che si trovi nello stato descritto qui di seguito:

    Allocation Max Available

    A B C D A B C D A B C D P1 0 0 2 2 0 0 2 3 1 5 3 1P2 0 0 4 5 3 4 5 7P3 2 1 1 1 3 7 6 2P4 4 4 4 5 6 6 5 5P5 1 6 4 3 1 7 4 3Il sistema in uno stato ammissibile? Perch? Il sistema in uno stato sicuro? Perch?

    Quesito A.7.14 30/4/10

    Si consideri un sistema che si trovi nel seguente stato:

    Allocation Max Available

    A B C D A B C D A B C D

    24 Sistemi Operativi / Sezioni critiche

  • P1 2 1 2 3 4 3 4 3 1 2 1 3P2 2 3 3 4 3 4 5 6P3 2 1 4 1 2 1 4 1P4 0 2 1 1 0 2 1 4P5 1 3 4 2 1 4 6 3Stabilire se lo stato sicuro motivando la risposta.

    Quesito A.7.15

    Si consideri un sistema che si trovi nel seguente stato: Allocation Max Available

    A B C D A B C D A B C DP1 2 0 0 2 3 2 3 2 1 2 0 3P2 0 2 1 3 2 3 4 5P3 1 0 3 1 1 3 4 1P4 0 2 1 1 0 2 1 1P5 0 2 3 1 0 3 4 1Stabilire se lo stato sicuro motivando la risposta.

    Quesito A.7.16 28/2/12

    Si consideri un sistema che si trovi nel seguente stato:

    Allocation Max Available

    A B C D A B C D A B C DP1 1 0 0 3 4 3 4 1 1 2 0 3P2 0 2 2 4 3 4 5 6P3 1 0 3 1 2 4 5 1P4 0 2 1 1 1 3 2 2P5 0 1 2 1 1 4 5 2Stabilire se lo stato sicuro motivando la risposta nellipotesi che il processo P4 inoltri al sistema una richiesta di tipo [0 1 0 2].

    Quesito A.7.17 9/5/12

    Si consideri un sistema che si trovi nel seguente stato: Allocation Max Available

    A B C D A B C D A B C DP1 1 0 0 3 5 4 5 2 1 2 0 2P2 0 2 2 4 3 5 6 7P3 1 0 3 1 2 4 5 1P4 0 2 1 1 1 3 2 2P5 0 1 2 1 0 1 2 1Stabilire se lo stato sicuro motivando la risposta nellipotesi che il processo P4 inoltri al sistema una richiesta di tipo [0 1 1 2].

    Quesito A.7.18 28/2/12

    Si schematizzi il flow chart di un semaforo contatore posto a controllo di concorrenza su di una risorsa costituita da M esemplari.

    Quesito A.7.19 9/5/12

    Si schematizzi il flow chart di un semaforo binario posto a controllo di concorrenza su di una sezione critica.

    Sistemi Operativi / Sezioni critiche 25

  • A.8 Progetti12 punti per quesito

    Quesito A.8.1 24/2/09

    Si progetti, mediante flow-chart una procedura che realizzi lalgoritmo di aggiornamento della Free Hole Table al momento della allocazione di un processo in memoria.

    In particolare si vuole che la procedura, utilizzando la Free Hole Table (FHT) intesa come vettore di strutture n-dimensionale (variabile globale), restituisca aggiornata la tabella degli spazi liberi nota la dimensione DIM_PROC del processo da allocare (rappresentata come valore intero). La procedura deve:

    verificare in via preliminare se il processo allocabile;

    in caso affermativo procedere al caricamento determinando la minore frammentazione possibile;

    aggiornare FHT.

    Si supponga che ciascun elemento del vettore FHT contenga:

    lindirizzo iniziale del free hole INIZIO_HOLE (valore intero);

    lindirizzo finale del free hole FINE_HOLE (valore intero).

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.2 10/2/09

    Si progetti, mediante flow-chart una procedura che realizzi lalgoritmo di aggiornamento della Free Hole Table al momento della disallocazione di un processo in memoria.

    In particolare si vuole che la procedura, utilizzando la Free Hole Table (FHT) intesa come vettore di strutture n-dimensionale (variabile globale), restituisca aggiornata la tabella degli spazi liberi noti gli indirizzi iniziale e finale INIZIO_PROC e FINE_PROC del processo completato (entrambi rappresentati come valori interi).

    Si supponga che ciascun elemento del vettore FHT contenga:

    verificare in via preliminare se il processo allocabile;

    in caso affermativo procedere al caricamento determinando la minore frammentazione possibile;

    aggiornare FHT.

    Si supponga che ciascun elemento del vettore FHT contenga:

    lindirizzo iniziale del free hole INIZIO_HOLE (valore intero);

    lindirizzo finale del free hole FINE_HOLE (valore intero).

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.3 17/9/08

    Si progetti mediante flow-chart una procedura che simuli lassegnazione dei frame di memoria ai processi secondo lalgoritmo worst fit. Si ipotizzi che alla procedura suddetta venga passato lidentificativo di ciascun processo da allocare PID (valore intero) e la sua dimensione in byte DIM (valore intero); mentre in memoria sia presente come variabile globale il vettore dei frame FRAME_VCT inteso come array di strutture contenente i seguenti elementi:

    ID, relativo al PID del processo eventualmente occupante un frame (valore intero);

    D, relativo alla dimensione in byte del frame (valore intero);

    BUSY, indicante se il frame o meno occupato (valore booleano).

    26 Sistemi Operativi / Progetti

  • La procedura deve accettare in input i dati di un processo (in termini di rispettiva dimensione e identificativo) e provvedere a determinare, se presente, un frame idoneo ad ospitare il processo stesso in base al criterio del worst fit provvedendo allallocazione.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.4 2/9/08

    Si progetti mediante flow-chart una procedura che simuli la regolamentazione dellaccesso alla sezione critica da parte di N thread secondo lalgoritmo di Bakery. Si ipotizzi che alla procedura suddetta venga passato lidentificativo di ciascun thread T_ID (valore intero), il relativo token TK (valore intero), mentre in memoria sia presente come variabile globale il vettore dei thread che tentino laccesso alla propria sezione critica THREAD_VCT inteso come array di strutture contenente i seguenti elementi:

    ID, relativo al thread identifier (valore intero);

    T, relativo al rispettivo token (valore intero).

    La procedura deve accettare in input i dati di un thread (in termini di rispettivo token e identificativo) e provvedere ad inserirli opportunamente nel vettore THREAD_VCT ordinato secondo lalgoritmo di Bakery.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.5 22/7/08

    Si progetti mediante flow-chart una procedura che simuli il funzionamento di un algoritmo per la traduzione degli indirizzi in una memoria paginata con pagine da 32 byte. Si ipotizzi che alla procedura di traduzione venga passato il numero di pagina P (valore intero), lo spiazzamento D (valore intero), mentre la tabella delle pagine PAGE_TABLE sia un array di strutture (variabile globale) con i seguenti elementi:

    PAGE, relativo al numero di pagina (valore intero);

    FRAME, relativo al frame di memoria centrale che contiene una data pagina (valore intero).

    La procedura deve accettare in input lindirizzo logico (in termini di coppia ) e calcolarne il corrispondente indirizzo fisico adoperando la tabella delle pagine.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.6 8/7/08

    Si progetti mediante flow-chart una procedura che simuli il funzionamento di un algoritmo di schedulazione della CPU. Si ipotizzi che alla procedura di schedulazione venga passato un vettore di strutture PROC, di N elementi, rappresentativo dei processi in contesa per lutilizzo della CPU, contenente per ciascun elemento:

    PID, con ovvio significato;

    CPU_BURST, relativo al successivo picco di CPU in msec (valore intero);

    PRIORITY, relativo alla priorit statica del processo (valore intero compreso tra 0 e 9) .

    La procedura deve accettare in input il vettore di cui sopra e:

    ordinarlo in via preliminare secondo lalgoritmo SJF;

    a parit di CPU burst applicare il criterio a priorit.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Sistemi Operativi / Progetti 27

  • Quesito A.8.7 7/5/08

    Si progetti mediante flow-chart una procedura che simuli il funzionamento di un algoritmo di schedulazione a merito strutturato nel modo seguente. Si ipotizzi che il valore del time slice sia fissato e contenuto nella variabile globale TS.

    Si supponga che alla procedura venga passato:

    un vettore di strutture PROC, rappresentativo dei processi in contesa per lutilizzo della CPU, contenente per ciascun elemento:

    PID, con ovvio significato

    C_TIME, relativo al tempo di computazione residuo in msec (valore intero)

    SCORE, relativo al merito calcolato in base alla percentuale di utilizzo del time slice (valore intero)

    Inizialmente per ciascun elemento del vettore si ha SCORE=101mentre gli elementi non usati hanno PID=-1. La procedura deve accettare in input il vettore di cui sopra e:

    determinare per ciascun processo in esso contenuto il relativo merito

    aggiornare il C_TIME

    ordinare la coda dei processi in attesa in base al merito crescente

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.8 26/2/08

    Si progetti, mediante flow-chart una procedura che simuli la sostituzione FIFO dei frame di una memoria virtuale basata su demand-paging.

    In particolare si suppone che alla procedura venga passato:

    il numero di pagina P richiesta;

    il PID del processo che effettui la richiesta;

    il vettore di strutture PAGE, costituito da N elementi, contenente per ciascuna delle pagine presenti in memoria:

    il numero di pagina id_P;

    lidentificativo del processo cui associata la pagina id_Proc.

    Si precisa che:

    1. se un frame - rappresentato da un elemento del vettore - libero, il valore dellidentificativo del processo posto a -1;

    2. le pagine pi recentemente caricate finiscono allinterno del primo elemento disponibile in coda al vettore.

    La procedura deve aggiornare il contenuto del vettore PAGE secondo lalgoritmo FIFO.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.9 12/2/08

    Si progetti, mediante flow-chart una procedura che realizzi, per un generico gestore della memoria a partizionamento statico, lalgoritmo di selezione della partizione. Questo dovr ottimizzare lassegnazione della partizione determinando la minore frammentazione interna.

    La procedura deve:

    1. modificare la tabella HOLE delle N partizioni (gi in memoria) contenente per ciascuna entry il numero n della partizione, lo status bit st_bit, la relativa dimensione dim_part oltre che il pid e la dimensione dim_proc del processo da mandare in esecuzione,

    28 Sistemi Operativi / Progetti

  • 2. aggiornare la tabella restituendo il numero della partizione che determina la minore frammentazione interna e lentit della frammentazione determinata.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.10 24/2/10, 28/2/13

    Si progetti, mediante flow-chart strutturato, una procedura che, al termine di un time slice Ts, aggiorni la coda di ready ordinando di conseguenza il vettore dei Process Control Block secondo lalgoritmo Round Robin modificato.

    Si assuma che alla procedura suddetta vengano passati come parametri il vettore dei Process Control Block sotto forma di array di strutture PCB di dimensione N, il cui generico elemento sar costituito dai seguenti campi:

    PID TOT ELA F

    ove PID lidentificatore di processo, TOT rappresenta la durata complessiva dello stesso, ELA la quota parte di computazione gi effettuata e F un flag che denoti i processi gi completati.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.11 14/2/13, 30/11/12

    Si progetti mediante flow-chart strutturato una procedura che simuli il calcolo dellindirizzo fisico in una memoria paginata in presenza di TLB. Si ipotizzi che alla procedura suddetta venga passato un indirizzo logico in termini di coppia (Page, Displacement) e che la medesima procedura debba procedere al calcolo del corrispondente indirizzo fisico PHY_ADD (valore intero) sapendo che la memoria principale suddivisa in frame di ampiezza F. Per il calcolo ci si dovr giovare delle due variabili globali seguenti: il Translation Look-aside Buffer TLB inteso come array di strutture contenente i seguenti elementi:

    PAGE, relativo alla pagina corrispondente a un dato frame (valore intero);

    FRAME, relativo al numero del frame corrispondente ad una data pagina (valore intero).

    e la Page Table PT, intesa come array di strutture contenente i seguenti elementi:

    PID, relativo al processo cui appartiene un dato frame (valore intero);

    BUSY, indicante se il frame o meno occupato (valore booleano);

    PAGE, relativo alla pagina corrispondente a un dato frame (valore intero);

    FRAME, relativo al numero del frame corrispondente ad una data pagina (valore intero).

    Si chiede di verificare i casi anomali e descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.12 27/9/12

    Si progetti mediante flow-chart una procedura che simuli lalgoritmo victim selection nella allocazione di un processo in una memoria piena tenendo conto della localit spaziale. Si ipotizzi cio che alla procedura stessa venga passato lidentificativo di ciascun processo da allocare PID (valore intero) e la sua dimensione in byte DIM (valore intero); mentre in memoria sia presente come variabile globale il vettore dei frame FRAME inteso come array di strutture contenente i seguenti elementi:

    ID, relativo al PID del processo eventualmente occupante un frame (valore intero);

    D, relativo alla dimensione in byte del frame (valore intero);

    LOC, relativo allindirizzo in memoria principale (valore intero);

    BUSY, indicante se il frame o meno occupato (valore booleano);

    LAST, che marca lultimo processo referenziato (valore booleano).

    Sistemi Operativi / Progetti 29

  • La procedura deve accettare in input i dati di un processo (in termini di rispettiva dimensione e identificativo) e provvedere ad applicare lalgoritmo di victim selection tenendo conto della localit spaziale.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.13 12/7/12

    Si progetti mediante flow-chart una procedura che simuli lassegnazione dei frame di memoria ai processi secondo lalgoritmo first fit tenendo conto della localit temporale. Si ipotizzi cio che alla procedura stessa venga passato lidentificativo di ciascun processo da allocare PID (valore intero) e la sua dimensione in byte DIM (valore intero); mentre in memoria sia presente come variabile globale il vettore dei frame FRAME inteso come array di strutture contenente i seguenti elementi:

    ID, relativo al PID del processo eventualmente occupante un frame (valore intero);

    D, relativo alla dimensione in byte del frame (valore intero);

    TIME, relativo allistante di ultima referenziazione (valore intero);

    BUSY, indicante se il frame o meno occupato (valore booleano).

    La procedura deve accettare in input i dati di un processo (in termini di rispettiva dimensione e identificativo) e provvedere a determinare, se disponibile, un frame idoneo ad ospitare il processo stesso. In caso contrario si dovr applicare lalgoritmo di victim selection tenendo conto della localit temporale.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.14 12/9/12

    Si progetti mediante flow-chart una procedura che simuli lassegnazione dei frame di memoria ai processi secondo lalgoritmo worst fit tenendo conto della localit spaziale. Si ipotizzi cio che alla procedura stessa venga passato lidentificativo di ciascun processo da allocare PID (valore intero) e la sua dimensione in byte DIM (valore intero); mentre in memoria sia presente come variabile globale il vettore dei frame FRAME inteso come array di strutture contenente i seguenti elementi:

    ID, relativo al PID del processo eventualmente occupante un frame (valore intero);

    D, relativo alla dimensione in byte del frame (valore intero);

    LOC, relativo allindirizzo in memoria principale (valore intero);

    BUSY, indicante se il frame o meno occupato (valore booleano);

    LAST, che marca lultimo processo referenziato (valore booleano).

    La procedura deve accettare in input i dati di un processo (in termini di rispettiva dimensione e identificativo) e provvedere a determinare, se disponibile, un frame idoneo ad ospitarlo. In caso contrario si dovr applicare lalgoritmo di victim selection tenendo conto della localit spaziale.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.15 9/5/12

    Si progetti mediante flow-chart una procedura per lo swap-in delle pagine in una memoria virtuale paginata. Si ipotizzi che alla procedura di traduzione venga passato il numero di pagina P (valore intero), mentre la tabella delle pagine PAGE_TABLE sia un array di strutture n-dimensionale (variabile globale) con i seguenti elementi:

    PAGE, relativo al numero di pagina (valore intero positivo);

    FRAME, relativo al frame di memoria centrale che contiene una data pagina (valore intero);

    BUSY/FREE, relativo allo stato di occupazione del frame (valore booleano).

    30 Sistemi Operativi / Progetti

  • La procedura deve accettare in input lindirizzo logico di pagina P, verificarne la mappatura eventuale in un frame in memoria adoperando la tabella delle pagine ed in caso negativo effettuare lo swap-in. Si ipotizzi gi disponibile la page table e si provveda a gestire la casistica di memoria piena semplicemente sovrascrivendo lultimo frame di memoria.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.16 28/2/12

    Si progetti mediante flow-chart una procedura per la schedulazione EDF di un sistema hard real-time. Si ipotizzi che alla procedura di scheduling venga passato il PID (valore intero) del processo da schedulare e la sua deadline D (valore intero), mentre la lista dei processi da eseguire READY_QUEUE sia un array di strutture n-dimensionale (variabile globale) con i seguenti elementi:

    PROC, relativo al PID di ciascun processo (valore intero positivo);

    PRIORITY, relativo alla priorit di esecuzione (valore reale).

    La procedura deve accettare in input pid e deadline di ciascun processo in arrivo e procedere ad una rischedulazione della coda di ready. Si ipotizzi gi caricata la lista dei processi da eseguire e si immagini che valori di PROC negativi corrispondano a locazioni disponibili.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.17 14/2/12

    Si progetti mediante flow-chart una procedura per la sostituzione LIFO delle pagine in una memoria virtuale paginata. Si ipotizzi che alla procedura di traduzione venga passato il numero di pagina P (valore intero), mentre la tabella delle pagine PAGE_TABLE sia un array di strutture n-dimensionale (variabile globale) con i seguenti elementi:

    PAGE, relativo al numero di pagina (valore intero positivo);

    FRAME, relativo al frame di memoria centrale che contiene una data pagina (valore intero);

    COUNTER, relativo al riferimento di caricamento in memoria (valore intero).

    La procedura deve accettare in input lindirizzo logico di pagina P, verificarne la mappatura eventuale in un frame in memoria adoperando la tabella delle pagine ed in caso negativo applicare la sostituzione pi opportuna. Si ipotizzi completamente caricata la page table e si immagini che valori di PAGE negativi corrispondano a locazioni disponibili.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.18 5/5/11

    Si progetti mediante flow-chart una procedura per la schedulazione della CPU di tipo Round Robin. Si ipotizzi che alla procedura venga passato ogni 100 msec un vettore di strutture denominato PROC_RR, di N elementi, rappresentativi dei processi di una macchina e contenente per ciascun elemento i seguenti campi:

    PID, con ovvio significato (valore intero);

    COMPLETE, indicante se il processo terminato o meno (valore booleano);

    T_RUN, relativo al tempo di computazione effettivo nella finestra temporale di osservazione (valore intero);

    T_INPUT, relativo allistante di immissione del processo in coda di ready (valore intero).

    La procedura deve accettare in input il vettore di cui sopra e determinare la migliore schedulazione dei processi ancora attivi per la successiva finestra temporale.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Sistemi Operativi / Progetti 31

  • Quesito A.8.19 2/3/11

    Si progetti mediante flow-chart una procedura per la valutazione di un generico algoritmo di schedulazione della CPU. Si ipotizzi che alla procedura di schedulazione venga passato ogni 100 msec un vettore di strutture PROC, di N elementi, rappresentativo dei processi di una macchina, contenente per ciascun elemento:

    PID, con ovvio significato (valore intero);

    COMPLETE, indicante se il processo terminato o meno (valore booleano);

    T_RUN, relativo al tempo di computazione effettivo nella finestra temporale di osservazione (valore intero);

    T_INPUT, relativo allistante di immissione del processo in coda di ready (valore intero);

    T_COMP, relativo allistante di completamento (valore intero);

    T_RESP, relativo allistante in cui si prodotta la prima replica (valore intero) .

    La procedura deve accettare in input il vettore di cui sopra e calcolare i seguenti parametri medi:

    Load average

    Throughput

    Turnaround time

    Tempo di risposta.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.20 16/2/11

    Si progetti mediante flow-chart una procedura che simuli il funzionamento di un algoritmo di schedulazione della CPU a priorit. Si ipotizzi che alla procedura di schedulazione venga periodicamente passato un vettore di strutture PROC, di N elementi, rappresentativo dei processi in contesa per lutilizzo della CPU, contenente per ciascun elemento:

    PID, con ovvio significato (valore intero);

    TS, relativo al numero di time slice completamente utilizzati (valore intero);

    TT, relativo al numero di time slice totali (valore intero);

    PRIORITY, relativo alla priorit del processo (valore intero compreso tra 0 e 100) .

    La procedura deve accettare in input il vettore di cui sopra e:

    calcolare la priorit di ciascun processo in base alla sua propensione allutilizzo della CPU;

    ordinarlo secondo priorit decrescenti.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.21 30/11/10

    Si progetti mediante flow-chart strutturato, una procedura che realizzi, per un generico gestore della memoria a partizionamento statico, lalgoritmo lallocazione di un processo figlio dopo una fork. Questo dovr ottimizzare lassegnazione della partizione determinando la minore frammentazione interna assumendo che il processo figlio ha un proprio identificativo (pid_child) e si riferisce ad un dato processo padre caratterizzato dallidentificativo pid. Rispetto ad esso replica larea stack, il PCB e larea dati ma non la sezione di codice.

    La procedura deve accettare in input il pid del processo padre e:

    1. modificare la tabella PART delle N partizioni (gi in memoria) contenente per ciascuna entry il numero n della partizione, il pid del processo eventualmente ospitato, lo status bit st_bit e la relativa dimensione per le aree stack, PCB, dati e codice;

    32 Sistemi Operativi / Progetti

  • 2. aggiornare la tabella restituendo il numero della partizione che determina la minore frammentazione interna, se esiste, e lentit della frammentazione determinata;

    3. generare un messaggio di errore in caso di mancata allocazione.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.22 9/6/10

    Si progetti mediante flow-chart una procedura per la traduzione degli indirizzi in una memoria segmentata. Si ipotizzi che alla procedura di traduzione venga passato il numero di segmento S (valore intero), il displacement D (valore intero), mentre la tabella dei segmenti SEGMENT_TABLE sia un array di strutture (variabile globale) con i seguenti elementi:

    SEGMENT, relativo al numero di segmento (valore intero);

    D, relativo alla dimensione del segmento;

    FRAME, relativo allindirizzo di memoria centrale da cui parte un dato segmento (valore intero).

    La procedura deve accettare in input lindirizzo logico (in termini di coppia ), verificarne la validit e calcolarne il corrispondente indirizzo fisico adoperando la tabella dei segmenti.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.23 22/7/10

    Si progetti mediante flow-chart strutturato una procedura che simuli lassegnazione dei frame in memoria secondo il meccanismo di allocazione contigua. Si ipotizzi che alla procedura suddetta venga passato lidentificativo di ciascun processo da allocare PID (valore intero) e la sua dimensione in byte DIM (valore intero); mentre in memoria sia presente come variabile globale il vettore FRAME inteso come array N-dimensionale di strutture contenente i seguenti elementi:

    ID, relativo al PID del processo allocato (valore intero);

    D, relativo alla dimensione in byte del frame (valore intero);

    B, indicante se il frame o meno occupato (valore booleano).

    La procedura deve accettare in input i dati di un processo (in termini di rispettiva dimensione e identificativo) e provvedere a determinare, se presente, un frame idoneo ad ospitare il processo stesso. Successivamente deve effettuare (se possibile) lallocazione aggiornando la situazione degli hole. A tale scopo si ipotizzi che le ultime N/2 posizioni dell array siano non valorizzate.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.24 30/4/10

    Si progetti mediante flow-chart strutturato una procedura che simuli lassegnazione dei frame in memoria secondo lalgoritmo first fit. Si ipotizzi che alla procedura suddetta venga passato lidentificativo di ciascun processo da allocare PID (valore intero) e la sua dimensione in byte DIM (valore intero); mentre in memoria sia presente come variabile globale il vettore dei frame FRAME inteso come array N-dimensionale di strutture contenente i seguenti elementi:

    ID, relativo al PID del processo da allocare (valore intero);

    D, relativo alla dimensione in byte del frame (valore intero);

    B, indicante se il frame o meno occupato (valore booleano).

    La procedura deve accettare in input i dati di un processo (in termini di rispettiva dimensione e identificativo) e provvedere a determinare, se presente, un frame idoneo ad ospitare il processo stesso in base al criterio suddetto provvedendo allallocazione. Infine in un vettore di interi a parte denominato FRAG dovr essere determinata lentit della frammentazione prodotta dallallocazione.

    Sistemi Operativi / Progetti 33

  • Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.25 8/2/10

    Si progetti mediante flow-chart una procedura per la sostituzione LIFO delle pagine in una memoria virtuale paginata. Si ipotizzi che alla procedura di traduzione venga passato il numero di pagina P (valore intero), mentre la tabella delle pagine PAGE_TABLE sia un array di strutture n-dimensionale (variabile globale) con i seguenti elementi:

    PAGE, relativo al numero di pagina (valore intero);

    FRAME, relativo al frame di memoria centrale che contiene una data pagina (valore intero).

    La procedura deve accettare in input lindirizzo logico di pagina P, verificarne la mappatura eventuale in un frame in memoria adoperando la tabella delle pagine ed in caso negativo applicare la sostituzione pi opportuna. Si ipotizzi completamente satura la page table e si immaginino caricate a partire dalle prime posizioni dellarray le pagine pi recentemente referenziate.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.26 25/11/09

    Si progetti mediante flow-chart una procedura che per la traduzione degli indirizzi in una memoria paginata con pagine da 64 byte. Si ipotizzi che alla procedura di traduzione venga passato il numero di pagina P (valore intero), il displacement D (valore intero), mentre la tabella delle pagine PAGE_TABLE sia un array di strutture (variabile globale) con i seguenti elementi:

    PAGE, relativo al numero di pagina (valore intero);

    FRAME, relativo al frame di memoria centrale che contiene una data pagina (valore intero).

    La procedura deve accettare in input lindirizzo logico (in termini di coppia ), verificarne la validit e calcolarne il corrispondente indirizzo fisico adoperando la tabella delle pagine.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.27 23/9/09

    Si progetti mediante flow-chart una procedura che simuli lassegnazione dei frame di memoria ai processi secondo lalgoritmo first fit. Si ipotizzi che alla procedura suddetta venga passato lidentificativo di ciascun processo da allocare PID (valore intero) e la sua dimensione in byte DIM (valore intero); mentre in memoria sia presente come variabile globale il vettore dei frame FRAME inteso come array di strutture contenente i seguenti elementi:

    ID, relativo al PID del processo eventualmente occupante un frame (valore intero);

    D, relativo alla dimensione in byte del frame (valore intero);

    BUSY, indicante se il frame o meno occupato (valore booleano).

    La procedura deve accettare in input i dati di un processo (in termini di rispettiva dimensione e identificativo) e provvedere a determinare, se presente, un frame idoneo ad ospitare il processo stesso in base al criterio suddetto provvedendo allallocazione.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.28 21/11/08

    Si progetti mediante flow-chart una procedura che simuli in una comunicazione interprocesso indiretta il ruolo del producer. Si ipotizzi che la procedura utilizzi la mailbox BUFFER intesa come array N-dimensionale di strutture (variabile globale) contenente i seguenti elementi:

    ID, relativo al messaggio (valore intero);

    MESSAGE, relativo al contenuto informativo da scambiare (stringa di 128 caratteri);

    34 Sistemi Operativi / Progetti

  • BUSY, indicante se la posizione nel buffer o meno occupata (valore booleano).

    La procedura deve accettare in input i dati di un messaggio (in termini di rispettivo identificativo e contenuto informativo) e provvedere a collocarlo nella mailbox in modo opportuno ed effettuando tutte le verifiche del caso.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.29 9/9/09

    Si progetti mediante flow-chart una procedura che simuli in una comunicazione interprocesso indiretta il ruolo del consumer. Si ipotizzi che la procedura utilizzi la mailbox BUFFER intesa come array N-dimensionale di strutture (variabile globale) contenente i seguenti elementi:

    ID, relativo al messaggio (valore intero);

    CONTENT, relativo al contenuto informativo da scambiare (stringa di 128 caratteri);

    BUSY, indicante se la posizione nel buffer o meno occupata (valore booleano).

    La procedura deve provvedere a prelevare dalla mailbox il primo messaggio utile in modo opportuno effettuando tutte le verifiche del caso e memorizzarne contenuto ed identificativo in una variabile locale denominata MESSAGE di tipo struttura caratterizzata come le precedenti.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.30 22/7/09

    Si progetti mediante flow-chart una procedura che ordini secondo lalgoritmo SSTF le richieste di accesso ai cilindri di un HD. Alla procedura viene passato il vettore REQ[M] i cui elementi riportano le richieste in ordine cronologico. Si vuole che la procedura ordini le richieste secondo SSTF in un vettore SSTF[M]. Si assuma che la testina sia inizialmente posizionata sul primo elemento del vettore REQ. Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.31 8/7/09

    Si progetti mediante flow-chart una procedura che, al termine di un time slice T, determini il riposizionamento in coda di ready di un processo che ha appena concluso un ciclo di utilizzo della CPU adoperando un criterio FIFO.

    Si assuma che alla procedura suddetta vengano passati come parametri il valore N di capacit della coda e la coda di ready sotto forma di array di strutture READY, il cui generico elemento sar costituito dai seguenti campi:

    PID TOT ELAPSED BUSY

    ove PID indica lidentificatore di processo, TOT il contatore dei time slice attribuiti al processo, ELAPSED quello dei time slice gi utilizzati e BUSY un campo che indichi se la posizione adoperata o meno. Si supponga che il livello di multitasking sia al pi N.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    Quesito A.8.32 30/4/09

    Si progetti, mediante flow-chart una procedura che, al termine di un intervallo statistico dosservazione T, determini, secondo lalgoritmo di merito (o priorit dinamica), le priorit di N processi, ordinando di conseguenza il vettore dei Task Control Block in ordine crescente.

    Si assuma che alla procedura suddetta vengano passati come parametri il valore N e il vettore dei Task Control Block sotto forma di array di strutture TCB, il cui generico elemento sar costituito dai seguenti campi:

    PID TOT US PR Sistemi Operativi / Progetti 35

  • ove PID indica lidentificatore di processo, TOT il contatore dei time slice attribuiti al processo, US quello dei time slice completamente utilizzati e PR la priorit attribuita al processo.

    Si chiede di descrivere il progetto della procedura suddetta, utilizzando i nomi indicati delle variabili e ricorrendo al minor numero di istruzioni.

    36 Sistemi Operativi / Progetti

  • B Linux

    Quesito B.1.1 2/9/08

    Descrivere brevemente le componenti del numero di versione di LINUX spiegandone relativo significato e funzione.

    Quesito B.1.2 30/4/10

    Descrivere brevemente le componenti del numero di versione di una distribuzione LINUX spiegandone relativo significato e funzione.

    Quesito B.1.3 30/11/12

    Si chiariscano le modalit di attribuzione dei numeri di versione nel caso del kernel Linux e delle distribuzioni che lo includono.

    Quesito B.1.4 27/9/12

    Si spieghino le differenze e le similitudini essenziali tra software freeware e software open source.

    Quesito B.1.5 30/4/09, 25/7/12

    Si spieghino le differenze esistenti tra software freeware e open source. Si dica anche, motivando la riposta, in quale delle due categorie rientra LINUX.

    Quesito B.1.6 12/9/12

    Si spieghino le caratteristiche fondamentali della licenza GPL.

    Quesito B.1.7 21/11/08

    Si provveda a stilare un breve resoconto del paragone tra LINUX e Microsoft Windows evidenziando in maniera concisa i principali vantaggi e svantaggi delluno e dellaltro sistema operativo.

    Quesito B.1.8 7/5/08

    Cos LDP? Quale funzione riveste nellambito del pi ampio progetto GNU?

    Quesito B.1.9 23/9/10

    Si specifichi funzione ed utilit del LINUX Documentation Project (LDP).

    Quesito B.1.10 7/5/08

    Si risponda con vero o falso ai seguenti quesiti:

    a. OpenOffice.org fa parte del pacchetto di base di LINUX (V) (F)

    b. LINUX pu essere installato su di un PDA (V) (F)

    c. Wine una macchina virtuale (V) (F)

    d. Lutente amministratore pu eliminare arbitrariamente un account utente (V) (F)

    Si giustifichino le risposte ritenute false.

    Quesito B.1.11 16/2/11

    Si risponda con vero o falso ai seguenti quesiti:

    a. La shell BASH fa parte del pacchetto di base di LINUX (V) (F)

    b. LINUX pu essere installato su di un dongle USB (V) (F)

    c. Wine una macchina virtuale (V) (F)

    d. Lutente amministratore pu modificare il gruppo di appartenenza di un utente (V) (F)

    Linux / Linux 37

  • Si giustifichino le risposte ritenute false.

    Quesito B.1.12 12/9/12, 27/9/12

    Si risponda con vero o falso ai seguenti quesiti e si giustifichino le risposte ritenute false:

    a. Esistono varianti LINUX per PDA(V) (F)

    b. Il superuser pu eliminare laccount di un utente senza il suo consenso(V) (F)

    c. X-Window di norma una interfaccia molto snella e leggera (V) (F)

    d. Utenti differenti possono appartenere allo stesso gruppo principale(V) (F)

    Quesito B.1.13 25/7/12

    Si risponda con vero o falso ai seguenti quesiti e si giustifichino le risposte ritenute false:

    a. Esistono varianti LINUX che inglobano il supporto al real-time computing (V) (F)

    b. Il versioning di una distribuzione si riconduce a quello del kernel (V) (F)

    c. Una macchina LINUX non pu essere avviata mancando il supporto al networking (V) (F)

    d. Utenti differenti possono interfacciare una macchina LINUX mediante shell diverse (V) (F)

    Quesito B.1.14 9/5/12

    Si risponda con vero o falso ai seguenti quesiti e si giustifichino le risposte ritenute false:

    a. La shell potrebbe risultare superflua per interfacciare una macchina LINUX (V) (F)

    b. LINUX un sistema operativo general purpose (V) (F)

    c. Una macchina LINUX potrebbe avere pi amministratori con privilegi differenti (V) (F)

    d. Un generico utente pu determinare la propria appartenenza ad un gruppo (V) (F)

    Quesito B.1.15 14/2/12

    Si risponda con vero o falso ai seguenti quesiti:

    a. La shell viene caricata in corrispondenza del runlevel 6 (V) (F)

    b. LINUX pu essere installato su di una macchina virtuale (V) (F)

    c. Una macchina LINUX potrebbe avere pi amministratori con privilegi differenti (V) (F)

    d. Un generico utente pu determinare la propria appartenenza ad un gruppo (V) (F)

    Si giustifichino le risposte ritenute false.

    Quesito B.1.16 2/3/11

    Si risponda con vero o falso ai seguenti quesiti:

    a. La shell programmabile mediante apposito scripting (V) (F)

    b. LINUX pu essere installato su di una macchina MAC (V) (F)

    c. MAN non aderisce al LDP (V) (F)

    d. Lutente amministratore pu modificare la password di un utente (V) (F)

    Si giustifichino le risposte ritenute false.

    Quesito B.1.17 5/5/11

    Si risponda con vero o falso ai seguenti quesiti:

    a. La shell unica e predefinita dato un kernel (V) (F)

    b. Un utente di un sistema LINUX pu appartenere a molti gruppi principali (V) (F)

    c. apropos e whatis sono entrambi alias (V) (F)

    38 Linux / Linux

  • d. Lamministratore pu aggiungere un account anche non disponendo del comando shell relativo (V) (F)

    Si giustifichino le risposte ritenute false.

    Quesito B.1.18 21/11/08

    Si spieghi brevemente il meccanismo del caricamento di LINUX a run-level chiarendone lutilit.

    Quesito B.1.19 17/9/08

    Si spieghi il significato e lutilit del meccanismo del NICE.

    Quesito B.1.20 30/11/10, 14/2/13, 30/11/12

    Si spieghi il significato e lutilit del meccanismo del NICE chiarendo quale comando Linux permette di controllarlo/alterarlo.

    Quesito B.1.21 24/2/09

    Quali sono le caratteristiche di un processo zombie? Si chiarisca la risposta con un esempio concreto.

    Quesito B.1.22 12/7/12

    Si spieghi cosa , come si crea e come si gestisce una variabile dambiente in LINUX e quale la sua utilit.

    Quesito B.1.23 2/9/08

    Si spieghi il significato e lutilit della definizione di un ambiente (environment) per un utente di una macchina UNIX ed i comandi principali per la sua gestione.

    Quesito B.1.24 22/7/10

    Si spieghi che cosa un boot loader, qual la sua utilit e si citino almeno due esempi di boot loader per LINUX.

    Quesito B.1.25 10/2/09, 22/7/09

    Chiarire le differenze sostanziali tra i desktop manager KDE e GNOME.

    Quesito B.1.26 26/2/08

    Evidenziare in breve due tra i principali vantaggi e due tra gli svantaggi di un sistema g