Systemaufruf im Betriebssystem (Operating-System): Was ist, Typen und Beispiele
Was ist ein Systemaufruf? Operating-System?
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.
Systemaufrufe bieten den Benutzerprogrammen die Dienste des Betriebssystems über API (Application Programming Interface) an. Systemaufrufe sind die einzigen Einstiegspunkte für das Kernelsystem.
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:
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?
Im Folgenden sind Situationen aufgeführt, in denen Systemaufrufe im Betriebssystem erforderlich sind:
- 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
Steuerung &
Diese Systemaufrufe übernehmen die Aufgabe der Prozesserstellung, Prozessbeendigung usw.
Funktionen:
- Ende und Abbruch
- Laden und ausführen
- Prozess erstellen und Prozess beenden
- Warten Sie und Signal Event
- 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, etwa 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 gelegt oder vom Stapel 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() InitialisierenSicherheitDescriptoder() Sicherheit festlegenDescriptoderGruppe () |
Chmod() Umask() Chown() |