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.
Tipologia di Attività formativa D e F
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/2026Le attività formative di tipologia D sono a scelta dello studente, quelle di tipologia F sono ulteriori conoscenze utili all’inserimento nel mondo del lavoro (tirocini, competenze trasversali, project works, ecc.). In base al Regolamento Didattico del Corso, alcune attività possono essere scelte e inserite autonomamente a libretto, altre devono essere approvate da apposita commissione per verificarne la coerenza con il piano di studio. Le attività formative di tipologia D o F possono essere ricoperte dalle seguenti attività.
1. Insegnamenti impartiti presso l'Università di Verona
Comprendono gli insegnamenti sotto riportati e/o nel Catalogo degli insegnamenti (che può essere filtrato anche per lingua di erogazione tramite la Ricerca avanzata).
Modalità di inserimento a libretto: se l'insegnamento è compreso tra quelli sottoelencati, lo studente può inserirlo autonomamente durante il periodo in cui il piano di studi è aperto; in caso contrario, lo studente deve fare richiesta alla Segreteria, inviando a carriere.scienze@ateneo.univr.it il modulo nel periodo indicato.
2. Attestato o equipollenza linguistica CLA
Oltre a quelle richieste dal piano di studi, per gli immatricolati dall'A.A. 2021/2022 vengono riconosciute:
- Lingua inglese: vengono riconosciuti 3 CFU per ogni livello di competenza superiore a quello richiesto dal corso di studio (se non già riconosciuto nel ciclo di studi precedente).
- Altre lingue e italiano per stranieri: vengono riconosciuti 3 CFU per ogni livello di competenza a partire da A2 (se non già riconosciuto nel ciclo di studi precedente).
Tali cfu saranno riconosciuti, fino ad un massimo di 6 cfu complessivi, di tipologia F se il piano didattico lo consente, oppure di tipologia D. Ulteriori crediti a scelta per conoscenze linguistiche potranno essere riconosciuti solo se coerenti con il progetto formativo dello studente e se adeguatamente motivati.
Gli immatricolati fino all'A.A. 2020/2021 devono consultare le informazioni che si trovano qui.
Modalità di inserimento a libretto: richiedere l’attestato o l'equipollenza al CLA e inviarlo alla Segreteria Studenti - Carriere per l’inserimento dell’esame in carriera, tramite mail: carriere.scienze@ateneo.univr.it
3. Competenze trasversali
Scopri i percorsi formativi promossi dal TALC - Teaching and learning center dell'Ateneo, destinati agli studenti regolarmente iscritti all'anno accademico di erogazione del corso https://talc.univr.it/it/competenze-trasversali
Modalità di inserimento a libretto: non è previsto l'inserimento dell'insegnamento nel piano di studi. Solo in seguito all'ottenimento dell'Open Badge verranno automaticamente convalidati i CFU a libretto. La registrazione dei CFU in carriera non è istantanea, ma ci saranno da attendere dei tempi tecnici.
4. Periodo di stage/tirocinio
Oltre ai CFU previsti dal piano di studi (verificare attentamente quanto indicato sul Regolamento Didattico): qui informazioni su come attivare lo stage.
Insegnamenti e altre attività che si possono inserire autonomamente a libretto
anni | Insegnamenti | TAF | Docente |
---|---|---|---|
2° 3° | Lab.: The fashion lab (1 cfu) | D |
Caterina Fratea
(Coordinatore)
|
anni | Insegnamenti | TAF | Docente |
---|---|---|---|
2° 3° | Introduzione alla robotica per studenti di materie scientifiche | D |
Paolo Fiorini
(Coordinatore)
|
2° 3° | Linguaggio Programmazione Matlab-Simulink | D |
Bogdan Mihai Maris
(Coordinatore)
|
anni | Insegnamenti | TAF | Docente |
---|---|---|---|
2° 3° | Lab.: The fashion lab (1 cfu) | D |
Caterina Fratea
(Coordinatore)
|
anni | Insegnamenti | TAF | Docente |
---|---|---|---|
2° 3° | Introduzione alla robotica per studenti di materie scientifiche | D |
Paolo Fiorini
(Coordinatore)
|
2° 3° | Introduzione alla stampa 3D | D |
Franco Fummi
(Coordinatore)
|
2° 3° | Linguaggio Programmazione LaTeX | D |
Enrico Gregorio
(Coordinatore)
|
2° 3° | Progettazione di componenti hardware su FPGA | D |
Franco Fummi
(Coordinatore)
|
2° 3° | Prototipizzazione con Arduino | D |
Franco Fummi
(Coordinatore)
|
2° 3° | Tutela dei beni immateriali (SW e invenzione) tra diritto industriale e diritto d’autore | D |
Roberto Giacobazzi
(Coordinatore)
|
anni | Insegnamenti | TAF | Docente | |
---|---|---|---|---|
1° | Conoscenze per l'accesso: matematica | D |
Franco Zivcovich
|
|
2° 3° | Linguaggio programmazione Python | D |
Giulio Mazzi
(Coordinatore)
|
Sistemi operativi (2021/2022)
Codice insegnamento
4S00019
Crediti
12
Lingua di erogazione
Italiano
Settore Scientifico Disciplinare (SSD)
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
L'insegnamento è organizzato come segue:
Teoria
Laboratorio [Laboratorio 1]
Laboratorio [Laboratorio 2]
Obiettivi formativi
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.
Programma
Teoria
---------
* Introduzione: Ruolo del sistema operativo e sua evoluzione. Elementi architetturali. Struttura e funzioni di un sistema operativo.
* Gestione dei Processi: Processi. Stati dei processi. Cambiamento di contesto. Creazione e terminazione di processi. Thread: thread a livello utente e a livello kernel. Cooperazione e comunicazione fra processi: memoria condivisa, messaggi. Comunicazione diretta ed indiretta.
* Scheduling: Modello a ciclo di burst di CPU-I/O. Scheduling a lungo, medio, breve termine. Scheduling con prelazione e cooperativo. Criteri di scheduling. Algoritmi di scheduling: FCFS, SJF, a priorità, HRRN, RR, a code multiple con e senza feedback. Valutazione degli algoritmi: modelli deterministici e probabilistici, simulazione.
* Sincronizzazione fra processi: Coerenza di dati condivisi, operazioni atomiche. Sezioni critiche. Approccio software alla mutua esclusione: algoritmi di Peterson e Dekker, algoritmo del panettiere. Supporto hardware per la mutua esclusione: test and set, swap. Costrutti per sincronizzazione: semafori e monitor. Alcuni problemi tipici di sincronizzazione: produttore/consumatore, lettori/scrittore, problema dei filosofi.
* Deadlock: Condizioni per l'innesco di un deadlock. Rappresentazione dello stato di un sistema con grafi di allocazione. Tecniche di prevenzione, rilevazione e ripristino. Algoritmo del banchiere.
* Gestione della memoria: Memoria primaria. Indirizzamento logico e fisico. Rilocazione, binding degli indirizzi. Swapping. Allocazione contigua della memoria. Frammentazione interna ed esterna. Paginazione. Supporti hardware alla paginazione: TLB. Tabella delle pagine. Paginazione a piu' livelli. Segmentazione. Tabella dei segmenti. Segmentazione con paginazione.
* Memoria Virtuale: Paginazione su richiesta. Gestione di page fault. Algoritmi di sostituzione delle pagine: FIFO, ottimale, LRU, approssimazioni LRU. Buffering di pagine. Allocazione di frame in memoria fisica, allocazione locale o globale. Thrashing. Località dei riferimenti. Modello del working set. Controllo della frequenza di page fault. Blocco di pagine in memoria.
* Memoria secondaria Struttura logica e fisica dei dischi. Tempo di latenza. Scheduling del disco: algoritmi FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOK. Gestione della memoria di paginazione. Strutture RAID.
* File System: Concetto di file, attributi e operazioni relative. Tipi di file. Accesso sequenziale e diretto. Concetto di directory. Struttura di directory. Protezioni nell'accesso a file. Attributi e modalità di accesso. Semantica della consistenza. Struttura di un file system. Montaggio di un file system. Metodi di allocazione dello spazio su disco: contiguo, concatenato, indicizzato. Gestione dello spazio libero su disco: tramite vettore di bit, tramite liste. Realizzazione delle directory: liste lineari, tabelle hash.
* Sistema di I/O: Sistemi di Input/Output, Hardware per I/O. Tecniche di I/O: programmato, con interrupt, con DMA. Device driver e interfaccia verso le applicazioni. Servizi del kernel per I/O: scheduling, buffering, caching, spooling.
Laboratorio:
------------
- Chiamate di sistema per la gestione del file system
- Chiamate di sistema per la gestione dei processi
- Chiamate di sistema per la gestione dei segnali e delle pipe
- Chiamate di sistema per gestione di fifo e code di messaggi
- Chiamate di sistema per gestione di semafori e memoria condivisa
- Gestione dei processi e della memoria in MentOS
Bibliografia
Modalità d'esame
Per superare l'esame gli studenti dovranno dimostrare di:
- aver compreso i principi alla base del funzionamento di un sistema operativo
- essere in grado di esporre le proprie argomentazioni in modo preciso e organico senza divagazioni
- saper applicare le conoscenze acquisite per risolvere problemi applicativi presentati sotto forma di esercizi, domande e progetti.
Teoria
---------
L'esame della parte di teoria consiste in una prova scritta, contenente domande a risposta multipla, domande a risposta aperta ed esercizi. In caso di restrizioni dovute al Coronavirus le modalità d'esame potrebbero subire variazioni.
Laboratorio
-----------------
L'esame della parte di laboratorio consiste nello sviluppare e consegnare un progetto di laboratorio secondo le specifiche fornite dal docente. Il progetto sarà poi discusso in una prova orale. In caso di restrizioni dovute al Coronavirus le modalità d'esame potrebbero subire variazioni.
Voto finale
----------------
Il voto finale si ottiene dalla seguente formula:
Voto = Voto_teoria*0,5 + Voto_laboratorio*0,5.