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

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

0x01802AAA load 0x01826FFE

che occupa 5 bytes a partire da 0x01802AAA e copia il contenuto nel registro A dei 4 bytes a partire dall'indirizzo specificato nell'operando.

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
page table


codice o dati




Descrivi brevemente il perché di tale risultato





Question 3 Edit

Raid

     
  1. Un array RAID 0 può essere in stato degradato? se si che prestazioni ha in tale stato?
  2. Un array RAID 1 può essere in stato degradato? se si che prestazioni ha in tale stato?
  3. Un array RAID 0 può essere in stato rebuilding? se si che prestazioni ha in tale stato?
  4. Un array RAID 1 può essere in stato rebuilding? se si che prestazioni ha in tale stato?
Answer:
Path:
Editor shortcut keys
Question 4 Edit

Scheduling delle attivita' nel kernel

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 di tempo pari a 100ms. Attenzione: le system call possono essere bloccanti e i page fault major o minor.

  • A cpu bound ma genera un page fault ogni 80ms. Ciascun page fault è servito in 60ms.
  • B cpu bound non genera page faults.
  • C genera system call bloccanti ogni 60ms, nessun page fault.

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
disptatching
 



















disptatching
system call per I/O
 



















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”.

Question 5 Edit
Nel file packages.txt il campo Conflicts contiene una lista di nomi di pacchetti separati da virgole ',' o da pipeline '|' e opzionalmente annotate con la versione tra parentesi.

Dai un comando bastato su grep che selezioni le righe relative ai campi 'Conflicts:' che contengono almeno due pacchetti i cui nomi inziano per "apache"

ad esempio
Conflicts: miniwwwserver, apache2-mpm-worker, apache2-mpm-threadpool

Answer:
Question 6 Edit
Il campo Section contiene la "sezione" in cui è classificato il pacchetto e il campo Size la sua occupazione una volta installato. Considera l'insieme dei pacchetti contenuti nelle sezioni "libs" e "libsdevel": dai una linea di comandi che riporti la somma complessiva dei campi Size per tale insieme di pacchetti.
Answer:
Question 7 Edit

Debugging

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

gcc -g *.c -lm -o fib

Considera una esecuzione di fib con parametro 20. Considera la trentesima volta in cui fib() sta per ritornare un valore maggiore di 40.
  • Mostra lo stack in quell'istante.
  • Mostra, nel contesto di init_list(), il penultimo elemento della lista L in quell'istante.
  • Mostra il numero di volte che la funziona fib() e' stata invocata fino a quel momento.

Answer:
Question 8 Edit

Pratica Unix

Rispondi alle seguenti domande circa la gestione dei processi.
     
  1. Che significa che un processo è in foreground o background?
  2. Quanti processi possono essere in foreground e quanti in background per un terminale?
  3. Come si avvia un processo in background?
  4. Cosa succede se si digita control-Z su un terminale ai processi in background e a quelli in foreground?
Answer:
Question 9 Edit

Windows: handles (solo per chi fa 6 cfu)

Rispondi brevemente alle seguenti domandi.
  1. Che cosa sono gli executive objects? Esistono in kernel space o in user space?
  2. Fai tre esempi di executive objects.
  3. Cosa sono gli handles? Esistono in kernel space o in user space?
  4. Cosa è l'object manager? In che rapporto è con gli handle?
  5. Cosa deve fare un processo per usare un executive object?

Answer: