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

ModuliSettoreTipoOreDocente/i
ARCHITETTURE E SISTEMI OPERATIVIINF/01LEZIONI120
MARCO DANELUTTO 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, inoltre acquisirà 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 technologic 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. 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 una 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.

Assessment criteria of knowledge

Acquired knowledge will be tested through oral and written exams. With the written exams the ability of the student to understand and solve exercises requiring the design of simple modules along with the relative performance modelling as well as the design of hypothetical operating system states. The exercises will require the application of the techniques discussed in the lessons to  be solved, along with appropriate  technical term usage. 

 

Methods used to verify the knowledge acquired include: 

 

  • periodic test
  • final written/oral test

 

 

Further info: 

We’ll use intermediate tests. Positive intermediate test 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 thread 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 and they will acquire the knowledge needed to desing and implement concurrent programs operating with threads and processes using POSIX system calls to address devices and to 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 

 

  • home work with self-assessmnet
  • mid term essays
  • final written and oral exams

 

 

Modalità di verifica dei comportamenti

 

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

 

Frequenza delle lezioni: raccomandata

Metodi di erogazione della didattica:

  • lezioni ed esercitazioni frontali
  • ricevimento studenti
Teaching methods

Lessons are given in person by 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 astrazione e strutturazione a livelli
  • ingresso uscita
  • 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: 

 

  • 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
  • techniques and methodologies for system programming
  • I/O
  • 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
  • Materiale didattico fornito durante le lezioni (slides, appunti, note aggiuntive,  …)
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
  • Teaching material distributed during lessons (slides, notes, code, ...)
Indicazioni per non frequentanti

Gli studenti non frequentanti hanno accesso a tutto il materiale didattico (inclusa la registrazione delle lezioni) nel sito web del corso.

Modalità d'esame

La valutazione avverrà tramite la valutazione di una prova scritta e di 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.

Assessment methods

Evaluation will be run using written and oral exams. During the lessons, several intermediate tests will be run. Students passing these intermediate tests will be not required to attend the final written exam. and will pass the exam only through the oral exam. Intermediate test results will not be valid in the next academic year. Every intermediate test will consist in a set of simple exercises relative to the subjects teached in the lessons before the test. 

To attend the final written and oral exams the students must register according to the general rules provided. 

Altri riferimenti web

Non attending students will be given the possibility to access audio/video recordings of the given lessons

Ultimo aggiornamento 20/09/2022 09:18