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