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

1001745 - SISTEMI OPERATIVI

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

Dati Generali

Periodo di attività

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

Syllabus

Obiettivi Formativi

Gli obiettivi formativi del corso, in accordo ai descrittori di Dublino, sono

i seguenti:


1) 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


2) Utilizzazione  delle  conoscenze  e  capacità  di  comprensione

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


3) Capacità di trarre conclusioni

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.



4) Abilità comunicative

 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.



5) Capacità di apprendere

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


Prerequisiti

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


Metodi didattici

Lezioni frontali ed esercitazioni



Verifica Apprendimento

Prova scritta 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 e lode: conoscenza completa, approfondita e critica degli argomenti, eccellente proprietà di linguaggio, completa ed originale capacità interpretativa, piena capacità di applicare autonomamente le conoscenze per risolvere i problemi proposti;


28 - 30: conoscenza completa e approfondita degli argomenti, ottima proprietà di linguaggio, completa ed efficace capacità interpretativa, in grado di applicare autonomamente le conoscenze per risolvere i problemi proposti;


24 - 27: conoscenza degli argomenti con un buon grado di padronanza, buona proprietà di linguaggio, corretta e sicura capacità interpretativa, buona capacità di applicare in modo corretto la maggior parte delle conoscenze per risolvere i problemi proposti;


20 - 23: conoscenza adeguata degli argomenti ma limitata padronanza degli stessi, soddisfacente proprietà di linguaggio, corretta capacità interpretativa, più che sufficiente capacità di applicare autonomamente le conoscenze per risolvere i problemi proposti;


18 - 19: conoscenza di base degli argomenti principali, conoscenza di base del linguaggio tecnico, sufficiente capacità interpretativa, sufficiente capacità di applicare le conoscenze di base acquisite;


<18 Insufficiente: non possiede una conoscenza accettabile degli argomenti trattati durante il corso.


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

Concetti di base

Tipi di sistemi operativi

Architetture dei calcolatori (cenni)


2. Struttura del Sistema Operativo

Componenti di un SO

Servizi e funzioni dei SO

Interrupt e System Call

API (Application Program Interface)


3. Processi

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)


4. Thread

Vantaggi della programmazione multithreading

Thread a livello utente e livello kernel

Soluzioni miste (Solaris)

Scheduling dei Thread


5. Programmazione concorrente

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


6. Laboratorio (2 CFU)

La programmazione concorrente in Java

La classe Thread

L'interfaccia Lock e la classe Condition

Esempi di programmi concorrenti


7. Gestione della memoria

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


8. Cache

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


9. File system

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


10. Gestione dell'I/O

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


11. Memoria secondaria

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)


12. Fondamenti di Cybersecurity (con riferimento ai SO)

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.


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
  • Utilizzo dei cookie

Realizzato con VIVO | Designed by Cineca | 25.12.4.0