SISTEMI OPERATIVI
cod. 16593

Anno accademico 2015/16
2° anno di corso - Secondo semestre
Docente
Settore scientifico disciplinare
Informatica (INF/01)
Field
Discipline informatiche
Tipologia attività formativa
Caratterizzante
84 ore
di attività frontali
9 crediti
sede: PARMA
insegnamento
in - - -

Obiettivi formativi

Introduzione.
Richiami sulla struttura del calcolatore
Processi e Thread.
Modello a processi, stato, generazione e terminazione. Il modello a thread, uso e implementazione. Paradigmi di interazione: condivisione, sincronizzazione, comunicazione. Scheduling di thread e processi.
Le Risorse.
Modelli di gestione delle risorse. Politiche elementari di gestione. Il problema dello stallo: caratterizzazione, metodi per evitarlo, impedirlo, riconoscerlo ed eliminarlo. Attesa indefinita. Alcuni problemi classici.
Gestione della memoria.
Il problema di base. Swapping. Paginazione. Algoritmi di sostituzione. Cenni sulla tecnica di segmentazione ed sulle problematiche implementative.
Gestione dei dispositivi di Ingresso/Uscita.
Dispositivi e processi controller. Caratteristiche del software di I/O, vari livelli di gestione: interruzioni, driver dei dispositivi, I/O software indipendente dai dispositivi. Gestione di alcuni dispositivi: dispositivi a caratteri, dischi magnetici.
File System.
Modello logico del sistema di archiviazione, file, directory. Implementazione di un file system. Esempi di file system.

La shell di Unix. La shell Bash, shell scripting, i filtri.
Programmazione di Sistema in C. Chiamate e librerie di sistema, controllo dei processi, comunicazioni tra processi, thread e multithreading, accesso al file-system e I/O.

Prerequisiti

- - -

Contenuti dell'insegnamento

Il corso introduce i principi ed i concetti fondamentali su cui si basano i sistemi operativi. In particolare, vengono analizzate le tecniche che consentono di coordinare e gestire le risorse di un sistema di elaborazione e che permettono di trasformare la macchina fisica in una macchina astratta, dotata di funzionalità più convenienti per l'utente.

Programma esteso

Introduzione.
Richiami sulla struttura del calcolatore
Processi e Thread.
Modello a processi, stato, generazione e terminazione. Il modello a thread, uso e implementazione. Paradigmi di interazione: condivisione, sincronizzazione, comunicazione. Scheduling di thread e processi.
Le Risorse.
Modelli di gestione delle risorse. Politiche elementari di gestione. Il problema dello stallo: caratterizzazione, metodi per evitarlo, impedirlo, riconoscerlo ed eliminarlo. Attesa indefinita. Alcuni problemi classici.
Gestione della memoria.
Il problema di base. Swapping. Paginazione. Algoritmi di sostituzione. Cenni sulla tecnica di segmentazione ed sulle problematiche implementative.
Gestione dei dispositivi di Ingresso/Uscita.
Dispositivi e processi controller. Caratteristiche del software di I/O, vari livelli di gestione: interruzioni, driver dei dispositivi, I/O software indipendente dai dispositivi. Gestione di alcuni dispositivi: dispositivi a caratteri, dischi magnetici.
File System.
Modello logico del sistema di archiviazione, file, directory. Implementazione di un file system. Esempi di file system.

La shell di Unix. La shell Bash, shell scripting, i filtri.
Programmazione di Sistema in C. Chiamate e librerie di sistema, controllo dei processi, comunicazioni tra processi, thread e multithreading, accesso al file-system e I/O.

Bibliografia

A. Silberschatz. Sistemi Operativi, (concetti ed esempi). Ottava Edizione. Pearson.

Metodi didattici

lezioni frontali e laboratorio

Modalità verifica apprendimento

esame scritto e orale

Altre informazioni

- - -