Azonnal vagy valós időben?
Lásd alább a kérdés tisztázását, hogy "Mit takar az a fogalom hogy real-time?"
A DMA érdekes téma. Attól hogy pl. egy SPI hardverre DMA-zol attól még a CPU tud dolgozni más I/O-kkal, hiszen
1. felkonfolod a DMA kontrollert (néhány byte) és elstartolod
2. végzed a dolgodat, de másik I/O-k felé (háttérben tököl az adott hardverrel a DMA)
3. a DMA ha kész, interruptot kap a CPU a DMA kontrollertől
A nagyobb gáz, amikor pl. memória defragmentáció miatt RAM-RAM DMA van, ez tényleg meg tudja akasztani a CPU-t a DMA-zás idejére. Ezen azzal lehet segíteni, hogy RT rendszereknél a reagálási idő korlátait figyelembe véve az egyazon RAM-RAM DMA folyamattal másolható blokkméretet a reagálási idővel összhangban korlátozod. Extrém reagálási idő követelmény esetén RAM-RAM DMA off.
Érdekes előadás: https://www.slideshare.net/jserv/realtime-linux
Itt azt vesézi ki az előadó, hogy az RT Linux nem minden követelményhez elég, és csináltak módosításokat (performancia vesztés árán), hogy az esemény bekövetkezésétől számított legrosszabb lekezelési késleltetés szűkebb specifikációt is teljesítsen.
Ha pedig az időosztásos Linux nem elég, akkor mint fentebb már kiveséztük,
- BeagleBone PRU-ja (mint 32 bites 200 MHz-es I/O processzor)
- vagy egyéb külső mikrovezérlő
végezze a szűk időkorlátra specifikált feladatokat és a Linux csak lazább időkorlátokkal rendelkező folyamattal foglalkozzék.