Systemaufruf im Betriebssystem (Betriebssystem): Was ist, Typen und Beispiele

Was ist ein Systemaufruf im Betriebssystem?

A Systemaufruf ist ein Mechanismus, der die Schnittstelle zwischen einem Prozess und dem Betriebssystem bereitstellt. Es handelt sich um eine programmgesteuerte Methode, bei der ein Computerprogramm einen Dienst vom Kernel des Betriebssystems anfordert.

Der Systemaufruf bietet den Benutzerprogrammen die Dienste des Betriebssystems über eine API (Application Programming Interface) an. Systemaufrufe sind die einzigen Einstiegspunkte für das Kernelsystem.

Systemaufrufe im Betriebssystem
Systemaufrufe im Betriebssystem

Beispiel eines Systemaufrufs

Wenn wir beispielsweise einen Programmcode schreiben müssen, um Daten aus einer Datei zu lesen, kopieren Sie diese Daten in eine andere Datei. Die erste Information, die das Programm benötigt, ist der Name der beiden Dateien, der Eingabe- und Ausgabedatei.

In einem interaktiven System erfordert diese Art der Programmausführung einige Systemaufrufe durch das Betriebssystem.

  • Der erste Anruf besteht darin, eine Aufforderungsnachricht auf den Bildschirm zu schreiben
  • Zweitens, um über die Tastatur die Zeichen zu lesen, die die beiden Dateien definieren.

Wie funktioniert ein Systemaufruf?

Hier sind die Schritte für den Systemaufruf im Betriebssystem:

Systemaufruf funktioniert

Architektur des Systemaufrufs

Architektur des Systemaufrufs

Wie Sie im oben angegebenen Beispieldiagramm für einen Systemaufruf sehen können.

Schritt 1) Die im Benutzermodus ausgeführten Prozesse, bis sie durch einen Systemaufruf unterbrochen werden.

Schritt 2) Danach wird der Systemaufruf vorrangig im Kernel-Modus ausgeführt.

Schritt 3) Sobald die Ausführung des Systemaufrufs abgeschlossen ist, kehrt die Steuerung in den Benutzermodus zurück.

Schritt 4) Die Ausführung von Benutzerprozessen wurde in fortgesetzt Kernel-Modus.

Warum benötigen Sie Systemaufrufe im Betriebssystem?

Following sind Situationen, die Systemaufrufe im Betriebssystem erfordern:

  • Das Lesen und Schreiben von Dateien erfordert Systemaufrufe.
  • Wenn ein Dateisystem Dateien erstellen oder löschen möchte, sind Systemaufrufe erforderlich.
  • Systemaufrufe werden für die Erstellung und Verwaltung neuer Prozesse verwendet.
  • Netzwerkverbindungen benötigen Systemaufrufe zum Senden und Empfangen von Paketen.
  • Der Zugriff auf Hardwaregeräte wie Scanner und Drucker erfordert einen Systemaufruf.

Arten von Systemaufrufen

Hier sind die fünf Arten von Systemaufrufen im Betriebssystem:

  • Steuerung &
  • Dokumentenverwaltung
  • Device Management
  • Informationspflege
  • Kommunikation
Arten von Systemaufrufen

Arten von Systemaufrufen im Betriebssystem

Steuerung &

Diese Systemaufrufe übernehmen die Aufgabe der Prozesserstellung, Prozessbeendigung usw.

Funktionen:

  • Ende und Abbruch
  • Laden und ausführen
  • Prozess erstellen und Prozess beenden
  • Warte- und Signalereignis
  • Speicher zuweisen und freigeben

Dokumentenverwaltung

Dateiverwaltungssystemaufrufe verarbeiten Dateimanipulationsaufgaben wie das Erstellen einer Datei, Lesen und Schreiben usw.

Funktionen:

  • Erstellen Sie eine Datei
  • Datei löschen
  • Datei öffnen und schließen
  • Lesen, schreiben und neu positionieren
  • Dateiattribute abrufen und festlegen

Device Management

Die Geräteverwaltung übernimmt die Gerätemanipulation, z. B. das Lesen aus Gerätepuffern, das Schreiben in Gerätepuffer usw.

Funktionen:

  • Gerät anfordern und freigeben
  • Geräte logisch anschließen/trennen
  • Geräteattribute abrufen und festlegen

Informationspflege

Es kümmert sich um Informationen und deren Übertragung zwischen dem Betriebssystem und dem Benutzerprogramm.

Funktionen:

  • Uhrzeit und Datum abrufen oder festlegen
  • Prozess- und Geräteattribute abrufen

Kommunikation

Diese Art von Systemaufrufen wird speziell für die Interprozesskommunikation verwendet.

Funktionen:

  • Kommunikationsverbindungen erstellen und löschen
  • Nachricht senden, empfangen
  • Helfen Sie dem Betriebssystem, Statusinformationen zu übertragen
  • Anschließen oder Trennen von Remote-Geräten

Regeln für die Übergabe von Parametern für Systemaufrufe

Hier sind allgemeine Regeln für die Übergabe von Parametern an den Systemaufruf:

  • Parameter sollten vom Betriebssystem auf den Stapel verschoben oder daraus entfernt werden.
  • Parameter können in Registern übergeben werden.
  • Wenn mehr Parameter als Register vorhanden sind, sollten diese in einem Block gespeichert und die Blockadresse als Parameter an ein Register übergeben werden.

Wichtige Systemaufrufe, die im Betriebssystem verwendet werden

warten()

In einigen Systemen muss ein Prozess darauf warten, dass ein anderer Prozess seine Ausführung abschließt. Diese Art von Situation tritt auf, wenn ein übergeordneter Prozess einen untergeordneten Prozess erstellt und die Ausführung des übergeordneten Prozesses angehalten bleibt, bis sein untergeordneter Prozess ausgeführt wird.

Die Unterbrechung des übergeordneten Prozesses erfolgt automatisch mit einem wait()-Systemaufruf. Wenn der untergeordnete Prozess die Ausführung beendet, geht die Steuerung zurück zum übergeordneten Prozess.

Gabel()

Prozesse verwenden diesen Systemaufruf, um Prozesse zu erstellen, die eine Kopie ihrer selbst sind. Mit Hilfe dieses Systems erstellt der Aufruf des übergeordneten Prozesses einen untergeordneten Prozess, und die Ausführung des übergeordneten Prozesses wird angehalten, bis der untergeordnete Prozess ausgeführt wird.

exec ()

Dieser Systemaufruf wird ausgeführt, wenn eine ausführbare Datei im Kontext eines bereits laufenden Prozesses die ältere ausführbare Datei ersetzt. Die ursprüngliche Prozesskennung bleibt jedoch erhalten, da kein neuer Prozess erstellt wird, sondern Stack, Daten, Kopf, Daten usw. durch den neuen Prozess ersetzt werden.

töten()

Der Systemaufruf kill() wird vom Betriebssystem verwendet, um ein Beendigungssignal an einen Prozess zu senden, das den Prozess zum Beenden auffordert. Allerdings bedeutet ein Kill-Systemaufruf nicht unbedingt das Beenden des Prozesses und kann verschiedene Bedeutungen haben.

Ausfahrt()

Der Systemaufruf „exit()“ wird verwendet, um die Programmausführung zu beenden. Insbesondere in der Multithread-Umgebung definiert dieser Aufruf, dass die Thread-Ausführung abgeschlossen ist. Das Betriebssystem fordert Ressourcen zurück, die vom Prozess nach der Verwendung des Systemaufrufs „exit()“ verwendet wurden.

Zusammenfassung

Kategorien Windows Unix
Prozesskontrolle CreateProcess ()
ExitProcess()
WaitForSingleObject()
Gabel()
Ausfahrt()
warten()
Gerätemanipulation SetConsoleMode()
ReadConsole()
WriteConsole()
loctl()
lesen()
schreibe ()
Dateimanipulation CreateFile ()
ReadFile()
WriteFile()
CloseHandle()
Offen()
Lesen()
schreibe ()
schließen!)
Informationspflege GetCurrentProcessID()
SetTimer()
Schlaf ()
getpid()
Alarm()
schlaf ()
Kommunikation CreatePipe()
CreateFileMapping ()
MapViewOfFile()
Rohr()
shm_open()
mmap ()
Schutz SetFileSecurity()
InitializeSecurityDescriptor()
SetSecurityDescriptorGroup ()
Chmod()
Umask()
Chown()