1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" 1995-11-26 Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
.\" First version written
.\"
.\" Traduction 11/10/1996 Christophe BLAESS (ccb@club-internet.fr)
.\" Mise a jour 8/04/97
.\" Mise a jour 30/05/2001 - LDP-man-pages-1.36
.\" Mise a jour 18/07/2003 - LDP-man-pages-1.56
.TH MLOCKALL 2 "18 juillet 2003" LDP "Manuel du programmeur Linux"
.SH NOM
mlockall \- Dsactiver la pagination pour le processus appelant.
.SH SYNOPSIS
.nf
.B #include <sys/mman.h>
.sp
\fBint mlockall(int \fIflags\fB);
.fi
.SH DESCRIPTION
.B mlockall
dsactive la pagination pour toutes les pages prsentes dans l'espace d'adressage
du processus appelant. Ceci inclut les pages de code, de donnes, et la pile,
tout autant que les bibliothques partages, les donnes utilisateur dans le
noyau, la mmoire partage et les fichiers projets en mmoire. Quand l'appel
.B mlockall
russit, on a l'assurance que toutes les pages concernes rsident en mmoire
vive (RAM) et y resteront jusqu' un dverrouillage par la fonction
.B munlock
ou
.B munlockall
ou encore jusqu' ce que le processus se termine ou dmarre
un programme avec
.BR exec .
Les processus fils n'hritent pas du verrouillage des pages
travers un
.BR fork .
Il y a deux domaines principaux d'applications au verrouillage de pages\ :
les algorithmes en temps rel, et le traitement de donnes confidentielles.
Les applications temps rel rclament un comportement temporel
dterministe, et la pagination est, avec l'ordonnancement, une
cause majeure de dlais imprvus.
Ces algorithmes basculent habituellement sur un ordonnancement temps rel avec
.BR sched_setscheduler.
Les logiciels de cryptographie manipulent souvent quelques
octets hautement confidentiels, comme des mots de passe ou
des cls prives. A cause de la pagination ces donnes secrtes
risquent d'tre transfres sur un support physique o elles
pourraient tre lues par un ennemi longtemps aprs que le
logiciel se soit termin.
Nanmoins pour les applications scurises, seule une petite
partie de la mmoire doit tre verrouille, pour laquelle la
fonction
.B mlock
est parfaitement approprie.
Le paramtre
.I flags
est constitu par un
.I OU binaire
( | ) entre les constantes symboliques suivantes :
.TP 1.2i
.B MCL_CURRENT
Verrouiller toutes les pages correspondant actuellement l'espace
d'adressage du processus.
.TP
.B MCL_FUTUR
Verrouiller toutes les pages qui seront dans l'espace d'adressage
du processus dans le futur. Ceci concerne par exemple les nouvelles
pages rclames par un agrandissement de la pile ou du tas, autant
que les nouveaux fichier projets en mmoire, ou les nouvelles
rgions de mmoire partage.
.PP
Si
.B MCL_FUTUR
a t rclam, et que le nombre de pages verrouilles
excde la limite maximale, l'appel systme ayant entran le
dpassement chouera avec une erreur
.BR ENOMEM.
Si le problme se pose cause de l'expansion de la pile, le noyau
empchera l'agrandissement de celle-ci et dclenchera un signal
.BR SIGSEGV.
Les processus temps\-rel doivent rserver suffisamment de pages
avant d'entrer dans des portions critiques, pour viter tout
dclenchement de faute de page.
Ceci peut tre effectu simplement en appelant une fonction
rclamant une variable automatique suffisamment grande, et qui
crit dans cette variable de manire allouer ces pages pour
la pile.
L'criture dans la variable garantit qu'il ne se produira mme pas
de faute de page de copie\-sur\-criture durant l'excution de la
section critique.
Il n'y a pas d'empilement des verrouillages mmoire, ce qui
signifie qu'une page verrouille plusieurs fois par
.B mlock
ou
.B mlockall
sera libre en un seul appel
.B munlock
pour la zone mmoire correspondante ou par un appel
.BR munlockall.
Les pages qui sont verrouilles par plusieurs zones, ou
par plusieurs processus restent en mmoire vive tant qu'il
y a au moins un processus ou une zone qui les verrouille.
Sur les systmes POSIX o
.B mlockall
et
.B munlockall
sont disponibles, la constante symbolique
.B _POSIX_MEMLOCK
est dfinie dans <unistd.h>
.SH "VALEUR RENVOYE"
.B mlockall
renvoie 0 si il russit, ou \-1 s'il choue, auquel cas
.I errno
contient le code d'erreur.
.SH ERREURS
.TP
.B ENOMEM
Le processus a dpass le nombre maximal de page verrouilles.
.TP
.B EPERM
L'appelant n'a pas les privilges appropris, seul le Super\-User
peut verrouiller des pages.
.TP
.B EINVAL
Un attribut inconnu a t spcifi.
.SH CONFORMIT
POSIX.1b, SVr4. SVr4 documente un code d'erreur EAGAIN supplmentaire.
.SH "VOIR AUSSI"
.BR munlockall(2) ,
.BR mlock(2) ,
.BR munlock(2)
.SH TRADUCTION
Christophe Blaess, 1996-2003.
|