Scroll to navigation

PR_SET_TIMERSLACK(2const) PR_SET_TIMERSLACK(2const)

BEZEICHNUNG

PR_SET_TIMERSLACK - Den »aktuellen« Timer-Spielraumwert für den aufrufenden Thread setzen

BIBLIOTHEK

Standard-C-Bibliothek (libc-lc)

ÜBERSICHT

#include <linux/prctl.h>  /* Definition der PR_*-Konstanten */
#include <sys/prctl.h>
int prctl(PR_SET_TIMERSLACK, unsigned long Spielraum);

BESCHREIBUNG

Jeder Thread hat zwei zugeordnete Timer-Spielraumwerte: einen »Vorgabe«-Wert und einen »aktuellen« Wert. Diese Aktion setzt den »aktuellen« Timer-Spielraumwert für den aufrufenden Thread. Spielraum ist ein vorzeichenfreier Long-Wert im Bereich [1L, ULONG_MAX]. Falls der in Spielraum bereitgestellte Nanosekundenwert größer als Null ist, dann wird der »aktuelle« Wert auf diesen Wert gesetzt. Falls Spielraum 0L ist, dann wird der »aktuelle« Timer-Spielraum auf den »Vorgabe-«-Timer-Spielraumwert des Threads zurückgesetzt.

Der »aktuelle« Timer-Spielraum wird vom Kernel zum Gruppieren von Timer-Abläufen für den aufrufenden Thread verwandt, die eng beieinander liegen. Im Ergebnis dürfen die Abläufe der Timer für den Thread bis zu der angegebenen Anzahl an Nanosekunden später liegen (werden aber niemals früher ablaufen). Das Gruppieren von Timer-Abläufen kann beim Reduzieren des Stromverbrauchs durch Minimierung des CPU-Aufwachens helfen.

Die Timer-Abläufe, die von den Timer-Spielräumen betroffen sind, sind die von select(2), pselect(2), poll(2), ppoll(2), epoll_wait(2), epoll_pwait(2), clock_nanosleep(2), nanosleep(2) und futex(2) (und daher die durch Bibliotheksfunktionen mittels Futex implementierten, einschließlich pthread_cond_timedwait(3), pthread_mutex_timedlock(3), pthread_rwlock_timedrdlock(3), pthread_rwlock_timedwrlock(3) und sem_timedwait(3)) gesetzten.

Timer-Spielräume werden nicht auf Threads angewandt, die unter einer Echtzeit-Scheduling-Richtlinie eingeplant sind (mehr dazu in sched_setscheduler(2)).

Wenn ein neuer Thread erstellt wird, werden die zwei Timer-Spielraumwerte auf den »aktuellen« Wert des erstellenden Threads gesetzt. Anschließend kann ein Thread seinen »aktuellen« Timer-Spielraumwert mittels PR_SET_TIMERSLACK anpassen. Der »Vorgabe«-Wert kann nicht geändert werden. Der Timer-Spielraumwert von init (PID 1), dem Vorgänger aller Prozesse, ist 50.000 Nanosekunden (50 Mikrosekunden). Der Timer-Spielraumwert wird von einem Kindprozess mittels fork(2) geerbt und über execve(2) hinweg erhalten.

RÜCKGABEWERT

Bei Erfolg wird 0 zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.

DATEIEN

/proc/PID/timerslack_ns
Seit Linux 4.6 kann der »aktuelle« Timer-Spielraumwert jedes Prozesses über diese Datei betrachtet und geändert werden.

STANDARDS

Linux.

GESCHICHTE

Linux 2.6.28.

SIEHE AUCH

prctl(2), PR_GET_TIMERSLACK(2const), proc_pid_timerslack_ns(5)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.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 die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.

17. Mai 2025 Linux man-pages 6.16