File: mlockall.2

package info (click to toggle)
manpages-fr 1.58.1-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 10,104 kB
  • ctags: 4
  • sloc: makefile: 106; sh: 8
file content (138 lines) | stat: -rw-r--r-- 4,691 bytes parent folder | download
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.