Mjukvara Real-Time på Windows IoT Enterprise

Windows 10 mjuk realtid är en ny funktion med Windows 10 IoT Enterprise, version 21H2 som gör det möjligt för enhetstillverkare att introducera mjuka realtidsfunktioner på sina enheter.

Det här realtidsbeteendet introduceras via 4 viktiga inställningar:

  1. CPU-isolering: migrerar störningar på systemnivå från isolerade processorer, vilket minskar risken för jitter för användarens realtidsprogram

  2. Anpassad ISR/DPC-fästning på isolerade processorer: Alla maskinvaruavbrott dirigeras till systemet och icke-realtidskärnor, men genom att skriva en anpassad ISR/DPC-drivrutin kan du dirigera enhetsspecifika avbrott till realtidskärnorna.

  3. Prioritetsarv för mutexs: Den här inställningen säkerställer att tråden med högst prioritet körs, även i komplexa scenarier med flera trådar.

  4. Upp till 16 RT-trådprioritetsnivåer: Detta gör att programmeraren kan dela upp resurser mellan realtidsuppgifter för att säkerställa att de viktigaste körs först.

Vad är ett Real-Time operativsystem?

När du kör ett program ger ett normalt operativsystem deterministiska resultat, men ger en icke-deterministisk tid för att slutföra en uppgift. I ett realtidsoperativsystem är både resultatet av programkörningen och den tid det tar att hämta dessa resultat (åtminstone delvis) deterministiska.

Hård Real-Time jämfört med mjuk Real-Time

Ett hårt realtidsoperativsystem är ett där tiden som tas är deterministisk och förutsägbar till ett exakt ögonblick. Dessa operativsystem distribueras i användningsfall där fel med att hämta resultat i tid representerar ett totalt systemfel. Exempel är mikrostyrenheter i en bilmotor eller ett flygplan, skrivare, laserskärare osv. Azure Real-Time OS är ett exempel på ett sådant operativsystem.

Ett mjukt realtidsoperativsystem är ett där det finns ett litet tidsfönster för programslut i stället för ett exakt ögonblick på grund av lite jitter från operativsystemet. Mjuka realtidssystem, även om de är mindre exakta, kan köras på flera kärnor och införa färre begränsningar för program. Det här är den typ av realtidsprestanda som du kan förvänta dig av Windows 10 IoT Enterprise när du har använt den här guiden.

När behöver jag Real-Time prestanda?

Realtidsprestanda är inte nödvändigtvis snabbare prestanda. Det är bara förutsägbar prestanda. Om du vill ha bättre övergripande systemprestanda – mjuk realtid kanske inte är den bästa vägen för att uppnå det. Men om du har en verklig begränsning (till exempel en beräkning som måste utföras innan en robot miljö ändras eller en motor som måste aktiveras innan ett transportband flyttas) kan mjuk realtid vara vad du behöver.

Mjuka realtidsenheter används oftare i en bredare kontrollloop för att utlösa beteenden från en tillståndsdator. Mindre hårda realtidskontrollslingor sitter i den bredare slingan och fungerar på oberoende mikrostyrenheter tills den mjuka realtidsdatorn ger indata för att ändra sitt beteende. Många kommando- och kontrollloopar har krävande cykeltidskrav och behöver använda en hård realtidsenhet i loopen för direkt kontroll.

Lättare användningsfall Real-Time

Nästa: Så här konfigurerar du en enhet för Real-Time prestanda