Registro delle Lezioni
A.A. 2012/2013

Sistemi Operativi e Lab.
Ingegneria Informatica - Laurea Triennale


Data
Argomento
Tipo
N° Ore
Riferimento
Mer. 27/02/2013
Introduzione al corso: programma, modalita' di esame e testi consigliati (Lucidi Programma); necessita' di registrazione per gestione liste prove in itinere ed esami. Illustrazione del sito: Registro on-line delle lezioni, Lucidi e Testi Esami. GeneralitÓ su cosa Ŕ un Sistema Operativo e, soprattutto, su cosa fa un Sistema Operativo. Definizione di Multiprogrammazione e di Sistema Operativo Multiprogrammato: introduzione al concetto di processo (entitÓ attiva che esegue un programma, entitÓ passiva) e ai vari 'tipi' di processi (I-O bound e CPU bound). Definizione di Multiprocesso e di Multiutenza. Brevemente il caso dei Sistemi Operativi Real-Time (processi con prioritÓ) e dei Sistemi Operativi Time-sharing (scheduling a quanti di tempo). Sistema Operativo come gestore delle risorse: possibile individuazione di diversi livelli del Sistema Operativo o macchine virtuali (esempio del Sistema Operativo MS-DOS). (Lucidi Introduzione sui SO, 1-10)
L
2
Ven. 01/03/2013
Sistema Operativo come gestore delle risorse: in particolare: primo livello di un sistema Operativo: Nucleo/Kernel. Ripreso concetto di processo: stati di un processo (esecuzione, sospeso e pronto) e transizioni di stato, descrittore di processo (code dei processi pronti e code di sospensione) e cambio di contesto. Algoritmi di scheduling non preemptive e preemptive; esempi di algoritmi di scheduling: algoritmo round-robin basato su quanti di tempo (preemptive con uso di un timer); algoritmo di scheduling a priorita' statica basato su piu' code, una per ogni livello di priorita'; algoritmo a prioritÓ dinamica con uso di quanti di tempo differenti e meccanismi di penalizzazione/promozione con prioritÓ che quindi cala o cresce sulla base del consumo del quanto di tempo. Accennato a gestore I/0. Gestore della Memoria con riferimento alla Memoria Virtuale. Interfaccia utente: il Processore Comandi. Punti di vista: utente e quindi esterno o del Sistema Operativo e quindi interno. (Lucidi Introduzione sui SO, 11-18) 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. (Lucidi File System, 1-7) 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). Introdotto comando pwd e cd (con e senza parametro).
L
3
Ven. 01/03/2013

