Lezione 1
Introduzione: organizzazione degli elementi essenziali di un elaboratore, componenti principali e servizi del sistema operativo.
Lezione 2
La struttura dei sistemi operativi: servizi, interfaccia utente, chiamate di sistema, programmi di sistema. Architettura del kernel. Le macchine virtuali.
Lezione 2
I processi: definizione di processo, scheduling dei processi ed operazioni sui processi. Processi cooperanti e comunicazione.
Lezione 4
I thread: definizione, modelli di programmazione multithread, librerie. I thread di Linux.
Lezione 5
Lo scheduling della CPU: criteri ed algoritmi. Scheduling nei sistemi multiprocessore e scheduling real-time. Scheduling in Linux.
Lezione 6
Sincronizzazione dei processi: il problema della sezione critica, semafori e monitor. Problemi classici di sincronizzazione.
Lezione 7
Deadlock: caratterizzazione del problema e metodi di gestione; tecniche per prevenire, evitare, rispristinare le situazioni di stallo.
Lezione 8
La gestione della memoria principale: swapping, paginazione, segmentazione. Un caso di studio: il Pentium.
Lezione 9
La memoria virtuale: la paginazione su richiesta, sostituzione delle pagine e allocazione dei frame, trashing e modello di località dei processi.
Lezione 10
L'interfaccia del file system: file, attributi, modalità di accesso; la struttura delle directory; condivisione di file e protezione. Unix come caso di studio.
Lezione 11
La realizzazione del file system: realizzazione delle directory, metodi di allocazione e gestione dello spazio libero; efficienza e prestazioni. NFS come caso di studio.
Lezione 12
Memoria secondaria e terziaria: struttura dei dispositivi di memoria, scheduling del disco, gestione dell'area di swap; struttura RAID.
Prof. Monica Bianchini - Fondamenti di Informatica
Presenetazione Corso
Presentazione del corso: obiettivi, testi di riferimento, modalità di esame.
Lezione 1
L'algebra di Boole; i sistemi di numerazione; la rappresentazione dei dati e l'aritmetica degli elaboratori.
Lezione 2
La struttura del calcolatore; linguaggio macchina e assembler. Il sistema operativo.
Lezione 3
Analisi e programmazione; algoritmi e loro proprietà; diagrammi a blocchi e pseudocodifica. Algoritmi iterativi e ricorsivi.
Lezione 4
I linguaggi di programmazione di alto livello; compilatori e interpreti; breve storia del linguaggio C.
Lezione 5
Introduzione alla programmazione in C; i fondamenti del linguaggio C.