Sviluppo di un'applicazione soft Real-Time

Dopo aver configurato un dispositivo per le prestazioni in tempo reale, un'applicazione può essere impostata per l'esecuzione in tempo reale usando le API Win32 standard. Gli unici fattori che daranno a un thread o a un processo le prestazioni in tempo reale sono la classificazione della priorità thread/processo e l'affinità di core CPU.

Per ottenere prestazioni in tempo reale in un determinato thread o processo, la priorità deve essere nell'intervallo di prestazioni in tempo reale e la sua affinità deve essere impostata per l'esecuzione nei core in tempo reale.

Configurare un processo per Real-Time

  1. Usare la funzione SetPriorityClass per impostare l'attributo ProcessPriorityClass del processo su REALTIME_PRIORITY_CLASS.
  2. Usare la funzione SetProcessAffinityMask per impostare il processo da eseguire esclusivamente sui core riservati per l'applicazione in tempo reale

Configurare un thread per Real-Time

  1. Usare la funzione NtSetInformationThread per impostare ThreadBasePriority del thread su un valore compreso tra 16 e 31
  2. Usare la funzione SetThreadAffinityMask per impostare il thread in modo che venga eseguito esclusivamente sui core riservati per l'applicazione in tempo reale