Die vom Betriebssystem zum Anwendungsprogramm bereitgestellte Schnittstelle ist der „Systemaufruf“. Die Betriebssystemschnittstelle umfasst hauptsächlich eine Befehlsschnittstelle und eine Programmschnittstelle. Die Programmschnittstelle, auch Systemaufruf genannt, besteht aus einer Reihe von Systemaufrufbefehlen und stellt eine Reihe von Systemaufrufbefehlen für die Verwendung durch Benutzerprogramme bereit. Der Systemaufruf ist die Schnittstelle zwischen dem Anwendungsprogramm und dem System. Er leitet die Anforderung des Anwendungsprogramms an den Kernel weiter, ruft die entsprechende Kernelfunktion auf, um die erforderliche Verarbeitung abzuschließen, und gibt die Verarbeitungsergebnisse an das Anwendungsprogramm zurück.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.
Die vom Betriebssystem zum Anwendungsprogramm bereitgestellte Schnittstelle ist der „Systemaufruf“.
Die Betriebssystemschnittstelle umfasst hauptsächlich die Befehlsschnittstelle und die Programmschnittstelle, wobei die Programmschnittstelle auch als Systemaufruf bezeichnet wird.
Die Programmschnittstelle (Systemaufruf) besteht aus einer Reihe von Systemaufrufbefehlen und stellt eine Reihe von Systemaufrufbefehlen zur Verwendung durch Benutzerprogramme bereit.
Systemaufrufe im Betriebssystem
Die Menge aller von der Betriebssystemimplementierung bereitgestellten Systemaufrufe ist die Programmschnittstelle oder Application Programming Interface (API). Es ist die Schnittstelle zwischen dem Anwendungsprogramm und dem System.
Die Hauptfunktion des Betriebssystems besteht darin, Hardwareressourcen zu verwalten und eine gute Umgebung für Anwendungsentwickler bereitzustellen, um Anwendungen kompatibler zu machen. Um diesen Zweck zu erreichen, stellt der Kernel eine Reihe von Multi-Kernel-Funktionen bereit Benutzer über eine Reihe von Schnittstellen, die als Systemaufrufe bezeichnet werden. Der Systemaufruf leitet die Anwendungsanforderung an den Kernel weiter, ruft die entsprechende Kernelfunktion auf, um die erforderliche Verarbeitung abzuschließen, und gibt das Verarbeitungsergebnis an das Anwendungsprogramm zurück.
Moderne Betriebssysteme verfügen meist über Multitasking-Fähigkeiten, die meist durch Prozesse umgesetzt werden. Da das Betriebssystem die Ausführung zwischen den einzelnen Prozessen schnell umschaltet, scheint alles gleichzeitig abzulaufen. Gleichzeitig führt dies auch zu vielen Sicherheitsproblemen. Beispielsweise kann ein Prozess leicht die Daten im Speicherbereich des Prozesses ändern, um eine Anomalie bei einem anderen Prozess zu verursachen oder bestimmte Zwecke zu erreichen sicher ausführen. Die Lösung für dieses Problem besteht darin, dem Prozessor Basisadressregister und Begrenzungsregister hinzuzufügen. Der Inhalt dieser beiden Register verwendet Hardware, um die Adresse des Speichers zu begrenzen, auf den der Speicherzugriffsbefehl zugreift. Wenn das System Prozesse wechselt, können auf diese Weise die Inhalte dieser beiden Register in den dem Prozess zugewiesenen Adressbereich geschrieben werden, wodurch Malware vermieden wird.
Um zu verhindern, dass Benutzerprogramme den Inhalt des Basisregisters und des Begrenzungsregisters für den Zugriff auf andere Speicherbereiche ändern, muss auf diese beiden Register über einige spezielle Anweisungen zugegriffen werden. Normalerweise verfügt der Prozessor über zwei Modi: „Benutzermodus“ und „Kernelmodus“. Ein Tag-Bit wird verwendet, um zu identifizieren, in welchem Modus er sich gerade befindet. Einige Anweisungen wie das Ändern des Inhalts des Basisadressregisters können nur im Kernelmodus ausgeführt werden. Im Benutzermodus überspringt die Hardware diese Anweisung direkt und führt die nächste aus.
In ähnlicher Weise sind aus Sicherheitsgründen einige E/A-Betriebsanweisungen nur auf die Ausführung im Kernelmodus beschränkt. Daher muss das Betriebssystem Schnittstellen bereitstellen, um Anwendungen Schnittstellen bereitzustellen, z. B. das Lesen von Daten von einem bestimmten Ort auf der Festplatte. Diese Schnittstellen werden als Systemaufruf bezeichnet.
Wenn das Betriebssystem die Systemaufrufanforderung empfängt, wechselt der Prozessor in den Kernelmodus, um Anweisungen wie E/A-Vorgänge auszuführen und den Inhalt des Basisadressregisters zu ändern lässt den Prozessor Der Prozessor kehrt in den Benutzermodus zurück, um Benutzercode auszuführen.
Der Unterschied zwischen Systemaufrufen und gewöhnlichen Aufrufen
Ein Systemaufruf ist im Wesentlichen ein Prozeduraufruf, es handelt sich jedoch um einen speziellen Prozeduraufruf, der sich offensichtlich von den Prozeduraufrufen in allgemeinen Benutzerprogrammen unterscheidet.
Der Betriebszustand ist unterschiedlich.
Der Betriebszustand ist unterschiedlich. Der aufrufende Prozess und der aufgerufene Prozess eines Systemaufrufs werden in unterschiedlichen Zuständen ausgeführt, während gewöhnliche Prozeduraufrufe im Allgemeinen im selben Zustand ausgeführt werden.
Die aufrufende Methode ist anders
Die aufrufende Methode ist anders. Systemaufrufe müssen zunächst über den Soft-Interrupt-Mechanismus in den Systemkern gelangen, bevor sie an den entsprechenden Befehlshandler weitergeleitet werden können. Gewöhnliche Prozeduraufrufe können direkt vom aufrufenden Prozess zum aufgerufenen Prozess übertragen werden.
Zurück zur Frage
Zurück zur Frage. In einem System, das präventive Planung verwendet, muss bei der Rückkehr des Systemaufrufs die Planungsanalyse erneut analysiert werden – ob eine Aufgabe mit höherer Priorität bereit ist. Gewöhnliche Prozeduraufrufe kehren direkt zum aufrufenden Prozess zurück, um die Ausführung fortzusetzen.
Weitere Informationen zu diesem Thema finden Sie in der Rubrik „FAQ“!
Das obige ist der detaillierte Inhalt vonWelche Schnittstelle stellt das Betriebssystem den Anwendungsprogrammen zur Verfügung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!