Raccolta delle domande degli orali dal vecchio forum:
2015:
Mi ha chiesto di parlare di lock,spinlock. Mi ha fatto fare una parte di un es. su wait e signal. Sullo stesso argomento mi ha chiesto quali differenze ci sono con i semafori, e come si può implementare una P ed una V su un semaforo. Mi ha chiesto inoltre di parlare un pò di tread e processi (differenze, livello utente, livello kernel, commutazione, e quant altro...).
2018:
Con me partì chiedendomi di descrivere il seguente codice:
Thread A
...
Top++
Stack[top]=y
...
Thread B
...
Z=Stack[top]
Top--
...
Quindi parlare di definizione di sezione critica. Per quale ragione potrebbe generarsi un errore semantico durante l'esecuzione etc.
Mi è stato quindi chiesto di scrivere un produttore consumatore che gestisse una sezione critica (utilizzando quindi lock e variabili di condizione).
Poi mi chiese di parlargli dello scheduling in generale, della differenza tra processi CPU-bound e I/O bound. Poi mi chiese quale algoritmo di scheduling fosse più indicato per un sistema batch.
In un altro orale mostrò la slide che conteneva la struttura di un inode e chiese di descrivere il FFS. E poi chiese la differenza tra FFS e FAT, quale dei due è migliore e perché.
-----
1) Spiegare il grafico "thread lifecycle" che prese dal file preparazione-orale disponibile sulla pagina e-learning del corso. Perchè è presente lo stato finale?
2) Parlami degli algoritmi di scheduling che conosci.
-----
Orale basato interamente sul problema dei filosofi a cena:
- Analizzare la soluzione "base", ovvero quella che fa semplicemente la lock dei bastoncini. Ho continuato mostrando una soluzione alternativa che elimina lo stallo ma, introducendo un'asimmetria, è poco efficiente (in un tavolo con 4 filosofi, teoricamente due filosofi non adiacenti possono mangiare contemporaneamente, ma con questa soluzione ci sono dei casi in cui solo uno può mangiare).
- Dopo ha esposto un'altra soluzione e mi ha chiesto di analizzarla.
Domande Orale Chessa
-
- Messaggi: 29
- Iscritto il: 10/02/2019, 23:23
Allego un pdf di qualche anno fa con una buona lista di domande (lo usa ancora molto spesso)
Mi ha un po' distrutto all'orale (ero poco preparato, e forse è più cattivo se non hai fatto i compitini ma non credo)
Domande particolarmente bloccanti:
- Scrivere produttore&consumatore con semafori, (ho sbagliato a mettere i lock sul buffer, già partito male)
- Perché la V non incrementa quando ci sono thread in attesa e differenze di design tra semafori e variabili di condizione
- Implementazione dei semafori con la spinlock, che istruzioni hardware vanno usate, cos'è "LOCK" gestito dall'hardware nel codice delle spinlock
- Cos'è la core map, differenza con la page table
Da telegram:
Save
a) spiegazione dettagliata della soluzione "too much milk", in particolare del perché è una soluzione peggiore dell'uso delle lock: motivazioni 1) il codice è asimmetrico quindi è diverso da un thread all'altro quando in realtà i due thread devono fare la stessa cosa
2) il compilatore potrebbe riordinare le istruzioni di too much milk, a differenza di quelle all'interno di lock
3)diventa molto più complicato con n thread (algoritmo di peterson)
b) funzionamento MFQ di windows, priorità, CPU/IO-bound e cosa significa, come si sale e scende di priorità e inversione di priorità
Mi ha un po' distrutto all'orale (ero poco preparato, e forse è più cattivo se non hai fatto i compitini ma non credo)
Domande particolarmente bloccanti:
- Scrivere produttore&consumatore con semafori, (ho sbagliato a mettere i lock sul buffer, già partito male)
- Perché la V non incrementa quando ci sono thread in attesa e differenze di design tra semafori e variabili di condizione
- Implementazione dei semafori con la spinlock, che istruzioni hardware vanno usate, cos'è "LOCK" gestito dall'hardware nel codice delle spinlock
- Cos'è la core map, differenza con la page table
Da telegram:
Save
a) spiegazione dettagliata della soluzione "too much milk", in particolare del perché è una soluzione peggiore dell'uso delle lock: motivazioni 1) il codice è asimmetrico quindi è diverso da un thread all'altro quando in realtà i due thread devono fare la stessa cosa
2) il compilatore potrebbe riordinare le istruzioni di too much milk, a differenza di quelle all'interno di lock
3)diventa molto più complicato con n thread (algoritmo di peterson)
b) funzionamento MFQ di windows, priorità, CPU/IO-bound e cosa significa, come si sale e scende di priorità e inversione di priorità
- Allegati
-
- 14b- preparazione orale (3).pdf
- (1.8 MiB) Scaricato 945 volte