Insegnamento mutuato da: B006818 - SISTEMI OPERATIVI Laurea Triennale (DM 270/04) in INFORMATICA
Lingua Insegnamento
Italiano
Contenuto del corso
Struttura e principali funzioni di un sistema operativo; processi, thread e scheduling della CPU; caratterizzazione e gestione dello stallo; gestione della memoria principale e virtuale; interfaccia e implementazione del file system; struttura dei dispositivi di massa e gestione del sistema di I/O.
Uso interattivo della shell in UNIX/Linux. Il linguaggio di programmazione C. UNIX/Linux system call. Programmazione di sistema e comunicazione tra processi in ambiente UNIX/Linux.
Sistemi Operativi. P.Ancillotti & M. Boari & A. Ciampolini & G. Lipari, 2ed., McGraw-Hill
Sistemi Operativi. A.Silberschatz & P.B.Galvin & G.Gagne, 9ed., Addison-Wesley
BASH Programming – Introduction HOWTO
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
Programming in C - UNIX System Calls and Subroutines using C http://www.cs.cf.ac.uk/Dave/C/CE.html
The Linux Kernel Module Programming Guide
P.J.Salzman, 2007
http://www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf
Obiettivi Formativi
Conoscenze:
problematiche inerenti la progettazione e la realizzazione delle varie componenti che costituiscono un sistema operativo, con particolare riguardo per i legami hardware/software e le interazioni con i programmi utente.
Competenze acquisite:
struttura interna dei sistemi operativi e delle funzionalità delle loro componenti.
Capacità acquisite al termine del corso:
utilizzo più consapevole ed efficace dei sistemi operativi e dei suoi strumenti.
Prerequisiti
Corsi vincolanti: Programmazione, Architetture degli Elaboratori
Metodi Didattici
Numero di ore totali del corso: 225
Numero di ore per studio personale e altre attività formative di tipo individuale: 147
Numero di ore relative alle attività in aula: 56
Numero di ore relative ad attività di laboratorio (lezioni in laboratorio): 18
Numero di ore per prove in itinere: 4
Altre Informazioni
Ricevimento studenti Prof. Pugliese: per appuntamento (contattare il docente per telefono o e-mail)
Ricevimento studenti Dott. Lollini: per appuntamento (contattare il docente per telefono o e-mail)
Modalità di verifica apprendimento
Esame scritto e progetto software.
Programma del corso
Funzioni principali di un sistema operativo. Modalità di funzionamento. Interruzioni. System call. I processi. Diagramma degli stati. Operazioni sui processi. Processi e threads. Gestione della CPU. Politiche di scheduling. Tecniche di prevenzione e rilevamento dello stallo. Gestione della memoria centrale. Allocazione contigua. Paginazione. Segmentazione. Memoria virtuale. Tecniche di sostituzione delle pagine. Gestione della memoria secondaria. Il file system. Directory e file. Metodi di accesso ai file. Allocazione dei file su disco. Interfaccia ed implementazione del file system. Gestione delle periferiche di I/O: polling, interrupt, DMA. Politiche di scheduling delle richieste al disco. Casi di studio: implementazione di alcuni concetti in Windows e UNIX/Linux.
Modulo di laboratorio: Comandi di shell in UNIX/Linux. Il linguaggio di programmazione C. UNIX/Linux system call. Programmazione di sistema e comunicazione tra processi in ambiente UNIX/Linux. Concetti di base di amministrazione dei sistemi UNIX/Linux.