Skip to main content

Abarbeitung von Befehlen auf CPU

 

Kernel-Mode

  • Arbeitet CPU Kernel-Mode, ist jeder Befehl zur Ausführung zugelassen
  • kann auf Speicherbereiche für Daten- und Programmtext und auf Betriebsmittel zugreifen
  • Durch ein Steuer- oder Kontrollregister auf der CPU wird der Kernel-Mode angezeigt.
  • Betriebssystem arbeitet im Kernel-Mode 

User-Mode

  • Arbeitet CPU im User-Mode, ist nur eingeschränkter Befehlssatz zugelassen
  • nicht alle Befehle erlaubt, kann nicht auf alle Speicherbereiche und Betriebsmittel zugreifen
  • Durch ein Steuer- oder Kontrollregister auf der CPU wird der User-Mode angezeigt.
  • Anwendungsprogramme arbeiten im 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