Real-time besturingssysteem (RTOS): componenten, typen, voorbeelden

โšก Slimme samenvatting

Een realtime besturingssysteem (RTOS) ondersteunt applicaties die gegevens moeten verwerken en op gebeurtenissen moeten reageren binnen strikte, voorspelbare tijdslimieten. Dit gebeurt door middel van prioriteitsgebaseerde planning en snelle, deterministische taakwisseling, zodat kritieke deadlines nooit worden gemist.

  • โ€‹ Definitie: Een RTOS verwerkt binnenkomende gegevens binnen vaste tijdslimieten, meestal zonder buffervertraging.
  • ๐ŸŽฏ Waarom het gebruiken: Prioriteitsgestuurde planning scheidt kritieke taken en maakt een modulair, testbaar taakontwerp mogelijk.
  • ๐Ÿงฉ Componenten: Scheduler, symmetrische multiprocessing, functiebibliotheek, geheugenbeheer en snelle dispatch-latentie.
  • ๐Ÿ—‚๏ธ types: Harde, vaste en flexibele realtime-systemen verschillen in de mate waarin deadlines strikt worden gehandhaafd.
  • โ€‹ GPOS versus RTOS: Een RTOS is gericht op embedded systemen met minimale, voorspelbare interruptlatentie.
  • ๐Ÿค– AI-hoek: Machine learning draait op RTOS-edge-apparaten, terwijl Copilot het programmeren met FreeRTOS versnelt.

Real-Time Operating-systeem (RTOS)

Wat is realtime Operating-systeem (RTOS)?

A real-time besturingssysteem (RTOS) is een besturingssysteem Het is bedoeld voor realtime-applicaties die gegevens verwerken zodra ze binnenkomen, meestal zonder buffervertraging. De volledige naam van RTOS is realtime besturingssysteem.

In een RTOS worden de benodigde verwerkingstijden berekend in stappen van tienden van een seconde. Het is een tijdgebonden systeem met vaste tijdslimieten. In dit type systeem moet de verwerking binnen de gespecificeerde tijdslimieten plaatsvinden. Anders zal het systeem falen.

Waarom een โ€‹โ€‹RTOS gebruiken?

Hieronder volgen belangrijke redenen om een โ€‹โ€‹RTOS te gebruiken:

  • Het biedt op prioriteiten gebaseerde planning, waarmee u analytische verwerking kunt scheiden van niet-kritieke verwerking.
  • Het realtime besturingssysteem biedt API-functies die zorgen voor schonere en compactere applicatiecode.
  • AbstracDoor timingafhankelijkheden te minimaliseren en een taakgericht ontwerp te hanteren, ontstaan โ€‹โ€‹er minder onderlinge afhankelijkheden tussen modules.
  • Een RTOS biedt modulaire, taakgebaseerde ontwikkeling, wat modulaire, taakgebaseerde testen mogelijk maakt.
  • De taakgerichte API stimuleert modulaire ontwikkeling, omdat een taak doorgaans een duidelijk omschreven rol heeft. Hierdoor kunnen ontwerpers en teams onafhankelijk van elkaar aan hun deel van het project werken.
  • Een RTOS is gebeurtenisgestuurd en verspilt geen verwerkingstijd aan gebeurtenissen die niet plaatsvinden.

Onderdelen van RTOS

Onderdelen van RTOS

Componenten van realtime Operating-systeem

Hieronder volgen de belangrijkste onderdelen van een RTOS:

De planner: Dit onderdeel van een RTOS bepaalt de volgorde waarin taken worden uitgevoerd, meestal op basis van hun prioriteit.

Symmetrische multiprocessing (SMP): Het betreft een aantal verschillende taken die door het RTOS kunnen worden afgehandeld, waardoor parallelle verwerking mogelijk is.

Functiebibliotheek: Het is een belangrijk onderdeel van een RTOS dat fungeert als interface tussen de kernel en de applicatiecode. De applicatie stuurt haar verzoeken naar de kernel via een functiebibliotheek, zodat deze de gewenste resultaten kan produceren.

Geheugen management: Dit element is nodig in het systeem om geheugen toe te wijzen aan elk programma, en het is het belangrijkste element van het RTOS.

Snelle verzendvertraging: Het is het tijdsinterval tussen het moment waarop het besturingssysteem de voltooiing van een taak kan identificeren en de daadwerkelijke tijd die de thread in de wachtrij nodig heeft om met de verwerking te beginnen.

Door de gebruiker gedefinieerde dataobjecten en klassen: Een RTOS maakt gebruik van programmeertalen zoals C of C++, die georganiseerd moeten worden volgens hun werking.

Soorten RTOS

Er zijn drie soorten RTOS:

Moeilijke realtime

In een hard RTOS wordt de deadline zeer strikt gehanteerd, wat betekent dat een bepaalde taak op het gespecificeerde geplande tijdstip moet beginnen met uitvoeren en binnen de toegewezen tijdsduur moet worden voltooid.

Voorbeelden: Medische intensive care-systemen, vliegtuigsystemen, enz.

Vaste realtime

Ook dit type RTOS moet zich aan de deadlines houden. Het missen van een deadline hoeft echter geen grote gevolgen te hebben, maar kan wel ongewenste effecten veroorzaken, zoals een aanzienlijke kwaliteitsvermindering van het product.

Voorbeeld: Diverse soorten multimedia-applicaties.

Zachte realtime

Een soft real-time RTOS accepteert enige vertraging van het besturingssysteem. In dit type RTOS is er een deadline voor een specifieke taak, maar een kleine vertraging is acceptabel. Deadlines worden dus flexibel afgehandeld door dit type RTOS.

Voorbeeld: Online transactiesystemen en systemen voor prijsopgaven voor vee.

Termen die worden gebruikt in RTOS

Hieronder volgen enkele essentiรซle termen die in RTOS worden gebruikt:

  • Taak: Een groep samenhangende taken die samen een bepaalde systeemfunctionaliteit bieden.
  • Job: Een taak is een klein stukje werk dat aan een verwerker kan worden toegewezen en waarvoor al dan niet middelen nodig zijn.
  • Vrijgavetijd van een taak: Het is het moment waarop een taak klaar is voor uitvoering.
  • Uitvoeringstijd van een klus: Het is de tijd die nodig is om een โ€‹โ€‹taak af te ronden.
  • Deadline van een klus: Het is het tijdstip waarop een taak voltooid moet zijn.
  • processoren: Ze worden ook wel actieve hulpbronnen genoemd. Ze zijn belangrijk voor de uitvoering van een klus.
  • Relatieve deadline: De maximaal toegestane reactietijd van een taak wordt de relatieve deadline genoemd.
  • Reactietijd van een klus: Het is de tijdsduur vanaf het moment dat een taak wordt gestart tot het moment dat deze is voltooid.
  • Absolute deadline: Dit is de relatieve deadline, inclusief het moment van publicatie.

Kenmerken van RTOS

Hier zijn belangrijke kenmerken van RTOS:

  • Neemt zeer weinig geheugen in beslag.
  • Verbruikt minder grondstoffen
  • Reactietijden zijn zeer voorspelbaar
  • Presteert betrouwbaar, zelfs in een onvoorspelbare omgeving.
  • De kernel slaat de status van de onderbroken taak op en bepaalt vervolgens welke taak hij daarna moet uitvoeren.
  • De kernel herstelt de status van de taak en geeft de controle over de CPU door aan die taak.

Factoren voor het selecteren van een RTOS

Hieronder vindt u essentiรซle factoren waarmee u rekening moet houden bij het kiezen van een RTOS:

  • prestaties: Prestaties zijn de belangrijkste factor waarmee rekening moet worden gehouden bij de keuze van een RTOS.
  • middleware: Als een realtime besturingssysteem geen middleware-ondersteuning biedt, ontstaat het probleem van tijdrovende procesintegratie.
  • foutloos: RTOS-systemen zijn ontworpen om foutloos te zijn, waardoor de kans op een fout tijdens het uitvoeren van een taak minimaal is.
  • Gebruik van ingebedde systemen: De programma's van een RTOS zijn klein van formaat, waardoor RTOS veel gebruikt wordt voor embedded systemen.
  • Maximale benutting: Een RTOS helpt u om de systeembronnen optimaal te benutten.
  • Taakverschuiving: De omschakelingstijd tussen de taken is erg kort.
  • Unieke kenmerken: Een goed RTOS moet capabel zijn en extra functies bieden, zoals de manier waarop het een commando uitvoert en hoe efficiรซnt het het systeemgeheugen beschermt.
  • 24/7 prestaties: Een RTOS is ideaal voor applicaties die 24/7 moeten draaien.

Verschil tussen GPOS en RTOS

