BASI DI DATI E SISTEMI OPERATIVI

BASI DI DATI E SISTEMI OPERATIVI

_
iten
Ultimo aggiornamento 04/10/2021 10:08
Codice
98516
ANNO ACCADEMICO
2021/2022
CFU
6 cfu al 3° anno di 9273 INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE (L-8) GENOVA
SETTORE SCIENTIFICO DISCIPLINARE
ING-INF/05
LINGUA
Italiano
SEDE
GENOVA (INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE)
periodo
Annuale
materiale didattico

PRESENTAZIONE

L’insegnamento si propone di far acquisire agli studenti nozioni relative alla struttura dei sistemi operativi e una introduzione alle basi di dati. 

Per quel che riguarda i sistemi operativi, vengono presentati le funzioni dei moduli in cui sono organizzati, gli algoritmi e le strutture software che utilizzano. 

In relazione alle basi di dati, vengono presentati una introduzione alle basi di dati relazionali e i linguaggi per la creazione, l’interrogazione e la manipolazione di basi dati centralizzate. L’insegnamento si propone di fornire una prima introduzione al linguaggio SQL, orientata a prendere dimestichezza con gli aspetti pratici del linguaggio stesso.

L’insegnamento fornisce allo studente gli strumenti tecnici e metodologici per comprendere e descrivere caratteristiche, funzioni e interazioni delle principali componenti dei sistemi operativi moderni.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

L’insegnamento si propone di far acquisire agli studenti nozioni relative alla struttura dei sistemi operativi e una introduzione alle basi di dati. Per quel che riguarda i sistemi operativi, vengono presentati le funzioni dei moduli in cui sono organizzati, gli algoritmi e le strutture software che utilizzano. In relazione alle basi di dati, vengono presentati una introduzione alle basi di dati relazionali e i linguaggi per la creazione, l’interrogazione e la manipolazione di basi dati centralizzate. L’insegnamento si propone di fornire una prima introduzione al linguaggio SQL, orientata a prendere dimestichezza con gli aspetti pratici del linguaggio stesso.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Basi di dati

L’insegnamento costituisce la base per la progettazione e l’utilizzo delle basi di dati relazionali. Alla fine dell’insegnamento lo studente sarà in grado di 

1) generare un modello ad oggetti o Entità-Relazioni (E/R) a partire da una descrizione in linguaggio naturale

delle informazioni da gestire e dei servizi da prevedere; 

2) tradurre il modello precedente in uno schema relazionale; 

3) implementare lo schema relazionale utilizzando un Data Base Management System (DBMS) quale, ad esempio, SQLite; 

4) scrivere query in SQL sia per l'interrogazione che per l'amministrazione della base di dati.

Modalità didattiche

L’insegnamento è diviso in due parti da 3 CFU ciascuna.

Nel primo semestre verranno erogate le lezioni relative alla parte sulle basi di dati. Le lezioni saranno nella prima parte frontali, sugli argomenti teorici di progettazione e modellazione, mentre per le parti di implementazione ed interrogazione sono previste attività laboratoriali.

La parte dedicata ai Sistemi Operativi sarà realizzata con lezioni frontali accompagnate da esercitazioni pratiche al calcolatore.

PROGRAMMA/CONTENUTO

Basi di dati

Sistemi per basi di dati: vengono definite le nozioni di base di dati, di sistema per la gestione di basi di dati e vengono presentati i concetti fondamentali.

I modelli dei dati: una base di dati corrisponde al modello di una realtà di interesse. Verrà presentata una modalità di rappresentazione a oggetti ed il corrispondente formalismo grafico. 

La progettazione di basi di dati: viene presentato un approccio metodologico per definire lo schema globale dei dati, i vincoli d’integrità e le operazioni delle applicazioni, con lo scopo di produrre un modello relazionale.

Il linguaggio SQL: viene presentato il linguaggio per la definizione e l’uso delle basi di dati relazionali.

