Oggetto:
Oggetto:

Architettura dei calcolatori e sistemi operativi

Oggetto:

Computer architecture and operating systems

Oggetto:

Anno accademico 2025/2026

Codice dell'attività didattica
MAT0325
Docente
Cristina Baroglio (Titolare)
Corso di studi
Laurea in Matematica
Anno
2° anno
Periodo didattico
Secondo semestre
Tipologia
D.M. 270 TAF C - Affine o integrativo
Crediti/Valenza
6
SSD dell'attività didattica
INFO-01/A
Modalità di erogazione
Tradizionale
Lingua di insegnamento
Italiano
Modalità di frequenza
Facoltativa
Tipologia d'esame
Scritto
Prerequisiti
Alle/agli studenti è richiesta una conoscenza di base della programmazione (nozione di programma, istruzione, variabile, esecuzione). Dovranno inoltre essere in grado di padroneggiare i sistemi di numerazione binario (base due) ed esadecimale (base sedici). Infine è necessaria la conoscenza della lingua inglese.
Oggetto:

Sommario insegnamento

Oggetto:

Obiettivi formativi

Scopo dell'insegnamento è introdurre conoscenze di base sui modi e sugli strumenti che permettono a un aggregato di circuiti di funzionare come un computer. A livello macro saranno affrontati i seguenti temi:

  • l'organizzazione hardware degli elaboratori;
  • la codifica dell'informazione e delle istruzioni;
  • le principali funzioni svolte dall’hardware e utilizzate dai sistemi operativi;
  • l'architettura stratificata;
  • le funzioni di gestore delle risorse hardware e software svolte dal sistema operativo;
  • le funzione di controllore di tutto ciò che accade all'interno di un computer svolta dal sistema operativo;
  • il sistema operativo come ambiente di lavoro per gli/le utenti di un computer.

Tutti i temi che tratteremo riguardano aspetti solitamente trasparenti a chi utilizza il computer, che però devono essere noti non solo ad ogni specialista del settore ma anche a coloro che approfondiscono i propri studi in ambito informatico. L’insegnamento fornisce dunque una conoscenza introduttiva degli aspetti fondamentali dell'architettura interna di un computer e del funzionamento dei sistemi operativi e di come, ai fini di garantire un ragionevole compromesso tra efficienza, sicurezza e facilità d’uso, vengono amministrate le risorse fondamentali della macchina su cui il sistema operativo è installato (processore, memoria principale, memoria secondaria).

TUTTE LE INFORMAZIONI SUL CORSO E IL MATERIALE DIDATTICO SI TROVERANNO IN MOODLE

The course aims at introducing a basic knowledge on the methods and the tools that allow a bunch of circuits to work as a computer. The following topics will be tackled at a macro level:

  • organization of computer hardware;;
  • information and instruction coding;
  • main hardare functions that are used by operating systems;
  • layered architecture;
  • operating system as manager of the hardware and of the software resources;
  • operating system as controller of whatever happens in a computer;
  • operating system as working environment for computer users.

All such themes concern aspects that are invisible to the users' eyes which, however must be know not only by computer science specialists but also by all students, following a curriculum that is oriented to computer science. The course supplies a basic kowledge of the fundamental aspects of the internal architecture of a computer and of the functioning of an operating system, explaining strategies and trade-offs that are needed in order to guarantee a reasonable compromise between efficiency, security and ease of use, and also explaining how the basic machine resources (processors, main memory, secondary memory) are managed. 

ALL INFORMATION ON THE COURSE AND THE TEACHING MATERIAL WILL BE PUBLISHED IN MOODLE.

Oggetto:

Risultati dell'apprendimento attesi

Al termine dell’insegnamento ci si aspetta che gli/le studenti conoscano:

  • le relazioni tra linguaggi ad alto livello (es, C e Java) ed il linguaggio macchina
  • i meccanismi di base, forniti dall'architettura, che permettono l'esecuzione dei programmi
  • elementi di base dell'architettura e del funzionamento dei moderni sistemi operativi
  • le principali astrazioni usate nei sistemi operativi (es, processo, thread, file), la loro funzione, le politiche di gestione ed eventuali problematiche correlate
  • la realizzazione dell'esecuzione concorrente dei processi
  • le problematiche e gli strumenti a supporto dell'uso di risorse condivise da parte dei processi
  • problematiche e approcci alla gestione della RAM
  • problematiche e approcci alla gestione della memoria secondaria

