Ein Systemaufruf ist eine Möglichkeit für ein Benutzerprogramm, eine Schnittstelle mit dem Betriebssystem herzustellen. Das Programm fordert mehrere Dienste an und das Betriebssystem antwortet mit einer Reihe von Systemaufrufen, um die Anforderung zu erfüllen. Ein Systemaufruf kann in Assemblersprache oder einer Hochsprache geschrieben werden C oder Pascal . Systemaufrufe sind vordefinierte Funktionen, die das Betriebssystem direkt aufrufen kann, wenn eine Hochsprache verwendet wird.
In diesem Artikel erfahren Sie mehr über die Systemaufrufe im Betriebssystem und besprechen deren Typen und vieles mehr.
Was ist ein Systemaufruf?
Ein Systemaufruf ist eine Methode für ein Computerprogramm, einen Dienst vom Kernel des Betriebssystems anzufordern, auf dem es ausgeführt wird. Ein Systemaufruf ist eine Methode zur Interaktion mit dem Betriebssystem über Programme. Ein Systemaufruf ist eine Anfrage einer Computersoftware an den Kernel eines Betriebssystems.
Der Anwendungsprogrammschnittstelle (API) verbindet die Funktionen des Betriebssystems mit Benutzerprogrammen. Es fungiert als Bindeglied zwischen dem Betriebssystem und einem Prozess und ermöglicht es Programmen auf Benutzerebene, Betriebssystemdienste anzufordern. Auf das Kernelsystem kann nur über Systemaufrufe zugegriffen werden. Für alle Programme, die Ressourcen nutzen, sind Systemaufrufe erforderlich.
Wie werden Systemaufrufe durchgeführt?
Wenn eine Computersoftware auf den Kernel des Betriebssystems zugreifen muss, führt sie einen Systemaufruf durch. Der Systemaufruf verwendet eine API, um die Dienste des Betriebssystems für Benutzerprogramme verfügbar zu machen. Dies ist die einzige Methode, um auf das Kernelsystem zuzugreifen. Alle Programme oder Prozesse, die zur Ausführung Ressourcen benötigen, müssen Systemaufrufe verwenden, da diese als Schnittstelle zwischen dem Betriebssystem und Benutzerprogrammen dienen.
Nachfolgend finden Sie einige Beispiele dafür, wie sich ein Systemaufruf von einer Benutzerfunktion unterscheidet.
Java-Escape-Zeichen
- Eine Systemaufruffunktion kann Kernelprozesse erstellen und verwenden, um die asynchrone Verarbeitung auszuführen.
- Ein Systemaufruf hat größere Autorität als eine Standard-Unterroutine. Ein Systemaufruf mit Kernelmodus-Berechtigung wird in der Kernel-Schutzdomäne ausgeführt.
- Systemaufrufe dürfen keine gemeinsam genutzten Bibliotheken oder Symbole verwenden, die nicht in der Kernel-Schutzdomäne vorhanden sind.
- Der Code und die Daten für Systemaufrufe werden im globalen Kernel-Speicher gespeichert.
Warum benötigen Sie Systemaufrufe im Betriebssystem?
Es gibt verschiedene Situationen, in denen Sie Systemaufrufe im Betriebssystem benötigen. Die folgenden Situationen sind wie folgt:
- Dies ist erforderlich, wenn ein Dateisystem eine Datei erstellen oder löschen möchte.
- Netzwerkverbindungen erfordern, dass das System Datenpakete sendet und empfängt.
- Wenn Sie eine Datei lesen oder schreiben möchten, müssen Sie Systemaufrufe ausführen.
- Wenn Sie auf Hardwaregeräte, einschließlich Drucker oder Scanner, zugreifen möchten, benötigen Sie einen Systemaufruf.
- Systemaufrufe werden zum Erstellen und Verwalten neuer Prozesse verwendet.
So funktionieren Systemaufrufe
Die Anwendungen werden in einem Speicherbereich ausgeführt, der als Benutzerbereich bezeichnet wird. Ein Systemaufruf stellt eine Verbindung zum Kernel des Betriebssystems her, der im Kernelraum ausgeführt wird. Wenn eine Anwendung einen Systemaufruf erstellt, muss sie zunächst die Erlaubnis vom Kernel einholen. Dies wird durch eine Interrupt-Anfrage erreicht, die den aktuellen Prozess anhält und die Kontrolle an den Kernel überträgt.
Wenn die Anfrage zulässig ist, führt der Kernel die angeforderte Aktion aus, z. B. das Erstellen oder Löschen einer Datei. Als Eingabe erhält die Anwendung die Ausgabe des Kernels. Die Anwendung setzt den Vorgang fort, nachdem die Eingabe eingegangen ist. Wenn der Vorgang abgeschlossen ist, gibt der Kernel die Ergebnisse an die Anwendung zurück und verschiebt dann Daten vom Kernel-Bereich in den Benutzerbereich im Speicher.
Es kann einige Nanosekunden dauern, bis ein einfacher Systemaufruf das Ergebnis liefert, beispielsweise das Abrufen des Systemdatums und der Systemzeit. Ein komplizierterer Systemaufruf, beispielsweise das Herstellen einer Verbindung zu einem Netzwerkgerät, kann einige Sekunden dauern. Die meisten Betriebssysteme starten für jeden Systemaufruf einen eigenen Kernel-Thread, um Engpässe zu vermeiden. Moderne Betriebssysteme sind multithreaded, das heißt, sie können verschiedene Systemaufrufe gleichzeitig verarbeiten.
Arten von Systemaufrufen
Im Allgemeinen gibt es fünf Arten von Systemaufrufen. Diese lauten wie folgt:
Das Scrollen mit der Maus funktioniert nicht
Jetzt lernen Sie nacheinander die verschiedenen Arten von Systemaufrufen kennen.
Prozesssteuerung
Prozesssteuerung ist der Systemaufruf, der zur Steuerung der Prozesse verwendet wird. Einige Beispiele für die Prozesssteuerung umfassen das Erstellen, Laden, Abbrechen, Beenden, Ausführen, Verarbeiten, Beenden des Prozesses usw.
Dokumentenverwaltung
Die Dateiverwaltung ist ein Systemaufruf, der zur Verwaltung der Dateien verwendet wird. Einige Beispiele für die Dateiverwaltung umfassen das Erstellen von Dateien, das Löschen von Dateien, das Öffnen, Schließen, Lesen, Schreiben usw.
Geräteverwaltung
Bei der Geräteverwaltung handelt es sich um einen Systemaufruf, der für den Umgang mit Geräten verwendet wird. Einige Beispiele für die Geräteverwaltung umfassen Lesen, Gerät, Schreiben, Abrufen von Geräteattributen, Freigeben von Geräten usw.
XML-Kommentar
Informationspflege
Bei der Informationspflege handelt es sich um einen Systemaufruf, der der Pflege von Informationen dient. Es gibt einige Beispiele für die Informationspflege, darunter das Abrufen von Systemdaten, das Festlegen von Uhrzeit oder Datum, das Abrufen von Uhrzeit oder Datum, das Festlegen von Systemdaten usw.
Kommunikation
Kommunikation ist ein Systemaufruf, der der Kommunikation dient. Es gibt einige Beispiele für Kommunikation, darunter das Erstellen und Löschen von Kommunikationsverbindungen, das Senden und Empfangen von Nachrichten usw.
Beispiele für Windows- und Unix-Systemaufrufe
Es gibt verschiedene Beispiele für Windows- und Unix-Systemaufrufe. Diese sind in der Tabelle unten aufgeführt:
Verfahren | Windows | Unix |
---|---|---|
Prozesssteuerung | CreateProcess() ExitProcess() WaitForSingleObject() | Gabel() Ausfahrt() Warten() |
Dateimanipulation | Erstelle Datei() ReadFile() WriteFile() CloseHandle() | Offen() Lesen() Schreiben() Schließen() |
Geräteverwaltung | SetConsoleMode() ReadConsole() WriteConsole() | Ioctl() Lesen() Schreiben() |
Informationspflege | GetCurrentProcessID() SetTimer() Schlafen() | Getpid() Alarm() Schlafen() |
Kommunikation | CreatePipe() CreateFileMapping() MapViewOfFile() | Rohr() Shmget() Mmap() |
Schutz | SetFileSecurity() InitializeSecurityDescriptor() SetSecurityDescriptorgroup() | Chmod() umask() Chown() |
Hier erfahren Sie kurz einige Methoden:
offen()
Der offen() Mit einem Systemaufruf können Sie auf eine Datei in einem Dateisystem zugreifen. Es weist der Datei Ressourcen zu und stellt ein Handle bereit, auf das der Prozess verweisen kann. Viele Prozesse können eine Datei gleichzeitig oder nur von einem einzigen Prozess öffnen. Es basiert alles auf dem Dateisystem und der Struktur.
lesen()
Es wird verwendet, um Daten aus einer Datei im Dateisystem abzurufen. Es akzeptiert im Allgemeinen drei Argumente:
- Ein Dateideskriptor.
- Ein Puffer zum Speichern gelesener Daten.
- Die Anzahl der aus der Datei zu lesenden Bytes.
Der Dateideskriptor der zu lesenden Datei könnte verwendet werden, um sie zu identifizieren und mit zu öffnen offen() vor dem Lesen.
Warten()
In einigen Systemen muss ein Prozess möglicherweise warten, bis ein anderer Prozess seine Ausführung abgeschlossen hat, bevor er fortfahren kann. Wenn ein übergeordneter Prozess einen untergeordneten Prozess erstellt, wird die Ausführung des übergeordneten Prozesses angehalten, bis der untergeordnete Prozess abgeschlossen ist. Der Warten() Der Systemaufruf wird verwendet, um den übergeordneten Prozess anzuhalten. Sobald der untergeordnete Prozess seine Ausführung abgeschlossen hat, wird die Kontrolle an den übergeordneten Prozess zurückgegeben.
schreiben()
Es wird verwendet, um Daten wie eine Datei aus einem Benutzerpuffer auf ein Gerät zu schreiben. Dieser Systemaufruf ist eine Möglichkeit für ein Programm, Daten zu generieren. Es braucht im Allgemeinen drei Argumente:
- Ein Dateideskriptor.
- Ein Zeiger auf den Puffer, in dem Daten gespeichert werden.
- Die Anzahl der Bytes, die aus dem Puffer geschrieben werden sollen.
Gabel()
Prozesse erzeugen mithilfe von Klone von sich selbst Gabel() Systemaufruf. Dies ist eine der gebräuchlichsten Methoden zum Erstellen von Prozessen in Betriebssystemen. Wenn ein übergeordneter Prozess einen untergeordneten Prozess erzeugt, wird die Ausführung des übergeordneten Prozesses unterbrochen, bis der untergeordnete Prozess abgeschlossen ist. Sobald der untergeordnete Prozess seine Ausführung abgeschlossen hat, wird die Kontrolle an den übergeordneten Prozess zurückgegeben.
schließen()
Es wird verwendet, um den Zugriff auf das Dateisystem zu beenden. Wenn dieser Systemaufruf aufgerufen wird, bedeutet dies, dass das Programm die Datei nicht mehr benötigt. Die Puffer werden geleert, die Dateiinformationen werden geändert und die Dateiressourcen werden dadurch freigegeben.
exec()
Wenn eine ausführbare Datei eine frühere ausführbare Datei in einem bereits ausgeführten Prozess ersetzt, wird diese Systemfunktion aufgerufen. Da kein neuer Prozess erstellt wird, bleibt die alte Prozessidentifikation bestehen, aber der neue Prozess ersetzt Daten, Stapel, Daten, Kopf usw.
Ausfahrt()
Der Ausfahrt() ist ein Systemaufruf, der zum Beenden der Programmausführung verwendet wird. Dieser Aufruf zeigt an, dass die Thread-Ausführung abgeschlossen ist, was besonders in Multithread-Umgebungen nützlich ist. Das Betriebssystem fordert vom Prozess verbrauchte Ressourcen nach der Verwendung des zurück Ausfahrt() Systemfunktion.
sed-Befehl