222
4 Systemsoftware
sen auf weitere wiederverwendbare Softwarekomponenten, insbesondere Hardware
Abstraction Layers (HALs), Kommunikationssoftware und Echtzeitdatenbanken.
Mit der Beschreibung eingebetteter Betriebssysteme und von Middleware in diesem
Kapitel entsprechen wir dem Entwurfsfluss (siehe auch Abb. 4.1).
4.1 Eingebettete Betriebssysteme
4.1.1 Allgemeine Anforderungen
Mit Ausnahme sehr einfacher Systeme benötigen eingebettete Anwendungen ein
geeignetes Betriebssystem für die Ein/Ausgabe, für das Scheduling (d.h. die Ablaufplanung) und das Umschalten zwischen der Ausführung verschiedener Codeobjekte.
Durch das Umschalten, Kontextwechsel (engl. context switching) genannt, entsteht
der Eindruck, dass jedes Codeobjekt einen eigenen Prozessor besitzt. Bei Codeobjekten unterscheiden wir zwischen Prozessen und Threads. Zunächst definieren wir
Prozesse:
Definition 4.1 (in Anlehnung an Tanenbaum [525]): Ein Prozess ist ein Programm
(oder ein Teil eines Programms) einschließlich aller zugehörigen Speicherinhalte.
Weitere Informationen zu diesem Begriff können Kursen zu Betriebssystemen entnommen werden (siehe z.B. Roitzsch [472]). In diesem Kapitel werden wir den
Begriff „Prozess” immer in dem hier definierten Sinn als ein Objekt innerhalb eines
Betriebssystems (und nicht im Sinne von Prozessen in SDL, VHDL, Prozessnetzwerken oder dem Halbleiterfertigungsprozess) benutzen.
Bei Systemen mit virtuellem Speicher1 unterscheiden wir zwischen verschiedenen Adressräumen. In solchen Systemen können wir differenzieren, ob verschiedene
in Ausführung befindliche Codeobjekte jeweils in einem eigenen Adressraum ausgeführt werden oder ob sie sich einen Adressraum teilen; im ersten Fall sprechen wir
von Prozessen, im zweiten Fall von Threads (deutsch: Fäden, auch leichtgewichtige
Prozesse genannt).
Definition 4.2: Ein Thread ist ein Programm in Ausführung, welches sich von einem
Prozess durch die Verwendung eines gemeinsamen Adressraums unterscheidet.
Im ersten Fall existiert ein gewisser Schutz der Objekte gegeneinander, da sich verschiedene Objekte nicht einfach den Speicher überschreiben können. Allerdings erfordert der Kontextwechsel hier auch Aufwand für den Wechsel des Adressbereichs.
Im zweiten Fall existiert dieser Schutz nicht, dafür ist der Kontextwechsel schneller
und die Kommunikation über gemeinsamen Speicher (engl. shared memory) einfach
realisierbar. In Systemen mit nur einem Adressraum entfällt die Unterscheidung
zwischen Prozessen und Threads. Betriebssysteme müssen Kommunikations- und
Synchronisationsmechanismen für Threads und Prozesse zur Verfügung stellen.
1 Siehe Anhang C.
Précédent

- 242/485

Suivant