Preview Compito pari - 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=1000.

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

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

Qual'è la taglia di WS all'istante t=2500?
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=2500?
Descrivi brevemente il perché.

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

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

Question 3 Edit

Raid 4 e disk scheduler

Considera un sistema RAID 4 con 4 dischi: A, B, C e P.
A, B, C sono in striping e P è 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 B, mostra un metodo che permetta di calcolare la nuova parità senza conoscere i corrispondenti blocchi di A e C.
  3. Supponi di dover progettare un disk scheduler, il metodo al punto 2 che vantaggi può dare? 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 60ms, nessun page fault.
  • B è cpu bound, page fault ogni 40 ms e ciascun page fault è servito in 400ms.
  • C è cpu bound, esegue scritture non bloccanti ogni 15ms e 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. esegui un processo grafico in background (esempio: gedit)
  2. stoppalo
  3. mostra che il processo ancora esiste
  4. fallo ripartire in foregroud
  5. uccidilo con una sequenza di tasti
  6. mostra che il processo non esiste più
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 12:20 e le 16:59.
Fai copia e incolla nella form del comando e delle prime 3 e delle ultime 3 righe selezionate.
Answer:
Question 7 Edit
Il campo 7 contiene il numero di byte scaricati, il campo 1 l'indirizzo IP da cui sono stati scaricati.
Dai un comando che fornisca una classifica degli indirizzi IP che hanno scaricato in totale piu' byte con a fianco il numero di byte scaricati.
Es.
bytes IP
2454546 193.204.161.1
334555
....
193.204.161.12


Suggerimento: usa sort per raggruppare i dati per ciascun IP 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

Windows: handles

Sviluppa i seguenti punti.
  • cosa è un handle
  • in che rapporto sono gli handle con l'object manager
  • in che rapporto sono gli handle con i processi

Answer: