Servizi per la didattica
PORTALE DELLA DIDATTICA

Sistemi operativi

05CJCOA

A.A. 2019/20

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea in Ingegneria Informatica - Torino

Organizzazione dell'insegnamento
Didattica Ore
Lezioni 30
Esercitazioni in aula 10
Esercitazioni in laboratorio 20
Docenti
Docente Qualifica Settore h.Lez h.Es h.Lab h.Tut Anni incarico
Quer Stefano - Corso 1 Professore Associato ING-INF/05 30 2.5 10.5 0 8
Sterpone Luca - Corso 2 Professore Associato ING-INF/05 30 10 20 0 5
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 6 B - Caratterizzanti Ingegneria informatica
2019/20
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.
Mandatory course in the Bachelor Degree curricula in Computer Engineering, the course is held at the first semester of the third year. The main targets of the course are to present basic elements of an operating system architecture and to introduce the basic concepts and methodologies of concurrent programming. The course explicitly refer to UNIX-like (Linux) operating systems. The course also illustrates how to manage an operating system by means of shell commands, filters, and shell scripts.
• 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.
• Classification of modern operating systems. • Main operating system functionalities. • Administration of UNIX/Linux systems by means of commands, shells, filters, scripts and scripting languages. • The architecture of an operating systems considered as a resource manager. • Process and threads manipulation, i.e., the ability to create, synchronize, terminate processes and threads. • Use of concurrent programming to solve simple problems. • Classical synchronization problems.
• 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.
• Knowledge of the language C syntax and semantics. • Good programming skills in C language and the ability to solve problem by writing programs. • Knowledge of computer system architecture, with specific reference to the processor and memory organization an to data types and data structures. • Knowledge of the interrupt mechanism. • Basics of an assembler language.
• 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 (6.0h) o Concetti principali. o Differenze dai processi. o La libreria Pthread. • Sincronizzazione di processi e thread (7.5h) 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.). • Lo scheduling dei processi (1.5h). • Il problema dello stallo (1.5h).
• Operating system architecture (3.0h) o Operating system classification. o Structure of an operating system, managed resources and modules. o Possible organizations of the operating system kernel. • The Linux operating system (6.0h) o User commands. o System commands. • The advanced Linux operating system (5.5h) o Shell. o Script languages. • The file system (3.0h). • Processes (11.0h) o Introduction to processes and concurrent programming. o Advanced process control. o Signals. o Inter-process communication. • Threads (6.0h) o Main concepts. o Differences from processes. o The PThread library. • Processes and thread synchronization (7.5h) o Software and hardware solutions to synchronization. o Semaphore variables and primitives. o Classical synchronization problems (producer and consumer, readers and writers, philosophers, etc.). • CPU scheduling (1.5h). • Deadlock (1.5h).
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.
The course can be divided into theory lectures, practice lessons and laboratories. There is no formal distinction between theory and practice as almost all course topics involve theory and practice aspects developed during the classroom lessons by the teacher. Laboratories (about 15 hours overall) allow students to solve typical problems (with complex commands, filters, scripting or C programs on a Linux personal computer) and applying all theory and practice aspects analyzed during the classroom lessons.
• 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, H. Bos, “I moderni sistemi operativi”, Pearson Education Italia. o W. R. Stevens, S. A. Rago, "Advanced programming in the UNIX Environment", Addison-Wesley Publishing Company.
All lessons' handouts and laboratory exercises (with solutions) are available from the teacher or the course Web site. The World Wide Web is also an excellent source of material for selected and specific topics. The reference texts, covering most, but not all, topics, are the following: • A. Silbershatz, P. Galvin, G. Gagne, “Operating System concepts”, John Wiley & Sons, Inc. • A. S. Tanenbaum, H. Bos, “Modern Operating Systems”, Pearson. • W. R. Stevens, S. A . Rago, "Advanced programming in the UNIX Environment", Addison-Wesley Publishing Company.
Modalità di esame: prova scritta;
L’esame del corso è costituito da un’unica prova scritta. 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 sripting BASH, libreria pthreads). La prova scritta, della durata di circa 100 minuti, comprende 6 domande aperte. Tali domande sono volte a verificare le conoscenze acquisite durante il corso e relative tanto agli aspetti teorici trattati, quanto alla capacità di svolgere esercizi che coinvolgano le conoscenze pratiche acquisite in relazione ai comandi di shell, ai linguaggi di script, e alla programmazione concorrente. Il testo della prova include tanto il testo delle domande e degli esercizi proposti quanto lo spazio per inserire le relative risposte e soluzioni. Tale testo deve essere riconsegnato al termine della prova. Fogli aggiuntivi non sono necessari ma ammessi qualora necessario. È 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 può conseguire una valutazione massima uguale a 6 punti. • Il punteggio finale è pari alla somma dei punti acquisiti su ciascun esercizio • Il voto massimo aquisibile è pertanto pari a 36 (6x6=36). Voti superiori al 32 o al 33 (a seconda della prova scritta) saranno automaticamente convertiti in 30 con lode.
Exam: written test;
The exam includes a written test. During the exam it is not possible to use any book or note but a few reference notes made available by the teachers on specific topics (Linux shell commands, BASH shell scripts, and pthreads library). The test lasts 100 minutes and includes 6 open questions. These questions are related to topics presented in the lectures or developed during the classroom and laboratory practices. Those usually involve showing the aquire knowledge in terms of shell commands, script programs, and concurrent programming. The examination text includes all questions (exercises) and the required space to develop and insert responses and solutions. Additional sheets are not required but permitted when necessary. It is possible to withdraw in any moment during the written test. The written test is evaluated as follows: • Each exercise has a weight equal to 6 points. • The final mark is equal to the sum of all exercise marks. • The maximum mark which can be obtained is 36 (6x6=36). All marks larger or equal to 32 or 33 (depending on the written text) will be automatically covnerted in 30 with honour.


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
m@il