Ein Angebot von

Was ist ein Embedded System?

| Autor / Redakteur: Prof. Dr. Christian Siemers * / Sebastian Gerstl

Eingebettete Systeme sind in zahlreichen Feldern anzutreffen, ob nun im Consumer-, Industrie-, Automotive- oder Avionik-Markt. Dabei ist es ein großer Unterschied, ob nun eine Kaffeemaschine oder ein Flugzeug gesteuert werden muss. Wer ein Embedded System entwickeln will sollte daher wissen, wie diese Systeme klassifiziert und definiert werden.
Eingebettete Systeme sind in zahlreichen Feldern anzutreffen, ob nun im Consumer-, Industrie-, Automotive- oder Avionik-Markt. Dabei ist es ein großer Unterschied, ob nun eine Kaffeemaschine oder ein Flugzeug gesteuert werden muss. Wer ein Embedded System entwickeln will sollte daher wissen, wie diese Systeme klassifiziert und definiert werden. (Bild: Clipdealer)

Ein eingebettetes System (englisch embedded system) ist ein binärwertiges digitales System (auch Computersystem genannt), das in ein umgebendes technisches System eingebettet ist und mit diesem in Wechselwirkung steht. Dabei übernimmt der Rechner meist Überwachungs-, Steuerungs- oder Regelungsfunktionen, ist oft aber auch für eine Form der Daten- bzw. Signalverarbeitung zuständig.

Das Gegenstück zu Embedded System wird Self-Contained System genannt. Als Beispiele können Mikrocontroller-basierte Systeme im Auto, die Computertastatur usw. genannt werden.

Die Definition der eingebetteten Systeme ist eine ”weiche“ Definition, aber sie ist trotzdem sehr wichtig! Der Grund bzw. der Unterschied zu den Self-Contained Rechnern besteht darin, dass – wie erwähnt – die Korrektheit bzw. Erfüllung auch in den Randbedingungen (und nicht nur im Algorithmus) einzuhalten ist.

Allgemeine Klassifizierung von Computersystemen

Die heute verfügbaren Computersysteme können in drei unterschiedliche Klassen eingeteilt werden: (rein) transformationelle, interaktive und reaktive Systeme. Die Unterscheidung erfolgt in erster Linie durch die Art und Weise, wie Eingaben in Ausgaben transformiert werden.

Transformationelle Systeme transformieren nur solche Eingaben in Ausgaben, die zum Beginn der Systemverarbeitung vollständig vorliegen. Die Ausgaben sind nicht verfügbar, bevor die Verarbeitung terminiert. Dies bedeutet auch, dass der Benutzer bzw. die Prozessumgebung nicht in der Lage ist, während der Verarbeitung mit dem System zu interagieren und so Einfluss zu nehmen.

Interaktive Systeme erzeugen Ausgaben nicht nur erst dann, wenn sie terminieren, sondern sie interagieren und synchronisieren stetig mit ihrer Umgebung. Wichtig hierbei ist, dass diese Interaktion durch das Rechnersystem bestimmt wird, nicht etwa durch die Prozessumgebung: Wann immer das System neue Eingaben zur Fortführung benötigt, wird die Umgebung, also ggf. auch der Benutzer hierzu aufgefordert. Das System synchronisiert sich auf diese proaktive Weise mit der Umgebung.

Ergänzendes zum Thema
 
Definitionen verschiedener Embedded Systeme

Bei reaktiven Systemen schreibt die Umgebung vor, was zu tun ist. Das Computersystem reagiert nur noch auf die externen Stimuli, die Prozessumgebung synchronisiert den Rechner (und nicht umgekehrt).

Worin liegen die Auswirkungen dieses kleinen Unterschieds, wer wen synchronisiert? Die wesentlichen Aufgaben eines interaktiven Systems sind die Vermeidung von Verklemmungen (deadlocks), die Herstellung von ”Fairness“ und die Erzeugung einer Konsistenz, insbesondere bei verteilten Systemen. Reaktive Systeme hingegen verlangen vom Computer, dass dieser reagiert, und zwar meistens rechtzeitig. Rechtzeitigkeit und Sicherheit sind die größten Belange dieser Systeme.

Zudem muss von interaktiven Systemen kein deterministisches Verhalten verlangt werden: Diese können intern die Entscheidung darüber treffen, wer wann bedient wird. Selbst die Reaktion auf eine Sequenz von Anfragen muss nicht immer gleich sein. Bei reaktiven Systemen ist hingegen der Verhaltensdeterminismus integraler Bestandteil. Daher hier die Definition von Determinismus bzw. eines deterministischen Systems: Ein System weist determiniertes oder deterministisches Verhalten (Deterministic Behaviour) auf, wenn zu jedem Satz von inneren Zuständen und jedem Satz von Eingangsgrößen genau ein Satz von Ausgangsgrößen gehört.

Als Gegenbegriffe können stochastisch oder nicht-deterministisch genannt werden. Diese Definition bezieht sich ausschließlich auf die logische (algorithmische) Arbeitsweise, und das klassische Beispiel sind die endlichen Automaten (DFA, Deterministic Finite Automaton). Nicht-deterministische Maschinen werden auf dieser Ebene in der Praxis nicht gebaut, beim NFA (Non-Deterministic Finite Automaton) handelt es sich um eine theoretische Maschine aus dem Gebiet der Theoretischen Informatik.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45013089 / Architektur)