Preview Compito dispari - 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
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

0x300FFFFA store 0x2FEFFFFD

che occupa 5 bytes a partire da 0x300FFFFAe
copia il contenuto del registro A nei 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
Marks: 6

I/O

Considera una operazione di lettura su disco. Elenca nel corretto ordine gli eventi salienti relativi al processo, al disk scheduler, al disco, gli interrupt ecc. , dal momento in cui il processo ha effettuato la system call, al momento in cui riceve i dati. Fai delle ipotesi ragionevoli se lo ritieni necessario.

Answer:
Path:
Editor shortcut keys
Question 4 Edit
Marks: 6

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

  • A cpu bound genera un page fault ogni 40ms, ciascun page fault è servito in 60ms.
  • B cpu bound, nessun page fault.
  • C cpu bound, 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”, ricorda che, in awk, gsub() e' un efficace strumento di sostituzione.

Question 5 Edit
Marks: 6
Dare un comando che usi grep una sola volta che mostri le righe che iniziano per Depends che contengono, in qualsiasi ordine le stringhe "apache" e "libc6" (non necessariamente come parola isolata).
Answer:
Question 6 Edit
Marks: 6
Mostra una riga di comando che produca una tabella dei pacchetti con una riga per ciascun pacchetto nel file packages.txt e due colonne. La prima colonna conterrà il nome del pacchetto e la seconda il numero di righe del campo Description per quel pacchetto. In fondo alla tabella si dovrà riportare la media dei valori della seconda colonna.
Nota che le righe aggiuntive del campo description sono identificabili perche' sono le uniche che iniziano con uno spazio.
Answer:
Question 7 Edit
Marks: 6

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 22. Considera la prima volta in cui che la funzione fib() sta per ritornare un valore maggiore di 300.
  • Mostra lo stack in quell'istante.
  • Mostra, nel contesto di init_list(), il contenuto dell'ultimo elemento della lista L in quell'istante.
  • Mostra quante volte e' stata invocata fib() fino a quel momento.
Answer:
Question 8 Edit
Marks: 6

Pratica Unix

Supponi di avere un file X in cui trovi, per ciascuna riga, un nome di un file. Dai una riga di comando che esegua, per ciascun nome di file f contenuto in X, il comando cat f.

Answer:
Question 9 Edit
Marks: 6

Windows vs. Linux

Discuti i seguenti punti circa il parallelo tra i sistemi Windows e Linux.
  • i file .dll di Windows a quale concetto di Linux può essere assimilato? perché?
  • Il registro di Windows a quale concetto di Linux può essere assimilato? perché?
  • Un executive object in Windws a quale concetto di Linux puo' essere assimilato? perché?

Answer: