Laboratorio di Sistemi Operativi
Corso di Laurea in Informatica Applicata
Anno Accademico 2010-11
Avvisi
01 giugno 2011
È possibile scaricare tutti i file del sito al 01 giugno 2011.
I file sono contenuti in un archivio .tgz. Nei prossimi giorni verrà messa on-line una nuova versione delle specifiche
del progetto con la correzione dei vari typos della prima stesura e i chiarimenti ai dubbi da voi espressi in aula durante la
presentazione del progetto.
Contatti
Docente: Franco Alberto Cardillo
email:cardillo@di.unipi.it
Tel: 050 315 3068
Pagina del corso di Sistemi Operativi e Laboratorio - Modulo di Teoria.
Documenti
Reference cards
Quick Links
Progetto conclusivo del corso
Progetto Finale: FAQ
Questa sezione conterrà le risposte alle domande più frequenti sul testo del progetto.
Diario delle Lezioni
Nota - Relazione del progetto
Il progetto finale dovrà essere accompagnato da una relazione. La relazione dovrà essere consegnata obbligatoriamente in formato pdf (esistono utility freeware per produrre file pdf su ogni sistema operativo).
Non verranno considerate relazioni consegnate in altri formati.
Suggerimento: scrivere la relazione usando il sistema LaTeX.
Links
- The Not So Short Introduction to LaTeX (pdf, eng)
- Una (mica tanto) breve introduzione a LaTeX" (pdf, ita)
30 maggio 2011 - 5 ore, Ultima lezione
Presentazione e discussione del progetto finale.23 maggio 2011: ANTICIPATA.
Lezione anticipata a venerdì 20 maggio.---
20 maggio 2011 - 5 ore - Ore 9:00, Aula 5, Polo G. Marconi
IPC: Socket AF_INET (cenni), Threads (POSIX).Files
- Socket - AF_INET (pdf)
- POSIX Threads (pdf)
16 maggio 2011 - 5 ore
Inter-Process Communication (IPC): Pipe (anonimi e con nome), Socket (AF_UNIX).Esercitazione in aula su pipe anonimi e socket nel dominio AF_UNIX.
Files
- Pipe anonimi e con nome (pdf)
- Socket - AF_UNIX (pdf)
- Soluzione Ese Chef (tgz)
9 maggio 2011 - 5 ore
Introduzione ai processi. Gestione dei Segnali.Esercizi in aula
Testo degli esercizi.Files
- Gestione dei processi (pdf)
- Gestione dei segnali (pdf)
- Soluzioni lez07_sol.tgz (tgz)
2 maggio 2011
Chiamate di sistema per directory.Esercizio facoltativo: File Wiping
Testo dell'esercizio.L'esercizio non verrà svolto in aula. La soluzione (contenuta nel file wipefile.tgz) sarà discussa in aula in una delle prossime lezioni. La soluzione usa una funzione della libreria C disponibile solo su Mac OS.
Files
- Gestione delle directory (pdf)
- Soluzione wipefile.tgz (tgz)
- Soluzione ese directory (tgz)
25 aprile 2011
Vacanze di Pasqua.---
18 aprile 2011
Sospensione della didattica per verifica intermedia.---
11 aprile 2011
Chiamate di sistema per files.Esercizi in aula
File di supporto: list.tgz.Testo degli esercizi.
Files
- Gestione dei file (pdf)
Nota - Unix Manual
Man pages (manual pages) sono pagine (di documentazione) che descrivono il funzionamento di programmi, chiamate di sistema, ... in ambiente Unix(e Unix-like).
Su Linux e OS X (FreeBSD) le pagine sono suddivise nelle seguenti sezioni:
- 1: Comandi generali. Per esempio: ls (man 1 ls);
- 2: Chiamate di sistema. Per esempio: open (man 2 open)
- 3: Funzioni della libreria C. Per esempio: fopen (man 3 fopen)
- 4: File speciali. Per esempio: /dev/null (man 4 null)
- 5: File formats. Per esempio: dirent (per la gestione delle directory, man 5 dirent)
- 6: Giochi e screensaver. Per esempio: banner (man 6 banner)
- 7: Macro, convenzioni, standards. Per esempio: X (man 7 X)
- 8: Comandi per l'amministrazione e demoni. Per esempio: httpd (man 8 httpd)
Se una stessa keyword compare in più sezioni, man keyword restituirà la pagina relativa a keyword nella sezione di indice più basso. Per esempio, man open restituisce la manual page di open nella sezione 1. Per leggere la man page di open intesa come chiamata di sistema è necessario eseguire: man 2 open, cioè man 'numero di sezione' keyword.
Per cercare le man pages relative a una particolare 'keyword' è possibile usare:
- man -k keyword
- apropos keyword (equivalente a man -k keyword)
- man -K keyword (particolarmente lento)
Per ottenere la documentazione di man: man man.
Nota - Argomenti da linea di comando come 'opzioni'
La maggior parte dei programmi accetta opzioni da linea di comando. Esempio: 'ls -l'. In questo caso l'opzione 'l' indica al programma ' ls' di elencare i file usando il formato esteso (long format).
Esistono varie librerie per gestire le opzioni (per esempio: Apache CLI). Nel corso ci limiteremo ad usare la funzione della libreria standard getopt (unistd.h).
Documentazione: man 3 getopt. Nella sezione 'Files' trovate un semplice programma d'esempio che verrà discusso in aula.
Files
Programma d'esempio sull'uso di getopt:- options.c (gzipped)
4 aprile 2011 - ANNULLATA, verrà recuperata.
---
28 marzo 2011
Compilazione separata. Uso del makefile. (Alcune) Librerie standard. Esercitazione.Esercizi in aula
Link al testo dell'esercizio.Files
- Compilazione Separata (pdf)
- Uso del Makefile (pdf)
- Classi di Memorizzazione (pdf)
- Gestione dei File (pdf)
- Codice discusso in aula (tgz)
- string.h (pdf)
- stdio.h - stdin, stdout, stderr (pdf)
- stdio.h - files (pdf)
- stlib.h (pdf)
Nota - Unix Shell
Il corso non prevede singole lezioni ed esercitazioni interamente dedicate all'uso della shell di Unix. Gli argomenti principali spiegati nelle slides (in Files) verranno comunque discussi nelle varie lezioni quando useremo specifiche funzionalità della shell.Files
La lettura di questi documenti è fortemente consigliata.- Unix Shell: Intro (pdf)
- Espressioni Regolari (pdf)
- Bash Shell (pdf)
- Comandi Strutturati (pdf)
- Gestione opzioni, I/O (pdf)
21 marzo 2011
Puntatori. (Alcune) Librerie standard. Uso del makefile. Esercitazione.Files
- Puntatori (pdf)
- Uso del Makefile (pdf)
- Codice discusso in aula (tgz)
14 marzo 2011
Interazione con la shell (bash shell): redirezione input/ouput, pipe, comandi essenziali. Preprocessing. Esercitazione (anche sugli argomenti della lezione precedente).Files
- Preprocessing (pdf)
- Codice discusso in aula (tgz)
7 marzo 2011
Introduzione al corso. Introduzione al linguaggio C: sintassi, memoria e puntatori, discussione sulla struttura di un semplice programma C, preprocessing e compilazione. Spazio di indirizzamento di un processo. Formato ELF dei file eseguibili. Puntatori, tipi di dato.Files
- Introduzione al linguaggio (pdf)
- Tipi di dato e funzioni (pdf)