CODICE 98516 ANNO ACCADEMICO 2022/2023 CFU 6 cfu anno 3 INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE 9273 (L-8) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05 LINGUA Italiano SEDE GENOVA PERIODO Annuale MATERIALE DIDATTICO AULAWEB 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. MODALITA' 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 Introduzione alla struttura dei sistemi operativi. Concetti base, struttura monolitica e a microkernel. La gestione dei processi e dei thread. Creazione e gestione processi. I thread e loro implementazione. 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. Deadlock e Starvation. Approcci alla gestione dei deadlock: Detection, Prevention e Avoidance. I grafi di allocazione delle risorse. Il problema dei Dining Philosophers. La gestione della memoria. Memoria fisica e memoria virtuale. Gestione paginata e sue problematiche di implementazione. Gestione segmentata. Scheduling uniprocessore. Scheduling a lungo, medio e breve termine. Algoritmi di scheduling: FCFC, Round Robin, SPN, SRT, HRRN, Feedback. La gestione dell’input-output. Interazione CPU-dispositivi-memoria. Architettura DMA. Schedulazione dei dischi. Il file system. Struttura e attributi di file e directory. Metodi di implementazione e ottimizzazione dei file system. 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 DANIELE D'AGOSTINO Ricevimento: Su appuntamento. ALESSANDRO ARMANDO Commissione d'esame ALESSANDRO ARMANDO (Presidente) ALESSIO MERLO DANIELE D'AGOSTINO (Presidente Supplente) LEZIONI INIZIO LEZIONI https://corsi.unige.it/9273/p/studenti-orario Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' 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 MODALITA' 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. Calendario appelli Data appello Orario Luogo Tipologia Note 07/06/2023 10:00 GENOVA Esame su appuntamento 07/06/2023 10:00 GENOVA Scritto + Orale 21/06/2023 10:00 GENOVA Scritto + Orale 21/06/2023 10:00 GENOVA Esame su appuntamento 07/07/2023 10:00 GENOVA Scritto + Orale 07/07/2023 10:00 GENOVA Esame su appuntamento 08/09/2023 10:00 GENOVA Esame su appuntamento 08/09/2023 10:00 GENOVA Scritto + Orale