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

0x300FFFFD load 0x2FFFFFFD

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

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

Rispondi alle seguenti domande su hardlink e softlink nei sistemi unix.
  • quali tra hardlink e softlink possono essere non validi? perche'?
  • quali tra hardlink e softlink possono solo puntare a inode della stessa partizione? perche'?
  • quali tra hadlink e softlink sono basati su reference counting?
  • quando si cancella un hardlink che fine fa il file? e quando si cancella un softlink?
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 ma esegue system call non bloccante ogni 30ms, nessun page fault.
  • B cpu bound genera un page fault ogni 30 ms, ciascun page fault è servito in 30ms.
  • 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 indicano che una libreria è necessaria con dei vincoli di versione (è sufficiente verificare che ci sia una parentesi subito dopo).

ad esempio
Depends: apache-common, libc6 (>= 2.3.2.ds1-21), libperl5.8

esempi di righe da non considerare
Depends: apache-common, libc6, perl5.8 (> 5.8.1)
Depends: apache-common, libc6 | perl5.8 (> 5.8.1)
Depends: apache-common, xlibc6 (> 5.8.1)


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 risultato del seguente calcolo
installed-size*1024 - size
I valori di installed-size e size dovranno essere presi dal record di quel pacchetto nel file packages.txt.
In fondo alla tabella si dovrà riportare la media dei valori della seconda colonna.
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 con un certo contenuto e di voler trasferire tale contenuto in una variabile di ambiente Y. Mostra un comando per fare ciò.

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: