SWAPON(2)

BEZEICHNUNG
swapon, swapoff - Auslagerung von Hauptspeicherbereichen (Swapping) auf ein Gerät oder in eine Datei starten/beenden

ÜBERSICHT
#include <unistd.h>
#include <asm/page.h> /* zum Bestimmen von PAGE_SIZE */
#include <sys/swap.h>

intswapon(constchar*pfad,intswap_schalter);
intswapoff(constchar*pfad);

BESCHREIBUNG
swapon weist den Auslagerungsbereich für Hauptspeicherbereiche der Datei oder dem blockorientierten Gerät zu, das in pfad festgelegt wurde. swapoff beendet das Auslagern von Hauptspeicherbereichen in der Datei oder dem blockorientierten Gerät, das in pfad festgelegt wurde.

swapon nimmt ein swap_schalter-Argument entgegen. Falls das SWAP_FLAG_PREFER-Bit von swap_schalter den Wert eins hat, hat der neue Auslagerungsbereich für Hauptspeicherbereiche eine höhere Priorität als der vorgegebene. Die Priorität ist in swap_schalter kodiert als:

(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

Diese Funktionen können nur von einem privilegierten Prozess (einem, der über die CAP_SYS_ADMIN-Fähigkeit verfügt) benutzt werden.

  Priorität
Jeder Auslagerungsbereich für Hauptspeicherbereiche hat eine Priorität, hoch oder niedrig. Die Standardpriorität ist niedrig. Innerhalb der Bereiche niedriger Priorität erhalten neuere Bereiche eine niedrigere Priorität als ältere.

Alle mit swap_schalter gesetzten Prioritäten sind hohe Prioritäten und höher als die Vorgabe. Sie können einen beliebigen durch den Aufrufenden gewählten nicht-negativen Wert haben. Höhere Zahlen entsprechen höheren Prioritäten.

Auslagerungsseiten von Hauptspeicherbereichen werden nach Priorität aus den Bereichen reserviert, die mit der höchsten Priorität zuerst. Bei Bereichen unterschiedlicher Priorität werden die mit der höheren Priorität zuerst ausgeschöpt, bevor Bereiche mit niedriger Priorität genutzt werden. Haben zwei oder mehr Bereiche die gleiche Priorität und diese ist die höchste verfügbare, dann werden die Seiten reihum nacheinander reserviert.

Ab Linux 1.3.6 befolgt der Kernel diese Regeln gewöhnlich, aber es gibt auch Ausnahmen.

RÜCKGABEWERT
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

EBUSY
    (Für swapon()) Der angegebene pfad wird bereits als Auslagerungsbereich für Hauptspeicherbereiche benutzt.

EINVAL
    Die Datei pfad existiert, zeigt aber weder auf eine reguläre Datei noch auf ein blockorientiertes Gerät. Oder der für swapon() angegebene Pfad enthält keine gültige Signatur für die Auslagerung von Hauptspeicherbereichen oder befindet sich auf einen Dateisystem im Speicher, wie Tmpfs. Oder der pfad für swapoff() ist derzeit nicht in einem Auslagerungsbereich von Hauptspeicherbereichen.

ENFILE
    Die Systembegrenzung der Gesamtzahl offener Dateien wurde erreicht.

ENOENT
    Die Datei pfad existiert nicht.

ENOMEM
    Das System verfügt nicht über ausreichenden Speicher, um das Auslagern von Hauptspeicherbereichen zu starten.

EPERM
    Der Aufrufende verfügt nicht über die Fähigkeit CAP_SYS_ADMIN. Alternativ wird die maximale Anzahl der Auslagerungsdateien für Hauptspeicherbereiche benutzt; Lesen Sie die folgenden ANMERKUNGEN.

KONFORM ZU
Diese Funktionen sind Linux-spezifisch und sollte nicht in Programmen benutzt werden, die portabel gehalten werden sollen. Das zweite swap_schalter-Argument wurde mit Linux 1.3.2 eingeführt.

ANMERKUNGEN
Die Partition oder der Pfad müssen mit mkswap(8) vorbereitet werden. Es gibt eine Obergrenze für die Anzahl der benutzbaren Auslagerungsdateien von Hauptspeicherbereichen, die in der Kernel-Konstante MAX_SWAPFILES definiert wird. Vor Kernel 2.4.10 hatte MAX_SWAPFILES den Wert 8; seit Kernel 2.4.10 hat sie den Wert 32. Seit Kernel 2.6.18 ist die Grenze um zwei herabgesetzt (daher: 30) falls der Kernel mit der Option CONFIG_MIGRATION erstellt wurde (die zwei Einträge in der Auslagerungstabelle von Hauptspeicherbereichen für die Seiten-Migrationsfunktionen von mbind(2) und migrate_pages(2) reserviert). Seit Kernel 2.6.32 wird die Grenze ferner um eins herabgesetzt, falls der Kernel mit der Option CONFIG_MEMORY_FAILURE erstellt wurde.

SIEHE AUCH
mkswap(8), swapoff(8), swapon(8)

KOLOPHON
Diese Seite ist Teil der Veröffentlichung 3.27 des Projekts Linux-man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Ralf Demmer <rdemmer@rdemmer.de> und Chris Leick <c.leick@vollbio.de> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.