Politecnico di Torino
Politecnico di Torino
   
Login  
en
Politecnico di Torino
Anno Accademico 2015/16
05CJCOA
Sistemi operativi
Corso di Laurea in Ingegneria Informatica - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Quer Stefano ORARIO RICEVIMENTO AC ING-INF/05 30 10 20 36 8
Sterpone Luca ORARIO RICEVIMENTO A2 ING-INF/05 40 0 20 0 5
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 6 B - Caratterizzanti Ingegneria informatica
Presentazione
L’insegnamento, presente nella Laurea in Ingegneria Informatica, è obbligatorio ed è collocato al primo periodo didattico del terzo anno. Il modulo ha lo scopo di introdurre gli elementi di base dell'architettura dei sistemi operativi e di approfondire i concetti e le tecniche di programmazione concorrente. Il modulo permette di acquisire conoscenze specifiche ai sistemi operativi UNIX-like, con particolare riferimento ai sistemi Linux, approfondendone la programmazione di sistema e l'utilizzo di comandi di amministrazione e di utente.
Risultati di apprendimento attesi
Le conoscenze e le abilità acquisite al termine del corso sono le seguenti:
- Classificazione e caratteristiche principali dei sistemi operativi moderni
- Architettura base dei sistemi operativi come gestore di risorse e organizzazione del kernel
- Gestione di processi e di thread, ovvero capacità di utilizzare le system call principali per la creazione, la sincronizzazione e la terminazione di processi e di thread d'esecuzione
- Utilizzo della programmazione concorrente per la risoluzione di problemi elementari. Analisi dei problemi standard di sincronizzazione.
- Amministrazione di sistemi UNIX-Linux mediante utilizzo di comandi, shell, filtri e linguaggi di script.
Prerequisiti / Conoscenze pregresse
Le conoscenze propedeutiche al corso sono le seguenti
- Conoscenza di tecniche base e avanzate di programmazione
- Capacità di sviluppare programmi in linguaggio C per la risoluzione di problemi di media complessità
- Conoscenza dell'architettura di un sistema di elaborazione, con particolare riferimento alla struttura di un processore e all’organizzazione della memoria
- Conoscenza del meccanismo di interruzione e dei fondamenti di un linguaggio assembler.
Programma
- Architettura di un sistema operativo
O Introduzione e classificazione dei sistemi operativi (3h)
O Struttura di un sistema operativo, risorse gestite e moduli principali (3h)
O Possibili organizzazioni di un kernel (1.5h)
- Il sistema operativo Linux
O Comandi utente e per la gestione del sistema (1.5h)
O Shell e linguaggi di shell (3h)
O Linguaggi di script (3h)
- Processi
O Introduzione ai processi e alla programmazione concorrente (6h)
O Gestione e comunicazione tra processi (3h)
- Thread
O Concetti principali e differenze dai processi (3h)
- Sincronizzazione di processi e thread
O Segnali (3h)
O Soluzioni software e hardware al problema della sincronizzazione (1.5h)
O Variabili e primitive semaforiche (4.5h)
O Problemi di sincronizzazione classici (produttore e consumatore, lettori e scrittori, filosofi, etc.) (1h)
- Scheduling della CPU (1.5h)
- Il problema dello stallo (1.5h)
Organizzazione dell'insegnamento
Non vi è alcuna distinzione formale tra ore di lezione e quelle di esercitazione, il totale delle ore in aula è 40. Le esercitazioni tenute in aula sono relative ai vari argomenti teorici e sono svolte contestualmente alla trattazione della parte teorica stessa.
L’attività di laboratorio comprende esercitazioni su quasi tutti gli argomenti trattati in aula per un totale di 20 ore. Tali esercitazioni sono svolte nel sistema operativo Linux e prevedono l’utilizzo dei comandi e dei linguaggi di shell, la scrittura di script e quella di programmi concorrenti in linguaggio C.
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
- Materiale fornito dal docente, comprendente
O Trasparenze proiettate in aula
O Esercizi e relative soluzioni, con particolare riferimento al materiale utilizzato in laboratorio
- Materiale (didattico e non) a disposizione sul World Wide Web
- Testi in forma cartacea
O A. Silbershatz, P. Galvin, G. Gagne, " Sistemi Operativi. Concetti ed Esempi", Pearson Education Italia
oppure in alternativa
o A. S. Tanenbaum, "I moderni sistemi operativi", Pearson Education Italia.
O W.R. Stevens, S. A. Rago, "Advanced programming in the UNIX Environment", Addison-Wesley Publishing Company
Criteri, regole e procedure per l'esame
L’esame del corso è costituito da una prova scritta della durata di circa 100 minuti.
Durante la prova non è ammesso l’utilizzo di alcun tipo di appunti, libri di testo, nè altro materiale (e.g., calcolatrice tascabile, cellulare, etc.). La prova comprende 6 domande: 3-4 domande di teoria e 2-3 esercizi di programmazione (comandi, shell e linguaggi di script).

L’elaborato viene valutato come segue:
- ciascun esercizio ha un peso uguale a 6 punti (6x6=36)
- tanto la parte di teoria quanto la parte di programmazione hanno una soglia minima equivalente al 50% del voto relativo a quella parte.
- il punteggio finale è pari alla somma dei punti acquisiti su ciascun esercizio.
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