Skip to content

Libera Università di Bolzano

Operating Systems

Semestre 2 · 76270 · Corso di laurea in Informatica · 9CFU · EN · IT


Questo corso appartiene alla tipologia "Attività formative di base" e l'area tematica è "Informatica".

L'obiettivo di questo modulo è quello di fornire agli studenti una solida conoscenza dei sistemi operativi e delle loro componenti e funzionalità principali, dei fondamenti della programmazione in C, degli algoritmi di scheduling, della gestione dei processi e della sincronizzazione, nonché delle tecniche di gestione della memoria.

Docenti: Andrea Alexander Janes, Nicola Gigante

Ore didattica frontale: 50
Ore di laboratorio: 40
Obbligo di frequenza: La frequenza non è obbligatoria; gli studenti non frequentanti possono contattare il docente all'inizio del corso per ottenere supporto sulle modalità dello studio indipendente.

Argomenti dell'insegnamento
- Strutture dei sistemi operativi - Processi, thread e concorrenza - Schedulazione e sincronizzazione della CPU - Memoria e memoria di massa - I/O, sistemi di file - Reti e sistemi distribuiti - Tipi di dati, variabili, operatori, strutture di controllo (cicli, condizionali), funzioni e puntatori - Allocazione dinamica della memoria, array, strutture, liste collegate, stack e code - Gestione dei file, operazioni bitwise, programmi multi-file, debug e ottimizzazione

Modalità di insegnamento
Il corso prevede lezioni frontali e sessioni di laboratorio.

Obiettivi formativi
Conoscenza e comprensione - Conoscere i principi fondamentali della programmazione. - Conoscere gli aspetti innovativi dei sistemi operativi di ultima generazione. Applicazione delle conoscenze e della comprensione - Capacità di sviluppare programmi per interagire con i microcontrollori e i sistemi operativi dei moderni computer. Capacità di giudizio - Essere in grado di lavorare autonomamente in base al proprio livello di conoscenza e comprensione. Capacità di comunicazione - Essere in grado di utilizzare una delle tre lingue, inglese, italiano e tedesco, e di utilizzare in modo appropriato termini tecnici e di comunicazione. Capacità di apprendimento - Avere sviluppato capacità di apprendimento per proseguire gli studi con un elevato grado di autonomia. - Essere in grado di seguire la rapida evoluzione tecnologica e di apprendere tecnologie informatiche all'avanguardia e aspetti innovativi dei sistemi informativi di ultima generazione.

Modalità d'esame
La valutazione comprende compiti di programmazione e progetti finalizzati all'implementazione di funzionalità del sistema operativo o alla simulazione del suo comportamento, nonché un esame scritto volto a valutare la comprensione dei concetti fondamentali e la conoscenza approfondita dei sistemi operativi. L'esame prevede domande aperte che riguardano sia argomenti teorici che esercizi pratici di laboratorio. Gli studenti non frequentanti sono tenuti a contattare il docente all'inizio del corso per concordare un piano di studio indipendente.

Criteri di valutazione
Il voto finale è una media ponderata dei voti ottenuti nei due moduli: Sistemi Operativi e Reti (70%) e Programmazione in C (30%). In ogni modulo, il voto si basa interamente su un esame scritto composto da due parti: una parte teorica (che incide per due terzi sull’esame) volta a valutare la comprensione concettuale, le capacità di problem solving e l’abilità di spiegare i principi fondamentali, e una parte pratica (che incide per un terzo sull’esame) volta a valutare la padronanza operativa nell’applicazione dei concetti tramite il codice. La parte pratica è valutata sulla base della correttezza della soluzione, della struttura e leggibilità del codice, e della capacità di spiegare l’implementazione. Gli studenti frequentanti (la frequenza sarà verificata) possono coprire la parte pratica (un terzo dell’esame) durante il semestre partecipando alle esercitazioni in laboratorio e consegnando gli esercizi. Gli studenti lavoratori o coloro che non frequentano i laboratori possono presentare o risolvere un sottoinsieme degli esercizi di laboratorio durante l’esame finale. Per superare il modulo è necessario ottenere un voto sufficiente in entrambe le parti. I voti dei progetti restano validi per l’intero anno accademico. Tutti i voti riflettono la correttezza e, in misura minore, la chiarezza delle risposte. Studenti frequentanti e non frequentanti sono valutati secondo gli stessi criteri.

Bibliografia obbligatoria
  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, and Riccardo Melen. Sistemi operativi. Concetti ed esempi. Ediz. Mylab. Con Contenuto digitale per accesso online. Pearson, 10th edition, February 2019. ISBN 978-88-919-0455-3. 
  • C tutorial at https://www.w3schools.com/c/ 


Bibliografia facoltativa
  • Burattini e P. Chianese. Che C serve? Per iniziare a programmare. Maggioli Editore, 2a edizione, 2016. ISBN 978-88-916-1173-4. 
  • Andrew Tanenbaum e Herbert Bos. Sistemi operativi moderni. Pearson, Boston, 4a edizione, marzo 2014. ISBN 978-0-13-359162-0. 


Altre informazioni
Durante il corso verranno utilizzati i seguenti software: - Ubuntu (https://ubuntu.com) - C (https://gcc.gnu.org) - VirtualBox di Oracle (https://www.virtualbox.org) - Visual Studio Code (https://code.visualstudio.com) - Code Runner (https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner) - clang-format (https://docs.kernel.org/dev-tools/clang-format.html)


Scarica come PDF

Obiettivi di sviluppo sostenibile
Questa attività didattica contribuisce al raggiungimento dei seguenti Obiettivi di Sviluppo sostenibile.

4

Modules

Semestre 2 · 76270A · Corso di laurea in Informatica · 6CFU · EN

Module A — Operating Systems M1:Operating Systems and Networking

This course belongs to the type "Attività formative di base" and the subject area is "Informatica".

The goal of this module is to provide students with a solid understanding of operating systems and their core components and functionalities, the fundamentals of programming in C, scheduling algorithms, process management and synchronization, as well as memory management techniques.

Docenti: Andrea Alexander Janes

Ore didattica frontale: 40
Ore di laboratorio: 20

Argomenti dell'insegnamento
- Operating Systems Structures - Processes, Threads and Concurrency - CPU Scheduling and Synchronization - Memory and Mass-Storage - I/O, File Systems - Networks and Distributed Systems

Modalità di insegnamento
The course includes frontal lectures and lab sessions.

Bibliografia obbligatoria
  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, and Riccardo Melen. Sistemi operativi. Concetti ed esempi. Ediz. Mylab. Con Contenuto digitale per accesso online. Pearson, 10th edition, February 2019. ISBN 978-88-919-0455-3.


Semestre 2 · 76270B · Corso di laurea in Informatica · 3CFU · IT

Module B — Operating Systems M2: Programming in C

Questo corso appartiene alla tipologia "Attività formative di base" e l'area tematica è "Informatica".

L'obiettivo di questo modulo è quello di fornire agli studenti una solida conoscenza dei sistemi operativi e delle loro componenti e funzionalità principali, dei fondamenti della programmazione in C, degli algoritmi di scheduling, della gestione dei processi e della sincronizzazione, nonché delle tecniche di gestione della memoria.

Docenti: Nicola Gigante

Ore didattica frontale: 10
Ore di laboratorio: 20

Richiesta info