Studiare
In questa sezione è possibile reperire le informazioni riguardanti l'organizzazione pratica del corso, lo svolgimento delle attività didattiche, le opportunità formative e i contatti utili durante tutto il percorso di studi, fino al conseguimento del titolo finale.
Piano Didattico
Queste informazioni sono destinate esclusivamente agli studenti e alle studentesse già iscritti a questo corso.Se sei un nuovo studente interessato all'immatricolazione, trovi le informazioni sul percorso di studi alla pagina del corso:
Laurea in Informatica - Immatricolazione dal 2025/2026Il piano didattico è l'elenco degli insegnamenti e delle altre attività formative che devono essere sostenute nel corso della propria carriera universitaria.
Selezionare il piano didattico in base all'anno accademico di iscrizione.
1° Anno
| Insegnamenti | Crediti | TAF | SSD |
|---|
Analisi matematica I
Architettura degli elaboratori
2° Anno Attivato nell'A.A. 2024/2025
| Insegnamenti | Crediti | TAF | SSD |
|---|
Analisi matematica II
3° Anno Attivato nell'A.A. 2025/2026
| Insegnamenti | Crediti | TAF | SSD |
|---|
Un insegnamento a scelta| Insegnamenti | Crediti | TAF | SSD |
|---|
Analisi matematica I
Architettura degli elaboratori
| Insegnamenti | Crediti | TAF | SSD |
|---|
Analisi matematica II
| Insegnamenti | Crediti | TAF | SSD |
|---|
Un insegnamento a scelta| Insegnamenti | Crediti | TAF | SSD |
|---|
Legenda | Tipo Attività Formativa (TAF)
TAF (Tipologia Attività Formativa) Tutti gli insegnamenti e le attività sono classificate in diversi tipi di attività formativa, indicati da una lettera.
Sistemi operativi (2024/2025)
Codice insegnamento
4S00019
Crediti
12
Lingua di erogazione
Italiano
Settore Scientifico Disciplinare (SSD)
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Corsi Singoli
Autorizzato
L'insegnamento è organizzato come segue:
Teoria 1
Esercitazioni 1
Laboratorio 1
Teoria 2
Esercitazioni 2
Laboratorio 2
Obiettivi di apprendimento
Il corso si propone di fornire un'introduzione ai principi e al progetto dei sistemi operativi, con particolare riguardo ai concetti relativi alle architetture software di un sistema operativo, alla gestione e sincronizzazione dei processi e alla gestione delle risorse del sistema di calcolo. Al termine del corso lo studente dovrà dimostrare di avere - conoscenze e capacità di comprensione l'organizzazione interna, il funzionamento e i servizi di un sistema operativo. In particolare, avranno compreso: le principali funzionalità di un sistema operativo nei confronti di utenti e programmi applicativi; le strategie con cui il sistema operativo gestisce le risorse di un calcolatore; le tecniche impiegate per implementare le componenti in cui è suddiviso un sistema operativo. - capacità di applicare le conoscenze acquisite e capacità di comprensione per sviluppare programmi con la consapevolezza di come il sistema operativo gestisce i processi che ne derivano; sviluppare applicazioni che utilizzano le primitive (chiamate a funzioni di sistema) messe a disposizione dal sistema operativo; sviluppare e modificare componenti di un sistema operativo. Di saper valutare autonomamente vantaggi e svantaggi di differenti scelte progettuali nell'ambito dei servizi offerti da un sistema operativo; essere in grado di realizzare un progetto laboratoriale di gruppo e di presentarne i relativi risultati motivando le scelte effettuate con appropriatezza di linguaggio; saper sviluppare le competenze necessarie per proseguire lo studio nell'ambito dei sistemi operativi affrontando tematiche avanzate relative agli scenari dei sistemi distribuiti, real time ed embedded.
Prerequisiti e nozioni di base
Insegnamenti di informatica del primo anno
Programma
TEORIA (I semestre)
Struttura dei sistemi operativi;
Gestione dei processi:
- concetto di processo
- scheduling processi
- operazioni sui processi
- comunicazione tra processi
- comunicazione a memoria condivisa
- comunicazione a scambio messaggi
- architettura client-server
Thread e concorrenza:
- programmazione multicore
- multithreading
- librerie
Scheduling CPU:
- concetti fondamentali
- algoritmi di scheduling
- scheduling dei thread
- scheduling per sistemi multiprocessore
- scheduling real-time
- valutazione algoritmi
Sincronizzazione processi:
- sezioni critiche
- algoritmo di Peterson
- supporto HW
- lock/unlock
- semafori
- monitor
-liveness
Stallo:
- stallo e multithread
- caratterizzazioni stallo
- metodi di gestione
- metodi di prevenzione
- come evitare lo stallo
- rilevamento stallo
- ripristino
LABORATORIO (I semestre)
La shell BASH:
- programmazione BASH
API posix :
- gestione file
- gestione dei diritti
- lettura/scrittura
- gestione dei processi
- i segnali
- comunicazione tra processi tramite PIPE
- prime nozioni sui thread (Pthread)
Bibliografia
Modalità didattiche
Lezioni frontali in aula per la parte di teoria. Lezioni ed esercitazioni pratiche in laboratorio
Modalità di verifica dell'apprendimento
Tutti i testi di esame verranno pubblicati in questa directory
L'esame scritto è articolato in due prove intermedie e/o 4 prove complessive più un progetto con sua discussione orale.
Il progetto può essere fatto a gruppi di non piì di tre persone
Ogni prova scritta è articolata in due parti.
La prima parte consta di 6 domande a risposte multiple.
Ad ogni risposta corretta viene assegnato 1;
• ad ogni risposta errata viene assegnato -0.5;
• ad ogni risposta nn data viene assegnato 0.
Verranno corretti gli esercizi della seconda parte solo se in questa parte
vengono totalizzati almeno 3 punti.
La seconda parte consta di 5 domande a risposta aperta. Ogni domanda vale al max 7 punti.
Criteri di valutazione
E' valutata la capacità di apprendimento delle nozioni impartite in aula e la capacità di scrivere programmi in C utilizzando le API illustrate in laboratorio
Criteri di composizione del voto finale
3/4 voto esame scritto + 1/4 voto progetto
Lingua dell'esame
italiano
