Preview Compito dispari - turno 1 - 6cfu

Question 1 Edit

Dati studente

Inserisci qui i tuoi dati, compila subito questa parte.

Quanti CFU?

Cognome
Nome

Matricola

Numero Computer

Ordinamento (509, 270, erasmus,ecc.)


Question 2 Edit
Marks: 6

Page fault massimi per una istruzione macchina

Considera una architettura Pentium-like (4GB di memoria, pagina di 4 KB, paginazione a due livelli, pte 4 byte, root page table sempre in memoria).

Considera la seguente istruzione macchina

0x 113FF FFE store-from-A 0x 113FF 000

che occupa 5 bytes a partire da 0x 113FF FFEe
sposta il contenuto dei 4 bytes a partire dall'indirizzo specificato nell'operando nel registro A.


Calcola quanti page fault può generare al più tale istruzione nelle fasi di fetch e di execute per codice o dati non residenti o per page table non residenti.

Page faults
Fetch
Execute
codice o dati
page table
codice o dati
page table





Descrivi brevemente il perché di tale risultato





Question 3 Edit
Marks: 6

Raid 50

Hai 2 array raid 5 e li usi in raid 0. Considera i blocchi del disco logico risultante numerati progressivamente 1, 2, 3, ecc. Come sono sistemati tali blocchi nei dischi fisici? Compila lo schema seguente (gli array sono separati da doppia linea verticale). Indica la parita con "p".




































Question 4 Edit
Marks: 6

Sequenza eventi all'interno del SO

In un sistema sono presenti tre processi: A, B, C, inizialmente tutti e tre ready nell'ordine A in testa, poi B, C in coda. La politica di scheduling è round robin con quanto pari a 50ms. Il processo che va in blocco perde il quanto rimanente. Attenzione: le system call possono essere bloccanti o meno e i page fault possono essere major or minor.
  • A esegue un ciclo di letture bloccanti sul disco, ma ha cpu burst di 10ms e ciascuna lettura è servita in 200ms, nessun page fault.
  • B esegue scritture su disco non bloccanti ogni 30ms e genera minor page fault ogni 40 ms.
  • C è cpu bound, nessuna system call, non provoca page faults.
Il processore esegue di volta in volta A, B, C, e inoltre, con tempi trascurabili, mode switching, dispatching, system call e interrupt handlers. Mostra schematicamente, nella seguente tabella, l'ordine con cui tali attività vengono eseguite (una sola croce per ciascuna colonna). Indica anche quali processi sono running, quali ready e quali bloccati in ciascun istante come indicato nell'esempio.


user mode
A
X



















A
B




















B
C




















C
mode switch




















mode switch

kernel mode
dispatching




















disptatching
system call




















system call
interrupt handler per page fault




















interrupt handler per page fault
interrupt handler per I/O




















interrupt handler per I/O
interrupt handler per quanto scaduto




















interrupt handler per quanto scaduto

stati processi
running
A



























































running
ready
B
C


























































ready
block


























































block
note tempi




















altre note



Edit

Grep e Awk

Il file di testo packages.txt contiene un record per ciascun pacchetto software della distribuzione linux debian. Nel file ciascun record è separato da una linea vuota, i campi sono su linee distinte, tranne il campo "Description" che è su più linee. Alcuni campi possono mancare. Per svolgere l'esercizio non è
necessario conoscere il significato di tutti i campi.

Suggerimenti: alcune volte conviene processare tale file con awk usando RS="" (stringa vuota) e FS=”\n”, ricorda che, in awk, gsub() e' un efficace strumento di sostituzione.

Question 5 Edit
Marks: 6
Il campo Size contiene un numero intero. Seleziona i campi Size il cui valore è pari e allo stesso tempo maggiore o uguale a 10000.
Puoi contare sul fatto che le cifre non iniziano mai per zero.

Answer:
Question 6 Edit
Marks: 6
Considera i campi Packages, Section e Size. Riporta in output una tabella con tre colonne, separate da tabulatori: nella prima colonna il contenuto del campo Packages, nella seconda il contenuto del campo Section e nella terza il contenuto del campo Size. La tabella deve contenere una riga per ciascun record del file e deve essere ordinata alfabeticamente per Section. Riporta nell'ultima riga dell'output il totale del campo Size.
Answer:
Question 7 Edit
Marks: 6

Pratica Unix

Mostra la tabella dei simboli per la libreria dinamica /lib/libc.so.6


Answer:
Question 8 Edit
Marks: 6

Debugging

Considera il codice del seguente progetto fib_sigsegv.tar.gz. Compila tutti i file con il comando

gcc -g *.c -lm -o fib

Considera una esecuzione di fib con parametro 20. Puoi notare che il codice produce un errore (Segmentation Fault). Usa il debugger rispondere alle seguenti domande sull'istante in cui si genera l'errore.
  • Mostra lo stack in quell'istante.
  • Mostra, il valore della variabile f, nel contesto della funzione fib(), in quell'istante.
  • Mostra quante volte e' stata invocata fib() fino a quel momento.
Answer:
Question 9 Edit
Marks: 6

Windows: page buffering

Descrivi il sistema di page buffering di windows descrivendo gli stati che puo' assumere una pagina. In particolare sviluppa i seguenti punti
  • cosa è una stand by page?
  • che significa soft e hard page fault?
  • che significa zeroing?
  • che ruolo hanno i kernel thread in questa gestione?

Answer: