Materiale didattico
Primo modulo (SC1)
Il materiale didattico principale per il modulo sono gli appunti presi durante le lezioni in aula e la dispensa, che copre parte del programma. Come altro materiale didattico si rimanda al libro di testo (Bryand, O'Hallaron) e ai lucidi del corso 15-213: Introduction to Computer Systems.
Software
Dispense e lucidi
Libri di testo, manuali e documentazione
- Randal E. Bryant e David R. O'Hallaron: Computer Systems: A Programmer's Perspective, Prentice Hall, 2003, ISBN 0-13-034074-X [sito Web]
- Standard POSIX (IEEE Std 1003.1, 2004 Edition), include tutte le librerie standard C: si veda la sezione System Interfaces volume (XSH).
- Brian W. Kernighan, Dennis M. Ritchie: Il Linguaggio C, Pearson Education Italia, ISBN 88-7192-200-X, seconda edizione [sito Web]
Codice
Letture consigliate e materiale di approfondimento
- Donald Knuth: The Art of Computer Programming, Volumes 1-3, Addison-Wesley, Inc. [sito web]
- Jon Louis Bentley: Programming pearls, Addison-Wesley, Inc., 2000. ISBN 0-201-65788-0 [sito web]
- Jon Louis Bentley: Writing Efficient Programs, Prentice Hall, 1982, ISBN 978-0139702440 [sito Web]
Esercizi e domande riepilogative
- Esercizi sulla prima parte del corso:
- Esercizi sulla seconda parte del corso:
Secondo modulo (SC2)
Il materiale didattico principale per il modulo sono gli appunti presi durante le lezioni in aula e le slides presentate dal docente. Su alcune parti del programma si rimanda ai libri di testo in calce
Lucidi (I lucidi possono essere considerati stabili almeno 1 mese dopo la lezione in Aula)
(
si veda anche la pagina Diario lezioni)
Dispense
Materiale esercitazioni
Materiale prove al calcolatore
Libri di testo, manuali e documentazione
- William Stallings: Operating Systems , Pearson Education, ISBN-10: 0-13-380591-3, Eight Edition [sito Web]. Per i materiali trattati le edizioni del libro dalla quarta possono andare bene.
- Jerome H. Saltzer, M. Frans Kaashoek: Principles of Computer System Design: an Introduction, Morgan Kaufman, ISBN 978-0-12-374957-4, [sito Web]
- Brian W. Kernighan, Dennis M. Ritchie: Il Linguaggio C, Pearson Education Italia, ISBN 88-7192-200-X, seconda edizione [sito Web]
Letture consigliate e materiale di approfondimento
- Richard Stevens: UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications, Prentice Hall, 1999, ISBN 0-13-081081-9 [http://www.unixnetworkprogramming.com/]
- Richard Stevens: UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets and XTI, Prentice Hall, 1998, ISBN 0-13-490012-X [http://www.unixnetworkprogramming.com/]
Pagine utili
- Linguaggio C
- Tool di analisi del software (debugger, profiler)
- gprof (call graph profiler per Linux)
- perf (profiler contatori hardware per Linux)
- Valgrind (profiler e debugger di memoria per Linux e MacOS X)
- aprof (profiler basasto su Valgrind per identificare inefficienze asintotiche per Linux e MacOS X)
- Programmazione x86
- Allocazione dinamica della memoria
- Doug Lea: A Memory Allocator. unix/Mail December, 1996. Hanser Verlag [pagina web]
- Versione 1.161 dell'allocatore malloc.c fornito dal sistema operativo FreeBSD