Dipartimento: DIMES Corso di Laurea: INGEGNERIA INFORMATICA Indirizzo Internet Corso di Laurea: www.dimes.unical.it Nome insegnamento: SISTEMI OPERATIVI Condivisione: NO Articolazione in moduli: NO Settore Scientifico Disciplinare: ING-INF/05 Docente responsabile: PAOLO TRUNFIO Posizione docente responsabile: RICERCATORE – UNIVERSITA’ DELLA CALABRIA Crediti formativi universitari: 9 Numero ore lezioni: 57 Numero ore riservate attività didattiche assistite: 84 Numero ore esercitazioni: 27 Numero ore riservate studio individuale: 141 Tipologia: ATTIVITA’ CARATTERIZZANTE – INGEGNERIA INFORMATICA Lingua di insegnamento: ITALIANO Collocazione: II ANNO, I SEMESTRE Prerequisiti: Programmazione Orientata agli Oggetti Il corso ha lo scopo di introdurre i principi di funzionamento e di progetto dei sistemi operativi ed i concetti e i meccanismi fondamentali per la gestione dei processi, della memoria, dell'I/O e del file system sui cui sono basati i sistemi operativi moderni. Competenze da acquisire: comprensione dei principi dei sistemi operativi e del loro funzionamento comprensione dei meccanismi della programmazione concorrente abilità a progettare algoritmi concorrenti ed implementare sistemi software basati su di essi abilità ad usare i sistemi operativi basati su Linux e Windows e sfruttare le funzionalità delle loro system call capacità di comprendere ed usare la programmazione di sistema tramite shell capacità di installazione, configurazione e gestione dei sistemi operativi Argomenti delle lezioni: Introduzione Concetti fondamentali, Dai sistemi batch ai sistemi operativi moderni, Struttura del sistema operativo, Componenti di un sistema operativo, System calls. Strutture dei Sistemi di Calcolo Funzionamento di un calcolatore, struttura dell'I/O, struttura della memoria, gerarchia delle memorie, protezione hardware. Struttura dei Sistemi Operativi Componenti principali, servizi, systems call, struttura di un sistema operativo, macchine virtuali, approccio a microkernel, generazione di un sistema. Studio dei sistemi Linux e Windows. Gestione dei Processi Processi, Threads, Creazione, interazione e terminazione di processi, Schedulazione dei processi, Diagramma di Stato, Algoritmi di scheduling. Sincronizzazione e Comunicazione, Modelli di programmazione concorrente, Meccanismi di cooperazione: semafori, regioni critiche, monitor, scambio messaggi, socket, chiamata di procedura remota, RMI, Deadlock e Starvation. Gestione della Memoria Principale Tecniche per la gestione della memoria, Swapping, Paginazione e Segmentazione: Concetti ed Algoritmi, Memoria Virtuale: paginazione e segmentazione. File System Caratteristiche del File System, File e Directory, Protezione, Implementazione del file system. Gestione dei dispositivi di Input/Output Principi dell'hardware di I/O, Il software per la gestione dell' I/O, Dischi, Scheduling del disco, Clock, Terminali. Protezione e sicurezza Meccanismi di protezione, Cavallo di Troia, Worms, Virus, Tecniche per aumentare la sicurezza di un sistema. Argomenti delle esercitazioni: • Programmazione concorrente in Java • Programmazione della shell di Linux • Programmazione mediante le system call di Linux Modalità di frequenza: OBBLIGATORIA Modalità di svolgimento delle lezioni: In aula, con metodologie tradizionali e con l’uso di trasparenze e proiettore collegato al PC. Modalità di svolgimento delle esercitazioni: In aula, con metodologie tradizionali e proiettore collegato al PC. Metodi di valutazione: Prova scritta e prova orale obbligatoria. Testi di riferimento: A. Silberschatz, P. Galvin, G. Gagne, SISTEMI OPERATIVI: Concetti ed Esempi, Addison-Wesley, 7a ed., 2006. A.S. Tanenbaum, I moderni Sistemi Operativi, Jackson Libri, 2002. W. Stallings, Sistemi Operativi, Jackson Libri, 2000. Orario e aule lezioni: Calendario prove valutazione: www.dimes.unical.it