CORSO DI LAUREA E DI DIPLOMA IN INFORMATICA
Università di Torino

Sistemi Operativi: Laboratorio (Indirizzo Sistemi e Reti)

Anno di Corso: Secondo

Anno Accademico 2004/2005

Docente: Daniele Gunetti

ATTENZIONE: il termine per la presentazione dell'esercitazione finale per l'anno accademico 2004-2005
è il 30 giugno 2006.


ATTENZIONE:
dall'anno accademico 2005-2006, il corso di laboratorio sarà tenuto dalla prof.ssa Cristina Baroglio. Queste pagine vengono matenute attive per gli studenti degli anni precedenti che devono ancora sostenere l'esame.


Indice:

Contenuto del corso:

Introduzione all'uso del sistema operativo Unix:

Implementazione del Kernel Unix:

Posix thread:

Testi di riferimento (tra parentesi la collocazione in biblioteca):

  • M.J. Bach: "The Design of the UNIX Operating System", Prentice-Hall International Editions (L3167 escluso dal prestito), per la parte relativa all'implementazione del kernel Unix.
  • B. Kernigham, R. Pike: "UNIX", Zanichelli, 1985 (L2160)
  • S.R. Bourne: "The Unix System" (L1856 escluso dal prestito, L1803, L2140)
  • R. Stevens: "Advanced Programming in the UNIX Environment", Addison-Wesley, 1992
  • R. Stevens: "Unix Networking Programming", Englewood Cliffs, 1990
  • J.M. Rifflet: "La programmation sous UNIX", Ediscience international, 1993 (L3856 escluso dal prestito)
  • K. Christian: "The Unix Operating System", John Wiley & Sons (L3147 escluso dal prestito)
  • Brown: "UNIX: Distributed Programming", (capitolo 2: Unix Interprocess Communication), Prentice-Hall, 1994 (cartellina Corso Lab. S.O.)
  • B. Kernighan, R. Pike: "The UNIX programming environment", Prentice-Hall, 1984 (OP513 - OP517)
  • Manuale di Unix in linea (comando man)
Gli studenti sono comunque invitati a fare riferimento a lucidi usati a lezione, messi a disposizione su questa pagina in formato pdf (2 e 3 lucidi per pagina). L'intero corso di laboratorio puo' essere preparato anche semplicemente usando i lucidi e seguendo le lezioni.

Esempi di programmi per l'uso delle principali system call Unix

Questi sorgenti possono essere direttamente scaricati, compilati ed eseguiti. Sono stati testati su macchine Solaris, ma dovrebbero funzionare correttamente anche su macchine con sistema Linux.

Esercitazioni finali degli anni scorsi:

Un emulatore di ambiente Linux per Windows

