Preview Compito dispari - turno 1

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

Working set

Considera il concetto di working set (WS) con finestra delta=2000.

A causa della proprietà di località, un processo accede alle pagine nel seguente modo.
  • Per istanti t tra 1 e 4000 accede uniformemente (ad esempio in maniera ciclica) alle pagine 1-7.
  • Per istanti t tra 4001 e 8000 accede uniformemente alle pagine 5-13.
Qual'è la taglia di WS all'istante t=3000?
Descrivi brevemente il perché.

Qual'è la taglia di WS all'istante t=6000?
Descrivi brevemente il perché.

Qual'è la taglia di WS all'istante t=5000?
Descrivi brevemente il perché.

Supponi che il sistema di page replacement faccia in modo di tenere come resident set in memoria sempre e solo il WS.

Qual'è la taglia del resident set all'istante t=5000?
Descrivi brevemente il perché.

Tra l'istante 4000 e 6500 quanti page fault vengono generati?
Descrivi brevemente il perché.

Tra l'istante 4000 e 6500 quante pagine vengono eliminate dal resident set?
Descrivi brevemente il perché.

Question 3 Edit

Raid 5 e disk cache

Considera un sistema RAID 5 con 4 dischi. In tale configurazione la parità è distribuità su tutti i dischi. In una certa riga del RAID, i blocchi A, B, C contengono dati in striping (su tre dischi differenti) e P (sul quarto disco) è usato per mantenere la ridondanza sotto forma di parità.
La parità va aggiornata ad ogni scrittura.
  1. Come si calcola la parità a partire da A, B e C?
  2. Supponi che venga scritto un blocco di A, mostra un metodo che permetta di calcolare la nuova parità senza conoscere i corrispondenti blocchi di B e C.
  3. Considera la disk cache. Che vantaggi può dare nel calcolo della parità? che ruolo può avere nella scelta tra i metodi dei punti 1 e 2? Spiega.
Answer:
Path:
Editor shortcut keys
Question 4 Edit

Sequenza degli eventi nel 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 è preemtive con priorità (A>B>C). Attenzione: le system call possono essere bloccanti o meno.
  • A è I/O bound, esegue infinite letture bloccanti sul disco, cpu burst trascurabili, ciascuna lettura è servita in 150ms, nessun page fault.
  • B è cpu bound, esegue scritture su disco non bloccanti ogni 15ms e genera page fault ogni 40 ms e ciascun page fault è servito in 400ms.
  • C è cpu bound, 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



Question 5 Edit

Pratica Unix

Esegui le seguenti operazioni su una shell unix e fai copia di ciò che vedi sul terminale (comandi e output).
  1. crea una variabile di ambiente Z, con contenuto arbitrario, locale alla tua shell in modo che sia ereditato dai processi figli
  2. mostra che la variabile esiste
  3. crea una subshell
  4. mostra che Z e' stata ereditata
  5. esci dalla subshell
  6. rendi Z non ereditata
  7. crea una subshell
  8. mostra che Z non è stata ereditata
  9. esci dalla subshell
Answer:
Edit

Grep, Awk e pipelines

Il file di testo access.log.gz contiene un record per ciascun accesso ad un web server (usa gunzip per decomprimerlo). Il campo 1 contiene l'indirizzo IP della macchina che ha fatto l'accesso. I campi 2 e 3 sono sempre pari a “-”, ignorali. Il campo 4 (delimitato da parentesi quadre) mostra l'istante di accesso.
Dei restanti campi alcuni sono delimitati da doppi apici e possono contenere degli spazi.
Question 6 Edit
Mostra un comando basato su grep che seleziona le righe per cui l'istante di accesso è tra le 14:00 e le 19:39.
Fai copia e incolla nella form del comando e delle prime 3 e delle ultime 3 righe selezionate.
Answer:
Question 7 Edit
Il campo 6 di ogni record mostra il codice di errore della sessione, il campo 7 il quantità di byte scaricati.
Dai un comando che fornisca una classifica dei codici di errore ordinati per quantità di byte totali scaricati con quel codice.
Es.
bytes codice
2454546
200
334555
....
404


Suggerimento: usa sort per raggruppare i dati per ciascun codice di errore in una sequenza di righe contigue e poi fa le somme con awk.

Non puoi assumere che nel campo 5 (l'url) il numero di spazi sia sempre pari a due (non e' vero). Suggerimento: in awk puoi usare sub(/"[^"]*"/, "") per togliere tale campo.

Se il valore del campo 7 e' "-" allora conta come zero.

Fai copia e incolla nella form sia del comando che dell'output.

Answer:
Question 8 Edit
Considera il codice del seguente progetto prj.tar.gz. Compila tutti i file con il comando

gcc -g *.c -lm -o fib

Considera una esecuzione di fib con parametro 20. Considera il 250-esima volta che la funzione fib() sta per ritornare.
  • Mostra lo stack in quell'istante.
Sempre in quell'istante, considera l'invocazione corrente di init_list()
  • mostra nel contesto di init_list() il valore ha la variabile i in quell'istante
  • mostra il contenuto del terzo elemento della lista L in quell'istante.
Answer:
Question 9 Edit
Spiega perché make legge le date di ultima modifica dei file e come questa influenza l'esecuzione dei comandi.
Answer: