Sistemi di Calcolo

Corso di Laurea in Ingegneria Informatica e Automatica

Home | Avvisi | Diario Lezioni | Esercitazioni | Esami | Materiale Didattico | Valutazioni Studenti | Lezioni di Camil Demetrescu |

Esercitazione del 29 maggio 2020

Istruzioni per l’esercitazione:

Per maggiori informazioni fate riferimento al regolamento delle esercitazioni.

Domande

Rispondere alle seguenti domande con vero=V o falso=F.

Domanda 1 Sia eax=0xFF00FF00 ed ecx=0x00FF00FF. Dopo aver eseguito andl %eax, %ecx, si ha: %ecx=F0F0F0F0.

Domanda 2 La distinzione tra registri caller-save e callee-save è determinata dall’ISA.

Domanda 3 La seguente funzione è corretta secondo l’ISA IA32 e l’ABI 386 System V:

f: movl 4(%esp), %ebx
   movl %ebx, %eax
   incl %eax
   ret

Domanda 4 In una cache associativa a 2 vie, un blocco di memoria ha due possibili linee in cui può essere caricato.

Domanda 5 Il passaggio dallo stato waiting allo stato ready per un processo viene normalmente innescato da un interrupt.

Domanda 6 Un segnale è un meccanismo con cui vengono notificati eventi ai processi e coinvolge sempre l’hardware.

Domanda 7 Si consideri il seguente frammento di codice:

int sum(int *v, int n) {
   int s = 0;
   for (i = 0; i<n; i++) s+=v[i];
   return s
}

Il seguente codice è ottenuto dal precedente applicando loop unrolling:

int sum(int *v, int n) {
   int i, s = 0;
   for (i = 0; i+1<n; i+=2) {
       s+=v[i];
       s+=v[i+1];
   }
   if (n%2) s += v[i];
   return s;
}

Domanda 8 Le seguenti notazioni per i permessi user-group-other sono equivalenti: 641 e rw-r----x

Domanda 9 Il sistema di paginazione di un moderno sistema operativo gestisce la memoria virtuale al prezzo di avere frammentazione esterna.

Domanda 10 Il seguente main genera 3 processi figli:

int main() {
    fork();
    fork();
}

Domanda 11 Se eax=0 il frammento di codice IA32 genera un salto:

testl %eax, %eax
jne L

Domanda 12 Considerando il padding, si ha sizeof(struct S)=8 per la seguente struttura?

struct {
    int a;
    short b;
    char c;
};

Domanda 13 La risoluzione di un timer è il minimo intervallo di tempo misurabile.

Domanda 14 La system call lseek non consente di misurare il numero di byte di un file.

Domanda 15 Sia alpha la frazione di un programma, ottimizzata dimezzandone il tempo di esecuzione. Alpha deve essere 0.6666 affinché lo speedup complessivo del programma sia 1.33333 (3 periodico).

Domanda 16 Se un programma C usa funzioni matematiche è necessario includere sulla riga di comando lo switch -lm

Domanda 17 Un soft link ha lo stesso inode del file linkato.

Domanda 18 Ogni file contiene il suo numero di hard link: quando questo numero va a zero il file viene cancellato.

Domanda 19 Il comando cat miofile >> output.txt appende (copia in coda) il canale di standard output di cat miofile al file output.txt.

Domanda 20 Uno zombie è un processo che è terminato prima del suo genitore.

Domanda 21 Se un processo genitore termina prima di un processo figlio, quest’ultimo eredita come nuovo genitore un antenato del genitore terminato nell’albero dei processi.

Domanda 22 Si consideri una cache a due linee completamente associativa e la seguente sequenza di accessi a indici di blocchi: 3,5,3,2. Si hanno due cache hit e due cache miss.

Domanda 23 Una system call int $128 in ambiente Linux riceve i parametri in stack secondo le stesse convenzioni delle funzioni come stabilito dell’ABI System V.

Domanda 24 In un sistema time-sharing, il passaggio di stato da running a ready avviene normalmente mediante un interrupt asincrono.

Domanda 25 Il polling è normalmente inadatto per intercettare l’evento che porta un processo da stato waiting a ready.

Domanda 26 Il passaggio da stato ready a running avviene normalmente mediante una system call.

Domanda 27 La paginazione con bit di validità è un meccanismo che consente di avere uno spazio logico di processo molto più grande della memoria fisica.

Domanda 28 L’allocatore malloc/free lavora interamente in spazio utente usando la system call sbrk per chiedere spazio heap al kernel.

Domanda 29 Una variabile globale non inizializzata risiede nella sezione .bss nello spazio logico di un processo.

Domanda 30 Un hazard sui dati non può risolversi con degli stalli poiché questi ridurrebbero il throughput della pipeline.

Soluzioni

Domande

Domanda 1: F

Domanda 2: F

Domanda 3: F

Domanda 4: V

Domanda 5: V

Domanda 6: F

Domanda 7: V

Domanda 8: V

Domanda 9: F

Domanda 10: V

Domanda 11: F

Domanda 12: V

Domanda 13: V

Domanda 14: F

Domanda 15: F

Domanda 16: V

Domanda 17: F

Domanda 18: V

Domanda 19: V

Domanda 20: V

Domanda 21: V

Domanda 22: F

Domanda 23: F

Domanda 24: V

Domanda 25: V

Domanda 26: F

Domanda 27: V

Domanda 28: V

Domanda 29: V

Domanda 30: F