REAL TIME SYSTEMS AND APPLICATIONS

Alessia SAGGESE 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
CFUOREATTIVITÀ
324LEZIONE
324ESERCITAZIONE
324LABORATORIO
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]