Data
|
Argomento
|
Tipo
|
N° Ore
|
Riferimento
|
Lun. 27/2/2012
|
Introduzione al corso: programma, modalita' di esame e testi consigliati; necessita' di registrazione per gestione liste prove in itinere ed esami.
Classificazione dei Sistemi Operativi: sistemi multi-utente e multiprocessing (introduzione al concetto di processo).
Sistema Operativo come insiemi di livelli o macchine virtuali. Sistema Operativo come gestore delle risorse,
in particolare: primo livello di un sistema Operativo: Nucleo/Kernel. Concetto di processo e stati di un processo
(esecuzione, sospeso e pronto) e transizione di stato, descrittore di processo (code dei processi pronti e code
di sospensione) e cambio di contesto. Algoritmi di scheduling non preemptive e preemptive; esempio di algoritmo
preemptive: round-robin.
|
L
|
2
|
|
Mer. 29/2/2012
|
Precisazioni su sito: Registro on-line delle lezioni e pagina di news. Ripreso discorso su primo livello di un Sistema
Operativo: riassunto su cose piu' importanti. Funzionamento mediante timer dell'algoritmo di scheduling a round-robin.
Algoritmo di scheduling a priorita' basato su piu' code una per ogni livello di priorita' (statica): problema della starvation.
Presentato alla lavagna funzionamento dello scheduling di Unix con round-robin e priorita' dinamica (che cala e che cresce).
Accennato a gestore I/0. Gestore della Memoria con riferimento alla Memoria Virtuale. Interfaccia utente (testuale o grafica):
il Processore Comandi. File System - Organizzazione logica: file, necessita' descrittore di file e direttori.
Strutturazione dei direttori: direttori ad albero (nome assoluto, relativo al direttorio corrente e relativo semplice)
e a grafo (concetto di Link). Discussione su direttorio RADICE.
|
L
|
2
|
|
Ven. 2/3/2012
|
Uso di PC collegato in rete e videoproiettore. Nel seguito fra parentesi si indicano i lucidi della sezione
"Lucidi su UNIX e il Bourne Shell" cui il registro fa riferimento.
Introduzione a UNIX: sistema operativo multigrammato (e multiprocesso) e multiutente (Luc. 1).
Spiegazione della fase di autenticazione: file /etc/passwd (Luc. 2, 3 e 4).
Processore comandi come processo e generatore di processi: in genere, un processo associato all'esecuzione di
ogni comando (eccezione comando exit) (Luc. 13).
File system: file come stream di byte e come astrazione unificante per file ordinari, direttori e file speciali
come i dispositivi (contenuti in /dev) (Luc. 5).
Nomi assoluti e relativi (Luc. 6): metacaratteri principali trattati dalla shell (* e ?).
Comandi per i direttori: pwd, cd, ls (con varie opzioni, Luc. 16)
e comando man. Spiegato ".", ".." e nomi di file che iniziano con il carattere punto.
Struttura del File SYSTEM di UNIX: direttori tipici (Luc. 7).
|
L
|
3
|
|
Ven. 2/3/2012
|
Presentazione del meccanismo per creare un direttorio sul desktop che viene automaticamente salvata sul server LICA e
che deve essere usato sia durante le esercitazioni che durante gli esami.
Introduzione all'uso degli strumenti di editing per file di testo: l'editor vi e la sua evoluzione vim;
il tutorial vimtutor. (Prof. Bicocchi)
Registrazione nell'applicazione che servira' per l'iscrizione agli esami.
|
E
|
1
|
|
Lun. 5/3/2012
|
Fatto vedere sulla pagina dell'insegnamento la sezione relativa agli Esempi Interattivi.
Shell - Attivazione di diverse shell: /bin/sh e /bin/bash e comando ps (Luc. 26).
Fatto vedere con opzione -x della shell il funzionamento di * e ?.
Comandi cat e more per la visualizzazione di file di testo. Comando whereis per sapere dove e' un comando.
Protezione dei file (Luc. 8): diritti di accesso (r, w e x) per user, group e other.
Concetto di superutente (root). Il comando chmod. I diritti di accesso per i direttori (Luc. 15).
Concetto di link (hardware) per i file (comando ln, Luc. 10), cancellazione file (comando rm) .
Spiegato come si potrebbe realizzare il concetto di link e come si realizza in pratica: struttura direttori (Luc. 11):
i-number e i-node (Luc.12).
|
L
|
2
|
|
Mer. 7/3/2012
|
Shell - Introdotto e fatto vedere file con nomi lunghi e nomi con piu' punti. Sulla base dei comandi ln e rm, spiegato comando mv.
Ripreso concetto di link (hardware): fatto vedere funzionamento per i direttori (comando mkdir, rmdir e rm con opzione -r e con opzione -i).
Concetto di link software per file e direttori: comando ln -s.
Ripreso sintassi generale comandi (Luc. 14): in particolare, comandi multipli sulla stessa riga separati da simbolo di ;
e comando cp per copiare file (differenze con ln).
I 3 bit speciali per i file eseguibili (SUID, SGID e sticky solo accennato) e concetto di real ed effective UID e GID
(Luc. 9). Esempi di uso di SUID: comando passwd e programma che visualizza un file leggibile solo dal proprietario.
Generalizzazione del concetto di file (Luc. 8 del File System). Concetto di filtro e di standard input, standard output
e standard error: associazioni di default e loro modifica con RIDIREZIONE (Luc. 18, 19).
Ripreso schema di esecuzione di un comando con un processo figlio con trattamento della ridirezione (Luc. 20).
Ridirezione in uscita per creare file vuoto (ridirezione a vuoto).
Primi esempi di ridirezione in uscita e in append. Ridirezione dello standard error (Luc. 22) e uso di /dev/null.
|
L
|
2
|
|
Ven. 9/3/2012
|
Uso della shell - Introduzione alla parte di laboratorio; terminali virtuali,
console grafica e testuale; esposizione di alcuni semplici esercizi sui
comandi da terminale: ls, cp, mv; esempi di nomi assoluti e relativi,
directory corrente e comando cd; Permessi di accesso ai file; modifica
dei permessi con chmod; man e la documentazione in linea. Cenno all'Open
Source, licenza d'uso GPL e Free Software Foundation, progetto GNU.
(Prof. Valenti)
|
E
|
4
|
|
Lun. 12/3/2012
|
Shell - Concetto di PATH e valore della corrispondente variabile d'ambiente.
Comandi che possono essere usati sia come comandi normali che come filtri (di nuovo Luc. 18).
Uso come filtri in particolare per ridirezione in ingresso (oltre che in uscita): in particolare il filtro cat usato
sia come semplice editor (concetto di EOF da tastiera, ^D) che come alternativa al comando cp.
Altri esempi di filtri (di nuovo Luc. 18): more, sort, grep, rev, head, tail, wc.
Esempio di programma in C che si comporta come filtro facendo uso dei concetti di standard input e standard output
e quindi leggendo con scanf e scrivendo con printf un carattere alla volta.
Altri comandi: date, who o w, diff e find (Luc. 17).
Piping: composizione di comandi/filtro (Luc. 23, 24). Realizzazione mediante piu' processi e canali di comunicazione.
Esempi che mostrano la presenza di un processo per ogni comando in piping:
uso anche del filtro tee. Esecuzione di comandi in background (Luc. 25): problema di ridirezione standard output
(consigliata) e dello standard input (necessaria!). Uso del comando kill.
|
L
|
2
|
|
Mer. 14/3/2012
|
Shell - Concetto di ambiente di shell (Luc. 27): il processo SHELL generato all'esecuzione di ogni comando riceve per
copia l'ambiente dello shell padre (con ad esempio, PATH, HOME e direttorio corrente). Fatto vedere un esempio in un
sotto-shell con modifica di PATH, HOME e direttorio corrente. Anticipato il concetto di exit value e uso della
pseudo-variabile $?.
Schema del funzionamento della SHELL (Luc. 28): ripreso concetto di comandi interni (speciali) e
aggiunto possibilita' di uso di file comandi.
Spiegato concetto di variabile di shell: valore come stringa e sintassi assegnamento (vari esempi).
Differenza fra variabili di ambiente e variabili di shell:
il comando export per passare una variabile di shell nell'ambiente (esempio relativo).
Sostituzioni attuate dallo shell (Luc. 29). Mostrato gli ulteriori metacaratteri [ ] (Luc. 30) con vari esempi (Luc. 31).
File comandi in BOURNE-SHELL (Luc. 33): primo esempio con le variabili di ambiente PATH, HOME e direttorio corrente.
Ripreso concetto di variabile shell (Luc. 34): esempio di variabili shell con necessita' sia di valutazione di comandi
(uso di backquote ``) che del comando expr.
Inibizione delle sostituzioni attuate dallo shell (Luc. 32): esempi vari e necessita' di eval.
|
L
|
2
|
|
Ven. 16/3/2012
|
Uso della shell - Semplici esempi di script. Esempi di ridirezione; ridirezione dello standard input e comando cat;
link e link simbolici; variabili d'ambiente; quoting di variabili;
file di script: #! e .sh; combinazione di comandi con pipeline ed
elaborazione batch; creazione ed uso di directory; gli shell script;
il costrutto if negli shell script; il comando test.
Prove con il sistema syncexam.sh. (Prof. Valenti)
|
E
|
4
|
|
Lun. 19/3/2012
|
Shell - Passaggio di parametri nei file comandi (Luc. 35): primo esempio di uso.
Comando shift (Luc. 35) e altre pseudo-variabili predefinite (Luc. 36): $*, $#, $? (concetto di return code dei comandi, Luc. 37), $$.
Esempio unico. La struttura di controllo if per realizzare l'alternativa semplice (Luc. 39): primi esempi semplici.
Introdotto il comando test (Luc. 38): altri esempi di if.
Altri esempi di if anche con il comando read (Luc. 36): uso di ridirezione per i file comandi e necessita' di
ridirezione su /dev/tty (Luc. 43). La struttura di controllo case per realizzare l'alternativa multipla (Luc. 40):
vari esempi, di cui uno scritto sul momento.
|
L
|
2
|
|
Mer. 21/3/2012
|
Shell - Strutture di controllo per i cicli: for (Luc. 41), while e until (Luc. 42). Esempi relativi per ogni costrutto.
Ripreso concetto di creazione di un processo di sotto-shell e copia dell'ambiente di shell da padre a figlio (Luc. 46).
Ripreso comando export (Luc. 46) per inserimento delle variabili di shell nell'ambiente.
Eccezione di non creazione sotto-shell per i comandi interni o built-in: elenco parziale (Luc. 47) con chiarimento su break e continue per i cicli,
in particolare, non enumerativi.
Primo esempio di ricerca di un file in una gerarchia con due file comandi con discorso generale iniziale di come strutturare le soluzioni:
due file comandi, uno iniziale con vari controlli sui parametri e uno ricorsivo.
Illustrato il primo file comandi (Luc. 45) e in particolare settaggio variabile PATH e invocazioni sbagliate/corrette;
del secondo file comandi (Luc. 46), mostrato il risultato della esecuzione nella prima versione (con ricerca breath-first).
|
L
|
2
|
|
Ven. 23/3/2012
|
Struttura degli shell script - La command substitution; il comando expr; escaping di caratteri
particolari; passaggio di argomenti; la variabile S# e gli argomenti
della command line; il costrutto for nella programmazione shell; for con
*; test su file e directory; il costrutto case; il comando grep per la
ricerca di testo in un file; la variabile PATH e predisposizione della
ricerca ricorsiva. (Prof. Valenti)
|
E
|
4
|
|
Lun. 26/3/2012
|
Shell - Ripreso esempio di primo file comandi (Luc. 45) e mostrato secondo file comandi (quello ricorsivo) e spiegato
ricerca breath-first e quella depth-first; inoltre, mostrato alla lavagna passo-passo quello che succede nelle varie
attivazioni ricorsive (per il primo caso).
Esercizio che conta tutti i file presenti in una gerarchia svolto in vari modi: versione con file temporaneo globale
che raccoglie tutti i nomi assoluti dei file contati (ver2 del sito), versione con variabile globale e valore di
ritorno (ver1 del sito) e versione con variabile locale e valore di ritorno (ver4 del sito); piu' velocemente mostrato
ulteriore soluzione (ver3 del sito) con uso di scrittura e lettura in un file temporaneo globale del valore del conteggio.
Soluzione della parte Shell di un testo di esame (5 Aprile 2001- Fondamenti di Informatica II) con in particolare
discorso generale iniziale di come partire: due file comandi, uno iniziale e uno ricorsivo; della versione ricorsiva,
mostrate due versioni nello stesso file e una terza versione in un altro file.
|
L
|
2
|
|
Mer. 28/3/2012
|
Il linguaggio C come linguaggio di sistema (Luc. C/UNIX 1-3): caratteristiche di basso livello ed interazione con il sistema operativo UNIX, modello di programma e primitive. Operazioni di sistema (PRIMITIVE) per accedere ai file (Luc. File System 9-11): creazione/cancellazione e lettura/scrittura; ottimizzazione: apertura/chiusura. Visione di basso livello dei file per UNIX/LINUX (Luc. C/UNIX 4-6): Tabella dei file aperti (TFA) per ogni processo ===> file descriptor (o handle) come indice della TFA. Operazioni su file: creat, open, close. File descriptor per standard input, output ed error. Relazioni fra TFA dei singoli processi e tabelle di sistema (Luc. Unix Tabelle 1-7): dei file aperti e degli I-NODE attivi. Struttura del File System fisico. File system logico: concetto di MOUNT e comando DF. I-node e metodo di allocazione dei file di UNIX e primitiva SYNC.
|
L
|
2
|
|
Ven. 30/3/2012
|
Ricerca ricorsiva e compiti risolti in Shell - Il controllo degli argomenti; controllo nome assoluto, relativo,
semplice; controllo argomento numerico; controllo argomento con singolo
carattere; conteggio ricorsivo di file; determinazione della massima
profondità di una gerarchia; soluzione dei compiti proposti nelle date 7
luglio 2009, 17 luglio 2007, 3 aprile 2009, 6 febbraio 2009, 16
settembre 2008, 10 febbraio 2006, 26 giugno 2007, 17 giugno 2008. (Prof. Valenti)
|
E
|
4
|
|
Lun. 2/4/2012
|
File C - Esempi di apertura ripetuta dello stesso file per calcolare la dimensione della TFA di ogni processo (programma proveopen.c sul sito).
Discorso generale sui metodi di accesso
(Luc. File System 12-13): sequenziale (concetto di file pointer) e diretto; concetto di End-Of-File.
Ripreso concetto di File pointer in C/UNIX e altre operazioni su file in UNIX/LINUX (Luc. C/UNIX 8-10): read e write.
Esempi: a) copia di file (con parametri e controlli, Luc. C/UNIX 14, saltati Luc. 11-13);
concetto di BUFSIZ (Luc. C/UNIX 16) con esempio banale che ne stampa il valore: discorso sulla granularita' della
lettura/scrittura su file anche in relazione alla efficienza sulla base delle operazioni fisiche sul disco.
b) copia con ridirezione (Luc. C/UNIX 15).
Tabelle per l'accesso ai file (Luc. Unix Tabelle 8-10): implementazione nel Kernel di Linux.
Implementazione della ridirezione in ingresso e in uscita e sua simulazione in C con stampe su standard error (programma ridir-conperror.c sul sito).
|
L
|
2
|
|
Mer. 4/4/2012
|
File C - 'clone' di cat (programma mycat.c sul sito). Ripreso concetto di BUFSIZ (Luc. C/UNIX 16) con esempi alla lavagna di uso di diverse granularità
di letture in base al problema che si deve risolvere.
Ricordato che i controlli all'atto della open vengono effettuati considerando UID e GID effettivi, non reali (Luc. C/UNIX 17).
Operazione non sequenziali: lseek (Luc. C/UNIX 20). Primo esempio di append su un file (Luc. C/UNIX 21, esercizio del Luc. 22 lasciato da guardare)
e altro esempio di lseek (modifica di tutte le occorrenze di un carattere in un file-Esercizio d'esame di Fondamenti di Informatica II del
22 Settembre 1999 sul sito).
Approfondimenti open (Luc. C/UNIX 7): esempio con vari casi. Seconda versione di append su file. Ripreso discorso di ridirezione:
sintassi avanzata con indicazione del numero di fd da usare (Luc. Shell 21). Esempi relativi: programmi provaoutfd3.c e provafd3.c sul sito.
|
L
|
2
|
|
Ven. 13/4/2012
|
PRIMA PROVA IN ITINERE: BOURNE SHELL (2 turni).
|
E
|
4
|
|
Mer. 18/4/2012
|
File C - Riassunto delle primitive per la gestione dei file a basso livello viste finora. Primitive LINK e UNLINK
(Luc. C/UNIX 24): esempio di versione semplificata del comando MV. Primitive ACCESS, STAT e FSTAT (Luc. C/UNIX 25-27):
esempi relativi.
Processi UNIX: modello ad ambiente locale e sue eccezioni relativamente a file system e codice (Luc. Processi 1).
Rientranza, scheduling, memoria virtuale, swapping e modi di esecuzione dei processi anche in Linux (Luc. Processi 2-3).
Immagine di un processo: parte utente e di kernel (Luc. Processi 4-5). Tabelle di sistema: Process Table e Text Table
(Luc. Processi 4 e 6-7). Descrittore di processo in LINUX (Luc. Processi 8). Stati di un processo in UNIX
(Luc. Processi 9).
Iniziato a presentare la primitiva fork() alla lavagna, in particolare usata dalla SHELL per generare un processo
figlio per eseguire un comando non interno e parlato della condivisione di codice e della duplicazione dell'area dati
e della Kernel Area, in particolare della Tabella dei File Aperti del processo padre.
|
L
|
2
|
|
Ven. 20/4/2012
|
Introduzione all'uso del compilatore gcc; Hello world in c; Libreria C e
file header; uso di man per le funzioni della libc; la funzione main;
prototipi di funzioni; ripasso sulla sintassi del C; tipi di variabili;
Stampa formattata con printf (interi, caratteri e stringhe); gli
argomenti della linea di comando e gli argomenti della funzione main;
argc e argv; Parsing di opzioni e argomenti; Implementazione del comando
head di Unix introducendo le primitive di accesso ai file open(), read()
e write(). (Prof. Valenti)
|
E
|
4
|
|
Lun. 23/4/2012
|
Processi UNIX - Primitive per la gestione dei processi: creazione ===> fork e sui effetti (Luc. Processi 10-11).
Primo esempio semplice: due versioni (la seconda con primitive getpid, getuid e getgid, Luc. Processi 19).
Uso del valore di ritorno della fork (Luc. Processi 12): secondo esempio semplice.
Osservazioni su fork (Luc. Processi 13) in particolare relativamente ad ambiente locale.
Condivisione I/O pointer file aperti da padre prima della fork (Luc. Processi 14-15) e condivisione in generale di un file (Luc. Processi 16-17).
Primitive wait/exit in generale (Luc. Processi 20-22). Vari esempi di fork e wait: due casi di errore (senza recupero di valore di exit) e
due versioni di recupero valore di exit (prima, Luc. Processi 23, con operatori bit-a-bit e seconda, fatta vedere velocemente, con uso di macro).
|
L
|
2
|
|
Ven. 27/4/2012
|
Funzioni per l'accesso ai file - Le funzioni per l'accesso a basso livello; la funzione write, esempi
d'uso; la open per creare file ed aprire file esistenti; modalità di
apertura; specifica dei permessi di creazione dei file; la funzione
read; posizione corrente dei file aperti e la funzione lseek; cenni sul
comportamento bloccante; la funzione fork. (Prof. Bicocchi)
|
E
|
4
|
|
Mer. 2/5/2012
|
Processi UNIX - Processi ZOMBIE (Luc. Processi 25) ed ereditati da INIT (Luc. Processi 26): due esempi relativi.
Famiglia di primitive EXEC: execv, execl, execvp e execlp; effetti exec (Luc. Processi 27-28).
Esempi semplici di uso (Luc. Processi 29-30). Completato famiglia di primitive exec: execve e execle (Luc. Processi 31).
Esempio di uso di fork ed exec (Luc. Processi 32-33): considerazione su ottimizzazione della primitiva fork in Linux
con copy-on-write. Connessione con comportamento della SHELL: in particolare,
implementazione ridirezione e quindi file aperti prima di exec e comportamento del SUID (un esempio ciascuno).
|
L
|
2
|
|
Ven. 4/5/2012
|
Multitasking e comportamento bloccante - Il comportamento bloccante delle syscall; differenze fra write e printf
relativamente agli aspetti temporali e di buffering; il concetto del
multitasking come interpretato da Unix; differenze fra multiprocessing e
multithreading; cenno alla libreria pthreads; creazione e gestione di
più processi figli; progetti distribuiti su più file rorgenti; make e
makefile. (Prof. Valenti)
|
E
|
4
|
|
Lun. 7/5/2012
|
Processi UNIX - Inizializzazione del sistema UNIX e comportamento della shell (Luc. Processi 34-35).
Esempio di un programma che simula in modo molto semplice un processore dei comandi (Luc. Processi 36):
uso della primitiva di gestione degli errori perror (Luc. Processi 37).
Presentato problema Produttore(i)/Consumatore(i) per passare informazioni (dati) da un processo all'altro:
quindi presentato caso di padre e figlio (Luc. Processi 38).
Interazione fra processi in UNIX (Luc. Pipe 1). Comunicazione mediante PIPE (Luc. Pipe 2):
creazione pipe e omogeneita' con i file (Luc. Pipe 3-4). Calcolo della lunghezza di una pipe (Luc. Pipe 5).
|
L
|
2
|
|
Mer. 9/5/2012
|
Processi UNIX - Processi che possono comunicare tramite una pipe: necessita' di relazione di parentela (Luc. Pipe 6).
Esempio Produttore (padre) e Consumatore (figlio) usando una pipe (Luc. Pipe 7):
necessita' di chiusura dei lati non necessari (Luc. Pipe 8).
PIPE - Problemi: pipe senza scrittore (Luc. Pipe 12) e pipe senza lettore (Luc. Pipe 13).
Esempio di possibile implementazione del PIPING dei comandi (Luc. Pipe 10-11): primitiva DUP (Luc. Pipe 9).
Suggerito di svolgere la soluzione dell'esercizio dell'esame del
19 Febbraio 2001.
|
L
|
2
|
|
Ven. 11/5/2012
|
Comunicazione fra i processi - Sincronizzazione fra processi operata dalla wait(); lettura dell'exit
value; uso della macro WEXITSTATUS; concorrenza dei processi;
condivisione di file; accesso concorrente; la funzione pipe(); i file
descriptor associati ad una pipe; comportamento bloccante; casi d'uso
della pipe: singola pipe fra figli e padre, una pipe per ogni figlio
verso il padre; porzioni ricorrenti e riuso del codice; vimdiff. (Prof. Valenti)
|
E
|
4
|
|
Lun. 14/5/2012
|
Processi UNIX - Presentato limiti delle Pipe e necessita' delle Named Pipe: FIFO (Luc. Pipe 17). Esempio: processo server RECFIFO e processi client SENDFIFO (Luc. Pipe 18-20).
Esercizio di esame di Sistemi Operativi VOD e relativa soluzione della sola parte C: 19 Febbraio 2001. Suggerito di svolgere la soluzione dell'esercizio dell'esame del 19 Dicembre 2001.
|
L
|
2
|
|
Mer. 16/5/2012
|
Processi e loro comunicazione in UNIX - Esercizi di esame di Sistemi Operativi della sola parte C: Soluzione dell'esame del 19 Dicembre 2001 (due versioni, prima con 1 pipe e poi con N pipe); Soluzione dell'esame dell'11 Marzo 2008.
Suggerito di svolgere la soluzione dell'esercizio dell'esame del 2 Aprile 2004.
|
L
|
2
|
|
Ven. 18/5/2012
|
Schemi di sincronizzazione fra processi -
Introduzione del tentativo (sbagliato) di far sincronizzare i figli al
processo padre mediante il solo uso di N pipe, identificazione dei
limiti di funzionamento; meccanismo del “passaggio della staffetta” con
cui i processi figli si sincronizzano fra loro; esempio di ordinamento
diretto ed inverso; Soluzione interattiva della prova del 8 aprile 2005. (Prof. Valenti)
|
E
|
4
|
|
Lun. 21/5/2012
|
Processi UNIX - Sincronizzazione in UNIX mediante SEGNALI: definizione di segnale (Luc. Segnali 1) e suo trattamento
(Luc. Segnali 2). Elenco (parziale) segnali (Luc. Segnali 3), anche su file .h nel server Linux.
Primi esempi di segnali semplici (Luc. Segnali 4): SIGINT (CTRL-C), SIGILL, SIGTERM e SIGKILL.
Primitiva SIGNAL (Luc. Segnali 5): definizione di un HANDLER, default e possibilita' di ignorare un segnale.
Differenze di gestione fra versione BSD e System V (Luc. Segnali 6).
Comportamento in seguito a fork ed exec (Luc. Segnali 7).
Esempio di uso del segnale corrispondente al CTRL-C: comportamento in BSD (Luc. Segnali 8) con prova di funzionamento
e, in modo veloce, comportamento in System V (Luc. Segnali 9).
Soluzione dell'esercizio dell'esame del 2 Aprile 2004, illustrato al termine della lezione passata.
|
L
|
2
|
|
Mer. 23/5/2012
|
Processi UNIX - Primitiva KILL (Luc. Segnali 10) e PAUSE (Luc. Segnali 11): esempio (Luc. Segnali 12-13).
Altre primitive: ALARM (Luc. Segnali 11) con relativo esempio (Luc. Segnali 14-15).
Ripreso esempio calcolo lunghezza pipe (Luc. Pipe 16): trattamento mediante SIGALRM.
Ripreso esempio di pipe senza lettore (Luc. Pipe 14-15): trattamento segnale SIGPIPE.
Esercizio di esame di Sistemi Operativi VOD e relativa soluzione della sola parte C del 10 Gennaio 2001:
versione con segnali e mostrato velocemente quella con le pipe (lasciata poi da fare come esercizio).
|
L
|
2
|
|
Ven. 25/5/2012
|
Soluzione di esercizi ed esempi sui segnali Unix -
Soluzione interattiva del compito del 12 marzo 2004; Analisi delle
modifiche da apportare alla soluzione per invertire l'ordine di
sincronizzazione; gestione della terminazione asincrona dei figli;
Esempio di pipeline di processi che eseguono il comando “expr”; Recupero
dell'exit status in caso di terminazione per effetto di un segnale, le
macro WIFEXTED, WEXITSTATUS, WTERMSIG; aggancio di un handler ad un
segnale; la funzione alarm e un cenno al non local jump; esempio di
sincronizzazione con scambio di segnali. (Prof. Valenti)
|
E
|
4
|
|
Lun. 28/5/2012
|
Processi e loro comunicazione in UNIX - Esercizi di esame di Sistemi Operativi della sola parte C:
Soluzione della Seconda Prova in Itinere del 4 Giugno 2010 e soluzione dell'esame del 18 Giugno 2010.
|
L
|
2
|
|
Mer. 30/5/2012
|
LEZIONE NON TENUTA A CAUSA DEL TERREMOTO!
|
L
|
2
|
|
Ven. 1/6/2012
|
SECONDA PROVA IN ITINERE: LINGUAGGIO C - NON TENUTA A CAUSA DEL TERREMOTO!
|
E
|
4
|
|
Mer. 6/6/2012
|
RECUPERO LEZIONE NON TENUTA A CAUSA DEL TERREMOTO: : solo per 1 ora a causa della sovrapposizione con recupero di Basi di Dati e Lab.Processi e loro comunicazione in UNIX -
Discorso generale sui possibili schemi di comunicazioni fra processi e descrizione sintetica delle possibili soluzioni
in termini di pipe.
|
L
|
1
|
|
Ven. 8/6/2012
|
RECUPERO SECONDA PROVA IN ITINERE, su LINGUAGGIO C (1 turno), che non si era potuta tenere Venerdì 1/06/2012 a causa del TERREMOTO!
|
E
|
4
|
|