Presentazione del meccanismo per creare un direttorio sul desktop che viene automaticamente salvata sul server LICA (lica2) e che deve essere usato durante gli esami. Registrazione nell'applicazione che servira' per l'iscrizione agli esami. Guida all'installazione ambiente di lavoro. In particolare, Ubuntu 12.04 32bit su Oracle VirtualBox. (Prof. Bicocchi)
E
1
Lun. 04/03/2013
Shell - Processore comandi come processo e generatore di processi: in genere, un processo associato all'esecuzione di ogni comando (eccezioni: comando exit e cd) (Luc. 13); mostrato nuovamente il comando ps con due opzioni: -f (full) e -e. Introdotto comando man. Attivazione di diverse shell: bash e jsh e mostrato di nuovo comando ps. Accennato a presenza opzioni -x e -v (Luc. 26). 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). Struttura del File SYSTEM di UNIX: direttori tipici (Luc. 7). Nomi assoluti, relativi al direttorio corrente e relativi semplici (Luc. 6): mostrato simulazione della gerarchia del lucido. Spiegato metacaratteri principali trattati dalla shell (* e ?) (sempre Luc. 6): mostrato con opzione -x della shell il funzionamento di * e ?. Spiegato "." e ".." e il suo effetto sull'albero che diventa un grafo e mostrato esempi di uso: in particolare, cd .. o cd ../.. e ./prova. Per quest'ultimo esempio, spiegato brevemente concetto di PATH e ricerca eseguibili: comandi which e whereis. Spiegato nomi di file che: iniziano con il carattere punto, molto lunghi e con pi¨ caratteri punto: comando cat per la visualizzazione di file di testo. Approfondimento su ls: varie opzioni (Luc. 16) Protezione dei file (Luc. 8): diritti di accesso (r, w e x) per user, group e other. Concetto di superutente (root) e spiegato che i controlli avvengono sulla base delle informazioni UID e GID effettvi che sono memorizzati nel descrittore di processo.
L
2
Mer. 06/03/2013
Shell - Ripreso diritti di accesso per i file e fatto vedere accesso allo stesso file da parte di due utenti diversi, ma appartenenti allo stesso gruppo. Il comando chmod, versione simboli ed ottale: effetto diverso sull'accesso ad un file. Significato dei diritti di accesso per i direttori. Comandi chown e chgrp solo per il SUPERUTENTE (Luc. 15): spiegato sudo per Ubuntu. Concetto di link (hardware) per i file (comando ln, Luc. 10), cancellazione file (comando rm): vari esempi. Spiegato come si realizza in UNIX il concetto di link: struttura direttori (Luc. 11) con i-number e i-node (Luc.12): mostrato uso di opzione -i di ls. Sulla base dei comandi ln e rm, spiegato comando mv. Mostrato funzionamento dei link hardware 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).
L
2
Ven. 08/03/2013
Shell - I 3 bit speciali per i file eseguibili (SUID, SGID e sticky solo accennato) e ripreso concetto di real ed effective UID e GID (Luc. 9). Esempi di uso di SUID: 1) comando passwd con accesso in scrittura e lettura al file /etc/shadow; 2) programma che visualizza un file leggibile solo dal proprietario con accesso di un utente che non Ŕ il proprietario (ripreso concetto di PATH e valore della corrispondente variabile d'ambiente). Spiegato significato dello sticky bit per i direttori: esempio di /tmp. 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 usando il comando pwd e ls. 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. 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 esempi di filtri (di nuovo Luc. 18): more, sort, grep, rev, head, tail, wc. Ridirezione dello standard error (Luc. 22) e uso di /dev/null. 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. Altri comandi: date, who o w, whoami e who am i, diff e find (Luc. 17).
L
4
Lun. 11/03/2013
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). 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, sintassi assegnamento e sintassi per riferire il valore (Luc. 28). Differenza fra variabili di ambiente e variabili di shell: il comando export per passare una variabile di shell nell'ambiente (esempio relativo). Fatto vedere un esempio in un sotto-shell con modifica di PATH, HOME e direttorio corrente: uso del comando env per visualizzare le variabili di ambiente. Sostituzioni attuate dallo shell (Luc. 29). Mostrati 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 (file provacomandi). 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 (file provaVar) . Inibizione delle sostituzioni attuate dallo shell (Luc. 32): esempi vari e necessita' di eval (file provaSost).
L
2
Mar. 12/03/2013
Editor di testo: vi, vim, vimtutor. Uso della shell: console grafica e testuale; esercizi a riga di comando: ls, cp, mv; esempi di nomi assoluti e relativi; directory corrente e comando cd; permessi di accesso ai file; modifica dei permessi con chmod e chown; man e la documentazione in linea. Cenno all'Open Source, licenza d'uso GPL e Free Software Foundation, progetto GNU. (Prof. Bicocchi)
E (recupero)
2
Mer. 13/03/2013
Shell - Passaggio di parametri nei file comandi (Luc. 35): primo esempio di uso (file DIR). Comando shift (Luc. 35) e altre pseudo-variabili predefinite (Luc. 36): $*, $#, $? (concetto di return code dei comandi, Luc. 37), $$. Esempio unico (file provaPar). La struttura di controllo if per realizzare l'alternativa semplice (Luc. 39): primi esempi semplici (if1 e if2). Introdotto il comando test (Luc. 38): altri esempi di if (file if3, DIRCTL e DIRCTL1). Altri esempi di if anche con il comando read (Luc. 36, file LeggiEMostra): uso di ridirezione per i file comandi e necessita' di ridirezione su /dev/tty (Luc. 43, file LeggiEMostra1). La struttura di controllo case per realizzare l'alternativa multipla (Luc. 40): un primo esempio di uso che esegue controllo sul numero dei parametri (file nroPar).
L
2
Ven. 15/03/2013
Uso della shell. Ridirezione; comando cat; link e link simbolici; variabili d'ambiente; quoting di variabili; creazione ed uso di directory; semplici shell script. (Prof. Bicocchi)
E
4
Lun. 18/03/2013
Shell - Ripreso costrutto case e completato esempi di uso (file readCase e append). Strutture di controllo per i cicli: 1) for (Luc. 41) con diversi esempi (file for1, for1Bis, for2, for3, for4 e crea); 2) while e until (Luc. 42) con un esempio ciascuno (file ce e ceUtente). 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 (ma non spiegato ancora cosa vuol dire). Illustrato il primo file comandi (Luc. 45, file Beginc.sh) e tutti i controlli con esempi di invocazioni sbagliate/corrette. Accennato settaggio variabile PATH e chiamata al secondo file comandi (file Cercadir.sh): mostrato il risultato della esecuzione nella prima versione (con ricerca breath-first).
L
2
Ven. 22/03/2013
Struttura degli shell script; Escaping di caratteri particolari; passaggio di argomenti; la variabile $# e gli argomenti della command line; test su file e directory; il costrutto case; il comando grep per la ricerca di testo in un file; la variabile PATH. (Prof. Bicocchi)
E
4
Lun. 25/03/2013
Shell - Ripreso esempio di primo file comandi e mostrato secondo file comandi quello ricorsivo nella versione con ricerca breath-first (Luc. 46 e file Cercadir.sh): mostrato alla lavagna passo-passo quello che succede nelle varie attivazioni ricorsive. Poi spiegato velocemente la versione con la ricerca depth-first (file Beginc1.sh e cercadir1.sh). 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 e file contaA.sh e contaB.sh), versione con variabile globale e valore di ritorno (ver1 e file contaA.sh e contaB.sh) e lasciato da guardare le ulteriori due versioni: versione con variabile locale e valore di ritorno (ver4 e file contaA.sh e contaB.sh) e versione con uso di scrittura e lettura in un file temporaneo globale del valore del conteggio (ver3 e file contaA.sh e contaB.sh). 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 (file princ.sh) e uno ricorsivo (file esplora.sh); mostrato in dettaglio il primo file comandi con invocazioni sbagliate e alcune giuste.
L
2
Mer. 27/03/2013
Shell - Ripreso esempio della parte Shell di un testo di esame (5 Aprile 2001- Fondamenti di Informatica II): illustrato file ricorsivo mostrate due soluzioni nello stesso file (file esplora.sh). Spiegato testo della prova in itinere dello scorso anno (13 Aprile 2012, nella sezione Testi Prove Scritte) e quindi soluzione su due file comandi: prima versione con uso di file temporaneo usato come variabile globale (ver1 e file fasi1e2.sh e FRC.sh) e seconda versione con uso di variabile locale e valore di ritorno con exit (ver2 e file fasi1e2.sh e FRC.sh). Spiegato testo di una prova d'esame dell'anno scorso (11 Luglio 2012, nella sezione Testi Prove Scritte) e quindi soluzione su file comandi (file 11Lug12.sh e 11Lug11R.sh).
L
2
Mer. 03/04/2013
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): Tabella dei file aperti e Tabella degli I-NODE attivi.
L
2
Ven. 05/04/2013
Ricerca ricorsiva; controllo degli argomenti: nome assoluto, relativo, semplice, argomento numerico, controllo argomento con singolo carattere; conteggio ricorsivo di file; determinazione della massima profonditÓ di una gerarchia; soluzione compiti svolti. (Prof. Bicocchi)
E
4
Lun. 08/04/2013
File C - 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. Esempi di apertura: 1) di un file con stampa del file descriptor ritornato dalla open (programma provaopen.c sul sito); 2) 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) con spiegazione variabile di ambiente umask che pu˛ avere effetto sui diritti specificati all'atto della creazione; b) copia con ridirezione (Luc. C/UNIX 15). Note su close e open/creat e implementazione della ridirezione in ingresso e in uscita.
L
2
Mer. 10/04/2013
File C - Simulazione in C della ridirezione in ingresso e in uscita con stampe su standard error (programma ridir-conperror.c sul sito). Implementazione di un 'clone' di cat (programma mycat.c sul sito). Concetto di BUFSIZ (Luc. C/UNIX 16) con esempio banale che ne stampa il valore: discorso sulla granularita' della lettura/scrittura su file. File e multiutenza: ricordato che i controlli all'atto della open vengono effettuati considerando UID e GID effettivi, non reali (Luc. C/UNIX 17). Tabelle per l'accesso ai file (Luc. Unix Tabelle 8-10): implementazione nel Kernel di Linux. 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.
L
2
Ven. 12/04/2013
PRIMA PROVA IN ITINERE: BOURNE SHELL (2 turni).
E
4
  
Ven. 19/04/2013
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. Bicocchi)
E
4
Lun. 22/04/2013
File C - 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. 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).
L
2
Mer. 24/04/2013
Processi UNIX - 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. 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: un caso 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
Lun. 29/04/2013
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. 03/05/2015
Funzioni per l'accesso ai file, read(), write(), open(). Cenni di programmazione concorrente, fork(), e problematiche legate a file descriptor condivisi. (Prof. Bicocchi)
E
4
Lun. 06/05/2013
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. 08/05/2013
Shell - Presentato la correzione della prova in itinere e fatto vedere i compiti.
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).
L
4
Ven. 10/05/2013
Sincronizzazione fra processi operata dalla wait(); concorrenza dei processi; condivisione di file; 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. (Prof. Bicocchi)
E
4
Lun. 13/05/2013
Processi UNIX - Esercizio di esame di Sistemi Operativi VOD e relativa soluzione della sola parte C: 19 Febbraio 2001. 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). Suggerito di svolgere la soluzione dei seguenti esercizi di esame: 11 Marzo 2008, 19 Dicembre 2001 e 2 Aprile 2004.
L
2
  
Mer. 15/05/2013
Processi e loro comunicazione in UNIX - Esercizi di esame di Sistemi Operativi della sola parte C: Soluzione dell'esame dell'11 Marzo 2008 con uso di exec di grep. Esame del 19 Dicembre 2001: presentato il testo e illustrato in generale le due versioni, quella con N pipe e quella con 1 pipe di cui mostrato solo la struttura dati. Soluzione dell'esercizio dell'esame del 2 Aprile 2004.
L
2
Ven. 17/05/2013
Esercizi avanzati di comunicazione fra processi attraverso la primitiva pipe(). (Prof. Bicocchi)
E
4
Lun. 20/05/2013
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 spiegato solo a parole comportamento in System V (Luc. Segnali 9). Primitiva KILL (Luc. Segnali 10) e PAUSE (Luc. Segnali 11): esempio (Luc. Segnali 12-13) solo illustrato senza prova di esecuzione.
L
2
Mer. 22/05/2013
Processi UNIX - Ripreso primitive KILL (Luc. Segnali 10) e PAUSE (Luc. Segnali 11) e mostrato funzionamento dell'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 versione con le pipe.
L
2
Ven. 24/05/2013
Esercizi avanzati di comunicazione fra processi attraverso la primitiva pipe() integrata con exec() e dup(). (Prof. Bicocchi)
E
4
Lun. 27/05/2013
LEZIONE NON TENUTA PER OPEN DAY LAUREE MAGISTRALI!
L
2
  
Mer. 29/05/2013
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 16 Luglio 2010.
L
2
Ven. 31/05/2013
Svolgimento di due prove di esame (parte C). (Prof. Bicocchi)
E
4
Lun. 03/06/2013
Processi e loro comunicazione in UNIX - Esercizi di esame di Sistemi Operativi della sola parte C: Soluzione dell'esame del 18 Giugno 2010. Discorso generale sui possibili schemi di comunicazioni fra processi e descrizione sintetica delle possibili soluzioni in termini di pipe.
L
2

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