Algemeen doel Operatingsysteem (GPOS) Real-Time Operating-systeem (RTOS)
Het wordt gebruikt voor desktop-pc's en laptops. Het wordt alleen toegepast op de embedded applicatie.
Procesgebaseerde planning. Er wordt gebruikgemaakt van tijdsgebaseerde planning, zoals round-robin planning.
De interruptlatentie wordt niet als even belangrijk beschouwd als in een RTOS. De onderbrekingsvertraging is minimaal, gemeten in enkele microseconden.
Er is geen mechanisme voor prioriteitsinversie aanwezig in het systeem. Het prioriteitsinversiemechanisme is aanwezig, waardoor het niet door het systeem kan worden gewijzigd.
De werking van de kernel kan al dan niet worden onderbroken. De werking van de kernel kan worden onderbroken.
Prioriteitsomkering blijft onopgemerkt. Geen garanties voor voorspelbaarheid.

Toepassingen van realtime Operating-systeem

Real-time systemen worden gebruikt bij:

  • Reserveringssystemen voor luchtvaartmaatschappijen.
  • Luchtverkeersleidingssystemen.
  • Systemen die zorgen voor onmiddellijke updates.
  • Elk systeem dat actuele, minuut-voor-minuut informatie over aandelenkoersen levert.
  • Defensietoepassingssystemen zoals RADAR.
  • Netwerkgebaseerde multimediasystemen.
  • Commandobesturingssystemen.
  • Internettelefonie.
  • Antiblokkeersystemen.
  • Hartpacemakers.

Nadelen van RTOS

Hieronder volgen de nadelen van het gebruik van een RTOS:

  • Een RTOS voert een minimaal aantal taken tegelijk uit en concentreert zich alleen op die applicaties die een fout bevatten, zodat het deze kan vermijden.
  • Een RTOS concentreert zich op een paar taken. Daarom is het voor deze systemen erg moeilijk om meerdere taken tegelijk uit te voeren.
  • Voor een RTOS zijn specifieke drivers nodig om een โ€‹โ€‹snelle reactietijd op interruptsignalen te garanderen, wat bijdraagt โ€‹โ€‹aan het behoud van de snelheid.
  • Een RTOS verbruikt veel resources, waardoor dit systeem duur is.
  • Taken met een lage prioriteit moeten mogelijk lang wachten, omdat het RTOS prioriteit geeft aan de nauwkeurigheid van de programma's die worden uitgevoerd.
  • In realtime besturingssystemen vindt er een minimaal aantal taakwisselingen plaats.
  • Het maakt gebruik van complexe algoritmen die moeilijk te begrijpen zijn.
  • Een RTOS gebruikt veel systeembronnen, wat soms niet geschikt is voor het systeem.

Veelgestelde vragen

RTOS staat voor Real-Time. OperaHet systeem is ontworpen om gegevens te verwerken en op gebeurtenissen te reageren binnen strikte, voorspelbare tijdslimieten, meestal zonder buffervertraging.

Populaire realtime besturingssystemen zijn onder andere FreeRTOS, VxWorks, Zephyr, QNX, RTLinux en Micrium ยตC/OS. Ze worden gebruikt in embedded systemen, auto's, medische apparatuur en industriรซle apparaten die nauwkeurige timing vereisen.

Standaard Windows Linux is een algemeen toepasbaar programma, geen realtime-programma. Er bestaan โ€‹โ€‹wel realtime-varianten, zoals de Linux PREEMPT_RT-patch. Windows IoT met realtime-uitbreidingen, voor deterministische workloads.

Jitter is de variatie in de tijd die een RTOS nodig heeft om op een gebeurtenis te reageren. Een lagere jitter betekent een voorspelbaardere timing, en daarom minimaliseren hard real-time systemen dit.

Een contextwissel bewaart de status van de huidige taak en laadt een andere, zodat de scheduler een taak met hogere prioriteit kan uitvoeren. Snelle contextwisseling zorgt ervoor dat de reactietijden van RTOS voorspelbaar blijven.

Prioriteitsinversie treedt op wanneer een taak met lage prioriteit een bron bezet houdt die een taak met hoge prioriteit nodig heeft. RTOS-kernels gebruiken prioriteitsovererving of plafondprotocollen om lange, onvoorspelbare vertragingen te voorkomen.

Machine learning draait op RTOS-gebaseerde edge-apparaten voor realtime beeldverwerking, voorspellend onderhoud en anomaliedetectie. Het RTOS garandeert de timing die AI-inferentie nodig heeft voor veiligheidskritische besturing.

Ja. GitHub Copilot kan suggesties doen voor taak-, wachtrij- en semaphorecode voor kernels zoals FreeRTOS. Ontwikkelaars moeten echter nog steeds de timing, stackgrootte en interruptveiligheid op de doelhardware controleren.

Vat dit bericht samen met: