Memory-Meister - elektronikJOURNAL
Memory-Meister - elektronikJOURNAL
Memory-Meister - elektronikJOURNAL
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Immer pünktlich<br />
Das passende Echtzeit-Betriebssystem auswählen<br />
Die meisten Echtzeit-Betriebssysteme verfügen heute über<br />
vergleichbare Kernel-Funktionalitäten: mindestens 255<br />
Prioritätsebenen, Th read-Scheduling mit Prioritäten, deterministische<br />
Th read-Ausführungs- und ISR-Latenzzeiten<br />
sowie einen präemptiven Kernel. Daher macht ein bloßes Gegenüberstellen<br />
von Anwendungsanforderungen und Kernel-Eigenschaft<br />
en es schwer, die beste Wahl herauszufi ltern. Stattdessen<br />
bietet sich ein strukturierter und methodischer Selektionsansatz<br />
an, der alle Faktoren berücksichtigt. Die Vorteile werden sich über<br />
die gesamte Lebensdauer der Applikation zeigen – und zwar sowohl<br />
an den Kosten in der Entwicklungs- und Support-Phase als<br />
auch in Form eines gesunkenen Entwicklungsrisikos.<br />
API und Speichermodell<br />
Bei der Auswahl eines Echtzeit-Betriebssystems steht das API (Application<br />
Programming Interface) oft an erster Stelle. Die Schnittstelle<br />
ist entweder proprietär oder Standard-basiert. Ein herstellereigenes<br />
API kettet die Anwendung an einen einzigen Anbieter, was<br />
sich auf den langfristigen Support auswirken kann. Man stelle sich<br />
vor was passiert, wenn dieser Anbieter die gewünschte Prozessor-<br />
Architektur nicht mehr unterstützt oder gar den Betrieb einstellt.<br />
Bei einem auf off enen Standards basierenden API sind derlei Bedenken<br />
überfl üssig, weil die Anwendung nicht an ein einziges<br />
RTOS gebunden ist. Die Schnittstelle wird typischerweise nur neu<br />
kompiliert, eventuell mit ein paar Anpassungen.<br />
Der Industriestandard für ein Betriebssystems-API heißt Posix<br />
1003.13-2003 PSE53 und wird vom IEEE gepfl egt. Posix ist die einzige<br />
wirklich portierbare API. Sie kommt in vielen Allzweck-, aber<br />
auch in Echtzeit-Betriebssystemen zum Einsatz. Linux und andere<br />
kommerzielle Unix-Plattformen stimmen mit ihr überein und ermöglichen<br />
so das Portieren existierender Anwendungen. Weitere<br />
Vorteile einer auf off enen Standards basierenden API sind die Fülle<br />
erfahrener Posix-Programmierer und die Vielfalt vorhandenen<br />
Codes. Einige Anbieter von Betriebssystemen mit proprietärer API<br />
behaupten zwar, dass diese Posix unterstützen, beschränken sich<br />
aber auf ein abstrahiertes Mindestmaß an Posix-Funktionsaufrufen.<br />
Oder sie raten von nicht-nativen Posix-Funktionen ab, da diese<br />
langsamer sind als die nativen, aber proprietären Funktionen.<br />
Die meisten Echtzeitbetriebssysteme arbeiten entweder mit einem<br />
linearen Speichermodell (Flat <strong>Memory</strong> Model) oder mit Speicherschutz<br />
per Paged-Process-Modell. Beim linearen Speichermodell<br />
teilen sich alle Th reads oder Tasks einen gemeinsamen Adressraum.<br />
Wenn ein Prozess auf eine unerlaubte Adresse zugreift , stört<br />
er eventuell eine andere Task. Weder die Hardware noch der Betriebssystem-Kernel<br />
bemerken, dass ein Problem aufgetreten ist.<br />
Dies kann einen sofortigen Anwendungsausfall zur Folge haben;<br />
manchmal entwickelt sich der Absturz aber auch erst mit der Zeit.<br />
Ausfälle dieser Art sind schwer zu debuggen.<br />
Entwickeln, Entwickeln, Messen und Messen Fertigen und<br />
Softwaretools Fertigen<br />
Das richtige Realtime-OS für ein Projekt zu fi nden ist eine herausfordernde und zeitaufwändige Aufgabe.<br />
Eine falsche Entscheidung kann schwerwiegende Folgen haben und das Projekt sogar scheitern lassen.<br />
Also gilt es, sich umfassend zu informieren. Autor: John Patchin<br />
Beim fl achen Speichermodell geraten wegen des globalen Namensraums<br />
auch globale Variablen eines Prozesses mit gleichnamigen<br />
Variablen in einem anderen Prozess in Konfl ikt. Dies führt<br />
zu vielen Problemen, wenn man mehrere Echtzeitanwendungen<br />
auf einer gemeinsamen Plattform kombiniert, oder wenn mehrere<br />
Entwicklungsteams an einem Projekt arbeiten. Das Paged-Process-<br />
Modell (Bild 1) bietet hingegen Speicherschutz für jeden Prozess.<br />
Es schützt nicht nur jede einzelne Anwendung, sondern auch den<br />
Kernel und heißt mitunter Raumpartitionierung. Bei diesem Prozessmodell<br />
führt jeder Versuch eines Th reads auf eine unerlaubte<br />
Adresse zuzugreifen, sofort zu einer Hardware-Exception. Der Betriebssystemkern<br />
wiederum reagiert mit einer so genannten nicht<br />
handhabbaren Exception: er bricht den Prozess ab und schreibt<br />
dessen kompletten Speicherbereich in eine so genannte Core-Datei.<br />
Der Entwickler kann später diesen Core-Dump in einen Debugger<br />
laden, um nach der Ursache des Problems zu forschen.<br />
Echtzeit-Scheduler<br />
Einige Universal-Echtzeitbetriebssysteme wie Lynx-OS-SE von<br />
Lynux works gehen in Sachen Partitionierung noch weiter und addieren<br />
zur Raumpartitionierung eine Zeitpartitionierung (Bild 3).<br />
Diese fügt dem prioritätsgesteuerten, präemptiven Scheduler ein<br />
zweites Steuerprogramm hinzu, das die Teilprogramme zyklisch<br />
nach einer fest vorgegebenen Reihenfolge ausführt (cyclic fi xedtime<br />
based scheduler). Ein einzelner Prozess oder eine Prozessgruppe<br />
kann zur Ausführung über eine festgelegte Zeitspanne<br />
konfi guriert werden, ehe der Cyclic-Scheduler zur nächsten Prozessgruppe<br />
wechselt. Während die jeweilige Prozessgruppe die<br />
Th reads innerhalb dieser Prozesse abarbeitet, wird sie dennoch<br />
vom Priority-Preemptive-Scheduler gesteuert. Dieses Schema lässt<br />
es nicht zu, dass ein einzelner Th read, der mit hoher Priorität im<br />
Hard Loop rechnet, alle anderen Th reads quasi aussperrt.<br />
Eine vollständige Embedded-RTOS-Anwendung braucht typischerweise<br />
noch Geräte-Support, Stacks und Middleware. Wird ➔<br />
Auf einen Blick<br />
Am Zahn der Zeit<br />
Welches Echtzeit-Betriebssystem soll es sein? Diese Frage lässt sich<br />
weder rein technisch, noch rein kaufmännisch beantworten und sie<br />
hängt immer von den Anforderungen der Applikation ab. Also muss<br />
ein Entscheider die wichtigen Kriterien kennen, die über Erfolg oder<br />
Scheitern eines Projekts bestimmen. Dieser Artikel gibt einen Überblick<br />
und zeigt die große Bandbreite dieser Kriterien.<br />
infoDIREKT www.elektronikjournal.com<br />
Vorteil Grundlage für fundierte RTOS-Auswahl.<br />
502ejl1110<br />
www.elektronikjournal.com<br />
<strong>elektronikJOURNAL</strong> 11 / 2010 57