Information Technology Reference
In-Depth Information
tungseinheit erreichbar, die jeden Zugriff auf seine Gültigkeit hin überprüft und das
laufende Programm im Fehlerfall unterbricht (siehe Abschnitt 2.3.2). Allerdings ist
es ohne eine Erweiterung des Prozessors nicht möglich, eine unerlaubte Neupro-
grammierung der Speicherverwaltungseinheit zu verhindern, um auf diese Weise
den rechteüberschreitenden Zugriff auf Speicherbereiche zu ermöglichen, die nor-
malerweise nicht sichtbar sind.
Aus diesem Grund können die meisten Prozessoren Programme in Betriebsmodi
ausführen, in denen einige der möglichen Funktionalitäten nicht zugänglich sind. Im
einfachsten Fall existiert ein hochprivilegierter Supervisor-Modus , in dem keinerlei
Restriktionen bestehen und ein niedrigprivilegierter User-Modus , in dem einige
sicherheitsrelevante Befehle nicht ausführbar und in dem Steuerregister des Prozes-
sors nur eingeschränkt adressierbar sind. Der Zugriff einer Anwendung auf den
Speicher einer zweiten Anwendung wird weiterhin durch eine Speicherverwaltungs-
einheit verhindert, die sich nun jedoch ausschließlich mit Hilfe privilegierter
Befehle neu programmieren lässt. Welcher Betriebsmodus jeweils aktiv ist, wird
normalerweise durch ein einzelnes Bit in einem Steuerregister festgelegt, auf das
schreibend nur im privilegierten Supervisor-Modus zugegriffen werden kann. So
kann ein hochpriorisiertes Programm durch Zugriff auf das entsprechende Statusbit
in einen niedrigpriorisierten Betriebsmodus wechseln. Umgekehrt geht dies nicht.
Trotzdem muss es natürlich einen Weg geben, der vom niedrigpriorisierten wieder
in den hochpriorisierten Betriebsmodus führt, da es nur auf diese Weise möglich ist,
z.B. auf Peripheriekomponenten , wie die Speicherverwaltungseinheit, zuzugreifen
oder einen Prozesswechsel herbeizuführen. Entscheidend dabei ist, dass mit dem
Wechsel in den Supervisor-Modus auch ein Wechsel in das Betriebssystem verbun-
den sein muss, um auf diese Weise unerlaubte Aktionen niedrig priorisierter Anwen-
dungen verhindern zu können.
Im Allgemeinen verfährt man so, dass ein Wechsel in den hochpriorisierten Supervi-
sor-Modus nur durch Stellen einer synchronen oder asynchronen Ausnahmeanforde-
rung möglich ist. Der Prozessor aktiviert hierbei automatisch den Supervisor-
Modus, noch bevor auf die Ausnahmetabelle zugegriffen und das Ausnahmepro-
gramm gestartet wird. Dies ist deshalb wichtig, weil es für eine niedrigpriorisierte
Anwendung nicht möglich sein darf, ein eigenes Ausnahmeprogramm durch Eintra-
gen der entsprechenden Startadresse in die Ausnahmetabelle oder Veränderung des
regulären Ausnahmeprogramms zu starten.
Als Teil des Betriebssystems ist das Ausnahmeprogramm befugt, alle erforderlichen
Aktionen durchzuführen. So lässt sich z.B. ein Prozesswechsel herbeiführen, indem
in konstanten Zeitintervallen eine Unterbrechungsanforderung durch einen Zeitge-
ber gestellt wird, von dem in dieser Weise gestarteten privilegierten Ausnahmepro-
gramm eine Umprogrammierung der Speicherverwaltungseinheit vorgenommen
und schließlich in den zu aktivierenden Prozess verzweigt wird. Natürlich muss
dabei sichergestellt sein, dass nach Bearbeitung eines Ausnahmeprogramms auch
wieder in den niedrigpriorisierten User-Modus gewechselt wird. Dies geschieht
i.Allg. als Seiteneffekt des im Ausnahmeprogramm verwendeten Rücksprungbe-
fehls. - Die beiden hier beschriebenen Betriebsmodi sind in den Prozessoren mit
Search WWH ::




Custom Search