Entwickeln einer Soft Real-Time-Anwendung

Sobald ein Gerät für die Echtzeitleistung konfiguriert ist, kann eine Anwendung mit Win32-Standard-APIs in Echtzeit ausgeführt werden. Die einzigen Faktoren, die einer Thread- oder Prozess-Echtzeitleistung verleihen, sind die Rangfolge der Thread-/Prozesspriorität und die CPU-Kernaffinität.

Um die Echtzeitleistung für einen bestimmten Thread oder Prozess zu erhalten, sollte die Priorität im Bereich der Echtzeitleistung liegen, und die Affinität sollte so festgelegt werden, dass sie auf den Echtzeitkernen ausgeführt wird.

Konfigurieren eines Prozesses für Real-Time

  1. Verwenden Sie die SetPriorityClass-Funktion für: Legen Sie das ProcessPriorityClass-Attribut auf fest REALTIME_PRIORITY_CLASS.
  2. Verwenden Sie die SetProcessAffinityMask-Funktion , um festzulegen, dass der Prozess ausschließlich auf den Kernen ausgeführt wird, die für die Echtzeitanwendung reserviert sind.

Konfigurieren eines Threads für Real-Time

  1. Verwenden Sie die NtSetInformationThread-Funktion , um threadBasePriority auf einen Wert zwischen 16 und 31 festzulegen.
  2. Verwenden Sie die SetThreadAffinityMask-Funktion , um festzulegen, dass der Thread ausschließlich auf den Kernen ausgeführt wird, die für die Echtzeitanwendung reserviert sind.