mag 15 2008
Laboratorio di Sistemi Operativi
| Docente: | Pietro Tito Melacci |
| Ore di teoria: | 18 |
| Ore di pratica: | 18 |
| CFU | 3 |
| Sito ufficiale: |
Obiettivi
Studio di uno specifico SO dal punto di vista dell’utente e sviluppo di semplici programmi di interazione con il sistema.
Programma
IL SISTEMA OPERATIVO UNIX.
Organizzazione a livelli (HW, Kernel, Tools, Shell). La portabilità` di UNIX. La storia di UNIX.
Formato dei comandi. Il manuale UNIX in linea. Comandi interattivi e non interattivi.
Interfaccia utente. I codici speciali (eof, esc, lnext, intr, quit, start, stop).
La procedura di bootstrap.
Il processo init. I processi utente. I daemon.
LA GESTIONE DEI FILE.
Il file system, la struttura gerarchica. Le directory standard di UNIX. I tipi di file di UNIX (file ordinari, directory, file speciali, pipe, link simbolici).
I pathname. I nomi dei file e i metacaratteri. I meccanismi di protezione dei file (i diritti di accesso, i diritti di accesso sulle directory).
Maschera di creazione dei file. Modifica dei diritti di accesso ai file (modo numerico, modo simbolico). Home directory. Operazioni sui file ordinari (cp, mv, rm, ln). Hard link, link simbolici (symlink).
Verifica del contenuto dei file ordinari. Reperire informazioni sui file. File e directory significativi di UNIX.
I file speciali (major number, minor number). Le espressioni regolari.
LA GESTIONE DEI PROCESSI.
Verifica dell`evoluzione dei processi (stati di avanzamento di un processo UNIX).
Manipolazione dell’evoluzione dei processi. La gestione dei segnali. La creazione di un processo e l’esecuzione di un programma (la primitiva exec, la primitiva fork).
LA SHELL UNIX.
Le shell di UNIX, la Bourne shell e la C shell. Il meccanismo di esecuzione dei comandi: i comandi built-in ed i comandi esterni (primitive fork ed exec), meccanismo di esecuzione di un comando.
Multitasking: comandi foreground, comandi background (metacarattere &), meccanismo di esecuzione di un commando in background.
REDIREZIONE:
Redirezione dello standard output (metacaratteri > e >>),
Redirezione dello standard input (metacarattere < ),
Redirezione dello standard error (nella Bourne shell e nella C shell),
Here documents ( metacarattere <<).
COMPOSIZIONE DEI COMANDI:
Esecuzione seriale (metacarattere
, il meccanismo di esecuzione seriale; pipeling
(metacarattere |), il meccanismo di esecuzione di una pipeline; esecuzione con subshell
(metacaratteri ( e )), il meccanismo di esecuzione con subshell.
Esecuzione condizionale dei comandi utilizzando && e | |
AMBIENTE SHELL:
Il file .profile e le variabili di ambiente nella Bourne shell,
Il file .login e le variabili di ambiente nella C shell.
Caratteristiche tipiche della C shell (la history, aliasing, il job control).
La gestione del login (il file /etc/passwd).
MANIPOLAZIONE TESTI.
L`editor vi. Command mode, text input mode. Le modifiche con ex. Pattern di ricerca.
Le espressioni regolari dell`editor. Interazione con la Shell. Personalizzazione di vi.
Gestori di testi.
LINGUAGGI E STRUMENTI DI SUPPORTO ALLA PROGRAMMAZIONE.
Compilatori ed interpreti (opzioni, il file oggetto). I compilatori Fortran, Pascal, C.
Debugger. Librerie.
STRUMENTI DI GESTIONE DEI FILE.
Gestione avanzata dei file. Comandi filtro (comandi dell`algebra relazionale). Confrontare file.
Selezionare file. Occupazione della memoria.
STRUTTURA INTERNA DEL FILE SYSTEM UNIX.
La suddivisione del file system (bootstrap, superblock, i-list, area dati).
Blocco di bootstrap. Il super-block, i-node, i-number, l`area dati, la i-list, i link.
Struttura di un i-node. L`indirizzamento indiretto ai blocchi dati.
Interpretazione del pathname. Lista dei blocchi liberi. Link multipli allo stesso file.
I file system montati, chiamate al sistema mount/unmount. Monitoraggio del sistema.
IL LINGUAGGIO DELLA SHELL.
Gli shell script. Variabili, passaggio di parametri, strutture di controllo, login script.
Meccanismi di esecuzione di shell script. La variabile PATH.
Ambiente di valutazione (le variabili di ambiente, le variabili predefinite).
Il metacarattere (back apostrophe). La history. Aliasing. Funzioni.
Bourne shell: elementi del linguaggio, costrutti di controllo (for, case, while, if), funzioni, esempi di shell script.
C shell: elementi del linguaggio, caratteristiche tipiche della C-shell, variabili numeriche (simbolo @, operatori), input/output, espressioni (operatori), costrutti di controllo (foreach, switch, while, if, repeat, goto), esempi di shell script. Debugging di shell script.
COMUNICAZIONI.
La comunicazione immediata di messaggi. Il sistema di posta elettronica, la funzione mail, i programmi mailer. Connessione remota (telnet), modo comandi. Trasferimento file (ftp), comandi di ftp.
CHIAMATE DI SISTEMA UNIX.
Chiamate relative ai file. Chiamate relative ai processi.
X WINDOW SYSTEM.
Modalità di valutazione
Presentazione di un progetto, prova scritta che deve essere superata con voto >= 18, prova orale.
Testi consigliati
A. Bonsignori, A. Fabrizio: ”UNIX”, Jackson libri, 1993.
G. Glass: ”UNIX for Programmers and Users. A Complete Guide”,
Prentice Hall International Editions, 1993.
Appunti forniti dal docente e disponibili in forma elettronica sulla cartella H:\comune\docenti\melacci\ nei PC del Laboratorio di Informatica del Dipartimento.




