Politecnico di Torino | |||||||||||||||||
Anno Accademico 2012/13 | |||||||||||||||||
01NWGOT, 01NWGOC Operating systems and system programming |
|||||||||||||||||
Corso di Laurea Magistrale in Ingegneria Delle Telecomunicazioni (Telecommunications Engineering) - Torino Corso di Laurea Magistrale in Ingegneria Telematica (Computer And Communication Networks Engineering) - 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 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. The course is taught in English. |
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
Richiami sui linguaggi di programmazione Architettura e funzionamento di un processore Tecniche per la gestione delle periferiche Servizi di un Sistema Operativo Il Kernel - Bash - Debugger - Profiler - multitasking e scheduling - Processi concorrenti - I thread - Variabili e primitive semaforiche - Inter-Process Communication - Deadlock - System call - Posix Thread - Gestione della ricompilazione del kernel Linux. - Realizzazione di driver Linux - Unix Shell - Processi - Posix Thread - Macchine Virtuali - Kernel - Driver Linux |
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 č costituito da una prova scritta, della durata di 120 minuti, č costituita da due parti:
- esercizi e/o domande sugli argomenti svolti a lezione - La soluzione di un problema mediante thread o processi concorrenti implementati in linguaggio C. Il voto finale sarā ottenuto dalla media delle due parti, di pari peso. |
Orario delle lezioni |
Statistiche superamento esami |
|