Politecnico di Torino
Politecnico di Torino
   
Login  
en
Politecnico di Torino
Anno Accademico 2013/14
02GRSOV
Programmazione di sistema
Corso di Laurea Magistrale in Ingegneria Informatica (Computer Engineering) - Torino
Docente Qualifica Settore Lez Es Lab Anni incarico
Cabodi Gianpiero ORARIO RICEVIMENTO AC ING-INF/05 70 0 30 8
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 10 B - Caratterizzanti Ingegneria informatica
ORA-01722: invalid number
Presentazione
Il modulo illustra l'architettura dei sistemi operativi analizzandone i moduli interni, e approfondisce i concetti e le tecniche di gestione efficiente delle risorse di un sistema di elaborazione (processori, memorie, dispositivi periferici, file, ecc.).
Sono presentate inoltre le tecniche di programmazione di sistema mediante l'analisi e l'utilizzo delle chiamate di sistema di Unix e Windows. Vengono infine introdotte ed utilizzate tecniche avanzate di programmazione concorrente.
Risultati di apprendimento attesi
- Conoscenza dell'architettura dei sistemi operativi come insieme di gestori di risorse
- Conoscenza dei moduli del nucleo del sistema operativo, e capacitÓ di implementare nuovi moduli
- CapacitÓ di usare system call per la creazione, sincronizzazione e terminazione di processi e thread
- Conoscenza del meccanismo della memoria virtuale
- Conoscenza delle tecniche di schedulazione dei processi con e senza vincoli di tempo reale
- CapacitÓ di analizzare e implementare algoritmi di gestione della memoria e di schedulazione
- Conoscenza delle tecniche di gestione dei dispositivi periferici
- CapacitÓ di analizzare ed implementare device drivers
- Conoscenza dell'organizzazione dei moderni file system e capacitÓ di gestione degli stessi
- Conoscenza delle principali tecniche di protezione delle risorse e delle informazioni
- Conoscenza di interface (API) per programmazione di sistema (system calls)
- CapacitÓ di analizzare e realizzare programmi basati su system call
- CapacitÓ di analizzare e realizzare programmi basati su processi e/o thread concorrenti
Prerequisiti / Conoscenze pregresse
- Conoscenza dell'architettura dei sistemi di elaborazione: in particolare struttura del processore e organizzazione della memoria
- Conoscenza del meccanismo delle interruzioni e dei fondamenti di un linguaggio Assembler
- Conoscenza dei fondamentali tipi di strutture dati ed algoritmi
- CapacitÓ di sviluppare programmi in linguaggio C
- Conoscenza delle tecniche di base per la programmazione concorrente.
Programma
Architettura Sistema Operativo (3 ore)
- moduli di gestione delle risorse di un sistema di elaborazione
- gestione di processi e thread (richiami)
Gestione della memoria (12 ore)
- segmentazione
- paginazione
- memoria virtuale
Sistema operativo didattico OS161 (8 ore)
Gestione delle unitÓ periferiche (6 ore)
- driver e gestione dispositivi
- gestione degli accessi a disco
Gestione dei file (6 ore)
- organizzazione di un file system, gestione e protezione degli archivi
Introduzione al linguaggio C++: (12 ore)
- Classi, ereditarietÓ e polimorfismo
- Gestione delle eccezioni e supporto runtime
- Programmazione generica
Sviluppo di applicazioni Win32: (5 ore)
- programmazione reattiva
- progetto e implementazione di interfacce grafiche
- gestione dell'interazione con l'utente
Programmazione di sistema in Linux e Win32: (12 ore)
- Gestione di processi and thread
- sincronizzazione
- gestione di file and direttori
- gestione della memoria
- I/O sincrono and asincrono
- Comunicazione tra processi
Macchine Virtuali: (6 ore)
- principi generali
- l'ambiente .NET