Abarbeitung von Befehlen auf CPU
Kernel-Mode |
|
User-Mode |
|
- Übergang vom Kernel-Mode in User-Mode ist unproblematisch, da hierbei die Rechte eingeschränkt werden
- Das Betriebssystem veranlasst Übergang, wenn es dem Prozess eines Anwendungsprogramms die CPU zuteilt.
- Übergang vom User-Mode in den Kernel-Mode funktioniert nur indirekt über einen Systemaufruf
- denn Prozess eines Anwendungsprogramms darf nicht über die umfassenden Rechte des Kernel-Modes verfügen
Unter einem Systemaufruf versteht man den von einem im User-Mode ablaufenden Prozess getätigten Aufruf einer vom Betriebssystem zur Verfügung gestellten Funktion, welche nur im Kernel-Mode ausgeführt werden kann.
- Durch Systemaufruf gibt der im User-Mode Prozess Kontrolle zurück an BS, welches die Funktion stellvertretend ausführt.
- BS führt Sicherheitsüberprüfungen durch und prüft, ob alle Gegebenheiten für die Ausführung sprechen.
- Ist Funktion ausgeführt, wird zur Beendigung des Systemaufrufs wieder in den User-Mode zurückgeschaltet
- BS gibt Kontrolle zurück an aufrufenden Prozess, der ein Ergebnis seines Systemaufrufs zum Reagieren empfängt
Beispiel: Ein Anwendungsprogramm möchte auf eine Datei zugreifen.
- im User-Mode ablaufender Prozess eines Anwendungsprogramms möchte auf eine Datei zugreifen
- Diese E/A-Handlung ist nur im Kernel-Mode zugelassen.
- Betriebssystem stellt Anwendungsprogramm diese Systemaufrufen zur Verfügung: open | read | write | close
- Wird jetzt ein Systemaufruf getätigt, so entspricht dies der Auslösung eines Interrupts
- der im User-Mode laufende Prozess wird angehalten
- die Interrupt-Service-Routine wird ausgeführt (dadurch wird Betriebssystem-Code ausgeführt
- es wird in den Kernel-Mode geschaltet und Überprüfungen werden durchgeführt
- der Dateizugriff wird entweder erlaubt und durchgeführt oder verweigert,
- es wird in den User-Mode zurückgeschaltet,
- angehaltene Prozess wird wieder gestartet und ihm wird Rückgabewert mit Ergebnis des Systemaufrufs gegeben
No Comments