Domande Orale Torquati

Rispondi
Avatar utente
InformateciBot
Messaggi: 314
Iscritto il: 30/09/2018, 16:33

Salve ragazzi sapete come si svolge l'orale con il torquati?
quali sono le domande che chiede di solito?

Orale luglio 2016
Discussione del progetto e qualche domanda sugli errori o su quali scelte diverse potevano essere fatte e perché si è scelto quella, poi domande orali.


Voto progetto 24-25, voto finale 27 entrambi

1. Signal handler e gestione dei segnali
Sigaction solo funzioni safe, si implementa un signal handler. All'arrivo di un segnale viene eseguita la funzione di signal handler (asincrono, può eseguirlo un thread chiunque, quello attivo in questo momento)
Sigwait: un thread si sospende in attesa di un segnale. Signal handler array, pending bitmask, signal mask.
Il signal handler array è per processo e non per thread, la maschera ogni thread può usare la sua con pthread_sigmask, la bitmap uguale.
2. Struttura root Linux (etc, home, lib, dev, tmp)
3. Librerie: statiche e dinamiche, differenza e estensione
4. Makefile a cosa serve. Scrivere makefile minimale per compilare con -Wall il file pippo.c

1. Cos'è l'i-nodo di un file
2. Tipi di file: d directory, l link, - regolare, p pipe, s socket, c caratteri (device a caratteri: i.e. mouse, tastiera, tty), b blocchi (device a blocchi: i.e. HDD)
3. /dev/null e /dev/zero: il primo è il buco nero, il secondo restituisce quanti byte vuoi, tutti a zero
4. opendir: contiene l'elenco dei file nella cartella, i puntatori a i-nodi e due cartelle speciali: . e ..
5. Concorrenza produttore consumatore in pseudocodice: il while non si può eliminare nemmeno con un solo consumatore perché potrebbe essere risvegliato non da una signal ma da un segnale e continuare anche se la coda è vuota (spourius makeup)
6. realloc
7. Struttura manuale (2 syscall, 3 chiamate libreria)

Orale Aprile 2017
Parte dal progetto chiedendo prima di tutto di descriverlo, poi prende qualcosa dal codice (es. una variabile globale) e chiede a cosa serve, probabilmente per vedere se sei davvero l'autore. Dopo parla degli errori del progetto e chiede cosa si potrebbe cambiare per eliminarli.

Le domande di teoria nascono spesso da cose incontrate nella discussione del progetto. A me ha chiesto:
- come si fa a gestire i segnali con gli handler (con quale chiamata si installano, il codice non deve essere lungo e deve chiamare solo funzioni signal-safe, se si accedono var globali devono essere volatile sig_atomic, ecc)
- cosa fanno i qualificatori volatile, static, extern
- quando possono arrivare le signal (in qualsiasi momento, sono asincrone) e quale thread può eseguire l'handler (uno qualunque, non si possono fare supposizioni)
- scrivere un makefile per compilare pippo.c (basta scrivere pippo : pippo.c)

Orale Aprile 2017
Voto finale 25 (23 lab + 27 teoria)
Come già detto da altri, inizialmente ti fa parlare delle tuo progetto, di alcuni punti che a lui non sono piaciuti e poi domande di quello visto a lezione.
-cosa contiene un i-node,
-tipi di file
-piccolo esempio di produttore-consumatore

Orale Settembre 2017
Appena fatto l'orale (sono quello delle famose 8300 righe di codice).

La prima parte mi ha chiesto di spiegare il progetto, la struttura, i metodi di comunicazione tra le varie parti, mutua esclusione, deadlock, come avrei potuto risolvere una cosa che ho implementato senza usare una pipe (timeout sulla select), gestione degli account, gestione dei messaggi, concorrenza sui descrittori, gestione della disconnessione degli utenti...
Sullo script tutto bene, mi ha chiesto di spiegare il pattern matching con le ERE e come ho svolto il controllo sulla validità della cartella (esistenza, tipo di file).

