Diario delle Lezioni
A.A. 2011/2012

Sistemi Operativi e Lab.
Ingegneria Informatica - Laurea Triennale


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

Legenda:
E= Esercitazione
L= Lezione


[Home Page]| [La Facoltà] | [Offerta Didattica] | [Laboratori] |
[Dip.Ing. Informazione]  [Dip.Ing. Materiale e Ambiente]  [Dip.Ing. Meccanica e Civile]

web_ing@unimo.it