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

Memory management

Rispondi a ciascuna delle seguenti domande circa il fenomeno del trashing.
  1. In cosa consiste il fenomeno chiamato trashing?
  2. Una buona strategia di eviction può evitare che il sistema vada in trashing? Spiega il perché della tua risposta.
  3. Un sistema con disk cache è più o meno facile che vada in trashing?
  4. Un sistema con shared libraries è più o meno facile che vada in trashing?


Answer:
Path:
Editor shortcut keys
Question 3 Edit

Raid 5

Considera una configurazione RAID 5 con n dischi. Rispondi alle seguenti domande.
  1. Discuti le prestazioni in lettura di Raid 5 con n dischi rispetto a Raid 0 con n dischi.
  2. Descrivi un metodo per il calcolo della parità che preveda la lettura di al più due blocchi.
  3. Supponi che il disco A si sia rotto. Descrivi il metodo per ricostruire l'i-esimo blocco di A a partire dai dati presenti negli altri dischi.
Answer:
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 60ms. Attenzione: le system call possono essere bloccanti o non bloccanti e i page fault major o minor.

  • A cpu bound ma genera un lettura per il disco dopo 20ms di esecuzione servita in 50ms.
  • B cpu bound ma genera un minor page fault dopo 30ms di esecuzione.
  • 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
scheduling/ disptatching
 



















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

Scripting

Il file di testo bgp_updates.txt contiene un record per ciascun aggiornamento di routing ricevuto da un router. Nel file ciascun record è separato da una linea vuota, i campi sono su linee distinte, tranne i campi “ANNOUNCE” e “WITHDRAW” che sono su più linee in cui ciascuna linea inizia con due spazi. Per svolgere l'esercizio non è necessario conoscere il significato di tutti i campi.

Question 5 Edit
Il campo “ASPATH" contiene una sequenza di numeri tra 1 e 65535. Mostra un comando, che contenga una sola chiamata a grep o egrep, che selezioni le righe del file relative a tale campo del tipo "ASPATH: X ..... Y", dove X è il primo numero della sequenza e Y è l'ultimo, in cui X sia pari e compreso tra di 10000 e 19999 e Y sia di tre o quattro cifre. I numeri devono essere almeno due altrimenti la linea non deve essere selezionata. (es. ASPATH: 11002 1230 664).

Answer:
Question 6 Edit
Il campo FROM contiene un indirizzo IP e un numero di AS nella forma ASnnnnn. In alcuni record è presente il campo NEXT_HOP contenente un indirizzo IP.

Per i record con NEXT_HOP, considera la coppia formata da numero di AS del campo FROM e dall'IP in NEXT_HOP.

Dai un comando per calcolare una tabella con due colonne in cui ciascuna coppia appaia una sola volta (nella colonna di destra) e contenga (nella colonna di sinistra) il numero di occorrenze di tale coppia. Ordina la tabella per numero di occorrenze e riporta solo le prime quindici posizioni.

Esempio:

264 AS2497 202.232.0.3
194 AS12956 213.140.32.148
179 AS286 134.222.86.174
171 AS3549 208.51.134.253
163 AS7018 12.0.1.63
.....
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

La variabile globale struct list* L è una lista doppiamente linkata in cui gli elementi hanno campi next, prev, e num, quest'ultimo di tipo double.
Considera una esecuzione di fib con parametro 20. Considera la prima volta in cui fib() viene chiamata e contemporaneamente per l'ultimo elemento di L risulta num>10000 (fai attenzione all'inizio tale elemento non esiste!)
  • Mostra lo stack in quell'istante.
  • Mostra, nel contesto di init_list(), il valore della variabile i

Fai copia e incolla dell'intera sessione di debugging nella form.
Answer:
Question 8 Edit

Pratica Unix

Che effetto hanno i seguenti comandi dati di seguito nella shell? Spiega il perché.

x1='ls'

$x1 `echo /`

Answer:
Question 9 Edit

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

Rispondi brevemente alle seguenti domande sui servizi.
  1. Cosa si intende per servizio in Windows e Linux?
  2. In Windows, che ruolo gioca svchost.exe?
  3. In Linux, descrivi almeno un modo di configurare un servizio perché parta al boot.
  4. In Windows, dove pensi che sia mantenuta l'informazione di quali servizi partono al boot? Quale pensi sia il modo migliore per configurare la partenza di un servizio al boot?


Answer: