Betriebssystem-Eigenschaften von RMOS3
8.5 Betriebsmittelverwaltung
8.5.3
Speicherverwaltung
Unterscheidung nach funktionalen Gesichtspunkten
Neben der Unterscheidung in RAM–, Dual–Port– und EPROM–Bereiche kann der
Speicherbereich auch nach funktionalen Gesichtspunkten unterteilt werden. Die
Speicherbelegung eines Rechnersystems unter RMOS3 kann man generell in drei Bereiche
einteilen:
Betriebssystemcode und –datenstrukturen:
Der Bereich wird vom Betriebssystem belegt und beinhaltet die für den Betrieb erforderlichen
Datenstrukturen und den Betriebssystemcode.
Code–, Daten– und Stackbereiche von Tasks:
Der Bereich wird von den Anwender– und Diensttasks mit den jeweiligen Code–, Daten– und
Stackbereichen belegt. Die Bereiche sind einerseits durch den Compiler, Größe der Code–
und Datenbereiche, und andererseits durch die Konfigurierung (Stackgröße für die einzelnen
Tasks) vorgegeben.
Speicherbereiche für dynamische Datenstrukturen, Speicherpools:
Beim Systemhochlauf ermittelt das RMOS3–System den freien RAM–Speicher. Dieser
Speicher wird als HEAP–Pool (Haufen) von RMOS3 verwaltet. Darüber hinaus ist es auch
möglich, weitere Speicher-Pools zu definieren. Der HEAP–Pool kann immer mit der ID –1
angesprochen werden, während bei anderen Pools immer die ID angegeben werden muss.
Der freie RAM-Speicher dient zur Unterstützung von dynamischen Datenstrukturen von
Anwender– und Diensttasks des Applikationssystems.
RMOS3 besitzt SVCs zum Reservieren und Freigeben von dynamischen
Speicherstrukturen. Dieses Reservieren und Freigeben wird auch Speicherallokierung und
Speicherfreigabe genannt. Dynamische Datenstrukturen sind zum Beispiel Elemente einer
Liste. Der gesamte freie Speicherbereich wird im Heap verwaltet. Der Vorteil eines großen
Pools ist, dass alle Anwendertasks einheitlich auf den gleichen Pool zugreifen, was eventuell
die Programmierung vereinfacht.
122
RMOS3 V3.50 Benutzerhandbuch
Bedienhandbuch, 07/2012, A5E03692290-01