Ci si aspetta infine che gli/le studenti siano in grado di svolgere ragionamenti critici e analitici di base su scenari giocattolo relativi a singoli argomenti studiati durante il corso, in particolar modo relativi a come il tempo di CPU, lo spazio di memoria primaria e quello di memoria secondaria possano essere sfruttate al meglio.

Più nel dettaglio è possibile declinare i risultati dell'apprendimento secondo diverse dimensioni come segue.

CONOSCENZA E CAPACITÀ DI COMPRENSIONE: le/gli studenti acquisiranno la padronanza della terminologia tecnica di base delle architetture dei computer, dei sistemi operativi e del loro funzionamento, in particolare del modo in cui riescono ad amministrare tutte le risorse di un computer e di come garantiscono in modo trasparente agli utenti i diversi tipi di servizi forniti. Poiché durante il corso si farà riferimento al sistema operativo Unix come caso di studio, l'uso dell'ampia famiglia di sistemi operativi risulterà facilitato.

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE: le/gli studenti acquisiranno le competenze di base per ragionare sul funzionamento (ed eventuale mal funzionamento) dei livelli bassi di un generico computer, e su come si possa intervenire per modificare o migliorare le prestazioni in base allo specifico sistema e al contesto in cui è utilizzato.

AUTONOMIA DI GIUDIZIO: le/gli studenti saranno in grado di compiere in modo autonomo scelte e decisioni che impattano sulla scelta di un computer e sull'installazione di un sistema operativo, incluse eventualmente le caratteristiche hardware che deve avere la macchina su cui il sistema operativo viene installato.

ABILITÀ COMUNICATIVE: la terminologia specifica delle architetture degli elaboratori e dei sistemi operativi, acquisita con lo studio e verificata in fase di esame, permetterà agli/alle studenti di interloquire con figure professionali informatiche e di inserirsi in team con competenze miste.

CAPACITÀ DI APPRENDIMENTO: acquisizione di capacità autonome di apprendimento e di autovalutazione sugli argomenti del corso.


We expect that, at the end of the course, students will know:

  • the relationship between high level programming languages (e.g., C and Java) and machine representations
  • the basic mechanisms, provided by the architecture, that allow program execution
  • basic architectural elements and mechanisms of operating systems
  • the principle abstractions that are used by operating systems (e.g. process, thread, file), their function, managing policies and related issues
  • how concurrency of execution is realized
  • problems and tools for sharing resources between processes
  • problems and approaches to RAM management
  • problems and approaches to secondary memory management

We expect students to be able to perform basic analytical and critical reasoning on toy scenarios concerning the studied topics, and in particular concerning execution time as well as the use of primary and secondary memory.

More in details it is possible to interpret the results of learning along the following dimensions.

KNOWLEDGE AND UNDERSTANDING: students will master basic technical terminology concerning computer architectures, operating systems, and their functioning, especially the way in which resources are managed and how services are delivered in a triansparent way. The choice of the Unix operating system as a case of study will facilitate the understanding of a wide family of operating systems (all those that derive from it).

ABILITY TO APPLY KNOWLEDGE AND UNDERSTANDING: students will assimilate basic competence that allows reasoning on the functioning and on the malfunctioning of the basic levels of a generic computer.

AUTONOMY IN DELIBERATION: students will have basic tools for taking decisions that impact on the choice of a computer and of an operating systemmo, including some characteristics of the hardware on which the operating system is installed.

COMMUNICATION SKILLS: mastering the vocabulary of computer architectures and operating systems, acquired with the study and verified during the exam, will allow students to interact with computer science professionals and work in teams including mixed competences.

LEARNING SKILLS: students will increase their autonomous learning abilities as well as the ability of evaluating their preparation.

Oggetto:

Modalità di insegnamento

L'insegnamento per sua natura (introduzione alla teoria di fondamento alle architetture dei calcolatori e ai sistemi operativi) è costituito da lezioni di teoria erogate come lezioni frontali.

L'insegnamento avverrà quindi in aula e non prevede l'uso di particolari strumenti informatici se non a titolo facoltativo, quali facilitatori della comprensione o quali approfondimenti non essenziali per il conseguimento del massimo dei voti. Il programma del corso sarà integrato da casi di studio ed esempi. 

Le lezioni si svolgono in maniera interattiva e sono corredate da vari esercizi miranti a fornire esempi pratici e a rinforzare le competenze acquisite.


By its nature (introduction to fundamental aspects of computer architectures and operating systems), the course will be organized in a set of traditional in class lessons.

It will not require any programming or use of specific tools but for demonstration purposes or to facilitate understanding. Skill in using such tools will not be required to pass (or even to prepare) the exam. Lessons will include case studies and examples.

Lessons will be interactive and may involve practical exercises aimed at fostering the acquisition of knowledge.

Oggetto:

Modalità di verifica dell'apprendimento

La verifica dell'apprendimento sarà svolta in forma scritta, possibilmente avvalendosi di un'aula informatica per erogare l'esame tramite la piattaforma Moodle.

In generale potrà essere composta da domande aperte, domande chiuse a scelta multipla, esercizi.

L'esame si intende superato se il voto conseguito è maggiore o uguale a 18.

There will be a written exam, that will be performed in digital form on the Moodle platform, if available.

In general the test will include both closed-answer questions and open-answer questions as well as exercises.The exam is passed if the score is greater or equal to 18.

Oggetto:

Attività di supporto

L'insegnamento sarà supportato da un corso Moodle in cui saranno pubblicati, lezione per lezione, gli argomenti trattati, le slide, gli esempi, registrazioni audio-video (nei limiti delle possibilità offerte dalle attrezzature d'aula) e eventuali altri materiali necessari per la preparazione

Tale pagina conterrà anche un forum per interagire con la docente e quiz di autovalutazione.

The course will be supported by a Moodle course, where the teacher will publish, for each lessons, the part of the program that was taught, the slides, examples, video recordings (if the teaching room will be furbished with the necessary tools) and other possible learning materials.

Oggetto:

Programma

Più nel dettaglio si affronteranno i seguenti temi:

  • codifica dell'informazione
  • da linguaggio ad alto livello a bit: i passi di traduzione del codice
  • circuiti di base e clock
  • le memorie
  • il processore e il ciclo fetch-decode-execute
  • le funzioni del sistema operativo
  • eventi e loro gestione
  • processi
  • CPU e memoria come risorse condivise
  • problematiche della concorrenza (deadlock, livelock, starvation)
  • allocazione della RAM
  • file system

Topics, more in details:

  • how information is coded
  • from high level programming language to bits: the translation of code
  • basic circuits and clock
  • memories
  • processor and fetch-decode-execute cycle
  • operating system functions
  • events and how to manage them
  • processes
  • CPU and memory as shared resources
  • problems related with concurrency (deadlock, livelock, starvation)
  • RAM allocation
  • file system

Testi consigliati e bibliografia

Oggetto:

I libri di testo sono consigliati ma non obbligatori. I seguenti volumi sono usati come riferimento nella preparazione delle lezioni dell'insegnamento:

  • David A Patterson John L Hennessy, Struttura e progetto dei calcolatori - Progettare con RISC-V. Il libro è disponibile anche in versione ebook.
  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Sistemi Operativi, concetti ed esempil. Il libro è corredato da una versione online che permette di modificare dimensione del carattere e colori per migliorare l'accessibilità

Books are suggested but not compulsory. The following books will be used as reference in preparing the course lectures;

  • David A Patterson John L Hennessy,Computer Organization and Design RISC-V Edition.
  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Sistemi Operating systems.


Oggetto:
Ultimo aggiornamento: 23/09/2025 16:42

Location: https://www.matematica.unito.it/robots.html
Non cliccare qui!