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.

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.

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

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.

9 maggio 2011 - 5 ore

Introduzione ai processi. Gestione dei Segnali.

Esercizi in aula

Testo degli esercizi.

Files

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

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

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. 1: Comandi generali. Per esempio: ls (man 1 ls);
  2. 2: Chiamate di sistema. Per esempio: open (man 2 open)
  3. 3: Funzioni della libreria C. Per esempio: fopen (man 3 fopen)
  4. 4: File speciali. Per esempio: /dev/null (man 4 null)
  5. 5: File formats. Per esempio: dirent (per la gestione delle directory, man 5 dirent)
  6. 6: Giochi e screensaver. Per esempio: banner (man 6 banner)
  7. 7: Macro, convenzioni, standards. Per esempio: X (man 7 X)
  8. 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:

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.

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.

21 marzo 2011

Puntatori. (Alcune) Librerie standard. Uso del makefile. Esercitazione.

14 marzo 2011

Interazione con la shell (bash shell): redirezione input/ouput, pipe, comandi essenziali. Preprocessing. Esercitazione (anche sugli argomenti della lezione precedente).

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.

Valid XHTML 1.1