Poi mi ha fatto alcune domande di teoria, gestione dei segnali (handler vs thread gestore), strutture per la gestione dei segnali (quali per processo e quali per thread), quali handler possono essere installati nel gestore (e quali segnali hanno come effetto di default di terminare il processo, e quali no) e mi ha chiesto di elencare i tipi di file nel file system Unix.

Voto finale 30.

Orale febbraio 2018
Nella prima parte dell'orale mi ha fatto qualche domanda per accertarsi che l'autore del progetto fossi effettivamente io. Per quanto riguarda la teoria mi ha chiesto:

- Perché si usa volatile sigatomic_t negli handler dei segnali. In particolare cosa fa volatile.
- Scrivere un makefile per compilare pippo.c, usando le variabili CC e CFLAGS.
- Cosa sono e come funzionano i segnali. Spiegare nel dettaglio Signal Handler Array.
- Qual è il comportamento di default dei segnali.
- Quale segnale non uccide il processo che lo riceve.
- Cosa contiene la cartella /dev/
- Scrivere in pseudocodice la soluzione al Problema Produttore - Consumatore.

Orale aprile 2018
Professore molto tranquillo per tutta la durata dell'orale (30 minuti), all'inizio mi vien chiesto di esporre il progetto e ho avuto modo di esporre i difetti che avevo riscontrato solo dopo averlo consegnato.
Mi son state fatte un po' di domande mirate al progetto e alla teoria, in particolare:
- Segnali: differenza fra segnali asincroni e sincroni, utilizzo di un thread handler per gestire i segnali (con sigwait), volatile sigatomic_t, utilizzo di una Pipe per gestire i segnali e l'atomicita' su di essa, nonche' altri possibili utilizzi della Pipe
- Select, motivo per aver messo sia il Timeout, sia il While(1) esterno alla select
- Come si cambia password (passwd)
- File System: tipi di files, contenuto di /dev, files speciali (a caratteri, a blocchi), cosa rappresenta il permesso "s" nel campo dei permessi di esecuzione (setuid)
- Directory file di configurazione (/etc)
Prende una funzione qualsiasi, quella che gestisce OP = POSTTXT, ne parlo un po', poi si arriva a parlare di sezioni critiche piu' o meno lunghe rispetto al numero di risorse condivise da proteggere, lock sulle strutture dati usate, come si poteva fare meglio, ecc.

Orale aprile 2018
Orale Appello Straordinario (Progetto Chatty):

Inizialmente mi ha chiesto di spiegare la struttura del progetto: quali strutture dati si è usato, come sono stati memorizzati i messaggi nella history, la gestione dei segnali.. ecc.
Poi una piccola discussione sulle scelte prese, come si poteva migliorare il progetto e poi ha provato un semplice test scritto al momento (ha provato a mandare 100 messaggi e ha controllato quanti e in che ordine vengono memorizzati nella history).

Seconda parte domande di teoria:
- Elencare tutti i tipi di file che conosce (regolare, directory, a blocchi, a carattere, link, socket, pipe).
- Elencare le principali cartelle nel sistema linux e il loro contenuto (root, boot, usr, tmp, etc, home, dev, ..).
- A cosa servono le pipe e distinzione tra quelle senza e con nome (quelle senza permettono la comunicazione solo tra processi "parenti" padre-figlio).
- Come sono organizzati i permessi dei file (utente, gruppo, altro - lettura, scrittura, esecuzione).
- Cosa significa il permesso "s" nei bit dei permessi di un file (setuid).
Consiglio di ripassarsi anche i comandi gdb (quelli indicati nel cheatsheet dato dai docenti).

Orale durato 25 minuti, professore molto tranquillo. Se il progetto passa i test e avete gestito bene segnali e mutua esclusione (troppe lock oppure troppe poche) con molta probabilità non avrete problemi a passare l'orale.

Voto progetto 27
Ultima modifica di andrea.tosti il 10/07/2019, 9:55, modificato 1 volta in totale.
Motivazione: modifica titolo discussione
Rispondi

Torna a “[SOL] Sistemi operativi e laboratorio”