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

Con riferimento alla tecnica nota come page buffering rispondi, brevemente e punto per punto, alle seguenti domande
  1. Il page buffering prevede due insiemi di frame. Descrivi questi due insiemi e spiega in quali casi un frame viene inserito in un insieme o nell'altro.
  2. Supponi che il processo P abbia bisogno di un nuovo frame, e nel page buffer non ci sono frame che prima appartenevano a P. Che succede?
  3. Supponi che il processo P abbia bisogno di un nuovo frame, e nel page buffer ci sono dei frame che prima appartenevano a P. Elenca tutti i possibili casi e cosa succede.
Answer:
Path:
Editor shortcut keys
Question 3 Edit

I/O

Rispondi brevemente, ma punto per punto, alle seguenti domande sul filesystem dei sistemi unix.
  1. che cosa è un inode
  2. che cosa è un hardlink
  3. che cosa è un softlink
  4. può un hardlink essere non valido? (cioè puntare a qualcosa che non esiste)
  5. può un softlink essere non valido?
  6. può un hardlink puntare ad un file fuori dalla partizione in cui è contenuto?
  7. può un softlink puntare ad un file fuori dalla partizione in cui è contenuto?

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, è I/O bound, ciascun I/O burst è servito in 300 ms
  • B è inizialemente ready, esegue una write non bloccante a 40 ms e subisce un major page fault a 70ms. Il page fault viene servito in 100ms.
  • C è inizialmente ready, è 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
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

B
C


























































ready
block


























































block
note tempi




















altre note



Edit

Scripting

Il file di testo radb.txt contiene un record per ciascun prefisso IP. Nel file ciascun record è separato da una linea vuota, i campi sono su linee distinte e hanno formato nome-campo: contenuto, tranne il campo "descr" che è su più linee. 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 origin contiene 'AS' seguito da un numero tra 0 e 65536. Usa un comando basato grep per selezionare le righe che hanno tale numero compreso tra 1000 e 9999.

Fai copia e in colla nella form del comando che hai usato e del suo output.

Answer:
Question 6 Edit
Considera i campi route e origin, il primo contiene un prefisso, il secondo il numero di un ISP (precedeuto da "AS"). Dai un comando che produca una tabella con due colonne "numeroISP" e "route", abbia una riga per ciascun record e sia ordinata per "numeroISP". Togli "AS" dall'output.

Suggerimento: alle volte può essere utile usare awk -v RS="" e -v FS="\n" per elaborare record su più linee. Inoltre gsub può essere un valido strumento di cancellazione.

Fai copia e in colla nella form del comando che hai usato e del suo output.
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 25. Considera la 20esima volta in cui che la funzione fib() sta per ritornare un valore maggiore di 200.
  • Mostra lo stack in quell'istante.
  • Mostra, nel contesto di init_list(), il contenuto dell'ultimo elemento della lista L in quell'istante.
Answer:
Question 8 Edit

Pratica Unix

Il comando cd non fa riferimento a nessun eseguibile. Perché? Perché un eseguibile regolare non potrebbe assolvere allo stesso scopo?
Answer:
Question 9 Edit

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

Rispondi alle seguenti domande che confrontano windows e unix.
  • Differenze e affinità tra il concetto di handle in windows e di file descriptor in Unix.
  • Unix organizza i processi ad albero, cosa puoi dire per Windows?

Answer: