2016-08-04 30 views
0

Ich denke, dass ich bekomme, was Systemprogramme sind, aber ich würde gerne verstehen, warum genau sie teilweise im Benutzermodus und teilweise im Kernelmodus ausgeführt werden.Modus, in dem Systemprogramme ausgeführt werden

Da Computer-Software entwickelt wurde, um Dienste für andere Software bereitzustellen, dachte ich, dass sie vollständig im Kernel-Modus ausgeführt werden können. In welchen Fällen laufen sie im Benutzermodus?

Antwort

0

der Kernelmodus und die Benutzermodusebene vorhanden ist, um zu verhindern, dass Anwendersoftware das System und seine Funktionen beschädigt.

Wie der Benutzermodus Low-Level-Anweisungen ausführt?

am - System ruft

ein User-Mode-Programm kann in Kernel-Modus wechseln, aber haben keine Kontrolle über die Anweisungen, die im Kernel-Modus ausgeführt werden. Die einzige Möglichkeit, dies zu erreichen, ist die Verwendung des Systemaufrufs, der vom Benutzermodus verwendet wird, um mit Ressourcen auf niedriger Ebene (Hardware) zu kommunizieren.

Die einzige Ausnahme ist, wenn ein Prozess den Systemaufruf '' ioperm 'verwendet. In diesem Fall kann auf ein Gerät direkt zugegriffen werden: User Mode-Prozess (IRQs können nicht verwendet werden).

während des Prozesses,

Das Programm im Benutzermodus legt Werte in den Registern, oder erstellt einen Stapelrahmen mit Argumenten, , um anzuzeigen, welche spezifischen Dienst es vom Betriebssystem erfordert. führt dann den Trap-Befehl aus.

Sofort wechselt die CPU in den Kernel-Modus und springt zu Anweisungen an einer festen Position im Speicher.

Trap-Anweisung oder Systemaufruf-Handler, lesen Sie die Details der angeforderten Service + Argumente, und dann führen Sie diese Anfrage im Kernel-Modus.

schließlich Mit dem Systemaufruf beendet das Betriebssystem den Modus in den Benutzermodus und kehrt vom Systemaufruf zurück.