Question 1

Not yet answered
Not graded
Flag question

Question text

Dati studente

Inserisci qui i tuoi dati, compila subito questa parte.

Cognome
Nome
Matricola
email
Numero Computer
Ordinamento (509, 270, erasmus,ecc.)
Quanti CFU?

Question 2

Not yet answered
Not graded
Flag question

Question text

Memory management

Considera la strategia di resident set management "Aging" e sviluppa i seguenti punti.

  1. Descrivi la strategia Aging spiegando come è fatto lo stato che bisogna mantenere, come lo si aggiorna e quando, e come si effettua la scelta della pagina da togliere. 
  2. Che vantaggi dà Aging rispetto alla strategia LRU?
  3. In che senso Aging e' una approssimazione di LRU?

Question 3

Not yet answered
Not graded
Flag question

Question text

I/O

 

Considera una operazione di lettura da disco (ad esempio l'esecuzione di una read di un certo numero di byte da un file che risiede su disco). Elenca e descrivi brevemente gli eventi e/o comportamenti che coinvolgono il processo, il disk scheduler, il disco, la disk cache, gli interrupt, il kernel, ecc. Elencali nel corretto ordine temporale, dal momento in cui il processo ha effettuato la system call, al momento in cui i dati sono a disposizione del processo.

 

Question 4

Not yet answered
Not graded
Flag question

Question text

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, cpu bound ma ogni 60ms genera un major page fault che verrà servito in 80ms.
  • B è inizialmente in blocco a causa di una lettura che verrà servita a tempo t=40 ms, è I/O bound con cpu bust trascurabili ed esegue infinite letture bloccanti servite in 60ms, nessun page fault.
  • C è inizialmente ready, è cpu bound, 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
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
C







































ready
blocked

B







































blocked
note tempi
altre note

Question 5

Not yet answered
Not graded
Flag question

Question text

Espressioni Regolari (grep/egrep)

Considera il file di testo di esempio cinquemaggio.txt. Fornire una linea di comando basata su grep o egrep per stampare ciascuna riga per cui siano verificate tutte le seguenti regole.

  1. Il secondo carattere sia una consonante minuscola.
  2. L’ultimo carattere sia ":"
  3. Contenga uno spazio seguito dalla parola ‘di’ seguito da un altro spazio.

Ad esempio la seguente riga è conforme alle regole.

Sparir di tanto raggio:

Fai copia e incolla nella form del comando e del suo output

Question 6

Not yet answered
Not graded
Flag question

Question text

Awk

Si consideri il file lotto2.txt in cui ciascuna riga contiene il risultato di una estrazione del gioco del lotto secondo il seguente formato.

CodiceEstrazione numero1 numero2 numero3 numero4 numero5 numero6

Il codice di estrazione è seguito da un elenco di 6 numeri. Tali numeri sono compresi tra 1 a 90 ma non possono ripetersi nella sequenza. Si scriva uno script in linux basato su awk che produca come output l'elenco dei codici delle estrazioni non valide, cioè delle estrazioni in cui lo stesso numero compare più di una volta.

Un possibile output potrebbe essere:

Cod124
Cod125
Cod234

Fai copia e incolla nella form dello script, del comando, per eseguirlo e del suo output.

Question 7

Not yet answered
Not graded
Flag question

Question text

Debugging

Si consideri il file fattoriale1.c che contiene l'implementazione di del fattoriale nelle versioni iterativa, fact_iter(), e ricorsiva, fact_rec().

Si compili con il comando: gcc -Wall -g fattoriale1.c -o fattoriale

Si consideri l'esecuzione di ./fattoriale con parametro 11. Eseguire le seguenti attività nel debugger.

  1. imporre un breakpoint alla riga 20, che blocchi l'esecuzione all'interno di fact_iter() solo se r>100 (consultare help condition o help break se necessario)
  2. eseguire con parametro 11
  3. quando il breakpoint ferma l'esecuzione mostrare lo stack
  4. mostrare il valore di r e di k
  5. rimuovere il breakpoint 
  6. imporre un breakpoint sul "return" di  fact_rec() (riga 13) in modo che si fermi solo se r>100 (consultare help condition o help break se necessario)
  7. continuare l'esecuzione
  8. quando il breakpoint ferma l'esecuzione mostrare lo stack
  9. mostrare i valori di n ed r
  10. spostarsi sul frame #3
  11. mostrare i valori di n ed r 

Fai copia e incolla nella form dell'intera sessione di debugging (errori compresi!)