Papers of Marina Lenisa

Corso di LABORATORIO DI SISTEMI OPERATIVI

Diploma di Informatica
A.A. 2000/2001



BIBLIOGRAFIA:

B.W. Kernighan, D.M. Ritchie, "Linguaggio C", Jackson, 2a edizione, 1989.

G. Glass, K. Ables, "UNIX for Programmers and Users", Prentice Hall, 2a edizione, 1999.

Altri riferimenti:

P. Cornes, "The Linux A-Z", Prentice Hall, 1997.

K. Haviland, D. Gray, B. Salama, "UNIX System Programming", Addison Wesley, 2a edizione, 1999.



Progetto I: Il linguaggio C

Si scriva un programma C simple_tail, versione semplificata del comando UNIX tail, che stampa le ultime 10 linee del proprio input. Per memorizzare le linee in input, si utilizzi un array di stringhe con terminatore il NULL-pointer. Il programma deve poter accettare il parametro opzionale -n sulla linea di comando, dove n è un intero. Nel caso il parametro -n sia presente sulla linea di comando, il programma dovrà stampare le ultime n linee dell'input.

Si commenti opportunamente il codice.

Si provi il programma su alcuni esempi significativi e si scriva una breve relazione, discutendo le soluzioni proposte ed i risultati dei test.

Il termine di consegna del progetto è: 8 Gennaio 2001.

I progetti possono essere consegnati direttamente al docente oppure inviati (come file TEXT) per posta elettronica al seguente indirizzo: lenisa@dimi.uniud.it.
Sono comunque richieste due copie cartacee, opportunamente rilegate.



Progetto II: La shell Unix

Si risolva il seguente esercizio utilizzando l'interprete di comandi Unix bash.

Si progetti uno script che accetta come parametri il percorso di una directory ed il nome di un file contenente un elenco di nomi di file. Lo scopo dello script è di rimuovere tutti i file aventi il nome compreso nel file passato come secondo argomento, presenti nella directory passata come come primo argomento o in una sua sottodirectory.

Si commenti opportunamente il codice.

Si provi il programma su alcuni esempi significativi e si scriva una breve relazione, discutendo la soluzione proposta ed i risultati dei test.

Il termine di consegna del progetto è: 12 Marzo 2001.

I progetti possono essere consegnati direttamente al docente oppure inviati (come file TEXT) per posta elettronica al seguente indirizzo: lenisa@dimi.uniud.it.
Sono comunque richieste due copie cartacee, opportunamente rilegate.



Progetto III: Programmazione di sistema in Unix

Esercizio 1

Si scriva un programma C che realizza una versione semplificata del comando UNIX ls. Il programma dovrà ricevere sulla linea di comando una lista di file ordinari e directory e dovrà fornire, per ciascun file, la dimensione, per ciascuna directory, ricorsivamente, la dimensione di ogni file nell'albero della directory stessa.

Il programma dovrà utilizzare le system call per la gestione di file e directory.

Si commenti opportunamente il codice.

Si provi il programma su alcuni esempi significativi e si scriva una breve relazione, discutendo la soluzione proposta ed i risultati dei test.

Esercizio 2 (Facoltativo)

Si scriva un programma C che esegue una fork per creare un processo figlio e mette in comunicazione processo padre e processo figlio attraverso il meccanismo di IPC della memoria condivisa. Il processo padre copia nella memoria condivisa il contenuto di un file (passato come parametro), carattere per carattere, mentre il processo figlio stampa su standard output i caratteri contenuti nella memoria condivisa. Si gestisca opportunamente il problema della sincronizzazione dei due processi.

Il termine di consegna del progetto è: 25 Giugno 2001.

I progetti possono essere consegnati direttamente al docente oppure inviati (come file TEXT) per posta elettronica al seguente indirizzo: lenisa@dimi.uniud.it.
Sono comunque richieste due copie cartacee, opportunamente rilegate.




Valutazione del I Progetto:

GRUPPO DATA DI CONSEGNA VALUTAZIONE
Azzano, D'Andrea, Polon 08/01/01 B
Bagnariol, Bertuzzo 07/01/01 A
Beltrame, Kuk 12/01/01 C
Benedetti, Dorigo 28/06/01 B
Bergamo, Fasolino 06/01/01 B++
Castenetto, Contarin 10/01/01 C
Cecchini, Zorzini 08/01/01 A
Craighero, De Cicco, Zurini 03/01/01 A
D'Andrea, D'Este, Scortegagna 15/11/01 C/B
Del Cet, Valeri 28/12/00 C
Del Negro 08/01/01 A
Petrucco 08/01/01 B
Screm 07/01/01 A
Serli, Viola 03/01/02 B
Zanet 28/12/00 B





Valutazione del II Progetto:

GRUPPO DATA DI CONSEGNA VALUTAZIONE
Bagnariol, Bertuzzo 12/03/01 A
Beltrame, Kuk 12/03/01 A
Benedetti, Dorigo 28/06/01 B/A
Castenetto, Contarin 29/05/01 B
Cecchini, Polon, Zorzini 12/03/01 A
D'Andrea, D'Este, Scortegagna 15/11/01 C/B
Del Cet, Valeri 16/03/01 A
Craighero, De Cicco, Zurini 03/04/01 A - -
Del Negro 18/03/01 A
Petrucco, Zanet 02/04/01 A - -
Serli, Viola 03/01/02 B <





Valutazione del III Progetto:

GRUPPO DATA DI CONSEGNA VALUTAZIONE
Bagnariol, Bertuzzo 15/06/01 A
Beltrame, Kuk 13/06/01 A
Benedetti, Dorigo 28/06/01 A
Castenetto, Contarin 25/06/01 B
Cecchini, Polon, Zorzini 27/06/01 A
Craighero, De Cicco, Zurini 12/06/01 A
D'Andrea, D'Este, Scortegagna 15/11/01 C/B
Del Cet, Valeri 23/11/01 B
Del Negro 18/07/01 B/A
Petrucco, Zanet 25/06/01 A
Serli, Viola 03/01/02 B