Offerta Didattica
INGEGNERIA ELETTRONICA E INFORMATICA
SISTEMI OPERATIVI
Classe di corso: L-8 - Ingegneria dell'informazione
AA: 2015/2016
Sedi: MESSINA
SSD | TAF | tipologia | frequenza | moduli |
---|---|---|---|---|
ING-INF/05 | Affine/Integrativa | Libera | Libera | No |
CFU | CFU LEZ | CFU LAB | CFU ESE | ORE | ORE LEZ | ORE LAB | ORE ESE |
---|---|---|---|---|---|---|---|
6 | 4.5 | 0 | 1.5 | 60 | 36 | 0 | 24 |
LegendaCFU: n. crediti dell’insegnamento CFU LEZ: n. cfu di lezione in aula CFU LAB: n. cfu di laboratorio CFU ESE: n. cfu di esercitazione FREQUENZA:Libera/Obbligatoria MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli ORE: n. ore programmate ORE LEZ: n. ore programmate di lezione in aula ORE LAB: n. ore programmate di laboratorio ORE ESE: n. ore programmate di esercitazione SSD:sigla del settore scientifico disciplinare dell’insegnamento TAF:sigla della tipologia di attività formativa TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio
Obiettivi Formativi
Architettura di un sistema operativoLearning Goals
Operating system architectureMetodi didattici
- Lezioni frontali. - Laboratorio di programmazione concorrente.Teaching Methods
- Lectures. - Concurrent programming laboratoryPrerequisiti
Fondamenti di Informatica Nozioni di architetture dei calcolatoriPrerequisites
Basics on computer programming Basics on Computer architecturesVerifiche dell'apprendimento
- Discussione sugli argomenti in programma.Assessment
- Discussion on some specific topics in the area of concurrent programming and operating systems design.Programma del Corso
* Generalità sui Sistemi Operativi: sistemi monolitici, sistemi a livelli, macchine virtuali, sistemi distribuiti client-server. Definizione di Processo, Memoria Virtuale, File System, System Call, Kernel, Shell. * Storia dei Sistemi Operativi: dalla mono alla multiprogrammazione; il concetto di multitasking. * Modello di interazione tra CPU e dispositivi. Sistema di interruzione. Interruzioni e multiprogrammazione. Processo di interruzione. Modi di funzionamento della CPU. * Gestione dei Processi: modello di un processo, vita di un processo, meccanismi di controllo. La Schedulazione a breve termine (di CPU), la Schedulazione a medio termine (swapping), La Schedulazione a lungo termine (dei processi): algoritmi di schedulazione (senza prelazione, con prelazione, Round Robin, con priorità, code multiple, SJF). * La Mutua Esclusione: corse critiche, mutua esclusione, sospensione e risveglio, stallo, meccanismi di condivisione della memoria e scambio messaggi. Meccanismi di sincronizzazione tra processi: semafori. La Comunicazione Inter-Processo (IPC) e i suoi problemi: esempio del produttore-consumatore. La Gestione dei Processi e IPC in ambiente distribuito (accenni). I Threads: definizione, sistemi operativi multi-threaded, rapporto tra threads e processi. * Blocco critico (deadlock). Condizioni e soluzioni. * Gestione della Memoria: partizionamento fisso, rilocazione e protezione; gestore con swapping: multiprogrammazione a partizioni variabili, squeeze (compattamento). Memoria Virtuale: definizione di spazio di indirizzamento virtuale, MMU, overlay e paginazione, Virtual Page Table a uno o più livelli. Segmentazione. * Gestione dei File: file system (struttura gerarchica in file e directory, tipi di file system). Implementazione del file system Unix: proprietà e modi di accesso, descrittori di file, protezione e sicurezza del file system; file speciali a blocchi e caratteri. * Gestione dell'Input/Output. Meccanismo delle Interruzioni. Driver delle interruzioni, driver dei dispositivi (device driver a blocchi o caratteri). Sottosistema di I/O del kernel Unix. Laboratorio * La gestione dei processi. * La libreria pthread. Gestione dei thread, mutex, semafori. * La comunicazione tra processi. * Esercitazioni su programmazione concorrente.Course Syllabus
* Overview on Operating Systems: architectures, virtual machines, distributed systems, client-server paradigm. Process definition, virtual memory, File System, System Call, Kernel, Shell. * Evolution of Operating Sysstems: from mono-programming to multi-programming; basics on multitasking. * CPU - devices interaction models. Interrupts. Interrupts and multi-programming. CPU running modes. Process Management: process model, process control mechanisms. Short term scheduling, medium term scheduling, long term scheduling: scheduling algorithms. *Process synchronization: the critical section problem, the mutual exclusion, sleep and wake up, deadlock, shared memory, message exchange. Semaphores. Threads: multithreading models, threads and processes. Memory management: contiguous memory allocation, memory relocation and protection; swapping; variable partitions allocation, squeeze. Pagination. Segmentation. Virtual memory: demand paging, page replacement, thrashing. * Storage management: file-system interface, file system implementation: file system structure, directory implementation, allocation methods, free space management. * Process management. * The pthread library. Thread management, mutex, semaphores. * Interprocess communication. * Concurrent programming.Testi di riferimento: A.Silberschatz, P.B.Galvin, G.Gagne, "Sistemi operativi. Concetti ed esempi", Pearson/Addison Wesley
D.Giacomini, "Appunti di Linux", (sito web).
Mark Mitchell, Jeffrey Oldham, Alex Samul, "Advanced Linux Programming" (sito web)
Esami: Elenco degli appelli
Elenco delle unità didattiche costituenti l'insegnamento
SISTEMI OPERATIVI
Docente: MARCO LUCIO SCARPA
Orario di Ricevimento - MARCO LUCIO SCARPA
Giorno | Ora inizio | Ora fine | Luogo |
---|---|---|---|
Martedì | 09:30 | 11:30 | Dipartimento di Ingegneria, Blocco B, piano 7. |
Giovedì | 09:30 | 11:30 | Dipartimento di Ingengeria, Blocco B, piano 7. |
Note: