| Politecnico di Torino | |||||||||||||||||
| Anno Accademico 2017/18 | |||||||||||||||||
| 04KTOBG System programming |
|||||||||||||||||
|
Corso di Laurea Magistrale in Communications And Computer Networks Engineering (Ingegneria Telematica E Delle Comunicazioni) - Torino |
|||||||||||||||||
|
|||||||||||||||||
|
|||||||||||||||||
|
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. Le esercitazioni devono essere completate durante il corso seguendo un calendario specificato all'inizio del corso stesso. L’esame scritto (max 30 punti), di durata normalmente pari a 120 minuti, consiste in due parti: • Esercizi e domande (normalmente 4) sugli argomenti del programma • La soluzione di un problema utilizzando thread o la programmazione concorrente in linguaggio C. L'esame scritto sarà a libri chiusi; in casi selezionati verrà distribuito un formulario. L'uso di smartphone, smartwatch ed ogni tipo di computer e sistema di comunicazione è strettamente proibito. La prova orale si svolgerà sugli argomenti del programma del corso, sulle esercitazioni di laboratorio e sulla verifica del programma sviluppato durante la prova scritta. La correttezza delle risposte all'esame scritto e orale e la corretta esecuzione delle esercitazioni di laboratorio produrranno il voto finale. |
| Orario delle lezioni |
| Statistiche superamento esami |
|
|