Unterschied zwischen Systemaufruf und Funktionsaufruf

Anonim

Systemaufruf gegenüber Funktionsaufruf

stoppen muss. Ein typischer Prozessor führt Anweisungen einzeln aus. Es kann jedoch Situationen geben, in denen 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 von dort fort, wo er aufgehört hat. Ein Systemaufruf und ein Funktionsaufruf sind solche Anlässe. Ein Systemaufruf ist ein Aufruf einer in das System eingebauten Subroutine. Ein Funktionsaufruf ist ein Aufruf einer Subroutine innerhalb des Programms selbst.

Was ist ein Systemaufruf?

Systemaufrufe stellen Programme bereit, die auf dem Computer eine Schnittstelle zum Sprechen mit dem Betriebssystem ausführen. Wenn ein Programm vom Kernel des Betriebssystems nach einem Dienst (für den er keine Berechtigung hat, dies selbst zu tun) benötigt, verwendet er einen Systemaufruf. Prozesse auf Benutzerebene haben nicht die gleichen Berechtigungen wie die Prozesse, die direkt mit dem Betriebssystem interagieren. Um beispielsweise mit einem externen I / O-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 Subroutine (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 die Unterroutine kann nur eine einfache Aufgabe ausführen, die auch unabhängig von der verbleibenden Programmcodierung ist. Eine Funktion ist so codiert, dass sie mehrmals 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 führt die Befehle der Funktion nacheinander aus. Nach Beendigung der Funktionen kehrt der Prozessor genau zu dem Punkt zurück, an dem 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 Bibliothek genannt. Bibliotheken werden häufig als Mittel zum Teilen und Handeln von Software verwendet. In einigen Fällen könnte das gesamte Programm eine Folge von Unterroutinen sein (zum Beispiel die Zusammenstellung von Threads).

Was ist der Unterschied zwischen Systemaufruf und Funktionsaufruf?

Systemaufruf ist ein Aufruf einer in das System eingebauten Subroutine, während ein Funktionsaufruf ein Aufruf einer Subroutine 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 besitzt. Systemaufrufe sind Einstiegspunkte in den Betriebssystemkern und sind nicht mit dem Programm verknüpft (wie Funktionsaufrufe).Im Gegensatz zu Systemaufrufen sind Funktionsaufrufe portierbar. Der Zeitaufwand für einen Systemaufruf ist mehr als der Aufwand für einen Funktionsaufruf, da ein Übergang zwischen dem Benutzermodus und dem Kernel-Modus stattfinden muss. Systemaufrufe werden im Kerneladressraum ausgeführt, während Funktionsaufrufe im Benutzeradressraum ausgeführt werden.