Preview Compito pari - turno 1 - 6cfu

Question 1 Edit

Dati studente

Inserisci qui i tuoi dati, compila subito questa parte.

Quanti CFU?

Cognome
Nome

Matricola

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

0x 00319 FFA load-into-A 0x 00320 FFE

che occupa 5 bytes a partire da 0x 00319 FFA e
sposta 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
codice o dati
page table
codice o dati
page table





Descrivi brevemente il perché di tale risultato





Question 3 Edit
Marks: 6

Raid 05

Hai 4 array raid 0 e li usi in raid 5. Considera i blocchi del disco logico risultante numerati progressivamente 1, 2, 3, ecc. Come sono sistemati tali blocchi nei dischi fisici? Compila lo schema seguente (gli array sono separati da doppia linea verticale). Indica la parita con "p"

.





































Question 4 Edit
Marks: 6

Sequenza eventi all'interno del SO

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 pari a 60m. Attenzione: le system call possono essere bloccanti o meno e i page fault possono essere major or minor.
  • A è cpu bound e genera minor page fault ogni 40 ms di esecuzione.
  • B esegue un ciclo di letture bloccanti sul disco, ma ha cpu burst di 10ms e ciascuna lettura è servita in 200ms, nessun page fault.
  • C è cpu bound, nessuna system call, 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
X



















A
B




















B
C




















C
mode switch




















mode switch

kernel mode
dispatching




















disptatching
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

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
Il campo Size contiene un numero intero. Seleziona i campi Size il cui valore è maggiore o uguale a 2300 e minore o uguale a 9999.
Puoi contare sul fatto che i numeri non iniziano mai per zero.
Answer:
Question 6 Edit
Marks: 6
Vogliamo una tabella dei pacchetti che sono citati nel campo Depends del file.
Il campo Depends: contiene una espressione che indica le dipendenze da altri pacchetti. In tale campo trovi una lista separata da virgole con il nome di un pacchetto e eventuali vincoli sulla versione, che dovrai ignorare. Nel seguente esempio le parti in grassetto sono i nomi dei pacchetti da considerare

Depends: libc6 (>= 2.3.2.ds1-4), libreadline4 (>= 4.3-1), perl (>25.35.4)

Ogni riga della tabella in output deve contenere il nome del pacchetto e il numero di volte che tale pacchetto viene citato come dipendenza nel file.
Answer:
Question 7 Edit
Marks: 6

Pratica Unix

Mostra la sequenza delle chiamate di sistema per una esecuzione del comando ls.
Answer:
Question 8 Edit
Marks: 6

Debugging

Considera il codice del seguente progetto fib_sigsegv.tar.gz. Compila tutti i file con il comando

gcc -g *.c -lm -o fib

Considera una esecuzione di fib con parametro 20. Puoi notare che il codice produce un errore (Segmentation Fault). Usa il debugger rispondere alle seguenti domande sull'istante in cui si genera l'errore.
  • Mostra lo stack in quell'istante.
  • Mostra, il valore della variabile f, nel contesto della funzione fib(), in quell'istante.
  • Mostra quante volte e' stata invocata fib() fino a quel momento.
Answer:
Question 9 Edit
Marks: 6

Windows: executive objects

Descrivi il concetto di executive object. In particolare sviluppa i seguenti punti.
  • cosa è un object
  • cosa è l'executive
  • dai tre esempi di executive object
  • che strumento mette a disposizione windows per identificare univocamente gli object tra processi distinti?

Answer: