File: mlockall.2

package info (click to toggle)
manpages-es 1.24a-6
  • links: PTS
  • area: main
  • in suites: potato
  • size: 4,256 kB
  • ctags: 7
  • sloc: makefile: 66; sh: 62
file content (156 lines) | stat: -rw-r--r-- 5,890 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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" Copyright (C) Markus Kuhn, 1996
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
.\" USA.
.\"
.\" 1995-11-26  Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
.\"      First version written
.\"
.\" Translated into Spanish on Thu Aug 20 1998 by Gerardo Aburruzaga
.\" Garca <gerardo@cica.es>
.\"
.TH MLOCKALL 2 "26 Noviembre 1995" "Linux 1.3.43" "Manual del Programador de Linux"
.SH NOMBRE
mlockall \- desactiva el paginado para el proceso llamador
.SH SINOPSIS
.nf
.B #include <sys/mman.h>
.sp
\fBint mlockall(int \fIflags\fB);
.fi
.SH DESCRIPCIN
.B mlockall
desactiva el paginado para todas las pginas asociadas en el espacio
de direcciones del proceso que hace la llamada. Esto incluye las
pginas del cdigo, de los datos y del segmento de pila, as como las
bibliotecas compartidas, datos de ncleo en espacio de usuario,
memoria compartida y ficheros asociados a memoria. Se garantiza que
todas las pginas asociadas estarn en RAM cuando la llamada al sistema
.B mlockall
regrese con xito, y se garantiza que permanecern en RAM hasta que
las pginas se desbloqueen de nuevo mediante
.B munlock
o
.B munlockall
o hasta que el proceso termine o empiece otro programa debido a la llamada
.BR exec .
Los procesos hijos no heredan bloqueos de pgina a travs de un
.BR fork .

El bloqueo de memoria tiene dos aplicaciones principales: algoritmos
de tiempo real y procesamiento de datos de alta seguridad. Las
aplicaciones en tiempo real requieren tiempos deterministas, y, como
la planificacin, el paginado es una de las principales causas de
retrasos inesperados en la ejecucin de programas. Las aplicaciones de
tiempo real normalmente tambin cambiarn a un planificador de tiempo
real con
.BR sched_setscheduler .
Los programas de seguridad criptogrficos a menudo manejan bytes
crticos como contraseas o claves secretas como estructuras de
datos. Como resultado de la paginacin, estos datos secretos pueden
transferirse a un medio de almacenamiento permanente como resultado
del trasiego (swap), donde podran ser accesibles al enemigo bastante
tiempo despus de que el programa de seguridad hubiera terminado y
borrado los datos secretos de la RAM. Para aplicaciones de seguridad,
slo tienen que bloquearse partes pequeas de la memoria, para lo cual
se dispone de
.BR mlock .

El parmetro
.I flags
puede construirse aplicando el operador lgico de bits O (OR) a las
siguientes constantes:
.TP 1.2i
.B MCL_CURRENT
Bloquea todas las pginas que estn asociadas actualmente en el
espacio de direcciones del proceso.
.TP
.B MCL_FUTURE
Bloquea todas las pginas que en el futuro se asociarn en el espacio
de direcciones del proceso. stas podran ser, por ejemplo, pginas
nuevas requeridas por una pila y montn crecientes as como nuevos
ficheros asociados a memoria o regiones de memoria compartida. 
.PP
Si se ha especifiado
.B MCL_FUTURE
y el nmero de pginas bloqueadas excede el lmite superior de las
pginas bloqueadas permitidas, entonces la llamada al sistema que haya
causado la nueva asociacin fallar con
.BR ENOMEM .
Si estas nuevas pginas han sido asociadas por la pila creciente,
entonces el ncleo denegar la expansin de la pila y mandar una seal
.BR SIGSEGV .

Los procesos en tiempo real deberan reservar bastantes pginas
bloqueadas antes de entrar en la seccin crtica de tiempo, de forma
que ninguna llamada a funcin pueda provocar un fallo de pgina. Esto
puede lograrse llamando a una funcin que tenga una variable
automtica suficientemente grande y que escriba en la memoria ocupada
por este vector grande, para tocar estas pginas de la pila. De esta
forma, se asociarn bastantes pginas para la pila y se pueden bloquear
en la RAM. Las escrituras falsas asegurarn que ni siquiera ocurran
fallos de pgina de copia-en-escritura en la seccin crtica.

Los bloqueos de memoria no se apilan; esto es, las pginas que hayan
sido bloqueadas varias veces mediante llamadas a
.B mlockall
o a
.B mlock
se desbloquearn con una simple llamada a
.BR munlockall .
Las pginas que estn asociadas a varias localizaciones o por varios
procesos permanecen bloqueadas en RAM mientras que estn bloqueadas
al menos en una localizacin o al menos por un proceso.

En sistemas POSIX en los cuales estn disponibles
.B mlockall
y
.BR munlockall ,
se define
.B _POSIX_MEMLOCK
en <unistd.h>.
.SH VALOR DEVUELTO
En caso de xito,
.B mlockall
devuelve cero. En caso de error, se devuelve \-1 y se pone un valor
apropiado en
.IR errno .
.SH ERRORES
.TP
.B ENOMEM
El proceso intent excederse en el nmero mximo de pginas bloqueadas
permitido.
.TP
.B EPERM
El proceso que hace la llamada no tiene los privilegios
apropiados. Slo los procesos de root tienen permiso para bloquear
pginas. 
.TP
.B EINVAL
Se han especificado \fIflags\fP desconocidos.
.SH "CONFORME A"
POSIX.1b, SVr4.   SVr4 documenta un cdigo de error adicional, EAGAIN.
.SH VASE TAMBIN
.BR munlockall (2),
.BR mlock (2), 
y
.BR munlock (2).