Cygwin è un emulatore di ambiente Linux per Windows, che permette di sperimentare le principali caratteristiche dell'ambiente di lavoro del sistema operativo Linux. In particolare, cygwin mette a disposizione vari interpreti dei comandi (bash, sh, csh) un compilatore C e la possibilità di usare all'interno di un programma C le principali system call Unix/Linux (attenzione, attualmente cygwin NON supporta le system call dell'Inter-Process Communication System).

  • Cliccate qui per scaricare il file zippato necessario ad installare cygwin su un sistema windows. Una volta estratti i file, lanciate setup.exe per installare l'emulatore.
  • Alternativamente, in biblioteca è disponibile un CD contenente una copia dei file necessari per l'installazione dell'emulatore.
  • Il sito ufficiale di cigwin
per installare cygwin, una volta lanciato setup.exe, nelle varie schermate che si susseguono:
  • Choose Installation Type: selezionate "Install from local directory";
  • Select install root directory: lasciate le impostazioni predefinite (C:/cygwin);
  • Local Package Directory: specificate la stessa directory in cui avete un-zippato il file cygwin.zip (ad esempio C:\tmp\cygwin);
  • Select Packages to install: Cliccate sul bottone "View" (in alto a destra) fino a che compare a fianco la scritta "Full". Nella finestra centrale, la colonnna "Current" dovrebbe risultare vuota, mentre sotto la colonna "New" dovrebbe comparire, per ogni riga, la scritta "skip" o un numero (che indica la versione di software che verrà installata). Per una installazione, completa dell'emulatore, cliccate con il mouse su ogni scritta "skip" cosicché al suo posto compaia un numero. In questo modo il software corrispondente verrà installato. Quando non ci sono più "skip" nella colonna "New" cliccate sul bottone "Next" per procedere con l'installazione. Se volete fare una installazione mirata, potete anche selezionare i singoli pacchetti da installare, cliccando sulle varie voci che compaiono sotto la colonna "New".
  • Quando l'installazione è terminata, controllate nella directory /cygwin/bin che siano presenti gli eseguibili di semplici comandi come ls.exe, mkdir.exe, cp.exe, e così via. (Attenzione: il comando more è stato sostituito in cygnus da "less". Se volete avere il more, basta copiare less.exe in un nuovo file "more.exe"). Aprite il terminale cygwin (la cui icona dovrebbe essere stata messa sul desktop) e verificate che si possa lanciare il compilatore C "gcc". Per compilare un semplice programma c scritto in un file prog.c potete lanciare uno dei seguenti comandi:
    • gcc prog.c (verrà generato un eseguibile di nome "a.out")
    • gcc prog.c -o filename (verrà generato un eseguibile di nome "filename". E' buona regola usare, come "filename" il nome del file che contiene il programma C senza l'estensione ".c". Ossia: gcc prog.c -o prog)
Trovate informazioni più dettagliate sull'installazione e sull'ambiente cygwin sul sito ufficiale di cigwin

Informazioni sulle modalità d'esame:

  • L'esame del corso di laboratorio si può sostenere solo dopo aver passato l'esame scritto del corso di Sistemi Operativi.
  • Per sostenere l'esame di Laboratorio di Sistemi Operativi lo studente deve aver prima consegnato l'esercitazione finale di laboratorio richiesta per l'anno accademico in corso. (Vedere più sotto per le modalità di consegna dell'esercitazione finale)
  • L'esame di laboratorio è orale, si sostiene indivualmente e può essere dato in qualsiasi periodo dell'anno su appuntamento.
  • L'esame di laboratorio consiste nella discussione dell'esercitazione finale presentata in precedenza, in modo da verificare l'effettiva partecipazione dello studente allo sviluppo dei programmi e la sua conoscenza delle soluzioni adottate e degli strumenti software usati (in particolare le system call Unix, e le funzioni C usate nei vari programmi). Lo studente deve dimostrare di avere anche una conoscenza di base della shell unix.
  • Il risultato dell'esame di laboratorio permette di incrementare/decrementare di al massimo 3 punti il voto preso allo scritto del corso di Sistemi Operativi (a meno che non si sia scelto di sostenere anche l'orale vero e proprio, nel qual caso l'incremento (o in casi molto sfortunati il decremento) può essere maggiore. Si vedano a tale proposito le modalità d'esame descritte sulla pagina del corso di Sistemi Operativi.

Per sostenere l'esame di Laboratorio di Sistemi Operativi gli studenti devono aver consegnato l'esercitazione finale proposta per l'anno accademico in corso. per consegnare l'esercitazione:

  • Prendete un appuntamento con me per far vedere girare i programmi che sono stati sviluppati per l'esercitazione finale. Tenete pronte un numero di copie stampate dei programmi che avete sviluppato per l'esercitazione finale pari al numero di componenti del gruppo + 1 (poiché io terrò per me una copia cartacea dei programmi).
  • Se i programmi funzionano correttamente, gli studenti possono sostenere l'esame orale, fissando un nuovo appuntamento. Chi lo desidera puo' anche sostenere l'orale immediatamente dopo la consegna dell'esercitazione, ovviamente se questa funziona correttamente, e purché abbia già passato lo scritto del corso. Quando venite all'orale, ricordatevi di portare con voi la copia firmata dell'esercitazione finale.

Alcune osservazioni:

Tutte le esercitazioni possono essere svolte nel laboratorio Unix del Dipartimento (sulle cui macchine gira la versione Solaris di Unix). Tuttavia, chi ha a disposizione una macchina con un qualsiasi sistema Linux puo' usarla per le esercitazioni. Anche l'esercitazione finale puo' essere sviluppata in ambiente Linux. In questo caso, per far vedere girare i programmi ci sono due possibilita':
  • Usare un notebook con sistema Linux, se disponibile, che potete usare per far vedere girare i programmi (soluzione consigliata)
  • Traferire i programmi su una delle macchine Unix del Dipartimento e ricompilarli. In questo caso, occorre tenere conto che piccole differenze tra Linux e Solaris possono riscontrarsi nell'uso delle system call e dei comandi di sistema. E' quindi necessario verificare accuratamente che i programmi continuino a funzionare correttamente anche dopo il passaggio sulle macchine Solaris.

Miscellanea:




Home page didattica
[Laurea] [Diploma] [Informazioni] [Intranet] [Orientamento]
[Dipartimento] [Facoltà di Scienze] [Università di Torino]

Administrator: wwwadm@di.unito.it Ultima modifica: 15 Maggio 2003