CdSINFORMATICA
Codice725AA
CFU15
PeriodoAnnuale
LinguaItaliano
Lo studente acquisirà conoscenze relative ai fondamenti scientifici e tecnologici delle Architetture dei Sistemi di Elaborazione e dei Sistemi Operativi moderni. Relativamente alle Architetture, verranno presentate le caratteristiche dei diversi livelli dei sistemi, le loro relazioni con gli strumenti di programmazione e la strutturazione dei sistemi in termini di moduli concorrenti e cooperanti. Relativamente ai Sistemi Operativi, verranno presentati i servizi offerti dai sistemi e gli algoritmi e le tecniche utilizzate nella loro implementazione. Lo studente, acquisirà inoltre i concetti e le metodologie della programmazione concorrente con threads e processi e di sistema utilizzando il linguaggio C.
Students are expected to achieve a good knowledge of scientific and technological computer architecture and operating systems foundations. As far as computer architecture is concerned, different architectural level features will be discussed as well as the relative programming tools and the system structuring in terms of cooperating and concurrent modules. As far as operating systems are concerned, services implemented will be discussed as well as algorithms and techniques used to implement such services. In addition, the student will learn concepts and methodologies typical of concurrent programming with threads and system processes using the C programming language.
La valutazione avverrà tramite una prova scritta ed una prova orale. Nella prova scritta verrà valutata la capacità dello studente di comprendere e di risolvere alcuni esercizi che prevedono sia la progettazione di semplici moduli con relativa valutazione delle performance che stati ipotetici in un sistema operativo che dovranno essere valutati e risolti attraverso le tecniche presentate nel corso ed utilizzando la terminologia appropriata.
Metodi utilizzati per la verifica:
- Test periodici
- Prova finale scritta/orale
Ulteriori informazioni:
Sono previste delle prove di verifica intermedia. Se superate con esito positivo, le prove intermedie sostituiscono la prova finale scritta.
The acquired knowledge will be tested through oral and written exams. The written exams will test the ability of the student to understand and solve exercises requiring the design of simple modules along with the relative performance modeling as well as the design of hypothetical operating system states. In addition, the exercises will require the application of the techniques discussed during the lessons to be solved, along with the appropriate usage of technical terms.
Methods used to verify the knowledge acquired include:
- periodic test
- final written/oral test
Further info:
We will use intermediate tests. Positive intermediate tests will substitute the final written test.
Lo studente svilupperà la capacità di progettare e valutare semplici sistemi di elaborazione e la capacità di disegnare e scrivere programmi concorrenti sia con threads che con processi che utilizzano chiamate di sistema POSIX per l'uso dei dispositivi e per l'interazione con il Sistema Operativo.
Students will learn to design and evaluate simple computer systems. In addition, they will acquire the knowledge needed to design and implement concurrent programs operating with threads and processes by using POSIX system calls to manage devices and interact with the Operating System.
Le capacità acquisite dallo studente verranno verificate tramite:
- Home work con auto valutazione
- Prove di verifica intermedia
- Prova finale scritta e prova orale
Skills will be assessed using
- homework with self-assessment
- midterm essays
- final written and oral exams
Il corso non si pone obiettivi di apprendimento in termini di comportamenti attesi.
The course does not have specific objectives in terms of expected behaviors
Non sono previste prove per la verifica dei comportamenti.
The course does not have specific tests to assess the expected behaviors
Buona conoscenza della programmazione con linguaggi imperativi. Saper valutare la complessità degli algoritmi. Nozioni di base di analisi matematica.
Good knowledge of imperative programming languages. Algorithm complexity evaluation. Base mathematical analysis techniques.
Le lezioni avvengono in aula alla presenza del docente. Le attività di apprendimento comprendono:
- seguire le lezioni di teoria e le esercitazioni
- svolgere gli homework
- discutere con i docenti eventuali problematiche o necessità di chiarimenti
- studio individuale
Frequenza delle lezioni: raccomandata
Metodi di erogazione della didattica:
- lezioni ed esercitazioni frontali
- ricevimento studenti
Lessons are given in person by the teacher. Learning activities include:
- attending lessons
- homeworks
- discussing problems with teachers
- individual study
The student is recommended to attend all lessons.
Durante il corso verranno affrontati i seguenti argomenti:
- fondamenti dei sistemi di elaborazione
- linguaggi per la descrizione dell’hardware
- assembler
- micro architettura di base
- performance dei processori
- gerarchie di memoria
- parallelismo a livello di istruzione (ILP) e cenni ai sistemi multicore
- fondamenti dei sistemi operativi
- tecniche per il coordinamento e la gestione di risorse
- tecniche e metodologie per la programmazione di sistema
- meccanismi di sincronizzazione
- meccanismi di astrazione e strutturazione a livelli
- gestione dell’IO
- gestione della memoria
- chiamate di sistema (POSIX), (p)thread,
- gestione del file system
- schedulazione
- esempi di implementazione dal mondo Unix e Windows
The following arguments will be discussed throughout the course:
- foundations of computer systems
- hardware description languages
- assembler
- base microarchitecture
- processor performance
- memory hierarchies
- instruction-level parallelism and multicore systems (introduction)
- foundations of operating systems
- coordination and resource management techniques
- synchronization mechanisms
- techniques and methodologies for system programming
- I/O management
- memory management
- (POSIX) sycalls, (p)threads
- file system management
- scheduling
- system programming techniques and methodologies
- implementation samples from Unix and Windows
- S. Harris, D. Harris, “Digital design and computer architecture: ARM edition”, Morgan Kaufmann 2017. Anche in versione italiana pubblicata da Zanichelli
- T. Anderson, M. Dahlin : "Operating Systems: principles and practice", Recursive Books Ltd, 2013
- Materiale didattico fornito durante le lezioni (slides, appunti, note aggiuntive, …)
- S. Harris, D. Harris, “Digital design and computer architecture: ARM edition”, Morgan Kaufmann 2017. Anche in versione italiana pubblicata da Zanichelli
- T. Anderson, M. Dahlin : "Operating Systems: principles and practice", Recursive Books Ltd, 2013
- Extra material provided by the teachers during the lessons
Gli studenti non frequentanti hanno accesso a tutto il materiale didattico (inclusa la registrazione delle lezioni) nel sito web del corso
Students that will not attend the lessons will be given the possibility to access audio/video recordings of all lessons
La valutazione dello studente avverrà tramite una prova scritta ed una prova orale con i docenti.
Durante il corso si svolgeranno, alcune prove scritte di verifica intermedia. Lo studente che ottiene un voto sufficiente alle prove di verifica intermedia è esentato dallo svolgimento della prova scritta, e dovrà sostenere solo la prova orale in uno degli appelli dello stesso anno accademico.
La validità del voto conseguito con le prove di verifica intermedia cessa al termine dell’anno accademico (quindi dopo l’ultimo appello straordinario, che si svolge normalmente ad Aprile dell’anno successivo). Ogni prova di verifica intermedia consiste nello svolgimento di alcuni esercizi riguardanti gli argomenti trattati nel corso fino a quel momento.
Si fa presente che per l’ammissione a tutte le prove d’esame, incluse le prove di verifica intermedia, è obbligatoria l’iscrizione secondo le modalità stabilite dal corso di laurea.
Student evaluation will be run using written and oral exams. During the lessons, several intermediate tests will be provided. Students passing these intermediate tests will not be required to attend the final written exam, and they will conclude the examination process by passing only the final oral exam. Intermediate test results will not be valid in the next academic year. Every intermediate test will consist of a set of simple exercises relative to the subjects taught in the lessons before the test.
To attend the final written and oral exams, the students must register according to the general rules provided.