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 CLOCK (versione semplice senza bit di modifica) e sviluppa i seguenti punti. 

  1. Descrivi la strategia CLOCK spiegando 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à CLOCK rispetto alla strategia Least Recently Used (LRU)?
  3. In che senso CLOCK e' una approssimazione di LRU?

Question 3

Not yet answered
Not graded
Flag question

Question text

I/O 

Considera una operazione di scrittura su disco (ad esempio l'esecuzione di una write di un certo numero di byte su 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 effettivamente scritti su disco.

 

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, è I/O bound, ed esegue infinite letture bloccanti, ciascuna servita in 60ms.
  • B è inizialemente ready è cpu bound e genera major page faults ogni 20ms, ciascuno servito in 50ms.
  • è inizialmente in blocco, a causa di un page fault che verrà servito a tempo t=10 ms, è cpu bound, non provoca altri 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
B







































ready
blocked C





































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 primo carattere sia una consonante maiuscola.
  2. L’ultimo carattere sia "."
  3. Contenga il carattere "," poi seguito da uno spazio e quindi dalla lettera ‘a’

Ad esempio la seguente riga è conforme alle regole.

Dall’uno, all’altro mar.

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 lotto1.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 dovrebbero essere compresi tra 1 a 90 ma alle volte ci possono essere numeri maggiori di 90 o minori di 1. Si scriva uno script basato su awk che produca un output con righe che seguono il seguente formato

numero estrazioni

in cui si stampino, per ciascun numero, quante volte questo è stato estratto. Bisogna però escludere le estrazioni in cui ricorrono “numeri non validi” (numeri non compresi nell’intervallo 1-90). Ordinare il risultato in ordine crescente rispetto al numero.

Un esempio di possibile output:

18 4
19 3
22 2
23 3
25 4
27 1
 

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!)