Adressierung eines Datensegments unter RMOS3
Zur Adressierung eines Speicherbereiches muss zuerst mit
erzeugt werden, der auf die Descriptor Table zeigt. Mittels der Buildin-Funktion
buildpointer(Selector, Offset)
RMOS3 bietet auch weitere Funktionen zur Verwaltung von Deskriptoren. Dies sind neben
der schon erwähnten Funktion
Deskriptoren und zur Veränderung von Zugriffsrechten, als auch Funktionen zur Ermittlung
von linearen und physikalischen Adressen (Siehe Abbildung im Abschnitt
"Betriebsmittelverwaltung (Seite 116)").
8.5.5
Treiber Ein-/Ausgabe-Verwaltung
E/A-Verfahren
RMOS3–Treiber unterstützen die Ein– und Ausgabe für eine Vielzahl von Peripheriegeräten,
wobei sowohl "Memory Mapped I/O" als auch "Direct I/O" verwendet werden können.
Mehrere Geräte
Treiber können meistens mehrere Geräte gleichen Typs bedienen. Anwendertasks leiten
eine E/A–Bearbeitung durch einen SVC
anderem die Treiber–ID (Device–ID) und die ID des betreffenden Geräts (Unit–ID).
So wird beispielsweise das erste von fünf Datensichtgeräten die von einem Treiber gesteuert
und verwaltet werden, als Gerät 0, das zweite als Gerät 1 usw. bezeichnet. Die IDs von
Treibern und Geräten sind konfigurierungsabhängig. RMOS3 unterstützt bis zu 255
verschiedene Treiber. Jeder Treiber kann theoretisch bis zu 255 Geräte steuern und
verwalten .
RmIO leitet die E/A-Anforderung ein
Der SVC
Warteschlange des entsprechenden Peripheriegerätes (Geräte–Treiber) einzureihen. Der
SVC besitzt folgende Parameter:
● Treiber–ID
● Geräte–ID
● Funktion (Lesen/Schreiben, usw.)
● Ereignisflag–ID/Flag–Maske
● E/A–Status
● Zeiger auf Parameterblock
Wenn eine E/A–Anforderung von RMOS3 angenommen (in die Warteschlange eingereiht)
wird, werden die festgelegten Ereignis–Flags zurückgesetzt und der E/A–Status auf 0
gesetzt. Die Steuerung wird an die anfordernde Task zurückgegeben.
Synchronisation mit RmGetFlag
Die anfordernde Task kann ihre Abarbeitung mit dem Abschluss der E/A–Operation
synchronisieren, und zwar durch ein den SVC
E/A–Anforderung abgeschlossen ist (mit oder ohne Fehler), werden die Ereignis–Flags
gesetzt, damit die wartende Task ihre Ausführung fortsetzen kann.
RMOS3 V3.50 Benutzerhandbuch
Bedienhandbuch, 07/2012, A5E03692290-01
RmCreateDescriptor
wird verwendet, um eine E/A–Anforderung einzuleiten und diese in die
RmIO
Betriebssystem-Eigenschaften von RMOS3
erhält man den Pointer auf die gewünschte Adresse.
Funktionen zum Löschen von
ein. Der SVC
RmIO
RmGetFlag
8.5 Betriebsmittelverwaltung
RmCreateDescriptor
enthält als Parameter unter
RmIO
mit Warten auf das Flag. Wenn die
ein Selektor
125