Systemaufruf
Ein Systemaufruf ist eine Anforderung, die von einem Programm an das Betriebssystem gestellt wird. Er ermöglicht einer Anwendung, auf Funktionen und Befehle der API des Betriebssystems zuzugreifen.
Systemaufrufe führen Operationen auf Systemebene aus, z. B. die Kommunikation mit Hardware-Geräten sowie das Lesen und Schreiben von Dateien. Durch Systemaufrufe können Entwickler vorgefertigte, vom Betriebssystem unterstützte Funktionen verwenden, anstatt sie von Grund auf neu zu schreiben. Dies vereinfacht die Entwicklung, verbessert die Stabilität von Apps und macht Apps zwischen verschiedenen Versionen eines Betriebssystems (OS) besser „portierbar“.
Funktionsweise von Systemaufrufen
Anwendungen laufen innerhalb eines Speicherbereichs, der als Benutzerbereich bezeichnet wird. Ein Systemaufruf greift auf den Kernel des Betriebssystems zu, der im Kernelbereich ausgeführt wird. Wenn eine Anwendung einen Systemaufruf ausführt, muss sie zunächst die Genehmigung des Kernels anfordern. Dies kann mit einer Interrupt-Anforderung geschehen, die den aktuellen Prozess pausiert und die Kontrolle an den Kernel übergibt.
Wenn die Anforderung zulässig ist, verarbeitet der Kernel sie, z. B. indem er eine Datei erstellt oder löscht. Sobald der Vorgang abgeschlossen ist, gibt der Kernel die Ausgabe an die Anwendung zurück, die Daten aus dem Kernelbereich in den Benutzerbereich des Speichers überträgt. Die Anwendung empfängt die Ausgabe vom Kernel als Eingabe. Im Quellcode eines Programms kann dies ein Parameterwert oder ein Rückgabewert innerhalb einer Funktion sein. Sobald die Eingabe empfangen wurde, setzt die Anwendung den Prozess fort.
Ein einfacher Systemaufruf, z. B. das Abrufen des Systemdatums und der Uhrzeit, kann einige Nanosekunden dauern. Ein fortgeschrittenerer Systemaufruf, z. B. das Herstellen einer Verbindung mit einem Netzwerkgerät, kann einige Sekunden benötigen. Um Engpässe zu verhindern, starten die meisten Betriebssysteme für jeden Systemaufruf einen eigenen Kernel-Thread. Moderne Betriebssysteme sind mehrthreadfähig, d. h., sie können mehrere Systemaufrufe gleichzeitig verarbeiten.
Testen Sie Ihr Wissen