Politecnico di Torino
Politecnico di Torino
   
Login  
en
Politecnico di Torino
Anno Accademico 2015/16
03KTOOC
System programming
Corso di Laurea Magistrale in Ingegneria Telematica (Computer And Communication Networks Engineering) - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Montrucchio Bartolomeo ORARIO RICEVIMENTO A2 ING-INF/05 39 20 21 0 7
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 8 C - Affini o integrative Attività formative affini o integrative
Esclusioni:
01NWG
Presentazione
Il modulo ha lo scopo di introdurre gli elementi principali dell'architettura dei sistemi operativi, illustrandone la struttura di base e il funzionamento dal punto di vista dell'utilizzatore avanzato e del programmatore di sistema.
Il modulo illustra l'architettura dei sistemi operativi analizzandone i moduli interni e approfondisce i concetti e le tecniche di di gestione delle risorse di un sistema di elaborazione.
Il corso presenta inoltre le tecniche di programmazione di sistema mediante l'analisi e l'utilizzo delle chiamate di sistema di Unix.
Il corso è tenuto in lingua inglese.
Risultati di apprendimento attesi
• Conoscenza e gestione dei processi e thread d'esecuzione concorrenti
• 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
• Capacità di analizzare device drivers
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
Programma
Architettura di un sistema di elaborazione: Principi generali e concetti base (0.75 crediti)
• Richiami sui linguaggi di programmazione
• Architettura e funzionamento di un processore
• Tecniche per la gestione delle periferiche

Struttura di un sistema operativo, risorse gestite e moduli corrispondenti (0.3 crediti)
• Servizi di un Sistema Operativo
• Il Kernel

Unix shell (0.3 crediti)
• Bash
• Debugger
• Profiler

Processi e Thread (1.4 crediti)
• multitasking e scheduling
• Processi concorrenti
• I thread

Sincronizzazione di Processi e Thread (2.1 crediti)
• Variabili e primitive semaforiche
• Inter-Process Communication
• Deadlock
• System call
• Posix Thread

Gestione della Memoria e Memoria Virtuale (0,45 crediti)

Macchine Virtuali (0.3 crediti)

Linux kernel e Linux driver (0.45 crediti)
• Gestione della ricompilazione del kernel Linux.
• Realizzazione di driver Linux
Organizzazione dell'insegnamento
Attività di Laboratorio (1,95 crediti):
• Unix Shell
• Processi
• Posix Thread
• Macchine Virtuali
• Kernel
• Driver Linux
Gli studenti sono tenuti a svolgere 4 esercitazioni di laboratorio che dovranno essere consegnate entro determinate scadenze. Tali elaborati saranno valutati.
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
I testi di riferimento sono i seguenti:
• Silberschatz, Galvin, Gagne, "Operating System Concepts", 8th Edition, John Wiley & Son, 2009
• J. Cooperstein, "Linux Program Development", 2009
• J. Cooperstein, "Writing Linux Device Drivers", 2009
Criteri, regole e procedure per l'esame
L’esame consiste in una prova scritta ed un orale.
L’esame scritto, di durata di 120 minuti, consiste di:
• Esercizi e domande sugli argomenti del programma
• La soluzione di un problema utilizzando thread o la programmazione concorrente in linguaggio C.
La prova orale si svolgerà sugli argomenti del programma del corso, sulle esercitazioni di laboratorio e sulla verifica del programma sviluppato nella prova scritta.
Orario delle lezioni
Statistiche superamento esami

Programma definitivo per l'A.A.2015/16
Indietro



© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
WCAG 2.0 (Level AA)
Contatti