File: mlockall.2

package info (click to toggle)
manpages-fr 0.5-3
  • links: PTS
  • area: main
  • in suites: slink
  • size: 4,236 kB
  • ctags: 4
  • sloc: makefile: 55
file content (147 lines) | stat: -rw-r--r-- 4,612 bytes parent folder | download | duplicates (2)
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
139
140
141
142
143
144
145
146
147
.\" 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
.TH MLOCKALL 2 "8 Avril 1997" "Linux" "Manuel du programmeur Linux"
.SH NOM
mlockall \- Desactiver 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
desactive la pagination (paging) pour toutes les pages representees
dans l'espace d'adressage du processus appelant.
Ceci inclut les pages de code, de donnees, et le segment de pile,
tout autant que les bibliotheques partagees, l'espace utilisateur
dans le noyau, la memoire partagee et les fichiers projetes en
memoire.

Quand l'appel systeme
.B mlockall
reussit, on a l'assurance que toutes les pages concernees
resident en memoire vive (RAM) et y
resteront jusqu'a un deverrouillage par la fonction
.B munlock
ou
.B munlockall
ou encore jusqu'a ce que le processus se termine ou demarre
un programme avec
.BR exec .

Les processus fils n'heritent pas du verrouillage des pages
a travers un
.BR fork .

Il y a deux domaines principaux d'applications au verrouillage
de pages : les algorithmes en temps reel, et le traitement
de donnees confidentielles.
Les applications temps reel reclament un comportement temporel
deterministe, et la pagination est, avec l'ordonnancement, une
cause majeure de delais imprevus.
Ces algorithmes basculent habituellement sur un
comportement d'ordonnancement temps reel avec
.BR sched_setscheduler.

Les logiciels de cryptographie manipulent souvent quelques
octets hautement confidentiels, comme des mots de passe ou
des cles privees. A cause de la pagination ces donnees secretes
risquent d'etre transferees sur un support physique ou elles
pourraient etre lues par un ennemi longtemps apres que le
logiciel se soit termine.

Neanmoins pour les applications securisees, seule une petite
partie de la memoire doit etre verrouillee, pour laquelle la
fonction
.B mlock
est parfaitement appropriee.

Le parametre
.I flags
est constitue par un
.I OU logique
( | ) entre les constantes symboliques suivantes :
.TP 1.2i
.B MCL_CURRENT
Verrouiller toutes les pages correspondant actuellement a 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 reclamees par un agrandissement de la pile ou du tas, autant
que des nouveaux fichier representes en memoire, ou de nouvelles
regions de memoire partagee.
.PP
Si
.B MCL_FUTURE
a ete reclame, et que le nombre de pages verrouillees
excede la limite maximale, l'appel systeme ayant entraine le
depassement echouera avec une erreur
.BR ENOMEM.
Si le probleme se pose a cause de l'expansion de la pile, le noyau
empechera l'agrandissement de celle-ci et declenchera un signal
.BR SIGSEGV.

Les processus temps\-reel doivent reserver suffisament de pages
avant d'entrer dans des portions critiques, pour eviter tout
declenchement de faute de page.
Ceci peut etre effectue simplement en appelant une fonction
reclamant une variable automatique suffisamment grande, et qui
ecrit dans cette variable de maniere a allouer ces pages pour
la pile.
L'ecriture dans la variable garantit qu'il ne se produira meme pas
de faute de page de copie\-sur\-ecriture durant l'execution de la 
section critique.

Il n'y a pas d'empilement des verrouillages memoire, ce qui
signifie qu'une page verrouillee plusieurs fois par
.B mlock
ou
.B mlockall
sera liberee en un seul appel a
.B munlock
pour la zone memoire correspondante ou par un appel a
.BR munlockall.


Les pages qui sont verrouillees par plusieurs zones, ou
par plusieurs processus restent en memoire vive tant qu'il
y a au moins un processus ou une zone qui les verrouille.

Sur les systemes POSIX ou
.B mlockall
et
.B munlockall
sont disponibles, la constante symbolique
.B _POSIX_MEMLOCK
est definie dans <unistd.h>
.SH "VALEUR RENVOYEE"
.B mlockall
renvoie 0 si il reussit, ou \-1 s'il echoue, auquel cas
.I errno
contient le code d'erreur.
.SH ERREURS
.TP 0.8i
.B ENOMEM
Le processus a depasse le nombre maximal de page verrouillees.
.TP
.B EPERM
L'appelant n'a pas les privileges appropries, seul le Super\-User 
peut verrouiller des pages.
.TP
.B EINVAL
Un attribut inconnu a ete speccifie.
.SH CONFORMITE
POSIX.1b, SVr4. SVr4 documente un code d'erreur EAGAIN supplementaire.
.SH "VOIR AUSSI"
.BR munlockall(2) ,
.BR mlock(2) , 
and
.BR munlock(2) .