Corso di Laboratorio di Sistemi Operativi
(Corso di Laurea in Informatica - A.A. 2009/2010).

In questa pagina gli studenti troveranno le informazioni sull'obbiettivo, il metodo, il programma, la bibliografia e la modalita' di superamento del corso di Laboratorio di Sistemi Operativi, assieme agli orari di lezione e di ricevimento, agli avvisi ed ai lucidi delle lezioni.

Obiettivo:

Il corso ha l'obiettivo di fornire allo studente di Sistemi Operativi strumenti pratici per giungere ad una migliore comprensione del materiale proposto in tale corso, in particolare per quanto riguarda l'utilizzo da amministratore e programmatore del sistema UNIX.

Metodo:

Le lezioni del corso sono costituite in prevalenza da esercitazioni guidate dal docente sui sistemi di calcolo del Laboratorio 2. Ogni esercitazione sara' introdotta dalla spiegazione dei concetti, dei comandi e dei costrutti necessari.

Programma:

  1. La shell UNIX: ruolo e varianti, gestione di file, ridirezione del I/O, pipe, history, editing e autocompletamento della linea di comando, editor testuali, gestione di processi e job, monitoraggio della memoria, comandi di filtro, ricerca, ordinamento ed editing, shell script.
  2. Introduzione al linguaggio C.
  3. Programmazione di sistema: controllo di processi, file system, comunicazione tra processi, threads e multithreading.

Sono disponibili online anche quattro approfondimenti facoltativi sulla scelta, l'installazione (su macchina reale o virtuale) e la configurazione di un sistema GNU/Linux.

Bibliografia:

Testi adottati:

  1. B.W. Kernighan, D.M. Ritchie, "Linguaggio C", Jackson, 2a edizione, 1989.
  2. K. Haviland, D. Gray, B. Salama, "UNIX System Programming", Addison Wesley, 2a edizione, 1999.

Testi di consultazione o approfondimento:

  1. P. Cornes, The Linux A-Z, Prentice Hall, 1997.
  2. G. Glass, K. Ables, "UNIX for Programmers and Users", Prentice Hall, 2a edizione, 1999.

Modalita' di superamento:

Per superare la prima meta' del corso di laboratorio e' necessario svolgere i tre progetti che saranno assegnati durante le lezioni. I progetti svolti, corredati da una breve relazione, devono essere inviati via e-mail entro il 24 settembre 2010 (entro il 31 agosto 2010 se si desidera registrare l'esame nella sessione di settembre). La votazione riportata per ogni progetto sara' espressa in trentesimi. I voti concorreranno alla formulazione del voto finale dell'esame di Sistemi Operativi. I progetti devono essere svolti individualmente o in un gruppo di due persone.

I progetti relativi alla shell Unix e al linguaggio C verranno assegnati la lezione successiva al completamento della relativa parte del corso. La consegna del terzo progetto sara' invece anticipata alla fine del primo periodo didattico per permettere agli studenti degli anni precedenti e a coloro che devono svolgere solo le prove di laboratorio di registrare l'esame nella sessione invernale. Le consegne dei progetti verranno comunicate a lezione e pubblicate su questa pagina.

Progetto I - La shell Unix. Il voto di questa parte pesa 6/18 sul voto finale del laboratorio.

Progetto II - Introduzione al linguaggio C. Il voto di questa parte pesa 4/18 sul voto finale del laboratorio.

Progetto III - Programmazione di sistema. Il voto di questa parte pesa 8/18 sul voto finale del laboratorio.

Attenzione: a fronte delle richieste di numerosi studenti, e' stata concessa una proroga per la consegna dei progetti. La nuova data ultima per la consegna e' il 13 ottobre 2010. Oltre tale data, sara' necessario svolgere i progetti per l'anno accademico 2010/2011. I voti per le parti gia' consegnate durante l'anno accademico 2009/2010 (o negli anni precedenti) rimaranno validi per tutto l'anno accademico 2010/2011, quindi sara' sufficiente svolgere solo i progetti per le parti non consegnate. Al fine di non penalizzare gli studenti che hanno consegnato in tempo utile, gli studenti che ritengono di poter migliorare i progetti già consegnati e non ancora corretti, possono inviare al docente le versioni migliorate entro il 13 ottobre 2010. Chi desidera usufruire di questa possibilita', comunichi al docente via e-mail entro il 1 ottobre 2010 di non considerare i progetti gia' consegnati.

Orario delle lezioni:

Le lezioni del primo periodo didattico si sono svolte il mercoledi' dalle 8.30 alle 10.15 a partire dal 7 ottobre 2009.

Durante il secondo periodo didattico, le lezioni si terranno il mercoledi' dalle 14.30 alle 16.15 a partire dal 3 marzo 2010.

Ricevimento studenti:

Su appuntamento. Contattare fabio.buttussi@uniud.it.

Avvisi:

I lucidi delle lezioni di ciascuna settimana saranno disponibili, salvo imprevisti, entro il lunedi' della stessa.

Per la parte relativa alla shell Unix sono disponibili 5 serie di slide che sono pero' state utilizzate per 6 lezioni in laboratorio. I pesi dei progetti sono pertanto 6/18, 4/18 e 8/18 rispettivamente per le parti relative alla shell Unix, al linguaggio C ed alla programmazione di sistema.

Il 10 marzo 2010 e' stato aggiornato lo schema riassuntivo dei comandi bash nei lucidi della lezione 5.

All'inizio del secondo periodo didattico, alcuni studenti mi hanno chiesto di spostare la lezione in prima fascia. Sono disponibile sia a spostare la lezione in prima fascia, sia a trovare un'altra fascia oraria in un'altra giornata. Invito tutti gli studenti interessati a questo cambio a scrivermi un e-mail con oggetto Variazione orario LAB SO. Se verra' raggiunto un numero considerevole di richieste la lezione verra' spostata.

Il 17 marzo 2010 sono stati aggiornati i lucidi della lezione 12.

Il 23 marzo 2010 e' stato aggiornato l'indirizzo e-mail del docente. Benche' il vecchio indirizzo sia ancora in funzione, si prega di utilizzare il nuovo indirizzo per inviare i progetti, per prenotare il ricevimento e per altre comunicazioni.

Non avendo ricevuto alcuna e-mail per la variazione di orario (vedasi avviso antecedente), le lezioni continueranno a essere tenute nella quarta fascia oraria.

Per venire incontro alle esigenze di numerosi studenti, e' stata concessa una proroga per la consegna dei progetti. Possono usufruirne anche coloro che hanno già consegnato. Per maggiori informazioni, leggete la sezione "Modalita' di superamento"

Lucidi delle lezioni e soluzioni degli esercizi:

Parte 1: la shell Unix

Lezione 1

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 2

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 3

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 4

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 5

Lucidi della lezione. Soluzioni degli esercizi.

Parte 2: il linguaggio C

Lezione 6

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 7

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 8

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 9

Lucidi della lezione. Soluzioni degli esercizi.

Parte 3: la programmazione di sistema

Lezione 10

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 11

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 12

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 13

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 14

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 15

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 16

Lucidi della lezione. Soluzioni degli esercizi.

Lezione 17

Lucidi della lezione. Soluzioni degli esercizi.

Approfondimenti facoltativi

Panoramica sulle distribuzioni GNU/Linux.

Installazione di un sistema GNU/Linux.

Installazione e gestione di macchine virtuali.

Modifica dei file di configurazione: filesystem, grub e Xorg.

L'utility awk.