01.11.2012 Aufrufe

Memory-Meister - elektronikJOURNAL

Memory-Meister - elektronikJOURNAL

Memory-Meister - elektronikJOURNAL

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!