Laboratorio di Sistemi Operativi

anno accademico 2003-2004

Cristina Baroglio

 

Annunci e Info generali

Le lezioni di teoria sono tenute dal prof. Marco Botta (home page)

aggiornato al 15/3/05

Il prossimo appello si terrà il giorno 30 marzo 2005. Per poter accedere all'appello occorre avere discusso preventivamente il progetto di laboratorio (discussione su appuntamento). Per motivi organizzativi, i gruppi che hanno terminato il lavoro e sono pronti a discutere il progetto, mi scrivano una mail contenente nomi e numeri di matricola dei componenti del gruppo e la richiesta di fissare un incontro entro il giorno 20 marzo 2005. Rammento a tutti quanti che questo è il penultimo appello di validità del laboratorio. Con l'inizio delle lezioni del modulo di sperimentazioni l'assegnamento (e relativa soluzione) scadrà e occorrerà discutere la soluzione per l'assegnamento dell'a.a. 2004/2005.

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

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

NEW:: Sperimentare Linux in modo indolore su una macchina Windows

Se avete un PC con installata una qualche versione di windows, non avete mai provato a installare un sistema operativo da soli, non vi sentite sicuri nell'eseguire un'operazione che presenta qualche rischio quale il partizionamento del disco, MA volete fare pratica di Linux potete usare una versione live (es. Knoppix). Le live non eseguono alcuna installazione sul disco; al boot della macchina il CD deve essere inserito nel lettore affinchè linux venga avviato. Avvertenza: le live non consentono l'accesso alla memoria, quindi non potete creare/modificare vostri file, tuttavia alcune versioni consentono l'accesso a chiavi USB, che potete usare per salvare i vostri file.

ATTENZIONE (note di C e Unix)

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

Nota sull'uso dei segnali
non usate SIGKILL e SIGSTOP: sono gestiti in modo speciale, qualunque altro segnale va bene.

Gli editor principali in ambiente Unix sono "vi" ("vim" o "gvim" le versioni estese con highlighting della sintassi) e "emacs". A parte la breve guida su vi da me scritta, on-line vi sono molte guide all'uso di questi editor, per esempio guida hp oppure questa.

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".

Quando si usano fork e fopen, feof, fclose, utilizzare la system call _exit anziché exit quando lavorate su di un sistema operativo Solaris. In questo sistema operativo, exit rovina le strutture di I/O del processo padre. In Linux potete utilizzare invece exit.

Istruzioni per l'uso di archivi
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.

Realizzazione di programmi C con argomenti
vedere le note qui linkate

Programma

Clicca per vedere cosa si fa in questo corso giorno per giorno ...

Materiale didattico

(sezione arricchita man mano che vengono introdotti gli argomenti a lezione)

Esempi
... introdotti man mano nel corso ...

  1. esempi ridirezione e primi script
  2. esempi uso di variabili negli script csh, loro visibilità
  3. esempi programmi C con argomenti, spezzati in più file e makefile
  4. esempi creazione di processi, uso di wait, creazione di processi zombie
  5. esempio d'uso di una coda di messaggi
  6. esempio d'uso di una coda di un semaforo

Dispense
La maggior parte del materiale è tratta da:

  • il manuale on-line di Unix (comando man)
  • "UNIX, guida completa" di Rosen, Host, Farber e Rosinski (McGraw-Hill), in biblioteca
  • "The UNIX Programming Environment", un vecchio libro (1984)
    scritto da Brian Kernighan e Rob Pike (Prentice Hall), in biblioteca

  1. (dispense) introduzione a Unix
  2. (dispense) file system
  3. (dispense) processi
  4. (dispense) IPC: semafori, code e memoria condivisa
  5. (slide, handout) introduzione a Unix, utenti e diritti di accesso
  6. (slide, handout) file system
  7. (slide, handout) processi, fore- back-ground, utente reale ed effettivo, ridirezione
  8. (slide, handout) C-shell
  9. (slide) compilazione
  10. (slide, handout) fork, exec, wait
  11. (slide, handout) IPC: code di messaggi
  12. (slide, handout) IPC: semafori
  13. (slide, handout) IPC: memoria condivisa
  14. (slide, handout) segnali

Assegnamenti

  1. Esercizi 5/6-05-2004:testo
  2. Esercizi 12/13-05-2004:testo
  3. Esercizio Finale:testo, slide; l'esercizio va completato con il makefile corrispondente

(man mano che vengono introdotti gli argomenti a lezione)

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
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