en
Politecnico di Torino
Anno Accademico 2014/15
05CJCOA
Sistemi operativi
Corso di Laurea in Ingegneria Informatica - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Quer Stefano ORARIO RICEVIMENTO AC IINF-05/A 30 10 20 36 14
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 6 B - Caratterizzanti Ingegneria informatica
Esclusioni:
04JEZ
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
o Struttura di un sistema operativo, risorse gestite e moduli principali
o Possibili organizzazioni di un kernel
- Il sistema operativo Linux
o Comandi utente e per la gestione del sistema
o Shell e linguaggi di shell
o Linguaggi di script
- Processi
o Introduzione ai processi e alla programmazione concorrente
o Gestione e comunicazione tra processi
- Thread
o Concetti principali e differenze dai processi
- Sincronizzazione di processi e thread
o Segnali
o Soluzioni software e hardware al problema della sincronizzazione
o Variabili e primitive semaforiche
o Problemi di sincronizzazione classici (produttore e consumatore, lettori e scrittori, filosofi, etc.)
- Scheduling della CPU
- Il problema dello stallo.
Organizzazione dell'insegnamento
Non vi è alcuna distinzione formale tra ore di lezione e quelle di esercitazione. 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. 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
Non è previsto alcun esonero durante il corso. Le regole di accesso agli esami sono definite e descritte sul "Manifesto agli Studi" dell’anno accademico corrente e sugli eventuali successivi emendamenti dello stesso.
È indispensabile prenotarsi per ogni appello che si intende sostenere.

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). È possibile ritirarsi durante la prova scritta avvertendo il docente e non consegnando l’elaborato finale.

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 a circa il 50% del voto relativo a quella parte. La prova risulta superata se lo è tanto la parte di teoria quanto la parte di programmazione
- il punteggio finale è pari alla somma dei punti acquisiti su ciascun esercizio.
Orario delle lezioni
Statistiche superamento esami

Programma definitivo per l'A.A.2014/15
Indietro