Systemaufruf vs. Funktionsaufruf
Ein typischer Prozessor führt die Anweisungen nacheinander aus. Es kann jedoch Fälle geben, in denen der Prozessor den aktuellen Befehl anhalten 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 Anlässe. Ein Systemaufruf ist ein Aufruf einer im System eingebauten Subroutine. Ein Funktionsaufruf ist ein Aufruf eines Unterprogramms innerhalb des Programms.
Was ist ein Systemaufruf??
Systemaufrufe bieten Programmen, die auf dem Computer ausgeführt werden, eine Schnittstelle für die Kommunikation mit dem Betriebssystem. Wenn ein Programm vom Kernel des Betriebssystems einen Dienst abfragen muss (für den es selbst keine Berechtigung dazu hat), verwendet es einen Systemaufruf. Prozesse auf Benutzerebene haben nicht die gleichen Berechtigungen wie Prozesse, die direkt mit dem Betriebssystem interagieren. Beispielsweise verwendet ein Programm Systemaufrufe, um mit einem externen E / A-Gerät zu kommunizieren oder mit anderen Prozessen zu interagieren.
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 zuständig ist. Das größere Programm kann eine schwere Arbeitslast ausführen, und die Unterroutine führt möglicherweise nur eine einfache Aufgabe aus, die auch unabhängig von der übrigen Programmcodierung ist. Eine Funktion ist so codiert, dass sie mehrfach und von verschiedenen Stellen aus aufgerufen werden kann (auch innerhalb anderer Funktionen). Wenn eine Funktion aufgerufen wird, kann der Prozessor zu dem Ort wechseln, an dem sich der Code für die Funktion befindet, und die Anweisungen der Funktion nacheinander ausführen. Nach Abschluss der Funktionen kehrt der Prozessor an die Stelle zurück, an der er aufgehört hat, und setzt die Ausführung ab der nächsten Anweisung fort. Funktionen sind ein hervorragendes 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 zum Handel mit Software verwendet. In einigen Fällen kann das gesamte Programm eine Folge von Unterprogrammen sein (z. B. Thread-Code-Kompilierung)..
Was ist der Unterschied zwischen Systemaufruf und Funktionsaufruf??
Ein 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 verbunden (wie Funktionsaufrufe). Im Gegensatz zu Systemaufrufen sind Funktionsaufrufe portabel. Der Zeitaufwand eines Systemaufrufs ist mehr als der Aufwand eines Funktionsaufrufs, da ein Übergang zwischen dem Benutzermodus und dem Kernelmodus erfolgen muss. Systemaufrufe werden im Kernel-Adressraum ausgeführt, Funktionsaufrufe im Benutzeradressraum.