Ein Angebot von

Was ist ein Embedded System?

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

Embedded 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.
Embedded 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.

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.

Ergänzendes zum Thema
 
Definitionen verschiedener Embedded Systeme

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.

Klassifizierung von Embedded Systemen

Bild 1: Einordnung eingebetteter Systeme
Bild 1: Einordnung eingebetteter Systeme (Bild: Christian Siemers)

Eingebettete Systeme, die mit einer Umgebung in Wechselwirkung stehen, müssen in der Regel immer auf den umgebenden Prozess reagieren. Dennoch ist ihre Implementierung sowohl als interaktives als auch als reaktives System (und natürlich als Mischform) denkbar.

Ein reaktives Systemdesign ist prinzipiell in Richtung Echtzeitverhalten angelegt, gleichwohl aber natürlich nicht automatisch echtzeitfähig. Wird die Einhaltung von Zeitschranken zu einer Hauptsache, d.h. wird die Verletzung bestimmter Zeitschranken sehr kritisch im Sinn einer Gefährdung für Mensch und Maschine, dann spricht man von Echtzeitsystemen.

Für das interaktive Systemdesign muss – zusätzlich zur Reaktionsberechnung in Echtzeit – auch gewährleistet sein, dass die Interaktion, die ja vom Rechner ausgeht, ebenfalls rechtzeitig genug erfolgt. Ist das gewährleistet, spricht nichts gegen ein interaktives Systemdesign als Grundlage des echtzeit-fähigen eingebetteten Systems (siehe dazu Bild 1).

Weitere wichtige Eigenschaften im Sinn der Einbettung sind: Nebenläufigkeit (zumindest oftmals), hohe Zuverlässigkeit und Einhaltung von Zeitschranken. Noch eine Anmerkung zum Determinismus: Während man davon ausgehen kann, dass alle technisch eingesetzten, eingebetteten Systeme deterministisch sind, muss dies für die Spezifikation nicht gelten: Hier sind nicht-deterministische Beschreibungen erlaubt, z.B., um Teile noch offen zu lassen.

Embedded Systeme lassen sich weiterhin nach einer Reihe von unterschiedlichen Kriterien klassifizieren. Hierzu zählen:

  • Kontinuierlich versus diskret: Diese Ausprägung der Stetigkeit bezieht sich sowohl auf Datenwerte als auch auf die Zeit. Enthält ein System beide Verhaltensweisen, wird es als „hybrides System“ bezeichnet.
  • Monolithisch versus verteilt: Während anfänglich alle Applikationen für eingebettete Systeme als monolithische Systeme aufgebaut wurden, verlagert sich dies zunehmend in Richtung verteilte Systeme. Hier sind besondere Anforderungen zu erfüllen, wenn es um Echtzeitfähigkeit geht.
  • Sicherheitskritisch versus nicht-sicherheitskritisch: Sicherheitskritische Systeme sind solche, deren Versagen zu einer Gefährdung von Menschen und/oder Einrichtungen führen kann. Viele Konsumprodukte sind sicherheits-unkritisch, während Medizintechnik, Flugzeugbau sowie Automobile zunehmend auf sicherheitskritischen eingebetteten Systemen beruhen.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken
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)