Utilizzo di un DBMS:  vengono presentati due prodotti, SQLite (in modo più approfondito) e MySQL, per la realizzazione di basi di dati relazionali.

 

Sistemi Operativi

  1. Introduzione alla struttura dei sistemi operativi. Concetti base, struttura monolitica e a microkernel. 

  2. La gestione dei processi e dei thread. Creazione e gestione processi. I thread e loro implementazione. 

  3. La comunicazione fra processi (signal, pipe, socket, shared memory, ...). Mutua esclusione e sincronizzazione. L’algoritmo di Dekker, l’algoritmo di Peterson. Supporto hardware alla mutua esclusione. Il problema del Produttore e del Consumatore. I semafori. I monitor. Message Passing. Il problema dei Lettori e dei Consumatori.    

  4. Deadlock e Starvation. Approcci alla gestione dei deadlock: Detection, Prevention e Avoidance. I grafi di allocazione delle risorse. Il problema dei Dining Philosophers.

  5. La gestione della memoria. Memoria fisica e memoria virtuale. Gestione paginata e sue problematiche di implementazione. Gestione segmentata.

  6. Scheduling uniprocessore. Scheduling a lungo, medio e breve termine. Algoritmi di scheduling: FCFC, Round Robin, SPN, SRT, HRRN, Feedback.

  7. La gestione dell’input-output. Interazione CPU-dispositivi-memoria. Architettura DMA. Schedulazione dei dischi. 

  8. Il file system. Struttura e attributi di file e directory. Metodi di implementazione e ottimizzazione dei file system. 

  9. Controllo degli Accessi.  Modelli, politiche e meccanismi per il controllo degli accessi. Controllo degli Accessi in Linux (ACL in Unix, setuid)

TESTI/BIBLIOGRAFIA

Basi di dati

A. Albano, G. Ghelli, R. Orsini. Fondamenti di Basi di Dati. http://fondamentidibasididati.it

Sistemi Operativi

Operating Systems: Internals and Design Principles. 8th edition di W. Stallings, Pearson

DOCENTI E COMMISSIONI

Ricevimento: - su appuntamento da concordare preventivamente col docente inviando e-mail all'indirizzo alessandro.armando@unige.it

Ricevimento: Su appuntamento.

LEZIONI

Modalità didattiche

L’insegnamento è diviso in due parti da 3 CFU ciascuna.

Nel primo semestre verranno erogate le lezioni relative alla parte sulle basi di dati. Le lezioni saranno nella prima parte frontali, sugli argomenti teorici di progettazione e modellazione, mentre per le parti di implementazione ed interrogazione sono previste attività laboratoriali.

La parte dedicata ai Sistemi Operativi sarà realizzata con lezioni frontali accompagnate da esercitazioni pratiche al calcolatore.

ORARI

L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

ESAMI

Modalità d'esame

L'esame consiste in due parti, distinte ed indipendenti, orientate a verificare distintamente le competenze acquisite sui sistemi operativi e le basi di dati.

Basi di dati

Sono possibili due modalità, a scelta dello studente.

1) prova orale, con l'obiettivo di accertare la capacità di scrivere query SQL e la conoscenza dei principali concetti, con voto massimo 25/30

2) presentazione e discussione di un progetto relativo alla modellazione ed implementazione di un caso di studio proposto.

Sistemi Operativi

Prova scritta

Modalità di accertamento

Basi di dati

Nella prova orale verrà verificata la capacità di risolvere semplici problemi di modellazione e di scrivere query di interrogazione dei dati

Il progetto e la sua discussione ha l'obiettivo di verificare in modo più approfondito la conoscenza teorica a pratica degli argomenti trattati a lezione.

 

Sistemi Operativi

Nella prova scritta, della durata di 30 minuti, verrà verificata la comprensione del funzionamento e delll’interdipendenza delle principali funzionalità offerte da un sistema operativo moderno.