Edocti
Training tehnic avansat pentru inginerul software de mâine
Edocti Training

Practical RTOS and RT programming

Avansat
28 h
4.9 (105 recenzii)

Sesiuni programate

Începe: 03.11.2026 , 4 zile
Live online Confirmat RO ● Instructor-led
Practical RTOS and RT programming

Real‑time aplicat în practică: Proiectează și implementează aplicații bazate pe RTOS rulând pe hardware real, utilizând QNX.

Parcurge și înțelege pas cu pas conceptele de schedulere (planificatoare de sarcini), thread‑uri, mecanisme de sincronizare și managementul precis al timpului.

Construiește pipeline‑uri IPC (Inter-Process Communication) fiabile și învață să calculezi și să controlezi latența, jitter‑ul și determinismul execuției.

Dobândești experiență practică: Aproximativ 70% din curs este constituit din laboratoare hands‑on, lucrând direct cu QNX Momentics și plăci de dezvoltare BeagleBone.

Cum te ajută acest curs: Îți oferă abilitatea de a aplica în siguranță constrângeri stricte de timp (hard real-time) în sisteme software de producție critice.

Cui i se adresează: Inginerilor cu experiență în C/C++ care lucrează (sau vizează) proiecte cu cerințe hard real‑time (ex: Automotive, aerospațial, automatizări industriale).

Opțional, agenda include deep dives în teoria scheduling‑ului, analiză de performanță (tracing), afinitate multicore și standarde de safety (ex. MISRA).

Abilități dobândite

Arhitectură RTOS Task Scheduling Multithreading & Sincronizare POSIX IPC QNX Momentics Optimizare Multicore Controlul Latenței Deployment Hardware

Curriculum

Intro practică în RTOS

  • Sisteme embedded time‑triggered
  • Introducere în RTOS
  • Schedulers: tehnici principale; priority inheritance; stack sharing
  • Implementări simple de scheduler pentru a înțelege structurile de date și context switching
  • Reguli de bază în aplicații real‑time (dos and don'ts)

Primul proiect QNX

  • Implementăm un producer–consumer cu garanții de timeout în Momentics
  • Rulare, copiere pe target, debugging, profiling
  • Comenzi QNX de bază și partitioning
  • Scop: familiarizare cu mediul de dezvoltare QNX

Arhitectura Neutrino

  • Prezentare la nivel înalt a componentelor cheie (table of contents pentru modulele detaliate)

Arhitectura INTEGRITY RTOS

  • Modul scurt cu particularități INTEGRITY

Threads și procese

  • Procese vs. threads; creare
  • Sincronizare: joins, mutexes, semaphores, condition variables, read‑write locks, sleepon locks, barriers
  • Controlul timpilor de așteptare (timeouts, absolut vs. relativ)
  • QNX thread pools

Time, timers and clocks

  • Structuri de date esențiale pentru timekeeping
  • Timpul în kernel: operare periodică, clock ticks
  • Timere pentru aplicații time‑triggered
  • Kernel timeouts și stări de așteptare

IPC Programming

  • POSIX IPC: transfer de date și shared memory
  • Sincronizare: semaphores, events, signals, file locks, named mutexes
  • Neutrino‑specific IPC

Subiecte multicore

  • Proiectarea aplicațiilor pentru multicore
  • Scheduling și întreruperi pe multicore
  • Processor affinity
  • Inter‑core synchronization

Crearea unei imagini QNX

  • Construirea și personalizarea unei imagini QNX pentru BeagleBone

Aplicație: rețea de senzori cu constrângeri real‑time

  • Lucru în echipă: topologie stea, procesare de date
  • Constrângeri real‑time peste rețea

Module opționale

Subiecte avansate real‑time (opțional)

  • Teoria scheduling‑ului: Rate‑Monotonic, Deadline‑Monotonic, EDF; response‑time analysis
  • Protocoale de acces la resurse: Priority Inheritance vs. Priority Ceiling; bounded blocking
  • Măsurarea latenței și jitter‑ului: cyclictest; high‑res timers; alegerea ceasului
  • Tracing și profiling: LTTng, perf, ftrace; flame graphs; diagrame de timing la nivel de sistem
  • Cozi lock‑free și ring buffers pentru comunicare ISR ↔ main; memory barriers; efecte de cache
  • Interrupt affinity, CPU isolation și comportament predictibil pe multicore
  • DMA și căi zero‑copy; determinismul I/O
  • Sincronizare de timp pentru sisteme RT distribuite: PTP/IEEE‑1588
  • Siguranță și standarde: MISRA C, programare defensivă, analiză statică
  • Particularități QNX: adaptive partitioning, SchedFIFO/SchedRR/Sporadic Server, pulses, channels

Structura zilei de curs

  • Part 1: 09:00–10:30
  • Break: 10:30–10:45
  • Part 2: 10:45–12:15
  • Lunch break: 12:15–13:15
  • Part 3: 13:15–15:15
  • Break: 15:15–15:30
  • Part 4: 15:30–17:30

Ai participat la acest curs?

Opinia ta este foarte importantă pentru noi. Spune-ne cum a fost experiența ta și ajută-ne să îmbunătățim acest curs pentru viitorii participanți.

Ofera feedback

Vrei să afli mai multe? Suntem aici să te ajutăm!

Sau scrie-ne direct la training@edocti.com.