Laboratorio di Programmazione di Sistema - Corsi riuniti A e B

 
Avvisi:

  • (01/03/2006) ATTENZIONE: il nuovo progetto e' disponibile alla pagina 'avvisi' del corso di LCS
  • AVVISO IMPORTANTE per chi deve ancora sostenere LPS (18 Gennaio 2006)
  • limite ultimo consegne: 10 Febbraio 2006: il termine ultimo per la consegna del progetto AA 04/05 e' il 10 FEBBRAIO 2006 ore 23.00. Dopo quella data gli studenti che non hanno consegnato tutti i frammenti *perdono* tutti i bonus accumulati. La stessa scadenza vale per chi deve svolgere parti integrative per sopperire ad un orale insufficiente. Anche in questo caso se le parti integrative sono insufficienti o non vengono consegnate in tempo si perde tutto.
  • limite prenotazione orali per chi ha gia' consegnato: 28 Febbraio 2006 chi ha gia' consegnato il progetto ma deve ancora sostenere l'orale deve TASSATIVAMENTE prenotarsi per l'orale entro il mese di FEBBRAIO 2006. Anche in questo caso chi non si prenota perde tutto.
  • studenti lavoratori, abbreviazioni di carriera e altri casi particolari contattare il docente per posta elettronica entro la fine di Febbraio per discutere eventuali estensioni alle date di scadenza di cui sopra
  • per chi non supera LPS entro Febbraio 2006
  • se manca solo LPS gli studenti che hanno gia' sostenuto LPC *devono* presentare le firme di frequenza del corso di LLS (richiedendo una certificazione al Prof Gervasi) per poter svolgere il PROGETTO LPS 05/06. Svolto il progetto e superato l'orale l'esame viene verbalizzato come LPS (codice AA012).
    Il nuovo PROGETTO LPS 2005/06 verra' pubblicato i primi di Marzo 2006 SU QUESTO STESSO SITO.
  • se manca LPS + LPC gli studenti devono sostenere i nuovi laboratori LLS (con Prof Gervasi) ed LCS (con me). Una volta passati *entrambi* gli esami verra' effettuata la verbalizzazione sia di LPC (dal Prof Chessa ) che di LPS (da me).
  • AVVISO PER GLI ORALI dei PROGETTI Alla scadenza del terzo frammento sono stati consegnati piu' di 80 progetti. Per problemi di tempi di correzione solo una parte degli studenti possono sostenere l'orale entro la fine di luglio. Ho allocato gli orali in ordine di consegna, dando la precedenza nella scelta a chi ha consegnato prima. Attualmente *non* ci sono piu' posti disponibili.
    Dopo l'estate e' possibile sostenere l'orale da giovedi' 15/09 in poi (fino a febbraio). Gli orali si svolgeranno ogni giovedi' e venerdi' ed e' possibile prenotarsi mandando una mail con 7/10 gg di anticipo. Contattatemi per e-mail per qualsiasi problema. F.to: Susanna Pelagatti
  • Sommario GDB commands (from Claudio Scordino),
  • Materiale progetto : Testo progetto 04/05: PostScript , PDF
  • FAQ last update 01/06/05 ore 12.00
  • Scadenze last update 20/04/05 ore 12.30
    Frammento 1: scadenza: 18/4(ore 9.00 am) esercitaz: 16/3 e 23/3 specifiche:14/3
    La deadline del primo frammento e' scaduta: ecco i risultati primo frammento gli elaborati contrassegnati con asterischi e numeri fra parentesi (es. *(3) ...*(3) ) sono fra loro molto simili. Gli studenti corrispondenti sono pertanto 'ammoniti' e dovranno discutere la cosa in sede di orale del progetto complessivo. Se lo stesso gruppo riceve due ammonizioni dovra' sostenere un orale piu' approfondito, sia sul progetto che sul corso. Se lo stesso gruppo riceve tre ammonizioni oltre a dover sostenere un orale piu' approfondito sara' anche escluso dai bonus.
    Frammento 2: scadenza: 9/5(ore 9.00 am) esercitaz: 20/4 e 27/4 specifiche:
    18/4
    
    risultati secondo frammento
    (1) gli elaborati contrassegnati con asterischi e numeri fra parentesi (es. *(3) ...*(3) ) sono fra loro molto simili. Gli studenti corrispondenti sono pertanto 'ammoniti' e dovranno discutere la cosa in sede di orale del progetto complessivo. (vedi commenti ai risultati del primo frammento)
    (2) i gruppi che non hanno passato il test (test failed) potrebbero aver utilizzato la prima vesrione del kitf2.tar (quella che erroneamente scrioveva nel file ("~/.prorub.datx") invece che ("~/.prorub.dat")) se questo e' il caso prego i gruppi interessati di mandarmi al piu' presto (e comunque non oltre il 12/06) la versione corretta.
    Frammento 3 (progetto completo): scadenza: 15/7(ore 9.00 am) esercitaz: 11/05 18/5 e 25/5 specifiche: 10/5
    
  • Materiale primo frammento (dal 14/03/05)
  • Materiale secondo frammento (dal 18/04/05)
  • Materiale progetto completo (ATTENZIONE 29/06/05 ore 11.00! Scaricate il nuovo kit corretto) Abbiamo risolto un certo numero di malfunzionamenti segnalati dagli studenti! Grazie!
    (Per problemi di installazione, il make di consegna-finale funziona solo sulle macchine delle aule M, H, I e nel Laboratorio 1, anche in remoto) (dal 10/05/05)
  • Docenti: Susanna Pelegatti Stefano Chessa Augusto Ciuffoletti
  • Supporto: Stefano Cataudella, Edoardo Pistoletti, Claudio Scordino
  • Orario :
  • Lezioni: Lunedi 14.00--16.00 aula A, corsi riuniti
  • Esercitazioni (4 gruppi): (gruppo A1) Mercoledi 9.00-11.00 aula M Chessa, (gruppo A2) Mercoledi 11.00-13.00 aula M Ciuffoletti, (gruppo B1) Mercoledi 11.00-13.00 aula H Pelagatti, (gruppo B2) Mercoledi 14.00-16.00 aula H Pelagatti
  • Materiale didattico:
  • Libri di testo
  • V. Gervasi, S. Pelagatti, S. Ruggieri, F. Scozzari, A. Sperduti. Introduzione alla programmazione di sistema in linguaggio C, Febbraio 2004, Dispensa, Opera Universitaria Pisa. sorgenti esercizi
  • G. Glass, K. Ables. UNIX for Programmers and Users, Prentice Hall, 1999. Capp. 2,3,6,11,12,13
  • Kelley, Pohl. C: Didattica e Programmazione (seconda edizione), Addison-Wesley, 2004.
  • Manuali in linea:
  • dei tool di sviluppo di programmi in C: make gcc emacs ddd
  • delle chiamate di sistema: > man nomefunzione man -k argomento
  • programma
  • Modalita' d'esame: La valutazione del corso di laboratorio consiste nella discussione di un progetto realizzato in gruppi di 2-3 persone. La frequenza al corso di laboratorio NON e' obbligatoria, sebbene vivamente raccomandata. Il testo del progetto sara' reso disponibile entro Aprile 2005.
  • Ricevimento : : S. Pelagatti. Giovedi' 11.00--12.30 e 14.00-15.30, Stanza 346/DE, Dip. Informatica, Largo Pontecorvo, 3. Tel. 050-2212772.
  • Testi e altro materiale di consultazione
  • Changes introduced new C9X standard summary
  • doxygen for automatic documentation generation here
  • Kernighan & Pike Programmazione nella pratica Addison-Wesley, 1999. ISBN 8871920724. Un ottimo libro per migliorare lo stile di programmazione: insieme di consigli su come organizzare i programmi in modo ragionevole con esempi C e Java. Acquistabile su librinformatica e gorilla
  • Lezioni ed Esercitazioni :

    IMPORTANTE:
    --- Gli argomenti delle lezioni non ancora svolte sono suscettibili di modifica. Controllate sempre la versione piu' aggiornata.
    --- Copie cartacee delle trasparenze sono disponibili presso la copisteria-- --SPEEDY
    -- I link alle soluzioni delle esercitazioni verranno attivati solo dopo che l'esercitazione e' stata effettuata

    Numero

    Descrizione

    Materiale/Commenti

    Soluzioni/File

    Data

    1

    Lezione:Introduzione al C, formati eseguibile, spazi di indirizzamento, un semplice programma Lucidi (PPT)

    Dispensa Cap 1
    KP Cap 1


    14/02/05

    2

    Esercitazione: semplici programmi C (Testo) Alcuni Sommari : Sommario di comandi emacs
    Sommario di comandi linux

    Alcuni link per approfondimenti : Versione di gcc per Windows
    Anjuta: ambiente di sviuppo 'visuale' per C/C++ su gnome/linux

    Soluzioni (tar-gzipped) Per decomprimere
    gunzip nomefile
    per s-tarare
    tar xvf nomefile
    Rielaborazione soluzioni es.1 (Ciuffoletti)
    FAQ

    16/02/05

    3

    Lezione:Tipi base, array, strutture, funzioni, variabili locali (automatiche), globali e statiche Lucidi (PPT)

    Dispensa capitoli 2-3-4-6
    (Riferimenti alle parti di KP nella dispensa)


    21/02/05

    4

    Esercitazione: tipi base, array, strutture e funzioni
    Testo esercizi
    GDB
    DDD
    Soluzioni (tar-gzipped) Rielaborazione soluzioni es.4 (Ciuffoletti)


    FAQ

    23/02/05

    5

    Lezione: puntatori ed array, passaggio di parametri per reference, allocazione dinamica malloc(), void * Lucidi (PPT)

    Dispensa capitolo 5
    (Riferimenti alle parti di KP nella dispensa)




    28/02/05

    -

    Esercitazione non effettuata per sciopero dei docenti

    02/03/05

    6

    Lezione: Puntatori a funzioni,Array multidimensionali, parametri sulla linea di comando. Cenni sulle librerie standard: assert.h, stdio.h Lucidi della lezione precedente (puntatori a funzione,array multidimensionali, argv,argc)
    Lucidi (PPT) Su librerie standard
    KP 6.16 funzioni come parametri
    KP 6.12 array multidimensionali

    07/03/05

    7

    Esercitazione: puntatori, allocazione dinamica, parametri sulla linea di comando, stdio.h (Testo esercizi)
    array multidimensionali (Testo)

    Soluzioni primi esercizi (tar-gzipped)
    Soluzione percolation (tar gzipped)

    09/03/05

    8

    Lezione: Presentazione Progetto Didattico.
    pre-processore, compilazione condizionale, programmi C su piu' file, compilazione separata, linking, make, librerie (ar), File separati come meccanismi di astrazione dati (ADT), classi di memorizzazione
    Lucidi (PPT) Lucidi presentazione progetto didattico
    Lucidi (PPT) Su preprocessore
    Lucidi (PPT) Su compilazione separata
    Lucidi (PPT) Su ADT e classi di memorizzazione

    Glass pp. 329 e seguenti
    Le info di emacs ottenibili con "ESC-X info" da emacs

    Solo per chi e' interessato : come scaricare l'emulatore SPIM e il PDF di un documento che descrive in dettaglio un esempio di linking e loading: (SPIM) documentazione nell' dell'appendice di Computer Architecture: Organization and Design by Hennessy&Patterson (contiene un interessante esempio di compilazione e linking oltre all'introduzione dell'emulatore SPIM)

    Un esempio di programma C su piu' file (tar gzipped)
    Un Makefile alternativo che crea la libreria libutils.a Makefile.lib

     make -f Makefile.lib  

    14/03/05

    9

    Esercitazione: ADT, compilazione separata, archivi, make
    Primo frammento di progetto
    (Testo ese su pile come ADT)
    (Testo altri esercizi)
    (Soluzioni es pile)
    Soluzione altri esercizi (tar gzipped)
    Rielaborazione soluzioni es.2 (Ciuffoletti)

    16/03/05

    10

    Lezione: union, enum. Introduzione al File System di Unix/Linux. Chiamate di sistema, introduzione. perror(). Lucidi (PPT)
    (contiene lucidi enum union)
    Lucidi (PPT) Intro FS Unix/Linux
    sysmacro.h

    21/03/05

    11

    Esercitazione: Ancora ADT e puntatori, union, enum,
    Primo frammento di progetto
    (Testo)
    (Soluzioni es 1 e 2)
    (Soluzioni 3)

    23/03/05

    12

    Lezione: open(), close(),read(), write(), Mappaggio dei file in memoria, lseek, stat, SC che lavorano su directory, ottenere e modificare la directory corrente Lucidi (PPT) Intro FS Unix/Linux
    Lucidi (PPT) SC file/directory

    11/04/05

    13

    Esercitazione: Liste, ADT, perror(), open() close() read() write(), lseek, stat, SC che lavorano su directory
    Esercizi su liste e ADT : Testo 1 Testo 2
    Testo primo esercizio SC
    Testo secondo e terzo esercizio SC
    Testo altri esercizi SC
    Soluzione testo 1(tar gzipped)
    (Soluzioni Testo 2)
    (Soluzioni es 1,2,3)
    (soluzioni altri esercizi)
    util.c
    util.h
    sysmacro.h
    esercizio liste Ciuffoletti

    13/04/05

    14

    Lezione: Chiamate di sistema: file (mmap,munmap) Lucidi (mmap-munmap)


    18/04/05

    15

    Esercitazione:

    Progetto: secondo frammento

    20/04/05

    16


    Esercitazione: Progetto: secondo frammento

    27/04/05

    OGGI le lezioni sono sospese dalle 10.00 alle 13.00 al fine di consentire lo svolgimento della propaganda elettorale per le elezioni studentesche. Tuttavia, in quelle ore saremo lo stesso in aula H per effettuare ricevimento sul frammento 2 del progetto, come ci hanno richiesto gli studenti del corso.

    17

    Lezione: processi (fork, exec) Lucidi (fork,exec)


    02/05/05

    18


    Esercitazione: Processi: fork exec, File: mmap()

    Progetto: secondo frammento

    Testo esercizi fork exec
    Testo esercizi su mmap()
    (Soluzione esercizi mmap)

    (Soluzione esercizio fork exec)
    util.c
    util.h

    04/05/05

    19

    Lezione: Pipe con e senza nome Lucidi (PPT)


    09/05/05

    20

    Esercitazione: Pipe con e senza nome Testo esercizi
    Soluzioni esercizi.

    11/05/05

    21

    Lezione:Segnali Lucidi (PPT)


    16/05/05

    22

    Esercitazione: Segnali Esercizi

    Soluzioni (tar-gzip)

    18/05/05

    23

    Lezione: Lezione soppressa


    23/05/05

    24

    Esercitazione:

    Progetto Frammento 3

    Soluzioni (tar-gzip)

    25/05/05