Systemaufruf VS Funktion Call
Ein typischer Prozessor führt Anweisungen nacheinander aus. Es kann jedoch Fälle geben, in denen der Prozessor den aktuellen Anweisungen stoppen und ein anderes Programm- oder Codesegment ausführen muss (wohnhaft an einem anderen Ort). Danach kehrt der Prozessor zur normalen Ausführung zurück und geht von dort aus, wo er aufgehört hat. Ein Systemaufruf und ein Funktionsaufruf sind solche Anlässe. Ein Systemanruf ist ein Aufruf an eine in das System eingebaute Unterroutine. Ein Funktionsaufruf ist ein Aufruf an eine Unterroutine innerhalb des Programms selbst.
Was ist ein Systemanruf?
Systemaufrufe bieten Programme, die auf dem Computer ausgeführt werden, eine Schnittstelle, mit der Sie mit dem Betriebssystem sprechen können. Wenn ein Programm nach einem Dienst bitten muss (für den es keine Erlaubnis hat, dies selbst zu tun) aus dem Kern des Betriebssystems, verwendet es einen Systemaufruf. Benutzerebene Prozesse haben nicht die gleichen Berechtigungen wie die Prozesse, die direkt mit dem Betriebssystem interagieren. Zum Beispiel, um mit und externes 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 Unterroutine -Anruf bezeichnet. Eine Unterroutine (auch als Verfahren, 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 starke Arbeitsbelastung ausführen, und die Unterroutine kann nur eine einfache Aufgabe ausführen, die auch unabhängig von der verbleibenden Programmcodierung ist. Eine Funktion wird so codiert, dass sie mehrmals und aus verschiedenen Orten aufgerufen werden kann (selbst aus anderen Funktionen). Wenn eine Funktion aufgerufen wird, kann der Prozessor dorthin gehen. Nach Abschluss der Funktionen kehrt der Prozessor genau dort zurück, wo er aufgehört hat, und setzt die Ausführung ab der nächsten Anweisung fort. Funktionen sind ein großartiges Tool 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 Handelssoftware verwendet. In einigen Fällen könnte das gesamte Programm eine Abfolge von Unterroutinen sein (e.G. Thread -Code -Kompilierung).
Was ist der Unterschied zwischen Systemaufruf und Funktionsaufruf??
Systemaufruf ist ein Aufruf an eine in das System eingebaute Unterprogramm. Im Gegensatz zu Funktionsaufrufen werden Systemaufrufe verwendet, wenn ein Programm eine Aufgabe ausführen muss, für die es kein Privileg hat. Systemaufrufe sind Einstiegspunkte in den Betriebssystemkernel und sind nicht mit dem Programm verbunden (wie Funktionsaufrufe). Im Gegensatz zu Systemaufrufen sind Funktionsaufrufe tragbar. Zeitaufwand eines Systemaufrufs ist mehr als der Overhead für einen Funktionsaufruf, da ein Übergang zwischen dem Benutzermodus und dem Kernel -Modus stattfinden muss. Systemaufrufe werden im Kernel -Adressraum ausgeführt, während Funktionsaufrufe im Benutzeradressraum ausgeführt werden.