en
Politecnico di Torino
Anno Accademico 2016/17
04KTOBG
System programming
Corso di Laurea Magistrale in Communications And Computer Networks Engineering (Ingegneria Telematica E Delle Comunicazioni) - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Montrucchio Bartolomeo ORARIO RICEVIMENTO O2 IINF-05/A 39 3 18 0 7
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 6 C - Affini o integrative Attività formative affini o integrative
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. Approfondisce i concetti
e le tecniche 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 Assembly
• Conoscenza dei fondamentali tipi di strutture dati ed algoritmi
• Capacità di sviluppare programmi in linguaggio C
Programma
1. Architettura del calcolatore e programmazione (0,45 crediti)
- richiami sui linguaggi di programmazione
- architettura e funzionamento del processore
- gestione delle periferiche
2. Strutture del Sistema Operativo (0,3 crediti)
- servizi ed interfaccia utente del Sistema Operativo
- Kernel
3. Unix shell (0,3 crediti)
- bash
- debugger
- profiler
4. Processi e thread (1,35 crediti)
- multitasking e scheduling
- programmazione concorrente
- thread
5. Sincronizzazione tramite processi e thread (1,5 crediti)
- semafori
- Inter Process Communication (IPC)
- System call
- Posix Thread
6. Gestione della memoria e memoria virtuale (0,45 crediti)
Organizzazione dell'insegnamento
Attività di Laboratorio (1,65 crediti):
• Unix Shell
• Programmazione concorrente con processi e thread
. Introduzione al kernel ed ai device 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. Correttezza e completezza delle esercitazioni di laboratorio
(homeworks) saranno anche considerate nel risultato finale.
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.2016/17
Indietro