Docente
|
NAPOLI CHRISTIAN
(programma)
Introduzione: funzionamento dei sistemi operativi; organizzazione ed architettura degli elaboratori; gestione delle risorse; classificazione e tassonomia dei sistemi operativi.
Struttura dei sistemi operativi: servizi; interfacce; interrupts; gestione degli interrupt; system calls; linker; loader; design ed implementazione dei sistemi operativi; debugging.
Processi e threads: definizione; scheduling; Portable Operating System Interface; operazioni sui processi; comunicazione fra processi; programmazione multicore; concorrenza e problemi correlati; mulithreading; multithread programming; pthreads; singals handling; librerie e tools.
Scheduling e sincronizzazione: scheduling della CPU, problemi di ottimizzazione; scheduling multi-processore, scheduling real time; sincronizzazione dei processi; sezione critica; locks; semafori; monitors; problemi e soluzioni di sincronizzazione; deadlocks.
Memoria: struttura e gerarchie di memoria; allocazione di memoria; gestione della memoria; paging e swap; memoria virtuale; gestione della mamoria virutale; memorie di massa; scheduling delle memorie di massa; gestione degli errori.
I/O e File system: concetti di base; hardware, interfacce delle applicazioni, sottosistemi; gestione delle richieste; struttura del file system; protezione; mapping; operazioni sui file; librerie; metodi di acesso ed allocazione; gestione dello spazio; operazioni di mount; partizionamento; condivisione; virtualizzazione.
Introduzione ad UNIX e Linux: descrizione; architetture; kernel; shell; rappresentazione interna dei files; chiamate di sistema; processi, controllo, scheduling e comunicazione; strategie di gestione della memoria;
Sistemi distribuiti: definizioni, vantaggi e svantaggi; struttura e gestione; comunicazione; file system distribuito; problemi di sincronizzazione; calcolo distribuito; esempi di sistemi distribuiti; sistemi unix e linux distribuiti.
Abraham Silberschatz, Peter Baer Gagne, Greg Galvin: “Sistemi Operativi", Pearson (2020);
Camil Demetrescu, Emilio Coppa, Daniele Cono D'Elia: dispense del corso di "Sistemi di Calcolo", Dipartimento di Ingegneria Informatica, Automatica e Gestionale “A. Ruberti”
Sapienza Università di Roma (2020).
Andrew S. Tanenbaum: "I moderni sistemi operativi", Pearson (2019);
Pedro Mejia-Alvarez, Luis Eduardo Leyva-del-Foyo, Arnoldo Diaz-Ramirez: "Interrupt Handling Schemes in Operating Systems", Springer (2018);
William Stallings: "Operating Systems: Internals and Design Principles", Pearson (2017);
Thomas Anderson, Michael Dahlin: "Operating Systems: Principles and Practice", Recursive Books (2014);
Andrew S. Tanenbaum: "Architettura dei Calcolatori", Pearson (2013);
Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Naraig Manjikian: "Introduzione all'Architettura dei Calcolatori", Mc Graw Hill (2013);
Dhananjay M. Dhamdhere: "Sistemi Operativi", Mc Graw Hill (2008);
Harvey M. Deitel, Paul J. Deitel, David R. Choffnes: "Operating Systems", Pearson, (2004)
Remy Card, Eric Dumas, Franck Mével: "The linux kernel book", Wiley (1998)
Bil Lewis, Daniel J. Berg: "Multithreaded Programming With Pthreads", Sun microsystems (1997);
Maurice J. Bach: "Unix. Architettura di sistema. Per il progettista e il programmatore", Jackson Libri (1988);
https://linux.die.net/man/.
|