Preview Compito pari - turno 1 - 6 cfu

Question 1 Edit

Dati studente

Inserisci qui i tuoi dati, compila subito questa parte.

Quanti CFU?

Cognome
Nome

Matricola

email

Numero Computer

Ordinamento (509, 270, erasmus,ecc.)


Question 2 Edit

Memory management

Rispondi alle seguenti domande sulla rilocazione dei processi in sistemi non dotati di memoria virtuale.
  1. Per quali motivi un kernel potrebbe aver bisogno di rilocare un processo?
  2. In un processo distinguiamo tra memoria che contiene codice (C) e memoria che contiene dati (D). Un riferimento (ad es. puntatore) appartiene ad una delle quattro tipologie: da D a D, da C a C, da D a C, da C a D. Dai, brevemente, un esempio di concreto per ciascuna tipologia. Commenta brevemente sull'impatto che tali tipologie hanno sulla possibilità di rilocare un processo con soli mezzi software.
  3. Qual'è la tecnologia hardware più semplice che conosci per supportare la rilocazione?
Answer:
Path: body
Editor shortcut keys
Question 3 Edit

I/O

In una operazione di lettura da disco, quali sono gli eventi e o comportamenti che coinvolgono il processo, il disk scheduler, il disco, gli interrupt, il kernel ecc. Elencali nel corretto ordine temporale, dal momento in cui il processo ha effettuato la system call, al momento in cui riceve i dati.

Answer:
Question 4 Edit

Sequenza degli eventi nel SO

In un sistema sono presenti tre processi: A, B, C. La politica di scheduling è preemtive con priorità (A>B>C).
  • A è inizialmente running, cpu bound ma ogni 30ms genera un major page fault che verrà servito in 40ms.
  • B è inizialmente in blocco a causa di una lettura che verrà servita a tempo t=20 ms, è I/O bound con cpu bust trascurabili ed esegue infinite letture bloccanti servite in 30ms, nessun page fault.
  • C è inizialmente ready, è 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
sched./disp.




















sched./disp.
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

C


























































ready
block
B

























































block
note tempi




















altre note



Edit

Scripting

Il file di testo ripe.db.aut-num.filtered.txt contiene un record per ciascun Internet Service Provider. Nel file ciascun record è separato da una linea vuota, i campi sono su linee distinte e hanno formato nome-campo: contenuto, alcuni campi possono comparire più volte. I campi occupano sempre la stessa posizione ma non sono sempre tutti presenti. Per svolgere l'esercizio non è necessario conoscere il significato di tutti i campi.

Question 5 Edit
Il campo org contiene un codice nella forma ORG-<lettere><cifre>-RIPE. Usa il comando "grep" per selezionare le righe relative a tale campo per cui la parte <lettere> inizia per 'B' o 'b', e per cui la parte cifre corrisponde ad un numero maggiore di 29 e multiplo di 5.
Answer:
Question 6 Edit
Il campo as-name contiene un nome che identifica l'Internet Service Provider, il campo notify contiene una email o un codice di chi deve essere avvertito per eventuali problemi, tale campo può essere presente zero, una o più volte.
Mostra una pipeline di comandi che fa uso di awk e grep per fornire una tabella che abbia nella prima colonna il contenuto del campo as-name, nella seconda il numero di campi notify, e nella terza la lista dei contenuti dei campi notify separati da spazi.

Suggerimenti:
  • la variabile NF contiene il numero dei campi del record
  • $i permette di accedere all'i-esimo campo
  • il costrutto for(...) { ... } ha la sintassi identica a quella del C
  • per concatenare due stringhe in awk basta giustapporle (es. "il valore di x e' " x)
Answer:
Question 7 Edit

Debugging

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

gcc -g *.c -lm -o fib

Considera una esecuzione di fib con parametro 22. Considera la trecentounesima volta in cui fib() è stata chiamata.
  • Mostra lo stack in quell'istante.
  • Conta quante volte fib() è ritornata fino a quell'istante.
  • nel contesto di init_list() mostra il penultimo elemento della lista L
  • Esprimi in una formula la relazione che lega il numero di frame relativi a fib() nello stack, le chiamate a fib(), e i ritorni da fib()
Answer:
Question 8 Edit

Pratica Unix

Il comando

find /usr/include -name '*.h'

elenca tutti i file in /usr/include che terminano per .h

Dai una sola riga di comando mostri di tali file solo quelli che contengono la parola linux.

Answer:
Question 9 Edit

Windows vs. Uinux (solo per chi fa 6 cfu)

Rispondi alle seguenti domande che confrontano Windows e Unix.
  • In Unix gran parte delle informazioni di configurazioni sono in /etc, in Windows dove sono?
  • In Unix gran parte delle system call operano su file descriptor, descrivi il concetto che gioca lo stesso ruolo in Windows.
  • Unix organizza i processi ad albero, in Windows come sono organizzati i processi?

Answer: