Information Technology Reference
In-Depth Information
und die Systemsprünge als Kategorien untergeordnet sind (Bild 1.15). Alle Kontroll-
flussoperationen bewirken, dass die Befehlsausführung an einer im Befehl implizit
oder explizit codierten effektiven Befehlsadresse fortgesetzt wird. Die einfachen
Sprünge beschränken sich auf diese Wirkung, wobei die Zieladresse explizit meist
befehlzählerrelativ ggf. auch indirekt im Befehl codiert ist.
Die zur Gruppe der Unterprogrammsprünge zählenden komplizierteren Unterpro-
grammaufrufe (im Bild „Aufruf“) speichern zusätzlich die Rücksprungadresse oft
auf einem im Datenspeicherraum befindlichen Stapel oder in einem Register. Für
den Rücksprung wird prozessorabhängig entweder ein indirekter einfacher Sprung
oder ein auf den Unterprogrammaufruf abgestimmter Rücksprungbefehl, der eben-
falls zur Gruppe der Unterprogrammsprünge zählt, verwendet.
Systemsprünge sind mit den Unterprogrammsprüngen vergleichbar, nur dass sich
für den Aufruf nicht beliebige, sondern nur tabellarisch definierte Befehlsadressen
verwenden lassen. Außerdem führen sie einen Wechsel des Betriebsmodus eines
Prozessors und damit verbunden einen Wechsel der Privilegien herbei, mit denen
auf Komponenten, Daten oder Befehle zugegriffen werden kann. Systemsprünge
benutzt man, um Zugriffe auf Systemressourcen zu reglementieren, und zwar durch
Delegation an hochprivilegierte Systemfunktionen. In ihnen wird überprüft, ob die
aufrufenden Anwendungen über die notwendigen Rechte verfügen. Ist dies der Fall,
werden die als Auftrag formulierten Zugriffe durchgeführt. Reichen die Rechte
jedoch nicht aus, z.B. falls ein Benutzer unerlaubt auf Daten anderer Benutzer zuzu-
greifen versucht, wird die Systemfunktion mit einer Fehlermeldung beendet.
Natürlich muss sichergestellt sein, dass auf Systemkomponenten nicht direkt zuge-
griffen werden kann und die Rechteüberprüfung innerhalb der Systemfunktion nicht
umgehbar ist (z.B. indem nur der für einen Zugriff verantwortliche Teil einer Sys-
temfunktion ausgeführt und die Überprüfung der Rechte durch Modifikation der
effektiven Einsprungadresse beim Aufruf ausgelassen wird). Der direkte Zugriff auf
Systemkomponenten ist leicht dadurch verhinderbar, dass einfache Anwendungen
niemals die hierzu erforderlichen Privilegien erhalten, auf Systemkomponenten also
nur durch Aufruf einer passenden Systemfunktion zugegriffen werden kann. Um
auch deren vollständige Ausführung sicherzustellen, codiert man außerdem die
effektive Startadresse nicht im Systemaufruf, sondern gibt sie fest vor. Im Allgemei-
nen wird hierzu eine Tabelle verwendet, auf die sich mit den geringen Privilegien
einfacher Anwendungen nicht zugreifen lässt. Die Art, in der die Einträge einer
Tabelle ausgewertet werden, wird später, nämlich im Zusammenhang mit Unterbre-
chungen und Ausnahmeanforderungen, genau beschrieben (siehe Abschnitt 1.4.3).
Bedingte Operationen
Zur Kontrollflusssteuerung können die meisten Prozessoren einfache Sprünge nicht
nur unbedingt, sondern auch bedingt, z.B. abhängig vom Ergebnis einer Vergleichs-
operation im Datenwerk, ausführen. Nun sind die bedingten und unbedingten einfa-
chen Sprünge in Bild 1.15 nicht den einfachen Sprüngen untergeordnet, sondern
allen Operationen übergeordnet. Dies ist gerechtfertigt, weil einige Prozessoren,
Search WWH ::




Custom Search