Preview Compito Dispari Turno2

Question 1 Edit

Dati studente

Inserisci qui i tuoi dati, compila subito questa parte.

Cognome
Nome

Matricola


Question 2 Edit

Memory management

Descrivi brevemente i concetti di
  • spazio di indirizzamento di un processo
  • regione allocata
  • memory mapping
Answer:
Question 3 Edit

I/O

Discuti l'affidabilita' di raid0 possibilmente fornendo una formula per il Mean Time Between Failures e spiegandola.
Answer:
Question 4 Edit

Scheduling delle attivita' all'interno del SO

Considera un sistema con architettura del kernel “execution within user process”. In tale sistema sono presenti tre processi: A, B, C, inizialmente tutti e tre ready), con priorità dei processi A preferito a B preferito a C. La politica di scheduling è preemptive senza round robin, dove un processo può potenzialmente tenere la cpu indefintiamente.
  • A è puramente cpu bound: provoca un page fault ogni 13ms, il page fault viene servito in tempo 10ms.
  • B è I/O bound: cpu burst trascurabili, I/O burst di durata 20ms e non provoca page faults.
  • C è puramente cpu bound e non provoca page faults.
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




















A
B




















B
C




















C
mode switch




















mode switch

kernel mode
disptatching




















disptatching
system call




















system call
interrupt handler per page fault




















interrupt handler per page fault
interrupt handler per quanto scaduto




















interrupt handler per quanto scaduto

stati processi
running




























































running
ready




























































ready
block




























































block
note tempi




















altre note



Edit

Scripting

Il file di testo radb.db.txt contiene un record per ciascun prefisso IP registrato presso un certo registro di Internet. Nel file ciascun record è separato da una linea vuota, i campi sono su linee distinte, tranne il campo "descr" che è su più linee. I campi occupano sempre la stessa posizione. Per svolgere l'esercizio non è necessario conoscere il significato di tutti i campi. Suggerimenti: alcune volte, ma non sempre, 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
Il campo “route” contiene il prefisso. Mostra un comando che selezioni tutte e sole le linee del file del campo “route” con i prefissi /16 (es. 193.20.0.0/16).
Answer:
Question 6 Edit
Usa awk per costruire una linea di comando che prenda in input il file radb.db.txt e dia in output solo i record che hanno il campo changed (formato YYYYMMDD) che indica un cambiamento nell'ultimo giorno del mese. Esempio

route: 198.136.200.0/24

descr: AlterNet route - AS 701
origin: AS701
mnt-by: MAINT-AS701
changed: asp@uunet.uu.net 19950401
source: RADB

Answer:
Edit

System programming

Scarica il file prj.tar.gz, contiene il programma "fib" composto da più file con estensione ".c" e ".h". Tale programma inizializza una lista contenente una serie di numeri, derivati medinate una funzione, dai primi n numeri di fibonacci e ne stampa il contenuto (n e' passato come parametro sulla linea di comando).
Question 7 Edit
Crea un Makefile per il progetto con i seguenti target badando a mettere le dipendenze opportune
– fib: crea l'eseguibile “fib” linkato dinamicamente con simboli di debug
– clean: pulisce il progetto cancellando i file inutili (*.o, *.~)
– main.asm: disassemblato del file main.o

Answer:
Question 8 Edit
Compila fib in maniera da poter usare il debugger. Considera una esecuzione di fib con parametro 10. Mostra lo stack subito dopo a 108-esima invocazione della funzione fib(). Fai copia e incolla nella form della sessione del debugger con i comandi che ai usato e i loro output.

Answer: