Questo sito utilizza cookie tecnici propri e di terze parti, necessari al suo funzionamento, e, con il tuo consenso, cookie di profilazione ed altri strumenti di tracciamento di terze parti, utili per esporre video ed analizzare il traffico al fine di misurare l'efficacia delle attività di comunicazione istituzionale. Puoi rifiutare i cookie non necessari e di profilazione cliccando su "Solo cookie tecnici". Puoi scegliere di acconsentirne l'utilizzo cliccando su "Accetta tutti" oppure puoi personalizzare le tue scelte cliccando su "Personalizza".
Per maggiori informazioni consulta la nostra privacy policy.

Solo cookie tecnici Personalizza Accetta tutti

vai al contenuto vai al menu principale vai alla sezione Accessibilità vai alla mappa del sito
Login  Docente | Studente | Personale | Italiano  English
 
Home page Home page

ELEMENTI DI SISTEMI OPERATIVI E BASI DI DATI

Corso INGEGNERIA INFORMATICA, ELETTRONICA E DELLE TELECOMUNICAZIONI
Curriculum Homeland Security
Anno Accademico 2023/2024
Anno 3
Crediti 10
Ore aula 80

Modulo: BASI DI DATI

Crediti 5
Ore aula 40
Settore Scientifico Disciplinare ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Attività formativa Caratterizzante
Ambito Ingegneria informatica

Docente

Foto Gianluca LAX
Responsabile Gianluca LAX
Crediti 5
Semestre Primo Ciclo Semestrale

Informazioni dettagliate relative all'attività formativa

Tra parentesi il riferimento alle parti del libro di testo da consultare.


1) Progettazione di una base di dati

I sistemi informativi (sez. 1.1-1.5)

Il modello relazionale (Cap. 2)

Metodologie e modelli per il progetto (cap. 6)

Il ciclo di vita dei sistemi informativi (6.1.1)

Il modello Entità/Relazione (6.2)

Documentazione di schemi Entità/Relazione (6.3)

La progettazione concettuale (cap. 7)

Raccolta e analisi dei requisiti (7.1)

Rappresentazione concettuale dei dati (7.2)

Strategie di progetto (7.3)

La progettazione logica (cap. 8)

Ristrutturazione di schemi E-R (8.3)

Analisi delle ridondanze (8.3.1)

Eliminazione delle generalizzazioni (8.3.2)

Partizionamento/accorpamento di concetti (8.3.3)

Scelta degli identificatori principali (8.3.4)

Traduzione verso il modello relazionale (8.4)

Cenni di progettazione fisica

Gestione delle tuple nella pagina (11.2)

Gli indici primari e secondari (11.4.1)


2) Interrogazione di una base di dati

Il linguaggio SQL (Cap. 4)

Il linguaggio SQL e gli standard (4.1)

Interrogazioni in SQL (4.2)

Modifica dei dati in SQL (4.4)


3) Transazioni

Gestione delle transazioni (Cap. 5 e 12)

Transazioni (5.6)

Specifica delle transazioni (5.6.1)

Proprietà acide delle transazioni (5.6.2)

Anomalie delle transazioni (12.2.2)

Locking a due fasi (12.2.4)


4) Altre basi di dati

Cenni di basi di dati per XML (Cap. 13)

Definizione di dati XML, DTD e XML Schema

Javascript Object Notation JSON (16.5.5)


5) Implementazione di una base di dati

Sviluppo di applicazioni stand-alone in Java che si interfacciano ad un DBMS (vedi esercitazioni)

Pattern DAO, driver JDBC

Creazione di schemi in MySQL




Ultimo aggiornamento: 21-10-2023

P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, “Basi di Dati”, McGraw Hill

(versione inglese al link http://dbbook.dia.uniroma3.it/dbbook.pdf)


Ultimo aggiornamento: 21-10-2023

Il corso di Basi di dati intende trasferire agli studenti i concetti fondamentali relativi alle basi di dati relazionali e ai sistemi di gestione, alle metodologie di progettazione delle basi di dati e ai linguaggi per la gestione e l'interrogazione di basi di dati. L'insegnamento si propone inoltre di introdurre i meccanismi che permettono l’interfacciamento tra basi di dati e applicazioni, con specifico riferimento all’utilizzo del pattern DAO e alla sua implementazione in Java.


Conoscenza e comprensione: a seguito del superamento dell’esame, lo studente conosce e comprende il modello dei dati che sottende i sistemi di gestione di basi di dati relazionali e le metodologie operative di progettazione e realizzazione dei sistemi di basi di dati relazionali. In particolare, per quanto riguarda la fase di progettazione si farà riferimento al modello ER, mentre per la realizzazione si farà riferimento al linguaggio SQL.


Autonomia di giudizio: a seguito del superamento dell’esame, lo studente sarà in grado di valutare le diverse alternative in fase di progettazione concettuale e logica di una base di dati relazionale. Le alternative saranno valutate in base all’analisi dei requisiti, alla manutenibilità della base di dati e alle prestazioni da garantire.

Abilità comunicative: nella fase di progettazione di una base di dati, il progettista informatico deve dialogare con il committente che esprimerà i requisiti della applicazione da sviluppare in linguaggio naturale. Compito del progettista informatico è saper tradurre i requisiti espressi in linguaggio naturale in specifiche rappresentate nel modello dei dati prescelto, evidenziando i casi ambigui o dubbi e formulando le relative domande chiarificatrici al committente. Il corso di basi di dati fornirà agli studenti le basi delle capacità comunicative necessarie a realizzare il dialogo con il committente nelle diverse fasi dello sviluppo.


Capacità di apprendimento: durante il corso lo studente studia su documentazione tecnica, soprattutto in lingua inglese, con lo scopo principale di acquisire la capacità di aggiornare continuamente le proprie conoscenze ed essere pronto ad applicare questa metodologia di studio anche per le nuove tecnologie.


Ultimo aggiornamento: 21-10-2023

Fondamenti di programmazione (classi, metodi, if, for, operatori logici)


Ultimo aggiornamento: 21-10-2023

Lezioni frontali ed esercitazioni


Ultimo aggiornamento: 21-10-2023

Modalità di accertamento e valutazione:

Gli esami di accertamento e di valutazione consistono in una prova progettuale e in una prova orale. La prova progettuale, da svolgersi in gruppo, ha lo scopo di progettare e, possibilmente, realizzare un sistema informativo che informatizzi una realtà prescelta dagli studenti. La prova orale ha l’obiettivo di discutere il progetto realizzato e di valutare la conoscenza, da parte dello studente, del programma del corso.


Per il superamento dell’esame con votazione minima di 18/30 è necessario che lo studente sia in grado di progettare una base di dati partendo da una realtà di complessità limitata e sia in grado di produrre query SQL che coinvolgano più tabelle (join). È attribuito un voto compreso fra 19/30 e 24/30 se lo studente è anche in grado di progettare una base di dati partendo da una realtà che di complessità elevata. È attribuito un voto compreso fra 25/30 e 30/30 se lo studente è anche in grado di realizzare la base di dati in MySQL e implementare in Java un’applicazione gestionale che si interfaccia con tale base di dati. È attribuito un voto di 30/30 e lode se lo studente è anche in grado di realizzare in MySQL delle query SQL complesse ed è in grado di sviluppare in Java delle funzionalità aggiuntive richieste all’orale.


Ultimo aggiornamento: 21-10-2023


Ulteriori informazioni

Nessun materiale didattico inserito per questo insegnamento
Nessun avviso pubblicato
Nessuna lezione pubblicata
Codice insegnamento online non pubblicato

Modulo: ELEMENTI DI SISTEMI OPERATIVI

Crediti 5
Ore aula 40
Settore Scientifico Disciplinare ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Attività formativa Caratterizzante
Ambito Ingegneria informatica

Docenti

Foto Francesco BUCCAFURRI
Responsabile Francesco BUCCAFURRI
Crediti 3
Semestre Primo Ciclo Semestrale

Responsabile Lorenzo MUSARELLA
Crediti 2
Semestre Primo Ciclo Semestrale

Informazioni dettagliate relative all'attività formativa

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.


Ultimo aggiornamento: 21-12-2025

• 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


Ultimo aggiornamento: 21-12-2025

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


Ultimo aggiornamento: 21-12-2025

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



Ultimo aggiornamento: 21-12-2025

Lezioni frontali ed esercitazioni



Ultimo aggiornamento: 21-12-2025

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.


Ultimo aggiornamento: 21-12-2025


Ulteriori informazioni

Nessun avviso pubblicato
Nessuna lezione pubblicata
Codice insegnamento online non pubblicato

Impostazione cookie

Cerca nel sito

 

Posta Elettronica Certificata

Direzione

Tel +39 0965.1693217/3252

Fax +39 0965.1693247

Indirizzo e-mail


Protocollo

Tel +39 0965.1693422

Fax +39 0965.1693247

Indirizzo e-mail

Didattica e orientamento

Tel +39 0965.16933385

Fax +39 0965.1693247

Indirizzo e-mail

Indirizzo e-mail

Segreteria studenti

Tel +39 0965.1691475

Fax +39 0965.1691474

Indirizzo e-mail

Amministrazione

Tel +39 0965.1693214

Fax +39 0965.1693247

Indirizzo e-mail


Ricerca

Tel +39 0965.1693422

Fax +39 0965.1693247

Indirizzo e-mail

Social

Facebook

Twitter

YouTube

Instagram