ARM-basierendes Systeme

Echtzeitbetriebssysteme: Weniger Unterbrechungen, höhere Effizienz

13. März 2012, 8:36 Uhr | Von Dr. Alexander G. Dean
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Bedarf an Stack-Speicher reduziert

Threads einer nicht-präemptiven Gruppe können einen gemeinsamen Stack-Bereich gemeinsam nutzen, weil sie ihre Verarbeitung gegenseitig nicht unterbrechen. Hierfür kommen Run-to-Completion-Threads und einige blockierende Threads in Frage. Das »Stack Resource Protocol« (SRP) von Baker berechnet die möglichen maximalen Blockierzeiten von Threads.

Dadurch können Entwickler feststellen, ob ihr System die Deadlines einhält. Bestandteil des SRP ist das Modifizieren des Schedulers dergestalt, dass mit der Ausführung eines Threads nicht begonnen wird, wenn seine Präemptions-Ebene nicht hoch genug ist. Hieraus folgt, dass ein Thread nicht auf halbem Weg blockiert, da seine Ausführung von vornherein nicht gestartet worden wäre, wenn nicht alle benötigten Ressourcen verfügbar waren.

Die Forschungsgruppe um Dr. Dean, aber auch andere haben untersucht, auf welche Weise sich mit PTS der Bedarf an Stack-Speicher verringern lässt. PTS lässt sich gemäß mit jedem Scheduling-Algorithmus wie zum Beispiel »Rate Monotonic Scheduling« (RMS) oder »Earliest Deadline First« (EDF) einsetzen und gibt stets den geringsten insgesamt entstehenden Stack-Speicherbedarf aus, wenn der von Wang und Saksena in beschriebene Algorithmus zur Zuweisung der maximalen Preemption-Threshold verwendet wird.

passend zum Thema

Bild 4: Der benötigte Stack-Speicher für PTS mit einer auf fester Prioritätszuweisung basierenden Scheduling-Strategie steigt mit der Variabilität der Thread-Periode und der Systemauslastung
Bild 4: Der benötigte Stack-Speicher für PTS mit einer auf fester Prioritätszuweisung basierenden Scheduling-Strategie steigt mit der Variabilität der Thread-Periode und der Systemauslastung
© Express Logic

Gai und seine Kollegen dehnten nach das Stack Resource Protocol auf die Unterstützung von Preemption-Thresholds aus und zeigten, dass es den Gesamtbedarf an Stack-Speicher verringert. Am Center for Efficient, Secure and Reliable Computing der North Carolina State University wurden die Auslastungsmerkmale untersucht, die Einfluss darauf haben, wie sehr sich der Stack-Bedarfs mit PTS reduzieren lässt.

Um ein breites Spektrum von Designfällen abzudecken, generierten die Forscher zufällig 40 000 Systeme mit jeweils zehn Threads. Alle waren mit einer voll-präemptiven Strategie scheduling-fähig. Was sie als erstes inspizierten, waren die Auswirkungen der Systemauslastung auf den benötigten Stack-Speicherplatz mit PTS. Die Forscher berechneten den von jedem System benötigten optimalen Stack-Platz und bezogen diesen auf den Platzbedarf der vollständig präemptiven Version des Systems.

Bild 4 zeigt in grafischer Form den Platzanspruch als Funktion der Gesamt-Systemauslastung sowie der Standardabweichung σP in den Thread-Perioden. Zu sehen ist, dass der Bedarf an Stack-Speicherplatz bei geringer Auslastung weniger als 30 Prozent dessen eines voll präemptiven Systems betragen kann. Mit zunehmender Auslastung aber haben Schwankungen der Thread-Periode immer stärkere Auswirkungen auf die erzielbaren Einsparungen, und bei einem σP von 25 Prozent hängt die Platzersparnis nur noch geringfügig vom Auslastungsgrad ab.

Bild 5: PTS und eine Fixed − auch bei stark ausgelasteten Systemen gravierend
Bild 5: PTS und eine Fixed − auch bei stark ausgelasteten Systemen gravierend
© Express Logic

Nehmen allerdings die Varianz und die Standardabweichung der Periode zu, fallen die möglichen Einsparungen mit wachsender Auslastung immer geringer aus. Dies liegt an den längeren Thread-Verarbeitungszeiten, die es immer schwieriger machen, die Scheduling-Fähigkeit des Systems zu bewahren und gleichzeitig die Zahl der Präemptionen zu minimieren.

Besonders offenkundig wird dies bei hoher Systemauslastung, wenn die zeitlichen Spielräume erheblich geringer sind. Wie aus Bild 5 zu entnehmen ist, wird der Bedarf an Stack-Speicher durch PTS um die Hälfte bis drei Viertel reduziert.

Wie groß die Platz-ersparnis ausfällt, hängt von der Systemauslastung ab: Je stärker die CPU in Anspruch genommen wird, umso mehr Präemptionen sind erforderlich und umso mehr Stack-Speicher wird benötigt. Die Ergebnisse für Lösungen mit dynamischer Priorität fallen ähnlich aus und sind in genauer ausgeführt.

Über den Autor:

Dr. Alexander G. Dean ist Privatdozent an der North Carolina State University und dort am Center für Efficient, Secure und Reliable Computing (Dept. of Electrical and Computer Engineering) tätig.


  1. Echtzeitbetriebssysteme: Weniger Unterbrechungen, höhere Effizienz
  2. Bedarf an Stack-Speicher reduziert

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Betriebssysteme