L’insegnamento, presente nella Laurea in Ingegneria Informatica, è obbligatorio ed è collocato nel primo periodo didattico del terzo anno.
Il corso ha lo scopo di introdurre gli elementi di base dell'architettura dei sistemi operativi e di approfondire i concetti e le tecniche di programmazione di sistema e 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, di quelli di amministrazione, nonché della 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 refers 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 architetturali
o Architettura di un sistema di elaborazione, con particolare riferimento alla struttura di un processore, all’organizzazione della memoria e ai tipi di dato
o Meccanismo di interruzione.
o Fondamenti di un linguaggio assembler.
• Conoscenze di programmazione e problem-solving
o Sintassi di base e avanzata del linguaggio di programmazione C
o Costrutti e strutture dati (ADT) di tipo statico e dinamico (vettori, matrici, liste, code, pile, etc.)
o Problem-solving avanzato, ovvero capacità di risolvere problemi di complessità relativamente elevata tramite la scrittura di programmi in linguaggio C.
• 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.
• Aspetti base del sistema operativo Linux (6.0h)
o Comandi utente
o Comandi per la gestione del sistema.
• Aspetti avvanzati del sistema operativo Linux (5.5h)
o Shell
o Linguaggi di script.
• Il file system (3.0h)
o File e allocazione
o Architettura di un file system.
• Processi (11.0h)
o Introduzione ai processi e alla programmazione concorrente (system call fork e wait)
o Controllo avvanzato dei processi (system call exec e system)
o Segnali
o Gestione e comunicazione tra processi (pipe).
• Thread (6.0h)
o Concetti principali (esecuzione, passaggio parametri, attesa, etc.)
o Differenze tra thread e processi e tipologia di thread
o La libreria Pthread in ambiente UNIX-like.
• 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.)
o Problem solving parallelo.
• Lo scheduling dei processi (1.5h).
• Il problema dello stallo (1.5h).
• Esercitazioni di laboratorio su tutti gli argomenti precedentemente indicati su un sistema operativo Linux (15.0h).
• 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 in laboratorio assistite da esercitatori e borsisti.
L’attività di laboratorio comprende esercitazioni pratiche su (praticamente) tutti gli argomenti trattati durante le lezione e le esercitazioni in aula. Per questo motivo i laboratori sono parte integrante e fondamentale del corso.
Le esercitazioni di laboratorio sono svolte utilizzando un sistema operativo Linux (Ubuntu o similare) e prevedono l’utilizzo di tutti gli strumenti base del sistema operativo stesso, dai comandi e dai linguaggi di shell, alla scrittura di script, al file-system a la sua gestione, allo sviluppo 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 alle eserctazioni di laboratorio e alle relative soluzioni
o Dispense e opuscoli su argomenti specifici.
• 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: Test informatizzato in laboratorio;
Exam: Computer lab-based test;
...
L’esame consiste in un’unica prova scritta.
Tale prova scritta viene effettuata mediante computer, utilizzando la piattaforma "Exam".
A seconda della situazione sanitaria, l'esame sarà effettuato con modalità vis-à-vis, in uno dei laboratori, oppure con modalità in remoto.
Nel primo caso, gli instruttori effettueranno l'assistenza e la consulenza necessaria direttamente in laboratorio.
Nel secondo caso, l'esame verrà effettuato integrando la piattaforma "Exam" con gli strumenti di proctoring disponibili sulla piattaforma di Ateneo.
Tutti gli studenti sono tenuti a documentarsi sulle regole dell'Università in relazione alle modalità di esame e di procurarsi i necessari strumenti hardware e software per poter effettuare le prove. Tutti gli studenti sono tenuti a rispettare il codice etico dell’Ateneo.
In caso di problemi di natura infrastrutturale, gli studenti devono comunicare prontamente tali problemi via e-mail non più tardi di un'ora dalla fine della prova. Nel caso vengano riscontrate irregolarità, i docenti si riservano il diritto di effettuare una prova orale su tutti gli argomenti del corso.
La prova scritta include da 6 a 18 domande aperte (con correzione manuale) oppure chiuse (con correzione automatica da parte della piattaforma di esame).
Tali domande sono volte a verificare:
• Le conoscenze acquisite durante il corso e relative tanto agli aspetti teorici quanto a quelli più pratici
• Le capacità di risolvere problemi che coinvolgano le conoscenze teoriche e pratiche acquisite, con particolare attenzione in relazione ai comandi di shell, ai linguaggi di script, agli aspetti principali della programmazione di sistema e alla programmazione concorrente.
La prova scritta ha una durata approssimativa di circa 120 minuti.
Durante la prova non è ammesso l’utilizzo di appunti, libri di testo, né altro materiale. Computer portatili, cellulari, palmari, etc., sono proibiti. Eventuali dispense predisposte dal docente (per esempio quelle relative ai comandi di shell Linux, agli script BASH e alla libreria Pthread), e ritenute necessarie per lo svolgimento della prova, saranno rese disponibili direttamente all'interno della piattaforma "Exam".
In caso esistano sospetti relativi ad illeciti compiuti durante la prova scritta, i docenti si riservano il diritto di annullare la prova stessa oppure di procedere alla validazione del candidato mediante una ulteriore verifica di tipo orale.
Il voto massimo aquisibile è pari a 36 punti.
Voti superiori a 32 o a 33 (a seconda della prova scritta) saranno automaticamente convertiti in 30 con lode.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Computer lab-based 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.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.
Modalità di esame: Prova scritta tramite PC con l'utilizzo della piattaforma di ateneo;
L’esame consiste in un’unica prova scritta.
Tale prova scritta viene effettuata mediante computer, utilizzando la piattaforma "Exam".
A seconda della situazione sanitaria, l'esame sarà effettuato con modalità vis-à-vis, in uno dei laboratori, oppure con modalità in remoto.
Nel primo caso, gli instruttori effettueranno l'assistenza e la consulenza necessaria direttamente in laboratorio.
Nel secondo caso, l'esame verrà effettuato integrando la piattaforma "Exam" con gli strumenti di proctoring disponibili sulla piattaforma di Ateneo.
Tutti gli studenti sono tenuti a documentarsi sulle regole dell'Università in relazione alle modalità di esame e di procurarsi i necessari strumenti hardware e software per poter effettuare le prove. Tutti gli studenti sono tenuti a rispettare il codice etico dell’Ateneo.
In caso di problemi di natura infrastrutturale, gli studenti devono comunicare prontamente tali problemi via e-mail non più tardi di un'ora dalla fine della prova. Nel caso vengano riscontrate irregolarità, i docenti si riservano il diritto di effettuare una prova orale su tutti gli argomenti del corso.
La prova scritta include da 6 a 18 domande aperte (con correzione manuale) oppure chiuse (con correzione automatica da parte della piattaforma di esame).
Tali domande sono volte a verificare:
• Le conoscenze acquisite durante il corso e relative tanto agli aspetti teorici quanto a quelli più pratici
• Le capacità di risolvere problemi che coinvolgano le conoscenze teoriche e pratiche acquisite, con particolare attenzione in relazione ai comandi di shell, ai linguaggi di script, agli aspetti principali della programmazione di sistema e alla programmazione concorrente.
La prova scritta ha una durata approssimativa di circa 120 minuti.
Durante la prova non è ammesso l’utilizzo di appunti, libri di testo, né altro materiale. Computer portatili, cellulari, palmari, etc., sono proibiti. Eventuali dispense predisposte dal docente (per esempio quelle relative ai comandi di shell Linux, agli script BASH e alla libreria Pthread), e ritenute necessarie per lo svolgimento della prova, saranno rese disponibili direttamente all'interno della piattaforma "Exam".
In caso esistano sospetti relativi ad illeciti compiuti durante la prova scritta, i docenti si riservano il diritto di annullare la prova stessa oppure di procedere alla validazione del candidato mediante una ulteriore verifica di tipo orale.
Il voto massimo aquisibile è pari a 36 punti.
Voti superiori a 32 o a 33 (a seconda della prova scritta) saranno automaticamente convertiti in 30 con lode.
Exam: Computer-based written test using the PoliTo platform;
The exam consists of a written test.
The written test is carried out by means of a computer, using the university platform "Exam". Depending on the sanitary situation, the exam is taken either onsite, i.e., in one of the laboratories, or online, i.e., remotely.
In the first case, the instructors provide the required assistance and control activity, directly in the laboratories.
In the second one, the exam is taken integrating the "Exam" platform with the proctoring tools available within the portal system. All students have to read the University regulations related to the exams and to obtain the necessary hardware and software tools needed for it. In the case of problems of infrastructural nature, students must promptly communicate the problem via email no later than one hour after the end of the test. All students are required to respect the ethical code defined by the University. If irregularities are found, the professors reserve the right to perform an oral verification on all topics of the course.
The written test includes from 6 to 18 open or close questions.
These questions are related to all topics presented in the lectures or developed during the classroom and laboratory practices. These usually involve showing the acquired knowledge in terms of shell commands, script programs, and concurrent programming.
The test lasts about 110 minutes.
Books, overheads, and notes are not allowed. Laptops, cellular phones, etc. are forbidden. The reference notes deemed as necessary (such as the ones on Linux shell commands, BASH shell scripts, and the Pthreads library) will be made directly available within the "Exam" platform.
The written test is evaluated up to 36 points. All marks larger or equal to 32 or 33 (depending on the written text) will be automatically converted in 30 with honor.
Modalità di esame: Test informatizzato in laboratorio; Prova scritta tramite PC con l'utilizzo della piattaforma di ateneo;
L’esame consiste in un’unica prova scritta.
Tale prova scritta viene effettuata mediante computer, utilizzando la piattaforma "Exam".
A seconda della situazione sanitaria, l'esame sarà effettuato con modalità vis-à-vis, in uno dei laboratori, oppure con modalità in remoto.
Nel primo caso, gli instruttori effettueranno l'assistenza e la consulenza necessaria direttamente in laboratorio.
Nel secondo caso, l'esame verrà effettuato integrando la piattaforma "Exam" con gli strumenti di proctoring disponibili sulla piattaforma di Ateneo.
Tutti gli studenti sono tenuti a documentarsi sulle regole dell'Università in relazione alle modalità di esame e di procurarsi i necessari strumenti hardware e software per poter effettuare le prove. Tutti gli studenti sono tenuti a rispettare il codice etico dell’Ateneo.
In caso di problemi di natura infrastrutturale, gli studenti devono comunicare prontamente tali problemi via e-mail non più tardi di un'ora dalla fine della prova. Nel caso vengano riscontrate irregolarità, i docenti si riservano il diritto di effettuare una prova orale su tutti gli argomenti del corso.
La prova scritta include da 6 a 18 domande aperte (con correzione manuale) oppure chiuse (con correzione automatica da parte della piattaforma di esame).
Tali domande sono volte a verificare:
• Le conoscenze acquisite durante il corso e relative tanto agli aspetti teorici quanto a quelli più pratici
• Le capacità di risolvere problemi che coinvolgano le conoscenze teoriche e pratiche acquisite, con particolare attenzione in relazione ai comandi di shell, ai linguaggi di script, agli aspetti principali della programmazione di sistema e alla programmazione concorrente.
La prova scritta ha una durata approssimativa di circa 120 minuti.
Durante la prova non è ammesso l’utilizzo di appunti, libri di testo, né altro materiale. Computer portatili, cellulari, palmari, etc., sono proibiti. Eventuali dispense predisposte dal docente (per esempio quelle relative ai comandi di shell Linux, agli script BASH e alla libreria Pthread), e ritenute necessarie per lo svolgimento della prova, saranno rese disponibili direttamente all'interno della piattaforma "Exam".
In caso esistano sospetti relativi ad illeciti compiuti durante la prova scritta, i docenti si riservano il diritto di annullare la prova stessa oppure di procedere alla validazione del candidato mediante una ulteriore verifica di tipo orale.
Il voto massimo aquisibile è pari a 36 punti.
Voti superiori a 32 o a 33 (a seconda della prova scritta) saranno automaticamente convertiti in 30 con lode.
Exam: Computer lab-based test; Computer-based written test using the PoliTo platform;
The exam consists of a written test.
The written test is carried out by means of a computer, using the university platform "Exam". Depending on the sanitary situation, the exam is taken either onsite, i.e., in one of the laboratories, or online, i.e., remotely.
In the first case, the instructors provide the required assistance and control activity, directly in the laboratories.
In the second one, the exam is taken integrating the "Exam" platform with the proctoring tools available within the portal system. All students have to read the University regulations related to the exams and to obtain the necessary hardware and software tools needed for it. In the case of problems of infrastructural nature, students must promptly communicate the problem via email no later than one hour after the end of the test. All students are required to respect the ethical code defined by the University. If irregularities are found, the professors reserve the right to perform an oral verification on all topics of the course.
The written test includes from 6 to 18 open or close questions.
These questions are related to all topics presented in the lectures or developed during the classroom and laboratory practices. These usually involve showing the acquired knowledge in terms of shell commands, script programs, and concurrent programming.
The test lasts about 110 minutes.
Books, overheads, and notes are not allowed. Laptops, cellular phones, etc. are forbidden. The reference notes deemed as necessary (such as the ones on Linux shell commands, BASH shell scripts, and the Pthreads library) will be made directly available within the "Exam" platform.
The written test is evaluated up to 36 points. All marks larger or equal to 32 or 33 (depending on the written text) will be automatically converted in 30 with honor.