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
|
.\" 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
.\"
.TH MLOCK 2 "26-11-1995" "Linux 1.3.43" "Manual del Programador de Linux"
.SH NOMBRE
mlock \- desactiva el paginado para algunas zonas de memoria
.SH SINOPSIS
.nf
.B #include <sys/mman.h>
.sp
\fBint mlock(const void *\fIaddr\fB, size_t \fIlen\fB);
.fi
.SH DESCRIPCIN
.B mlock
desactiva el paginado para la memoria en el grupo de direcciones que comienza en la direccin
.I addr
con longitud
.I len
bytes. Se garantiza que todas las pginas que contienen algunas de esas direcciones estarn residentes en RAM cuando la llamada al sistema
.B mlock
retorne sin error y permanecern en RAM hasta que dichas pginas sean desbloquedadas con
.B munlock
o
.BR munlockall ,
o hasta que termine el proceso o comience otro programa con
.BR exec .
Los procesos hijos creados mediante
.BR fork
no heredan los bloqueos de pginas.
El bloqueo de memoria tiene dos aplicaciones fundamentales: algoritmos en tiempo real y procesado de datos de alta seguridad. Las aplicaciones en tiempo real requieren un temporizado determinista, y el paginado es una de las causas principales de retardos inesperados en la ejecucin de programas, junto con el gestionado (scheduling). Las aplicaciones en tiempo real suelen conmutar a un gestor en tiempo real con
.BR sched_setscheduler .
El software de seguridad criptogrfico a menudo trabaja con bytes crticos tales como contraseas o claves secretas. Como resultado del paginado, estos secretos pueden ser transferidos a un medio de almacenamiento de intercambio persistente, donde podra ser ledo por el enemigo mucho despus de que el programa de seguridad haya borrado los secretos en la RAM y terminado.
Los bloqueos de memoria no son acumulativos, i.e., si una pgina ha sido bloqueda varias veces mediante llamadas a
.B mlock
o
.B mlockall
ser desbloqueada con una simple llamada a
.B munlock
para el rango correspondiente o con
.BR munlockall .
Las pginas que son mapeadas a varias zonas o por varios procesos permanecen bloqueadas en RAM mientras lo estn por alguna zona o proceso.
En los sistemas POSIX con
.B mlock
y
.B munlock
disponibles, se define
.B _POSIX_MEMLOCK_RANGE
en <unistd.h> y el valor de
.B PAGESIZE
de <limits.h> indica el nmero de bytes por pgina.
.SH VALOR DE RETORNO
En caso de xito,
.B mlock
devuelve cero. Si hay error, se devuelve \-1,
.I errno
se activa convenientemente, y no se realiza ningn cambio en ningn bloqueo en el espacio de direcciones del proceso.
.SH ERRORES
.TP 0.8i
.B ENOMEM
Alguna parte del rango de direcciones no corresponde a pginas mapeadas en el espacio de direcciones del proceso o el proceso intent exceder el nmero mximo de pginas bloqueadas permitido.
.TP
.B EPERM
El proceso llamante no tiene los privilegios necesarios. Slo se permite bloquear pginas a los procesos del root.
.TP
.B EINVAL
.I len
no era un nmero positivo.
.SH DE ACUERDO CON
POSIX.1b, SVr4. SVr4 aade un cdigo de error adicional (EAGAIN).
.SH VER TAMBIN
.BR munlock (2),
.BR mlockall (2),
y
.BR munlockall (2).
|