242
4 Systemsoftware
OSEK/VDX-Systeme unterstützen auch nicht verdrängendes (engl. non-preemptive) Scheduling und Präemptionsgrenzen, um den Gesamt-Stapelverbrauch zu begrenzen. Hierbei ist der grundlegende Gedanke, dass eine Einschränkung der Verdrängung zwischen Tasks die Anzahl der gleichzeitig auf dem Systemstapel allozierten Tasks reduziert, wodurch der Gesamtspeicherverbrauch weiter sinkt. Hierbei
muss aber bedacht werden, dass eine Reduktion der Verdrängungen die Planbarkeit
(engl. Schedulability) der Taskmengen verschlechtern kann, daher muss der Grad der
Verdrängung gegen die Planbarkeit des Systems und den gesamten RAM-Verbrauch
des Systems abgewogen werden.
Eine weitere Anforderung an Betriebssysteme für kleine Mikrocontroller ist die
Skalierbarkeit durch die Unterstützung reduzierter Versionen der API für Implementierungen mit kleinerem Speicherverbrauch. Bei in großen Mengen produzierten
Systemen beeinflusst dieser Speicherverbrauch in der Tat wesentlich die gesamten
Systemkosten. In diesem Kontext wird Skalierbarkeit durch das Konzept der Conformance Classes realisiert, die bestimmte Teilmengen der Betriebssystem-API definieren. Zu den Conformance Classes gehört ein definierter Weg, auf eine Klasse
mit mehr Funktionalität zu wechseln. Dabei ist das Ziel, partielle Implementierungen des Standards mit reduziertem Speicherverbrauch zu unterstützen. Die vom
OSEK/VDX-Standard (und damit von ERIKA Enterprise) unterstützten Conformance Classes sind im Einzelnen:
• BCC1: Dies ist die kleinste Conformance Class, sie unterstützt ein Minimum von
8 Tasks mit unterschiedlicher Priorität und eine gemeinsame Ressource.
• BCC2: Diese Conformance Class erweitert BCC1 um die Möglichkeit, mehr
als eine Task mit derselben Priorität zu verwenden. Jede Task kann ausstehende
Aktivierungen besitzen, d.h. das Betriebssystem führt über die Anzahl der schon
aktivierten, aber noch nicht ausgeführten Instanzen Buch.
• ECC1: Diese Conformance Class fügt der Klasse BCC1 die Möglichkeit hinzu,
erweiterte Tasks zu verwenden, die auf das Eintreten eines Ereignisses warten
können.
• ECC2: Diese Conformance Class verfügt sowohl über mehrfache Aktivierungen
wie über erweiterte Tasks.
ERIKA Enterprise erweitert diese Conformance Classes durch die Bereitstellung
der folgenden beiden Conformance Classes:
• EDF: Diese Conformance Class verwendet einen Earliest Deadline First (EDF)Scheduler, der für den Einsatz auf kleinen Mikrocontrollern optimiert wurde,
anstelle eines Schedulers mit festen Prioritäten (siehe Abschnitt 6.2.1).
• FRSH: Diese Conformance Class erweitert den EDF-Scheduler durch einen
Ressourcen-Reservierungs-Scheduler, der auf dem IRIS Scheduling-Algorithmus
basiert [381].
Eine weitere interessante Eigenschaft von OSEK/VDX-Systemen ist es, dass das
System eine API zur Unterbrechungskontrolle zur Verfügung stellt. Dies ist ein
großer Unterschied im Vergleich zu POSIX-basierten Systemen, in denen Unterbrechungen ausschließliche Aufgabe des Betriebssystems sind und nicht über eine
4 Systemsoftware
OSEK/VDX-Systeme unterstützen auch nicht verdrängendes (engl. non-preemptive) Scheduling und Präemptionsgrenzen, um den Gesamt-Stapelverbrauch zu begrenzen. Hierbei ist der grundlegende Gedanke, dass eine Einschränkung der Verdrängung zwischen Tasks die Anzahl der gleichzeitig auf dem Systemstapel allozierten Tasks reduziert, wodurch der Gesamtspeicherverbrauch weiter sinkt. Hierbei
muss aber bedacht werden, dass eine Reduktion der Verdrängungen die Planbarkeit
(engl. Schedulability) der Taskmengen verschlechtern kann, daher muss der Grad der
Verdrängung gegen die Planbarkeit des Systems und den gesamten RAM-Verbrauch
des Systems abgewogen werden.
Eine weitere Anforderung an Betriebssysteme für kleine Mikrocontroller ist die
Skalierbarkeit durch die Unterstützung reduzierter Versionen der API für Implementierungen mit kleinerem Speicherverbrauch. Bei in großen Mengen produzierten
Systemen beeinflusst dieser Speicherverbrauch in der Tat wesentlich die gesamten
Systemkosten. In diesem Kontext wird Skalierbarkeit durch das Konzept der Conformance Classes realisiert, die bestimmte Teilmengen der Betriebssystem-API definieren. Zu den Conformance Classes gehört ein definierter Weg, auf eine Klasse
mit mehr Funktionalität zu wechseln. Dabei ist das Ziel, partielle Implementierungen des Standards mit reduziertem Speicherverbrauch zu unterstützen. Die vom
OSEK/VDX-Standard (und damit von ERIKA Enterprise) unterstützten Conformance Classes sind im Einzelnen:
• BCC1: Dies ist die kleinste Conformance Class, sie unterstützt ein Minimum von
8 Tasks mit unterschiedlicher Priorität und eine gemeinsame Ressource.
• BCC2: Diese Conformance Class erweitert BCC1 um die Möglichkeit, mehr
als eine Task mit derselben Priorität zu verwenden. Jede Task kann ausstehende
Aktivierungen besitzen, d.h. das Betriebssystem führt über die Anzahl der schon
aktivierten, aber noch nicht ausgeführten Instanzen Buch.
• ECC1: Diese Conformance Class fügt der Klasse BCC1 die Möglichkeit hinzu,
erweiterte Tasks zu verwenden, die auf das Eintreten eines Ereignisses warten
können.
• ECC2: Diese Conformance Class verfügt sowohl über mehrfache Aktivierungen
wie über erweiterte Tasks.
ERIKA Enterprise erweitert diese Conformance Classes durch die Bereitstellung
der folgenden beiden Conformance Classes:
• EDF: Diese Conformance Class verwendet einen Earliest Deadline First (EDF)Scheduler, der für den Einsatz auf kleinen Mikrocontrollern optimiert wurde,
anstelle eines Schedulers mit festen Prioritäten (siehe Abschnitt 6.2.1).
• FRSH: Diese Conformance Class erweitert den EDF-Scheduler durch einen
Ressourcen-Reservierungs-Scheduler, der auf dem IRIS Scheduling-Algorithmus
basiert [381].
Eine weitere interessante Eigenschaft von OSEK/VDX-Systemen ist es, dass das
System eine API zur Unterbrechungskontrolle zur Verfügung stellt. Dies ist ein
großer Unterschied im Vergleich zu POSIX-basierten Systemen, in denen Unterbrechungen ausschließliche Aufgabe des Betriebssystems sind und nicht über eine
