Scheda programma d'esame
ARCHITETTURE E SISTEMI OPERATIVI
MASSIMO TORQUATI
Anno accademico2022/23
CdSINFORMATICA
Codice725AA
CFU15
PeriodoAnnuale
LinguaItaliano

ModuliSettoreTipoOreDocente/i
ARCHITETTURE E SISTEMI OPERATIVIINF/01LEZIONI120
GABRIELE MENCAGLI unimap
MASSIMO TORQUATI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

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.

Knowledge

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. 

 

Modalità di verifica delle conoscenze

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 (prove intermedie)
  • Prova finale: scritto (per chi non ha superato le prove intermedie) ed orale

Ulteriori informazioni:

Sono previste delle prove di verifica intermedia. Se superate con esito positivo, le prove intermedie sostituiscono la prova finale scritta.

Assessment criteria of knowledge

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. 

Capacità

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.

Skills

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. 

Modalità di verifica delle capacità

Le capacità acquisite dallo studente verranno verificate tramite:

  • Home work con auto valutazione
  • Prove di verifica intermedia
  • Prova finale scritta e prova orale
Assessment criteria of skills

Skills will be assessed using 

 

  • homework for self-assessment
  • midterm essays
  • final written and oral exams

 

 

Comportamenti

Il corso non si pone obiettivi di apprendimento in termini di comportamenti attesi.

Behaviors

The course does not have specific objectives in terms of expected behaviors

Modalità di verifica dei comportamenti

Non sono previste prove per la verifica dei comportamenti.

Assessment criteria of behaviors

The course does not have specific tests to assess the expected behaviors

Prerequisiti (conoscenze iniziali)

Buona conoscenza della programmazione con linguaggi imperativi. Saper valutare la complessità degli algoritmi. Nozioni di base di analisi matematica.

Prerequisites

Good knowledge of imperative programming languages. Algorithm complexity evaluation. Base mathematical analysis techniques.

Indicazioni metodologiche

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

Tutto il materiale didattico viene reso disponibile sul Microsoft Teams del corso. Gli studenti possono iscriversi al Teams (usando le loro credenziali UNIPI) usando il codice 9aihs9y

Frequenza delle lezioni: fortemente raccomandata

Metodi di erogazione della didattica:

  • lezioni ed esercitazioni frontali
  • ricevimento studenti
Teaching methods

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.

Programma (contenuti dell'insegnamento)

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
Syllabus

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

 

 

Bibliografia e materiale didattico
  • 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 (disponibile solo in Inglese)
  • Materiale didattico fornito durante le lezioni (slides, appunti, esercizi) e condiviso sulla piattaforma Microsoft Teams del corso.
Bibliography
  • 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 (available only in English)
  • Extra material provided by the teachers during the lessons
Indicazioni per non frequentanti

Gli studenti non frequentanti hanno accesso a tutto il materiale didattico (inclusa la registrazione delle lezioni) sul Microsoft Teams del corso. Gli studenti possono iscriversi al Teams (usando le loro credenziali UNIPI) usando il codice 9aihs9y

Non-attending students info

Students who will not attend the lessons will be allowed to access audio/video recordings of all lessons through Microsoft Teams (code 9aihs9y).

Modalità d'esame

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. 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.

Assessment methods

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. 

Ultimo aggiornamento 08/09/2022 14:56