vms_iowait, vms_iowaitf-Kernel-Services

Zweck

Wartet auf den Abschluss aller Auslagerungsoperationen für Seiten im virtuellen Speicherobjekt.

Syntax

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/vmuser.h>
int vms_iowait ( vmid)
vmid_t vmid;


int vms_iowaitf ( vmid, flags)
vmid_t vmid;
int flags;

Parameter

Element Beschreibung
vmid Gibt das virtuelle Speicherobjekt an, auf das gewartet werden soll
Flags Optionale Flags, die vom Benutzer übergeben werden

Beschreibung

Der Kernel-Dienst vms_iowait erfüllt zwei Aufgaben. Zunächst wird die E/A-Ebene ermittelt, bei der alle derzeit geplanten Auslagerungen für das durch den Parameter vmid angegebene virtuelle Speicherobjekt abgeschlossen sind. Dann versetzt der vms_iowait-Dienst den aktuellen Prozess in einen Wartezustand, bis diese E/A-Stufe erreicht ist.

Der Wert für die E/A-Stufe ist die Anzahl der Auslagerungsoperationen, die für jedes virtuelle Speicherobjekt beibehalten werden.

Die E/A-Ebene berücksichtigt die Verarbeitung außerhalb der Reihenfolge, indem die E/A-Ebene für neue Auslagerungsanforderungen nicht erhöht wird, bis alle vorherigen Anforderungen abgeschlossen sind. Aus diesem Grund können Prozesse, die auf verschiedenen E/A-Ebenen warten, nach Abschluss einer einzelnen Auslagerungsoperation aktiviert werden.

Wenn der Aufrufer die Kernelsperre hält, gibt der Dienst vms_ iowait die Kernelsperre frei, bevor er wartet, und nimmt sie anschließend wieder ein.

Die Funktion vms_iowait ist ein Spezialfall der Funktion vms_iowaitf, bei der das Flag V_WAITERR gesetzt ist.

Flags

Ihren Namen Zweck
V_WAITERR Wartet, bis die gesamte Ein-/Ausgabe abgeschlossen ist, sofern kein Fehler auftritt.
V_WAITALL Wartet, bis die gesamte Ein-/Ausgabe abgeschlossen ist, unabhängig davon, ob E/A-Fehler auftreten.

Ausführungsumgebung

Die Kernel-Dienste vms_iowait und vms_iowaitf können nur aus der Prozessumgebung aufgerufen werden.

Sie können nur von Dateisegmenten verwendet werden.

Rückgabewerte

Element Beschreibung
0 Gibt an, dass die Auslagerungsoperationen abgeschlossen sind.
EIO Zeigt an, dass während der Ein-/Ausgabe ein Fehler aufgetreten ist.