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

SISTEMI OPERATIVI E BASI DI DATI

Corso Ingegneria dell'Informazione
Curriculum Curriculum unico
Orientamento Orientamento unico
Anno Accademico 2018/2019

Modulo: SISTEMI OPERATIVI

Corso Ingegneria dell'Informazione
Curriculum Curriculum unico
Orientamento Orientamento unico
Anno Accademico 2018/2019
Crediti 6
Settore Scientifico Disciplinare ING-INF/05
Anno Terzo anno
Unità temporale Primo semestre
Ore aula 48
Attività formativa Attività formative caratterizzanti

Canale unico

Docente FRANCESCO ANTONIO BUCCAFURRI
Obiettivi 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




MODALITA' DI ACCERTAMENTO E VALUTAZIONE


La prova d'esame consiste in una prova scritta della durata di 1,5 ore e di una prova orale la cui durata media è di 25 minuti.
La prova scritta consiste nella soluzione di un problema di programmazione concorrente sfruttando il multi-threading di Java. E' prevista la progettazione di monitor e processi e l'implementazione di 3-4 metodi.
Nella prova orale vengono discussi i concetti illustrati a lezione inerenti al programma del corso, spaziando su almeno 3 argomenti diversi.
La prova scritta viene valutata attraverso un giudizio. E' necessario raggiungere una soglia minima che corrisponde alla corretta progettazione del monitor e dei processi e alla soluzione di un numero minimo di quesiti (di norma 2)
L'esito dell’esame sarà risulterà dalla valutazione complessiva di scritto e orale.

L’obiettivo della prova scritta, in relazione ai descrittore di Dublino, è quello di valutare:

1) Conoscenze e capacità di comprensione
Il Grado di comprensione e assimilazione del concetto di processo, di monitor e delle problematiche di programmazione concorrente. Conoscenza dei meccanismi specifici del multi-threading di Java

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
L'autonomia di giuduzio nella scelta di soluzioni algoritmiche sulla base delle caratteristiche richieste ai programmi concorrenti

L’obiettivo della prova orale, in relazione ai descrittore di Dublino, è quello di valutare:

1) Conoscenze e capacità di comprensione
Il grado di 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
La capacità di programmare in accordo al paradigma concorrente, con particolare riferimento al multi-threading di Java

3) Capacità di trarre conclusioni
La capacità di valutare in maniera critica le scelte fatte dai diversi sistemi operativi. L'acquisizione di un appropriato livello di autonomia nella conoscenza degli aspetti teorici e gestione di aspetti pratici relativi ai sistemi operativi.


4) Abilità comunicative
La 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
In misura minore, la capacità di apprendimento di diversi sistemi operativi e di diversi linguaggi di programmazione concorrente


Il voto finale sarà attribuito secondo il seguente criterio di valutazione:

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;
Insufficiente: non possiede una conoscenza accettabile degli argomenti trattati durante il corso.
Programma introduzione
Concetti di base
Tipi di sistemi operativi
Architetture dei calcolatori (cenni)

Struttura del Sistema Operativo
componenti
Servizi e funzioni dei SO
Interrupt e System Call

Processi
Rappresentazione di un processo in un sistema operativo
Scheduling dei processi
Diagramma di transizione di stato
La cooperazione e la comunicazione tra processi

Threads
Programmazione multithreading
Thread a livello utente e livello kernel
Soluzioni miste (Solaris)
Scheduling dei Thread

Programmazione concorrente e Deadlock
Liveness, Fairness
Sezione critica
Soluzione di Peterson
Semafori
Problema Produttore-Consumatore
Monitor
Implementazione del monitor
Gestione delle risorse
Deadlock
Rilevamento e prevenzione del Deadlock

La programmazione concorrente in Java
La classe Thread
Costrutti synchronized, notify(), wait() e notifyAll()
Esempi di programmi concorrenti

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
Algoritmi di sostituzione delle pagine
Allocazione locale e globale
Working set e trashing

File system
L'astrazione file
Directory
Struttura di un file system
Metodi di allocazione dei file
Gestione dello spazio libero

I/O
I/O a controllo di programma
I/O interrupt-driven
I/O basato su DMA
Memory mapped I/O

Memoria secondaria
Struttura dei dischi
Scheduling del disco
RAID (0,1,2,3,4,5)

Sistemi operativi con orientamento specifico
Sistemi operativi real-time
Sistemi operativi Multimediali
Testi docente • Silberschatz, Galvin, Gagne. Sistemi operativi: Concetti ed esempi (8° ed.). Pearson, ISBN: 9-
788871-925691
• 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
• Deitel & Deitel: Java. Fondamenti di programmazione. 2a ediz, Apogeo, 2003 (per la parte di
Programmazione Concorrente in Java)
Erogazione tradizionale
Erogazione a distanza No
Frequenza obbligatoria No
Valutazione prova scritta
Valutazione prova orale
Valutazione test attitudinale No
Valutazione progetto No
Valutazione tirocinio No
Valutazione in itinere No
Prova pratica No

Ulteriori informazioni

Descrizione Descrizione
esito della prova scrita del 08/01/2019 e calendario prove orali (dispensa) Descrizione

Elenco dei rievimenti:

Descrizione Avviso
Ricevimenti di: Francesco Buccafurri
martedì 11.00-13.00, presso lo studio del docente
Nessun avviso pubblicato
Nessuna lezione pubblicata
Codice insegnamento online non pubblicato

Modulo: BASI DI DATI

Corso Ingegneria dell'Informazione
Curriculum Curriculum unico
Orientamento Orientamento unico
Anno Accademico 2018/2019
Crediti 6
Settore Scientifico Disciplinare ING-INF/05
Anno Terzo anno
Unità temporale Primo semestre
Ore aula 48
Attività formativa Attività formative caratterizzanti

Canale unico

Docente GIANLUCA LAX
Obiettivi Il corso ha lo scopo di illustrare le tecniche di progettazione e realizzazione di una base di dati. Vengono descritti il ciclo di vita dei sistemi informativi, la specifica e l’analisi dei requisiti e la progettazione della componente dati. Sono inoltre trattati al corso il linguaggio SQL, le transazioni, le forme normali, XML e JSON.
Programma I sistemi informativi, raccolta e analisi dei requisiti, la progettazione concettuale, il modello Entità/Relazione, la progettazione logica, ristrutturazione e traduzione verso il modello relazionale, cenni di progettazione fisica.
Il linguaggio SQL: Data Definition Language, Data Manipulation Language, Data Query Language.
Le transazioni, lock ottimistico e pessimistico, 2-phase lock.
Normalizzazione, prima, seconda e terza forma normale.
XML e JSON.
Sviluppo di applicazioni stand-alone in Java che si interfacciano ad un DBMS, pattern DAO, driver JDBC.
Testi docente P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, “Basi di Dati”, V Edizione, McGraw Hill, 2018
Erogazione tradizionale
Erogazione a distanza No
Frequenza obbligatoria No
Valutazione prova scritta No
Valutazione prova orale
Valutazione test attitudinale No
Valutazione progetto
Valutazione tirocinio No
Valutazione in itinere No
Prova pratica No

Ulteriori informazioni

Descrizione Descrizione
Materiale didattico (varie) Descrizione
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


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