en
Politecnico di Torino
Anno Accademico 2017/18
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 0 13
Sterpone Luca ORARIO RICEVIMENTO O2 IINF-05/A 30 10 20 0 9
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 nel 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. Esso permette di acquisire conoscenze specifiche ai sistemi operativi UNIX-like, con particolare riferimento ai sistemi Linux, approfondendone l'utilizzo dei comandi di utente e di amministrazione nonché la programmazione di sistema.
Risultati di apprendimento attesi
• Classificazione dei principali sistemi operativi moderni.
• Funzionalità di base fornite da un sistema operativo.
• Amministrazione di sistemi UNIX/Linux mediante utilizzo di comandi, shell, filtri e linguaggi di script.
• Architettura di un sistema operativo visto come gestore e organizzatore delle risorse del sistema.
• Gestione di processi e di thread, ovvero la capacità di utilizzare le tecniche principali per la creazione, la sincronizzazione e la terminazione di processi e di thread di esecuzione.
• Utilizzo della programmazione concorrente per la risoluzione di problemi elementari.
• Analisi di problemi classici di sincronizzazione.
Prerequisiti / Conoscenze pregresse
Le conoscenze propedeutiche al corso sono le seguenti
• Conoscenza della sintassi (base e avanzata) del linguaggio di programmazione C.
• Capacità di risolvere problemi di media complessità tramite la scrittura di programmi.
• Conoscenza relative all'architettura di un sistema di elaborazione, con particolare riferimento alla struttura di un processore, all’organizzazione della memoria e ai tipi di dato.
• Conoscenza del meccanismo di interruzione.
• Fondamenti di un linguaggio assembler.
Programma
• Architettura di un sistema operativo (3.0h)
o Introduzione e classificazione dei sistemi operativi.
o Struttura di un sistema operativo, risorse gestite e moduli principali.
o Possibili organizzazioni di un kernel.
• Gli aspetti base del sistema operativo Linux (6.0h)
o Comandi utente.
o Comandi per la gestione del sistema.
• Gli aspetti avvanzati del sistema operativo Linux (5.5h)
o Shell.
o Linguaggi di script.
• Il file system (3.0h).
• Processi (11.0h)
o Introduzione ai processi e alla programmazione concorrente.
o Controllo avvanzato dei processi.
o Segnali.
o Gestione e comunicazione tra processi.
• Thread (4.5h)
o Concetti principali.
o Differenze dai processi.
o La libreria Pthread.
• Sincronizzazione di processi e thread (6.0h)
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.).
• Il linguaggio AWK (3.0h).
• Lo scheduling dei processi (1.5h).
• Il problema dello stallo (1.5h).
Organizzazione dell'insegnamento
Il corso è organizzato in lezioni, esercitazioni e laboratori. Non vi è alcuna distinzione formale tra ore di lezione e ore di esercitazione. Le esercitazioni, relative ai vari argomenti, sono svolte contestualmente alla trattazione della parte teorica.
Il corso comprende inoltre circa 15 ore di esercitazioni assistite in laboratorio. L’attività di laboratorio comprende esercitazioni su quasi tutti gli argomenti trattati in aula. Tali esercitazioni sono svolte utilizzando il 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
o Trasparenze proiettate in aula.
o Materiale utilizzato in laboratorio, con particolare riferimento alel eserctazioni di laboratorio e alle relative soluzioni.
o Dispense e opuscoli su argomenti definiti.
• 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.
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 sulla "Guida dello studente" dell’anno accademico corrente e sugli eventuali successivi emendamenti della stessa. È indispensabile prenotarsi per ogni appello che si intende sostenere.

L’esame del corso è costituito da un’unica prova scritta della durata di circa 100 minuti.
Durante la prova non è ammesso l’utilizzo di appunti, libri di testo, né altro materiale (e.g., calcolatrice tascabile, cellulare, etc.) a parte le dispense predisposte dal docente sui vari argomenti (comandi Linux, linguaggio bash, linguaggio AWK).
La prova scritta comprende 6 domande: 3-4 domande relative alla parte più teorica del programma e 2-3 domande o esercizi relativi all parte più pratica (programmazione concorrente, comandi, shell e linguaggi di script). Il testo della prova include le domande e lo spazio per le risposte scritte e deve essere riconsesgnata al termine della prova. È possibile ritirarsi durante la prova scritta avvertendo il docente e non consegnando l’elaborato finale.

La valutazione finale viene effettuata secondo i seguenti criteri:
• Ciascun esercizio ha un peso uguale a 6 punti portando a un voto finale massimo pari a 36 (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.2017/18
Indietro