Question 1

Not yet answered
Not graded
Flag question

Question text

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

Not yet answered
Not graded
Flag question

Question 3

Not yet answered
Not graded
Flag question

Question text

Raid

     
  1. Un array RAID 0 può essere in stato degradato? se si, che prestazioni ha in tale stato?
  2. Un array RAID 1 può essere in stato degradato? se si, che prestazioni ha in tale stato?
  3. Un array RAID 5 può essere in stato degradato? se si, che prestazioni ha in tale stato?
  4. Un array RAID 0 può essere in stato rebuilding? se si, che prestazioni ha in tale stato?
  5. Un array RAID 1 può essere in stato rebuilding? se si, che prestazioni ha in tale stato?
  6. Un array RAID 5 può essere in stato rebuilding? se si, che prestazioni ha in tale stato?

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 in blocco a causa di un page fautl che verrà servito a t=30, e ogni 20ms di esecuzione genera un major page fault servito in 30ms.
  • B è inizialmente running, è i/o bound (cpu burst trascurabili), ciascun i/o è servito in 40ms.
  • C è inizialemente ready è cpu bound e non genera 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  X 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

B







































running
ready
C







































ready
block A





































block
note tempi
altre note

 

 

Question 5

Not yet answered
Not graded
Flag question

Question text

Espressioni Regolari

Nel file di testo divina.txt, è contenuto il testo del primo libro della Divina Commedia (l'Inferno). Considera ciascuna riga divisa in parole separate da spazi.

Scrivere un comando linux che restituisca tutte le righe per cui  

  • la prima parola contenga esattamente 3 caratteri,
  • il primo carattere non deve essere una lettera (né minuscola, né maiuscola) dell'alfabeto,
  • la riga finisca con la virgola (,).

Inoltre le righe così selezionate dovranno essere ordinate (in ordine lessicografico) rispetto alla seconda parola.

Ad esempio:

«Li occhi», diss' io, «mi fieno ancor qui tolti,
«Se qui per dimandar gente s'aspetta»,
«Là sù di sopra, in la vita serena»,
«Or tu chi se' che vai per l'Antenora,
«se tu non torni?»; ed ei: «Chi fia dov' io,
...

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

Question 6

Not yet answered
Not graded
Flag question

Question text

Si consideri l'output del comando ps aux. Si scriva un  comando, una pipeline di comandi, o uno script che sull'output dell'esecuzione di ps aux, per ogni utente, calcoli il massimo valore tra le percentuali di cpu relative ai processi per cui la percentuale di memoria utilizzata è minore di 4 (il massimo sarà 0 nel caso non esista percentuale di memoria minore di 4).

Il comando ps aux ritorna un record in cui le informazioni richieste sono indicate sulle colonne "USER", "%CPU" e "%MEM" .

 Ad esempio si ipotizzi il seguente output al comando ps aux:

USER              PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
rdevirgilio      5134   8,4  6,7  4569472 562076   ??  S     7:02pm   6:28.95 /
rdevirgilio      1699   1,8 22,6  4464316 1899036   ??  S    Lun12pm  35:38.65 /
_windowserver     194   0,7  0,7  3681072  57756   ??  Ss   Sab12pm  85:38.60 /
rdevirgilio      1633   0,5  0,3  2684992  26028   ??  S    Lun12pm   0:27.03 /
rdevirgilio      4019   0,4  3,5  4450064 292544   ??  S    Mer02pm  28:21.75 /
rdevirgilio       363   0,2  0,2  2572088  17492   ??  S    Sab12pm   7:22.73 /
root             5435   0,1  4,1  2496840   4488   ??  Ss   10:07pm   0:00.05 /

Il risultato del comando o script sarà:

rdevirgilio 0,5
_windowserver 0,7
root 0

Fai copia e incolla del comando/srcipt e del suo output nella form.

Question 7

Not yet answered
Not graded
Flag question

Question text

Debugging

Considera il codice del seguente file divisione.c e compila tale file con il comando

gcc -g -o divisione divisione.c


Non ci sono errori (solo alcuni warning) nella compilazione, ma eseguendo il programma con input "8 9" (otto spazio nove) l'esecuzione termina improvvisamente.

pizzonia@pisolo$ ./divisione
Floating point exception (core dumped)

Esegui il debugger tramite il comando

gdb test

ed esegui i seguenti passi nell'ambiente di debugging nell'ordine specificato

  • Inserisci un breakpoint su "main"
  • fai "single step" fino alla chiamata di "div" e entra dentro 
  • continua (senza single step!) finché il programma non dà errore
  • stampa i valori di x e y nel contesto di div
  • mostra lo stack
  • stampa i valori di x e y nel contesto di main