Skip to Main Content (Press Enter)

Logo UNIRC
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Attività
  • Competenze

UNI-FIND
Logo UNIRC

|

UNI-FIND

unirc.it
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Attività
  • Competenze
  1. Insegnamenti

D60186-A - SISTEMI OPERATIVI

insegnamento
ID:
D60186-A
Durata (ore):
48
CFU:
6
SSD:
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Sede:
REGGIO DI CALABRIA
Url:
Dettaglio Insegnamento:
INGEGNERIA INFORMATICA, ELETTRONICA E DELLE TELECOMUNICAZIONI/GENERALE Anno: 3
Anno:
2025
Course Catalogue:
https://unirc.coursecatalogue.cineca.it/af/2025?co...
  • Dati Generali
  • Syllabus
  • Corsi
  • Persone
  • Altre Info

Dati Generali

Periodo di attività

Primo Ciclo Semestrale (22/09/2025 - 19/12/2025)

Syllabus

Obiettivi Formativi

Gli obiettivi formativi del corso sono i seguenti:


  • Comprendere architettura, servizi e meccanismi interni dei sistemi operativi.
  • Analizzare processi, thread e algoritmi di scheduling, inclusi Windows e Linux CFS.
  • Progettare soluzioni di programmazione concorrente, gestendo sincronizzazione e deadlock.
  • Applicare tecniche avanzate di gestione memoria, cache e memoria virtuale.
  • Valutare file system, storage, RAID e scheduling del disco.
  • Comprendere gestione I/O e struttura dei driver.
  • Analizzare modelli di sicurezza e controllo accessi nei sistemi operativi.



Prerequisiti

Conoscenza dei fondamenti della programmazione e conoscenza basilare del linguaggio Java e dell'ambiente di esecuzione Eclipse.



Metodi didattici

Lezioni frontali ed esercitazioni. Le esercitazioni, che riguardano la programmazione concorrente in Java, sono condotte attraverso metodi didattici interattivi che favoriscono il lavoro di gruppo, l'acquisizione di competenze pratiche e il ruolo proattivo dello studente.



Verifica Apprendimento

Prova scritta della durata di un'ora e mezza che verte sulla soluzione in Java (multithread) di problemi di programmazione concorrente e prova orale che mira ad accertare le conoscenze acquisite su tutto il programma del corso.


Il punteggio, che tiene conto sia della prova scritta sia della prova orale, verrà attribuito secondo il seguente schema:


30 - 30 e lode Eccellente Lo studente: - dimostra una conoscenza completa e dettagliata della materia: conosce i contenuti rilevanti, utilizza una terminologia corretta, individua e spiega i principali concetti, integra approfondimenti personali nella propria sintesi; - evidenzia una comprensione eccellente della materia: distingue chiaramente tra le idee principali e quelle di sopporto, sa inquadrare i punti chiave, rinforza gli argomenti con riferimenti al materiale integrativo o ad approfondimenti individuali, sviluppa collegamenti interdisciplinari; - manifesta capacità ben consolidate di applicare le conoscenze e di analizzare i risultati; - espone la materia in modo chiaro e strutturato: il suo discorso è organizzato, logico, maturo e conciso. 

 

28 - 29 Ottimo Lo studente: - dimostra una conoscenza approfondita della materia: conosce i contenuti rilevanti, utilizza una terminologia corretta, individua e spiega la maggior parte dei principali concetti; - evidenzia una solida comprensione della materia: inquadra la maggior parte dei punti chiave benché non sempre distingua bene gli argomenti principali da quelli meno importanti, discute gli argomenti con riferimenti al materiale integrativo o ad approfondimenti individuali; - manifesta ottime capacità di applicare le conoscenze e di analizzare i risultati; - espone la materia in modo chiaro e articolato: il suo discorso è organizzato, logico, maturo ed essenziale, pur ammettendo qualche imprecisione. 

 

25 - 27 Buono Lo studente: - dimostra un’ampia conoscenza della materia: conosce, anche se non spiega completamente, i contenuti rilevanti; utilizza la terminologia, ma non sempre in modo preciso; individua i concetti chiave, ma non riesce a spiegarli completamente o con precisione. - evidenzia una comprensione adeguata della materia: distingue i punti chiave importanti, ma non riesce a inquadrarli completamente; - manifesta buone capacità di applicare le conoscenze; - espone in modo chiaro, ma non sempre completo, con un’organizzazione schematica e pensieri talvolta frammentati e ripetitivi. 

 

22 - 24 Discreto Lo studente: - dimostra un’accettabile conoscenza della materia: conosce la maggioranza dei contenuti ma manifesta lacune, mostra una certa confusione in alcuni concetti importanti anche se non essenziali; - evidenzia una comprensione essenziale della materia: non riesce sempre a inquadrare tutti i suoi argomenti o talvolta lo fa con imprecisione; - manifesta discrete capacità di applicare i concetti fondamentali della materia; - espone in modo corretto, ma senza una struttura del tutto chiara e coerente, inserendo in alcuni punti dello sviluppo materiale poco rilevante. 

 

18 - 21 Sufficiente Lo studente: - dimostra una limitata conoscenza della materia: conosce i contenuti più rilevanti ma manifesta numerose lacune, individua una buona parte dei concetti chiave ma non riesce a illustrarli con completezza e precisione; - dimostra una comprensione basica della materia: ha qualche difficoltà a distinguere i punti chiave e non sempre riesce a inquadrarli compitamente per incompletezza o imprecisione; - manifesta incertezze nell’applicare i concetti fondamentali della materia; espone in modo poco chiaro e confuso, usa la lingua in modo poco organizzato, con pensieri frammentati e ripetitivi, non sempre utilizza la terminologia con precisione. 

 

Insufficiente Lo studente: - dimostra una conoscenza scarsa e frammentaria della materia: non conosce i contenuti essenziali, manifestando estese lacune, e non individua i concetti chiave; - manifesta gravi errori di comprensione, non risponde a numerose domande o non risolve numerosi problemi; manifesta errori nell’applicare i concetti fondamentali della materia; - non raggiunge un livello accettabile di articolazione del pensiero relativo alla materia.


Testi

• Silberschatz, Galvin, Gagne. Sistemi operativi: Concetti ed esempi (10° ed.). Pearson, ISBN: 9788891904553

• S. Tanenbaum. Modern Operating Systems, (3° ed.). Pearson Prentice Hall, ISBN-10:0136006639

• Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari. Sistemi Operativi, (2° ed.) McGraw-Hill ISBN: 9788838664328


Contenuti

1. Introduzione e Struttura del Sistema Operativo (0.5 CFU)

Concetti di base

Tipi di sistemi operativi

Architetture dei calcolatori (cenni)

Componenti di un SO

Servizi e funzioni dei SO

Interrupt e System Call

API (Application Program Interface)


2. Processi e Thread (1 CFU)

Rappresentazione di un processo in un sistema operativo (PCB)

Meccanismo di multiplexaggio della CPU

Diagramma di transizione di stato

Scheduling dei processi

Algoritmi di scheduling:

  • Round Robin
  • SJF
  • SJF preemptive
  • Algoritmo basato su CPU burst
  • Scheduling a lotteria
  • Scheduling con priorità statica
  • Scheduling con priorità dinamica
  • Scheduling di Windows
  • Scheduling di Linux (CFS)

Vantaggi della programmazione multithreading

Thread a livello utente e livello kernel

Soluzioni miste (Solaris)

Scheduling dei Thread


3. Programmazione concorrente (0.5 CFU)

Errori time-dependent e corse critiche

Sezione critica

Proprietà attese per i programmi concorrenti

Liveness, Fairness

Soluzione di Peterson

Semafori binari e generalizzati

Problema Produttore-Consumatore

Monitor

Implementazione del monitor attraverso semafori

Implementazione dei semafori:

-limiti della disabilitazione delle interruzioni

-implementazione attraverso Test and Set Lock

-cenni ad altre implementazioni

Deadlock: definizione e condizioni che lo determinano

Prevenzione del Deadlock attraverso gerarchizzazione delle risorse

Detection&Recovery del Deadlock: Grafo di Allocazione delle Risorse


4. Laboratorio (2 CFU)

La programmazione concorrente in Java

La classe Thread

L'interfaccia Lock e la classe Condition

Esempi di programmi concorrenti


5. Gestione della memoria e Cache (1.5 CFU)

Swap di processi

Allocazione contigua, rilocazione, registri base e limite

Paginazione

Tabella delle pagine e tabella delle pagine invertita

Bit di riferimento, bit di modifica, bit di blocco, bit ab/dis cache, bit di validità

Segmentazione

MMU, TLB

Memoria virtuale

Principio di località

LRU e working set

Problema del Trashing e scheduling di medio termine

Allocazione locale e globale

Algoritmi di sostituzione delle pagine:

-FIFO

-Not Recently Used

-Algortimo dell'Orologio (Clock)

-LRU basato su stringhe di bit di riferimento

-Algoritmo basato su martice HW

-Algoritmo basato su working set

-Algoritmo WSClock

Introduzione alla cache

Analisi del tempo di accesso alla memoria in presenza di cache

Cache a corrispondenza diretta (con tag)

Cache associative

Cache set-associative


6. File system e Memoria secondaria (1 CFU)

L'astrazione file

Directory

Struttura di un file system

Metodi di allocazione dei file:

-Allocazione contigua

-Lista concatenata

-Lista concatenata con cluster

-File allocation table (FAT)

Organizzazione File System in Unix: Boot Block, Super Block, I-List, Data Blocks

I-node con single, double and triple indirect

soft e hard link

Dimensione massima di un file indicizzabile con i-node

Strutture dati relative ai file:

- Processo: Tabella dei file aperti

- Kernel: Tabella dei file aperti e I/O pointer e Tabella dei file attivi

Gestione dello spazio libero

-mappa di bit

-liste concatenate

Struttura dei dischi (magnetici)

Funzione dell'MBF

Tempo di accesso al disco

Formattazione dei dischi:

-Interleaving

-Skew

Gestione blocchi difettosi

Algoritmi di Scheduling del disco:

-FIFO

-Shortest Seek First

-SCAN, CSCAN, Lookahead

NAS - Network Attached Storage

SAN - Storage Area Network

Misure di affidabilità e disponiblità: MTBF e rapporto di Availability

MTBF e array di dischi

RAID (0,1,2,3,4,5)


7. Gestione dell'I/O (0.5 CFU)

Introduzione a I/O nei Sistemi Operativi

Dispositivi di I/O: a caratteri, a blocchi, di rete, speciali

Device Controller

Strutturazione a livelli del SW di I/O:

interrput handler, driver, device-independent software, user-level sofwtare

Caratteristiche generali dei driver.

Funzioni dell'user-level software:

- funzioni per invocare le API/System Call

- gestione eccezioni

- Spooling

Funzioni del device-independent software:

- bufferizzazione e tecnica del read ahead,

- interfaccia verso i driver,

- naming e formattazioni blocchi

- gestione accesso ai dipositivi,

- gestione delle eccezioni

Interrupt: precisi e imprecisi

I/O a controllo di programma

I/O interrupt driven

I/O con DMA



8. Fondamenti di Cybersecurity (con riferimento ai SO) (1 CFU)

Attributi della Security: CIA

Security nei sistemi operativi

Security policies e access control

User account

Modalità di esecuzione

Isolamento dei processi, fairness, quote

Privilegi di utenti e processi

Access Control Matrix

Domain transfer

Access delegation

Resource ownership

Access Control List

Capability List

Usecase (UNIX): accesso alle risorse, modifica dei permessi (chmod), user e group ID,

file: /etc/passwd, EUID e cambio di UID (bit SETUID).

Cenni al buffer overflow.



RISULTATI ATTESI


I risultati attesi del corso, in accordo ai descrittori di Dublino, sono i seguenti:



Conoscenze e capacità di comprensione:

Conoscenza delle funzioni principali dei sistemi operativi con riferimento a Processi, Gestione della Memoria, Gestione dell'I/O e File System e dei Fondamenti di Cybersecurity con riferimento ai Sistemi Operativi


Capacità di applicare conoscenze e comprensione:

Capacità di programmare in accordo al paradigma concorrente, con particolare riferimento al multi-threading di Java


Autonomia di giudizio:

Capacità di valutare in maniera critica le scelte fatte dai diversi sistemi operativi. Acquisizione di un appropriato livello di autonomia nella conoscenza degli aspetti teorici e gestione di aspetti pratici relativi ai sistemi operativi. Capacità di valutare misure elementari di sicurezza dei sistemi operativi.


Capacità di comunicazione:

Capacità di comunicare con adeguata competenza tecnica con altri partner in attività di gruppo volte alla progettazione e alla implementazione di sistemi con funzionalità simili a quelle dei sistemi operativi.


Capacità di apprendimento:

Capacità di apprendimento di diversi sistemi operativi e di diversi linguaggi di programmazione concorrente


Altre informazioni

codice Teams: kqbgaki

Canale utilizzato per distribuire agli studenti esercitazioni e altro materiale didattico.


Corsi

Corsi

INGEGNERIA INFORMATICA, ELETTRONICA E DELLE TELECOMUNICAZIONI 
Laurea
3 anni
No Results Found

Persone

Persone (2)

BUCCAFURRI Francesco
Gruppo 09/IINF-05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
AREA MIN. 09 - Ingegneria industriale e dell'informazione
Settore IINF-05/A - Sistemi di elaborazione delle informazioni
Docenti di ruolo di Ia fascia
De Angelis Vincenzo
Docenti
No Results Found

Altre Info

Insegnamento principale

BASI DI DATI E SISTEMI OPERATIVI
  • Utilizzo dei cookie

Realizzato con VIVO | Designed by Cineca | 26.3.4.0