Alessia SAGGESE | REAL TIME SYSTEMS AND APPLICATIONS
Alessia SAGGESE REAL TIME SYSTEMS AND APPLICATIONS
cod. 0622700097
REAL TIME SYSTEMS AND APPLICATIONS
0622700097 | |
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA | |
CORSO DI LAUREA MAGISTRALE | |
INGEGNERIA INFORMATICA | |
2022/2023 |
OBBLIGATORIO | |
ANNO CORSO 2 | |
ANNO ORDINAMENTO 2017 | |
PRIMO SEMESTRE |
SSD | CFU | ORE | ATTIVITÀ | |
---|---|---|---|---|
ING-INF/05 | 3 | 24 | LEZIONE | |
ING-INF/05 | 3 | 24 | ESERCITAZIONE | |
ING-INF/05 | 3 | 24 | LABORATORIO |
Obiettivi | |
---|---|
L’INSEGNAMENTO FORNISCE GLI ELEMENTI PER LA PROGETTAZIONE ED IMPLEMENTAZIONE DI APPLICAZIONI DI SISTEMA, CHE SI INTERFACCIANO A BASSO LIVELLO CON IL SISTEMA OPERATIVO, E DI DRIVER PER LE PERIFERICHE, CON PARTICOLARE ENFASI VERSO SISTEMI CHE DEVONO OPERARE IN TEMPO REALE. CONOSCENZE E CAPACITÀ DI COMPRENSIONE ARCHITETTURA DI UN SISTEMA OPERATIVO E DELLE SYSTEM CALL. GESTIONE DI PROCESSI. SINCRONIZZAZIONE E MECCANISMI INTER-PROCESS COMMUNICATION. GESTIONE DELLA MEMORIA VIRTUALE. CREAZIONE E GESTIONE DI KERNEL MODULE. DRIVER DI PERIFERICHE A CARATTERI ED A BLOCCHI. ALLOCAZIONE DI RISORSE PER LE PERIFERICHE (PORTE I/O, MEMORIA, CANALI DMA, IRQ) CON DIVERSI TIPI DI BUS. ESEMPI CONCRETI DI DRIVER A CARATTERI ED A BLOCCHI. CAPACITÀ DI APPLICARE CONOSCENZE E COMPRENSIONE REALIZZARE UN’APPLICAZIONE DI SISTEMA E UN DRIVER DI PERIFERICA PER SISTEMI REAL TIME. |
Prerequisiti | |
---|---|
NON VI SONO PROPEDEUTICITA' DA RISPETTARE PER PARTECIPARE A QUESTO CORSO |
Contenuti | |
---|---|
Unità didattica 1: Concetti di base per il System Programming (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 9/6/0) - 1 (3 ORE LEZIONE): Introduzione al System Programming e allo sviluppo di driver per dispositivi per Sistemi Real Time -2 (3 ORE LEZIONE): Operazioni basilari I/O: Panoramica sui File I/O, descrittori di file, permessi per accesso ai file, file system, buffering I/O, INodes, gestione di directory e file -3 (3 ORE ESERCITAZIONE): Operazioni basilari I/O: Panoramica sui File I/O, descrittori di file, permessi per accesso ai file, file system, buffering I/O, INodes, gestione di directory e file -4 (3 ORE LEZIONE): Processi e programmi, system call per la gestione dei processi, utenti e gruppi, politiche di schedulazione, segnali -5 (3 ORE ESERCITAZIONE): Processi e programmi, system call per la gestione dei processi, utenti e gruppi, politiche di schedulazione, segnali CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Basi sulla gestione di file system e processi su sistemi Linux e Real Time CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Progettazione e implementazioni di librerie per la gestione dei processi e di file Unità didattica 2: Comunicazione InterProcess (IPC) (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 9/15/0) -1 (3 ORE LEZIONE): IPC Pipes e FIFO -2 (3 ORE LEZIONE): IPC Memoria Condivisa -3 (3 ORE ESERCITAZIONE): IPC Pipes, FIFO e Memoria Condivisa -4 (3 ORE ESERCITAZIONE): IPC Pipes, FIFO e Memoria Condivisa -5 (3 ORE LEZIONE): IPC Semafori -6 (3 ORE ESERCITAZIONE): IPC Semafori, Problemi comuni di sincronizzazione (reader/Writers, Producers/Consumers) -7 (3 ORE ESERCITAZIONE): IPC Semafori, Problemi comuni di sincronizzazione (reader/Writers, Producers/Consumers) CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Acquisire le conoscenze di base ed avanzate sui meccanismi di Inter Process Communication (IPC) CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Progettazione e Implementazione di librerie per l'IPC e la gestione di semplici problemi di sincronizzazione tra processi Unità didattica 3: Progettazione e implementazione di moduli Kernel (ORE LEZIONE/ESERCITAZIONE/LABORATORIO 9/9/0) -1 (3 ORE LEZIONE): Modello di Programmazione di Moduli per Kernel Linux; Configurazione e Building del Kernel -2 (3 ORE ESERCITAZIONE): Modello di Programmazione di Moduli per Kernel Linux; Configurazione e Building del Kernel -3 (3 ORE LEZIONE): Kernel Modules Core, Spinlocks, Gestione del tempo, SoftIRQ, Gestione delle interruzione Kernel -4 (3 ORE LEZIONE): Linux Kernel Driver: Dispositivi a caratteri. Dispositivi ID, Registrazione Dispositivi; System Call per Dispositivi a caratteri (open,release, write, read, llseek); polling e ioctl() -5 (3 ORE ESERCITAZIONE): Linux Kernel Driver: Dispositivi a caratteri. Dispositivi ID, Registrazione Dispositivi; System Call per Dispositivi a caratteri (open,release, write, read, llseek) 6- (3 ORE ESERCITAZIONE): Linux Device Model, esempio di I2C (Astrazione della piattaforma, strutture dati e driver di dispositivi non mappati su memoria) CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Acquisire le conoscenze di base ed avanzate sui modello di programmazione dei driver in sistemi Linux-based per device a caratteri e non-memory mapped CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Realizzare drivers per la gestione di dispositivi a caratteri Unità didattica 4: Gestione della memoria(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 6/3/0) -1 (3 ORE LEZIONE): Allocazione della memoria nel Kernel Linux, MMU e VMA; TLB; Allocazione delle pagine e SLAB -2 (3 ORE LEZIONE) :DMA Mapping e Streaming; DMA Controller; DMA Channel: Esempio di esecuzione del DMA Mapping a buffer singolo -3 (3 ORE ESERCITAZIONE): DMA Mapping and Streaming; DMA Controller; DMA Channel: Esempio di esecuzione del DMA Mapping a buffer singolo CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Acquisire le conoscenze di base ed avanzate sulla gestione della memoria per device drivers gestiti tramite DMA e DMA Channels CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Realizzare device drivers per la gestione di memoria tramite DMA e DMA Channels Unità didattica 5: Mapping IRQ(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 3/3/0) -1 (3 ORE LEZIONE): Linux Kernel IRQ Mapping attraverso esempi -2 (3 ORE ESERCITAZIONE): Linux Kernel IRQ Mapping attraverso esempi CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Acquisire le conoscenze di base ed avanzate sulla gestione delle IRQ in sistemi Linux-Based CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Realizzare librerie per la gestione di IRQ per device drivers TOTALE ORE LEZIONE/ESERCITAZIONE/LABORATORIO 36/36/0 |
Metodi Didattici | |
---|---|
IL CORSO SI ARTICOLA IN UN INSIEME DI LEZIONI TEORICHE (36 ORE), ESERCITAZIONI (36 ORE). NELLE ESERCITAZIONI SARANNO PRESENTATI ALCUNI ESEMPI IN GRADO DI DECLINARE IN CONCRETO QUANTO ILLUSTRATO DAL PUNTO DI VISTA TEORICO. |
Verifica dell'apprendimento | |
---|---|
"LA VALUTAZIONE DEGLI ALLIEVI SARÀ DECLINATA ATTRAVERSO LE SEGUENTI FASI: - VALUTAZIONE DELLA CAPACITÀ DA PARTE DELL’ALLIEVO DI SAPER PROGETTARE ED IMPLEMENTARE APPLICAZIONI DI SISTEMA E DRIVER PER SISTEMI REAL TIME: GLI ALLIEVI SARANNO DIVISI IN GRUPPI DI LAVORO, E DOVRANNO DOCUMENTARE E SVILUPPARE, IN TUTTE LE SUE FASI, LA PROGETTAZIONE E REALIZZAZIONE DI UN APPLICAZIONE DI SISTEMA E DRIVERS PER DISPOSITIVI PER APPLICAZIONI REAL TIME. - VALUTAZIONE DELL’ACQUISIZIONE DA PARTE DELL’ALLIEVO DEGLI ARGOMENTI TEORICI: L’ALLIEVO, A VALLE DELLA CONSEGNA DEL PROGETTO, DOVRÀ MOSTRARE DI AVER ACQUISITO COMPETENZE SUGLI ARGOMENTI TEORICI ATTRAVERSO UNA PROVA ORALE IN CUI VERRÀ DISCUSSO IL PROGETTO SVILUPPATO." |
Testi | |
---|---|
"ADVANCED PROGRAMMING IN THE UNIX ENVIRONMENT", RICHARD W. STEVENS , STEPHEN A. RAGO. ADDISON-WESLEY PROFESSIONAL; 3° EDIZIONE "LINUX DEVICE DRIVERS DEVELOPMENT" JONATHAN CORBET, ALESSANDRO RUBINI, GREG KROAH-HARTMAN. O'REILLY MEDIA |
Altre Informazioni | |
---|---|
L'INSEGNAMENTO E' EROGATO IN ITALIANO |
BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-08-21]