Tekninen näyttö11 min lukuaika

Reaaliaikaydin ei yksin riittänyt: 10 ms Linux-ohjaustestin tulokset

Kaksi ohjainta, yhden millisekunnin jitteriraja ja monta hylättyä kokoonpanoa. Tässä ovat tulokset ja niiden rajat.

Ohjainten ajoitustestipenkki, jossa on kaksi ohjainta, I/O-moduuleja, oskilloskooppi ja jitterihistogrammit

Tietoa kirjoittajasta

Dr. Mehran Kiani-Oshtorjani

Teollisuusohjelmistojen ja simuloinnin asiantuntija

Mehran Kiani-Oshtorjani on konetekniikan tohtori ja ohjelmistokehittäjä, jonka työ kattaa reaaliaikasimuloinnin, fluiditekniikan, teollisuusohjauksen ja yhdistetyt ohjelmistot. Hänen LUT-yliopistossa tekemänsä väitöstutkimus käsitteli laskennallisesti tehokkaita menetelmiä teollisiin reaaliaikajärjestelmiin.

Tekniset pääkohdat

  • PREEMPT_RT yksin ylitti kummallakin laitteella yhden millisekunnin jitterirajan.
  • PREEMPT_RT ja SCHED_FIFO-prioriteetti 80 läpäisivät neljä vakaan tilan ajoa.
  • Tulos koskee rajattua 10 ms pilottiprofiilia eikä ole yleinen reaaliaika- tai turvallisuushyväksyntä.

Jitteri on jakauma, ei adjektiivi

Linux-järjestelmän kutsuminen deterministiseksi ilman jaksoa, kuormaa, kestoa ja enimmäisarvoa ei tue päätöstä. Ratkaisevaa on, pysyykö havaittu pahin tapaus koneen aikabudjetissa.[3][4][5]

PREEMPT_RT tekee useammista ytimen poluista keskeytettäviä. SCHED_FIFO muuttaa ajovalmiiden tehtävien etusijaa. Ne ratkaisevat eri osia samasta ongelmasta.[2][3]

Sovi hyväksymisrajat ennen testiä

10 ms ajo hyväksyttiin vain, kun enimmäisjitteri oli korkeintaan 1 ms, ohitettuja ja yliajettuja syklejä oli nolla, tilannekuva enintään 20 ms vanha ja julkaisu enintään 1 ms.[1]

Läpäissyt kokoonpano

PREEMPT_RT ja SCHED_FIFO-prioriteetti 80 läpäisivät testin molemmilla ohjaimilla. Neljän ajon enimmäisjitteri oli 0,063612–0,094448 ms ilman ohitettuja syklejä, yliajoja tai muistinkasvua.[1]

OhjainKuormaJitteri max.Tilannekuvan ikäJulkaisuOhitettu / yliajo
AEi0,085877 ms1,982421 ms0,096610 ms0 / 0
BEi0,063612 ms9,277714 ms0,064073 ms0 / 0
AKyllä0,094448 ms3,851881 ms0,081295 ms0 / 0
BKyllä0,067025 ms9,068315 ms0,079147 ms0 / 0

Hylätyt ajot selittävät onnistumisen

Vakio- tai viritetty kokoonpano tuotti 2,258783–3,662989 ms. PREEMPT_RT ilman FIFOa paransi tulosta, mutta jäi arvoilla 1,014743 ja 1,340064 ms rajan ulkopuolelle.[1][2][3]

  • Mittaa koko ajoituskokoonpano, ei vain ytimen nimeä.
  • Pidä verkko, lokitus ja estävät I/O:t poissa syklisestä säikeestä.
  • Arkistoi hylätyt ajot parhaiden tulosten rinnalle.

Mitä tulos osoittaa ja mitä ei

Tulos tukee 10 ms pilottitutkimuksen jatkamista. Se ei osoita lopullista hyväksyntää, fyysisen I/O:n ajoitusta, pitkäaikaiskäyttäytymistä, arvojen oikeellisuutta tai safety-kelpoisuutta.[1]

Avoinna ovat kylmäkäynnistys kuormalla, 100 ms profiilit, saman ytimen palvelukilpailu, backendin tuoreus ja päästä päähän -arvon tarkistus.[1]

Seuraavan testin pitää yrittää rikkoa tulos

  1. Käynnistä kylmänä kaikkien kuormien alkaessa.
  2. Aja palvelu ja runtime samalla ytimellä.
  3. Jatka niin pitkään, että lämpötila ja lokien kierto vaikuttavat.
  4. Mittaa fyysinen I/O ohjelmiston aikaleimojen lisäksi.
  5. Julkaise raakadata, kokoonpano ja hylätyt ajot.

Usein kysytyt kysymykset

Takaako PREEMPT_RT deterministisen ohjauksen?

Ei. Laitteisto, ajurit, prioriteetit, kuorma ja sovellus ratkaisevat mitatun tuloksen.

Miksi SCHED_FIFO?

Se antaa korkeamman prioriteetin ohjaussäikeen keskeyttää normaalit tehtävät, kun työ on rajattu ja valvottu.

Onko tämä tuotantohyväksyntä?

Ei. Kyse on neljästä vakaan tilan pilottiajosta kahdella laitteella ja julkaistuista rajoituksista.

Lähteet ja standardit

  1. MCR Demo 1 steady-state 10 ms timing evidenceBootCtrl, 26 July 2026
  2. PREEMPT_RT theory of operationLinux kernel documentation
  3. sched(7): overview of CPU schedulingLinux man-pages project
  4. clock_nanosleep(2): high-resolution process sleepLinux man-pages project
  5. Cyclictest documentationLinux Foundation Real-Time Linux project

BootCtrl Engineering tarkisti tekniset väitteet ja lähdelinkit viimeksi 26. heinäkuuta 2026. Tuoteväitteet tarkistetaan nykyisiä toteutusrepoja vasten; tiekarttatyötä ei esitetä julkaistuna ominaisuutena.

Määritä aikabudjetti ennen ohjainta

Tuo jakso, I/O-polku, kuorma ja virhekriteerit. Muutamme ne mitattavaksi pilotiksi.

Keskustele pilotista