Laboratorio di Sistemi Operativi

anno accademico 2002-2003

Pagina in continua ricostruzione

  Annunci e Info generali
  Riscevimento studenti sospeso:
nel mese di agosto il ricevimento studenti è sospeso. Riprenderà
regolarmente in settembre. Chi desidera consegnare il progetto per la discussione
può comunque contattarmi via e-mail. Stessa cosa per chi avesse bisogno di
fissare un appuntamento per una consulenza.
  Le lezioni di teoria sono tenute dal prof. Botta (home page)

Ricevimento studenti: martedì ore 14:00/16:00, in ufficio

ATTENZIONE : non chiamate alcuna variabile 'auto', è un termine riservato
del linguaggio C e causa il generarsi di errori in fase di compilazione!!

Newsgroup di sistemi operativi:
alla pagina qui linkata troverete un elenco di newsgroup dipartimentali fra cui
uno dedicato ai corsi di sistemi operativi.

Gli editor principali in ambiente Unix sono "vi" (o "vim") e "emacs".
A parte la breve guida su vi da me scritta, on-line vi sono molte guide
all'uso di questi editor, in particolare alla pagina guide redhat.
Alcune guide on-line sono in italiano, per esempio questa: vi.

  Programma
giorno per giorno ...
  Esempi
Istruzioni per l'uso: per spacchettare gli archivi che seguono occorre
utilizzare i comandi gunzip e tar. Supponiamo di dover spacchettare
l'archivio mioArchivio.tar.gz, dovrò dapprima eseguire
gunzip mioArchivio.tar.gz e dopo tar xvf mioArchivio.tar.
Ogni directory estratta dagli archivi contiene un file README che descrive
l'esempio che contiene e spiega come utilizzarlo.
Gli archivi tar.gz sono apribili anche tramite diversi archiver per Windows.

(man mano che vengono introdotti a lezione)

  1. esempi fork, exit, wait
  2. esempi IPC, cuochi e camerieri
  3. cuochi e camerieri: soluzione migliore
  4. esempio d'uso di un semaforo
  Dispense
La maggior parte del materiale è tratta da:
  1. il manuale on-line di Unix (comando man)
  2. "The UNIX Programming Environment", un vecchio libro (1984)
    scritto da Brian Kernighan e Rob Pike (Prentice Hall) in biblioteca
  3. "UNIX, guida completa"
    di Rosen, Host, Farber e Rosinski (McGraw-Hill)
    in biblioteca
  1. (dispense) introduzione a Unix
  2. (slide) introduzione, utenti e diritti d'accesso
  3. (dispense) file system
  4. (slide) file system
  5. (dispense) processi
  6. (slide) processi
  7. (slide) shell: variabili e history
  8. (slide) system call fork
  9. (slide) system call exec e wait
  10. (dispense) IPC: semafori, code e memoria condivisa
  11. (slide) IPC: code di messaggi
  12. (slide) commento a cuochi e camerieri
  13. (slide) IPC: semafori e memoria condivisa
  14. (slide) commento a esempio semafori
  15. (slide) ipcrm, telnet
  16. (slide) compilazione e make
  17. (slide) segnali
  Esercizi
Per quel che riguarda la realizzazione di programmi C con argomenti
vedere le note qui linkate


Note: nell'esercizio relativo all'uso di fork e fopen, feof, fclose,
utilizzare la system call _exit anziché exit quando lavorate su di un sistema
operativo Solaris (in laboratorio). In questo sistema operativo, exit rovina le
strutture di I/O del processo padre. Sotto Linux potete utilizzare invece exit.

In laboratorio sono presenti due tipi di macchine: Sparc Station e PC. Hanno due
versioni di Unix lievemente differenti; questo fa sì che alcune soluzioni non
funzionino su Sparc Station. È in particolar modo emerso che la chiamata di

semctl(id, num, SETVAL, costante)

non è accettata. Al posto della costante finale occorre utilizzare una variabile
di tipo "union semun".


Esercizi giorno
9/05/2003
Esercizi dei giorni 15 e 16/05/2003
Progetto 2002/2003:esercizio finale, modalità di consegna e valutazione (qui)

  Link Interessanti
Linguaggio C, manuali on-line
Risorse varie, presso l'Università di Trento
Shell, differenze e somiglianze
bash, istruzioni per l'uso
ShellDorado, tutto su e per shell
make, istruzioni per l'uso
make, istruzioni per l'uso in italiano
Comandi buffi
Unix, un po' di storia
Free Software Foundation, il progetto GNU
Un SO in costruzione: OpenBeOS
GNU Foundation: The Hurd
Debian:The Hurd
integrazione degli ambienti UNIX e MacOS: Sanchez
SO per telefonia mobile: Symbian OS