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, November
Anonim

Systemaufruf vs. Funktionsaufruf

Ein typischer Prozessor führt Anweisungen nacheinander aus. Es kann jedoch vorkommen, dass der Prozessor den aktuellen Befehl anh alten und ein anderes Programm oder Codesegment (das sich an einem anderen Ort befindet) ausführen muss. 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 in das System eingebauten Subroutine. Ein Funktionsaufruf ist ein Aufruf einer Subroutine innerhalb des Programms selbst.

Was ist ein Systemaufruf?

Systemaufrufe bieten Programmen, die auf dem Computer laufen, eine Schnittstelle, um mit dem Betriebssystem zu kommunizieren. Wenn ein Programm einen Dienst vom Kernel des Betriebssystems anfordern muss (für den es selbst keine Berechtigung hat), 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 Subroutine (auch bekannt als Prozedur, Funktion, Methode oder Routine) 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 restlichen Programmcodierung ist. Eine Funktion ist so kodiert, dass sie mehrfach und von verschiedenen Stellen (auch innerhalb anderer Funktionen) aufgerufen werden kann. 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 beginnend mit 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 kann das gesamte Programm eine Folge von Unterroutinen sein (z. B. Thread-Code-Kompilierung).

Was ist der Unterschied zwischen Systemaufruf und Funktionsaufruf?

Systemaufruf ist ein Aufruf einer Unterroutine, die in das System eingebaut ist, 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 eines Funktionsaufrufs, da ein Übergang zwischen dem Benutzermodus und dem Kernelmodus stattfinden muss. Systemaufrufe werden im Kernel-Adressraum ausgeführt, während Funktionsaufrufe im Benutzer-Adressraum ausgeführt werden.

Empfohlen: