Unterschied Zwischen Systemaufruf Und Funktionsaufruf

Unterschied Zwischen Systemaufruf Und Funktionsaufruf
Unterschied Zwischen Systemaufruf Und Funktionsaufruf

Video: Unterschied Zwischen Systemaufruf Und Funktionsaufruf

Video: Unterschied Zwischen Systemaufruf Und Funktionsaufruf
Video: User Mode vs. Kernel Mode | #Betriebssysteme 2024, April
Anonim

Systemaufruf gegen Funktionsaufruf

Ein typischer Prozessor führt Anweisungen einzeln aus. Es kann jedoch vorkommen, dass der Prozessor den aktuellen Befehl stoppen und ein anderes Programm oder Codesegment ausführen muss (das sich an einem anderen Ort befindet). Danach kehrt der Prozessor zur normalen Ausführung zurück und fährt dort fort, wo er aufgehört hat. Ein Systemaufruf und ein Funktionsaufruf sind solche Gelegenheiten. Ein Systemaufruf ist ein Aufruf einer im System integrierten Unterroutine. Ein Funktionsaufruf ist ein Aufruf einer Unterroutine innerhalb des Programms.

Was ist ein Systemaufruf?

Systemaufrufe bieten Programmen, die auf dem Computer ausgeführt werden, eine Schnittstelle, um mit dem Betriebssystem zu kommunizieren. Wenn ein Programm vom Kernel des Betriebssystems einen Dienst anfordern muss (für den es keine Berechtigung hat, dies selbst zu tun), verwendet es einen Systemaufruf. Prozesse auf Benutzerebene haben nicht die gleichen Berechtigungen wie die Prozesse, die direkt mit dem Betriebssystem interagieren. Um beispielsweise mit einem externen E / A-Gerät zu kommunizieren oder mit anderen Prozessen zu interagieren, verwendet ein Programm Systemaufrufe.

Was ist ein Funktionsaufruf?

Ein Funktionsaufruf wird auch als Unterprogrammaufruf bezeichnet. Eine Unterroutine (auch als Prozedur, Funktion, Methode oder Routine bezeichnet) ist Teil eines größeren Programms, das für die Ausführung einer bestimmten Aufgabe verantwortlich ist. Das größere Programm kann eine hohe Arbeitslast ausführen, und das Unterprogramm kann nur eine einfache Aufgabe ausführen, die auch unabhängig von der verbleibenden Programmcodierung ist. Eine Funktion ist so codiert, dass sie mehrfach und von verschiedenen Orten aus aufgerufen werden kann (auch aus anderen Funktionen heraus). Wenn eine Funktion aufgerufen wird, kann der Prozessor dorthin gehen, wo sich der Code für die Funktion befindet, und die Anweisungen der Funktion nacheinander ausführen. Nach Abschluss der Funktionen kehrt der Prozessor genau dorthin zurück, wo er aufgehört hat, und setzt die Ausführung ab der nächsten Anweisung fort. Funktionen sind ein großartiges Werkzeug für die Wiederverwendung von Code. Viele moderne Programmiersprachen unterstützen Funktionen. Eine Sammlung von Funktionen wird als Bibliothek bezeichnet. Bibliotheken werden häufig als Mittel zum Teilen und Handeln von Software verwendet. In einigen Fällen kann das gesamte Programm eine Folge von Unterroutinen sein (z. B. Kompilierung von Thread-Code).

Was ist der Unterschied zwischen Systemaufruf und Funktionsaufruf?

Der Systemaufruf ist ein Aufruf einer im System integrierten Unterroutine, während ein Funktionsaufruf ein Aufruf einer Unterroutine innerhalb des Programms ist. Im Gegensatz zu Funktionsaufrufen werden Systemaufrufe verwendet, wenn ein Programm eine Aufgabe ausführen muss, für die es keine Berechtigung hat. Systemaufrufe sind Einstiegspunkte in den Betriebssystemkern und nicht mit dem Programm verknüpft (wie Funktionsaufrufe). Im Gegensatz zu Systemaufrufen sind Funktionsaufrufe portabel. Der Zeitaufwand eines Systemaufrufs ist größer als der Aufwand für einen Funktionsaufruf, da ein Übergang zwischen dem Benutzermodus und dem Kernelmodus stattfinden muss. Systemaufrufe werden im Kernel-Adressraum ausgeführt, während Funktionsaufrufe im Benutzeradressraum ausgeführt werden.

Empfohlen: