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.