Tags:
create new tag
view all tags

Programmazione di Sistemi Multicore

Corso di Laurea in Informatica, terzo anno

A.A. 2019-2020, primo semestre

Docente: Michele Martinelli

Ricevimento: per appuntamento al termine del corso.
E-mail: michele.martinelli AT uniroma1.it

Orario delle lezioni

GiornoOreAula
Martedý 16-19 Aula 1 - Via del Castro Laurenziano 7A
Giovedý 16-18 Aula 1 - Via del Castro Laurenziano 7A

Avvisi

*Form da compilare per gli interessati al corso (SOLO UNA VOLTA): *

https://forms.gle/yEXUsGyvsndcaWt49

Le lezioni avranno inzio il 1 ottobre 2019

il primo esonero Ŕ previsto per il 5 novembre, dalle 16 alle 18, Aula 1 - Via del Castro Laurenziano 7A

date di esame per la prima sessione (esame completo o secondo esonero): 14 Gennaio ore 16-18 , 4 Febbraio ore 16-18 , Aula 2L - Via del Castro Laurenziano 7A

Obiettivi e programma sintetico

Veloce ripasso di programmazione C (propedeutico per il resto del corso)
tipi primitivi, casting, controlli condizionali (if then else). controlli iterativi (while e for), array, matrici, funzioni, struct/typedef/union. Puntatori, aritmetica dei puntatori, stringhe in C. Programmazione multithread in C (pthread).

Sistemi embedded ed elettronica (propedeutico per il resto del corso)
introduzione ad Arduino. ADC e elettronica analogica, principali componenti elettronici di base: condensatori, diodi, transistor. Porte logiche (implementazione reale con transistor). Sensori: come "leggere" i diversi parametri ambientali (temperatura, umiditÓ).Esercizi ed esempi pratici con hardware reale.

FreeRTOS ("multithread" su sistemi embedded)
Introduzione ai sistemi real time, al sistema operativo FreeRTOS e la programmazioni dei dispositivi STM. programmazione C per sistemi embedded avanzati, nozioni di gestione della memoria e dello scheduler. Gestione multitasking, queue, interrupt e comunicazioni interprocesso. Esercizi ed esempi pratici con hardware reale.

MPI
Introduzione all'HPC con cenni ai super computer. MPI: che cos'Ŕ? A cosa serve? Operazioni point to point e di massa. Esercizi ed esempi pratici.

CUDA/OpenCL
Introduzione al calcolo su GPU. Paradigma di programmazioni su CUDA: da CPU a GPU e gestione della memoria. Come sfruttare il parallelismo e sfruttamento del framework. Esercizi ed esempi pratici.

applicazioni pratiche di programmazione su architetture reali (droni aerei e sottomarini).

Diario delle lezioni

martedý 1 ottobre 2019:

lezione introduttiva: cosa sono i sistemi embedded e quali sono le loro caratteristiche e limitazioni. Introduzione alla piattaforma Arduino. lezione_introduttiva.pdf

giovedý 3 ottobre 2019:

ripasso del linguaddio C: struttura di un programma, variabili, tipi primitivi, controlli condizionali, controlli iterativi, array, funzioni, puntatori, esercizi pratici. 1920_ripasso_C_1.pdf

martedý 8 ottobre 2019:

ripasso del linguaddio C: Allocazione Dinamica, Struct, Typedef, Union. Esercizi pratici. 1920_ripasso_C_2.pdf

introduzione ai thread in C: parallelismo, libreria pthread, concorrenza, ripasso dei meccanismi di sincronizzazione 1920_lezione2_multithread.pdf

giovedý 10 ottobre 2019:

POSIX thread: creazione di uno o pi¨ thread, exit, join. MUTEX: introduzione, creazione e cancellazione. Esercizi pratici. 1920_lezione3_multithread2.pdf

martedý 15 ottobre 2019:

Corrente, tensione, potenza, introduzione ai componenti elettronici di base (resistenze, diodi), legge di Ohm, Arduino, breadboard 1920_Lezione4_introduzione_elettronica.pdf

primi esperimenti con Arduino: installazione IDE, lampeggio LED integrato in Arduino, LED esterno, controllo di pi¨ LED 1920_Lezione4_Arduino.pdf

giovedý 17 ottobre 2019:

introduzione alle porte e ai pin di un microcontrollore. pulsanti e resistenze di pullup. Comandi seriali 1920_Lezione5-embedded_pullup.pdf

leggere un pulsante con Arduino, leggere un valore (resistore variabile) con un ingresso analogico di Arduino 1920_Lezione5_Arduino.pdf

A.A. Precedenti

A.A.20182019

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf 1920_Lezione4_Arduino.pdf r1 manage 907.0 K 2019-10-16 - 16:01 MicheleMartinelli  
PDFpdf 1920_Lezione4_introduzione_elettronica.pdf r1 manage 2527.1 K 2019-10-16 - 16:01 MicheleMartinelli  
PDFpdf 1920_Lezione5-embedded_pullup.pdf r1 manage 878.5 K 2019-10-17 - 19:19 MicheleMartinelli  
PDFpdf 1920_Lezione5_Arduino.pdf r1 manage 710.3 K 2019-10-17 - 19:19 MicheleMartinelli  
PDFpdf 1920_lezione2_multithread.pdf r1 manage 501.1 K 2019-10-09 - 09:26 MicheleMartinelli  
PDFpdf 1920_lezione3_multithread2.pdf r1 manage 1757.7 K 2019-10-11 - 09:40 MicheleMartinelli  
PDFpdf 1920_ripasso_C_1.pdf r1 manage 1585.6 K 2019-10-04 - 07:52 MicheleMartinelli  
PDFpdf 1920_ripasso_C_2.pdf r1 manage 2533.0 K 2019-10-09 - 09:26 MicheleMartinelli  
PDFpdf lezione_introduttiva.pdf r1 manage 4716.0 K 2019-10-01 - 17:53 MicheleMartinelli  
Edit | Attach | Watch | Print version | History: r153 < r152 < r151 < r150 < r149 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r153 - 2019-10-17 - MicheleMartinelli





 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback