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
|
.\" 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 08/04/1997
.\" Mise a jour 19/07/1997
.\" Mise a jour 18/07/2003
.\" Mise a jour 30/07/2003 LDP-1.58
.TH MLOCK 2 "30 juillet 2003" LDP "Manuel du programmeur Linux"
.SH NOM
mlock \- Dsactiver la pagination pour certaines parties de la mmoire.
.SH SYNOPSIS
.nf
.B #include <sys/mman.h>
.sp
\fBint mlock(const void *\fIaddr\fB, size_t \fIlen\fB);
.fi
.SH DESCRIPTION
.B mlock
dsactive la pagination pour la portion de mmoire dbutant l'adresse
.I addr
avec une longueur de
.I len
octets. Quand l'appel systme
.B mlock
russit, on a l'assurance que toutes les pages contenant une partie
de la zone mmoire spcifie rsident en mmoire vive (RAM) et y
resteront jusqu' un dverrouillage par la fonction
.B munlock
ou
.B munlockall,
jusqu' ce que les pages soit libres avec
.BR munmap ,
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. (Soyez toutefois conscient que le mode suspendu
sur les portables et certains ordinateurs de bureau sauvegarde une copie
de la mmoire sur le disque, quelques soient les verrouillages).
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 verrouilles en mmoire vive tant qu'il y a au moins un processus ou une
zone qui les verrouille.
Sur les systmes POSIX o
.B mlock
et
.B munlock
sont disponibles, la constante symbolique
.B _POSIX_MEMLOCK_RANGE
est dfinie dans <unistd.h> et la valeur symbolique
.B PAGESIZE
de <limits.h> indique le nombre d'octets par page.
.SH NOTES
Dans l'appel-systme de Linux,
.I addr
est automatiquement arrondie la frontire de page la plus proche.
Toutefois, POSIX 1003.1-2001 permet l'implmentation d'imposer que
.I addr
soit aligne sur une frontire de page. Les programmes portable en prendront soin.
.SH "VALEUR RENVOYE"
L'appel
.B mlock
renvoie 0 si il russit, ou \-1 s'il choue, auquel cas
.I errno
contient le code d'erreur, et rien n'est modifi sur les verrouillages
de la mmoire du processus.
.SH ERREURS
.TP
.B ENOMEM
Une partie des adresses incluses dans la zone dsire ne correspond
pas une page de l'espace d'adressage accessible, ou le processus
a essay de dpasser le nombre maximal de pages verrouilles.
.TP
.B EPERM
L'appelant n'a pas les privilges appropris, seul le Super\-User
peut verrouiller des pages.
.TP
.B EINVAL
.I len
n'est pas un nombre positif.
.SH CONFORMIT
POSIX.1b, SVr4. SVr4 documente un code d'erreur EAGAIN supplmentaire.
.SH "VOIR AUSSI"
.BR munlock (2),
.BR mlockall (2),
.BR munlockall (2).
.BR munmap (2),
.BR setrlimit (2)
.SH TRADUCTION
Christophe Blaess, 1996-2003.
|