Sync with the original version. Unify some japanese words. Submitted by: kano@na.rim.or.jp
355 lines
10 KiB
Groff
355 lines
10 KiB
Groff
.\" Copyright (c) 1991, 1993
|
||
.\" The Regents of the University of California. All rights reserved.
|
||
.\"
|
||
.\" Redistribution and use in source and binary forms, with or without
|
||
.\" modification, are permitted provided that the following conditions
|
||
.\" are met:
|
||
.\" 1. Redistributions of source code must retain the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer.
|
||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer in the
|
||
.\" documentation and/or other materials provided with the distribution.
|
||
.\" 3. All advertising materials mentioning features or use of this software
|
||
.\" must display the following acknowledgement:
|
||
.\" This product includes software developed by the University of
|
||
.\" California, Berkeley and its contributors.
|
||
.\" 4. Neither the name of the University nor the names of its contributors
|
||
.\" may be used to endorse or promote products derived from this software
|
||
.\" without specific prior written permission.
|
||
.\"
|
||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
.\" SUCH DAMAGE.
|
||
.\"
|
||
.\" @(#)mmap.2 8.4 (Berkeley) 5/11/95
|
||
.\" %FreeBSD: src/lib/libc/sys/mmap.2,v 1.50 2004/07/02 23:52:13 ru Exp %
|
||
.\"
|
||
.\" $FreeBSD$
|
||
.Dd November 17, 2001
|
||
.Dt MMAP 2
|
||
.Os
|
||
.Sh ̾¾Î
|
||
.Nm mmap
|
||
.Nd ¥á¥â¥ê¤Î³ä¤êÅö¤Æ¡¢¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥Ð¥¤¥¹¤Î¥á¥â¥ê¤Ø¤Î¥Þ¥Ã¥×
|
||
.Sh ¥é¥¤¥Ö¥é¥ê
|
||
.Lb libc
|
||
.Sh ½ñ¼°
|
||
.In sys/mman.h
|
||
.Ft void *
|
||
.Fn mmap "void *addr" "size_t len" "int prot" "int flags" "int fd" "off_t offset"
|
||
.Sh ²òÀâ
|
||
.Fn mmap
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢
|
||
.Fa addr
|
||
¤ò»ÏÅÀ¤È¤·¤ÆºÇÂç¤Ç
|
||
.Fa len
|
||
¥Ð¥¤¥È¤ÎϢ³¤¹¤ë¥Ú¡¼¥¸¤Ë¡¢
|
||
.Fa fd
|
||
¤Ë¤è¤Ã¤Æµ½Ò¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ð¥¤¥È¥ª¥Õ¥»¥Ã¥È
|
||
.Fa offset
|
||
¤Î°ÌÃÖ¤«¤é»Ï¤Þ¤ëÉôʬ¤ò¥Þ¥Ã¥×¤µ¤ì¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
|
||
.Fa len
|
||
¤¬¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤¤¾ì¹ç¡¢
|
||
¥Þ¥Ã¥×¤µ¤ì¤¿Îΰè¤Ï»ØÄê¤ÎÈϰϤò±Û¤¨¤Æ³ÈÄ¥¤µ¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
|
||
¤³¤Î¤è¤¦¤Ê³ÈÄ¥¤Ë¤è¤Ã¤Æ¥Þ¥Ã¥×¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ÎËöü¤ò±Û¤¨¤¿Éôʬ¤Ï
|
||
0 ¤ÇËä¤á¤é¤ì¤Þ¤¹¡£
|
||
.Pp
|
||
.Fa addr
|
||
¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢¤³¤ì¤Ï¥·¥¹¥Æ¥à¤Ø¤Î¥Ò¥ó¥È¤È¤·¤Æ»ÈÍѤµ¤ì¤Þ¤¹
|
||
(¥·¥¹¥Æ¥à¤ÎÊØµ¹¤Î¤¿¤á¤Ë¡¢Îΰè¤Î¼ÂºÝ¤Î¥¢¥É¥ì¥¹¤Ï
|
||
»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤È¤Ï°ã¤¦²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹)¡£
|
||
.Fa addr
|
||
¤¬ 0 ¤Î¾ì¹ç¡¢¥¢¥É¥ì¥¹¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤ÆÁªÂò¤µ¤ì¤Þ¤¹¡£
|
||
Îΰè¤Î¼ÂºÝ¤Î³«»Ï¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
|
||
.Fa mmap
|
||
¤¬½èÍý¤ËÀ®¸ù¤¹¤ë¤È¡¢³ÎÊݤµ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤΰÊÁ°¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï
|
||
ºï½ü¤µ¤ì¤Þ¤¹¡£
|
||
.Pp
|
||
Êݸî (ÎÎ°è¤Ø¤Î¥¢¥¯¥»¥¹µö²Ä) ¤Ï
|
||
.Fa prot
|
||
°ú¿ô¤Ç¡¢°Ê²¼¤ÎÃͤÎÏÀÍýÏÂ
|
||
.\".Em or Ns 'ing
|
||
.Em ( or )
|
||
¤ò¼è¤Ã¤¿ÃͤǻØÄꤷ¤Þ¤¹:
|
||
.Pp
|
||
.Bl -tag -width PROT_WRITE -compact
|
||
.It Dv PROT_NONE
|
||
¥Ú¡¼¥¸¤Ï¥¢¥¯¥»¥¹¤Ç¤¤Þ¤»¤ó¡£
|
||
.It Dv PROT_READ
|
||
¥Ú¡¼¥¸¤ÏÆÉ¼è¤ê¤Ç¤¤Þ¤¹¡£
|
||
.It Dv PROT_WRITE
|
||
¥Ú¡¼¥¸¤Ï½ñ¹þ¤ß¤Ç¤¤Þ¤¹¡£
|
||
.It Dv PROT_EXEC
|
||
¥Ú¡¼¥¸¤Ï¼Â¹Ô²Äǽ¤Ç¤¹¡£
|
||
.El
|
||
.Pp
|
||
.Fa flags
|
||
°ú¿ô¤Ï¡¢¥Þ¥Ã¥×¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¿¥¤¥×¡¢¥Þ¥Ã¥Ô¥ó¥°¥ª¥×¥·¥ç¥ó¡¢
|
||
¤ª¤è¤Ó¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¤Î¥³¥Ô¡¼¤ËÂФ·¤Æ¹Ô¤ï¤ì¤¿½¤Àµ¤¬¡¢¥×¥í¥»¥¹¤Ë
|
||
¸ÇͤǤ¢¤ë¤«¤Þ¤¿¤Ï¾¤«¤é¤Î»²¾È¤È¶¦Í¤µ¤ì¤ë¤«¤ò»ØÄꤷ¤Þ¤¹¡£
|
||
¶¦Í¡¢¥Þ¥Ã¥Ô¥ó¥°¥¿¥¤¥×¡¢¤ª¤è¤Ó¥ª¥×¥·¥ç¥ó¤Ï¡¢°Ê²¼¤ÎÃͤÎÏÀÍýÏÂ
|
||
.\".Em or Ns 'ing
|
||
.Em ( or )
|
||
¤ò¼è¤Ã¤¿ÃͤÇ
|
||
.Fa flags
|
||
°ú¿ô¤Ë»ØÄꤷ¤Þ¤¹:
|
||
.Bl -tag -width MAP_HASSEMAPHORE
|
||
.It Dv MAP_ANON
|
||
¤É¤ÎÆÃÄê¤Î¥Õ¥¡¥¤¥ë¤È¤âÂбþ¤·¤Æ¤¤¤Ê¤¤Æ¿Ì¾¥á¥â¥ê¤ò¥Þ¥Ã¥×¤·¤Þ¤¹¡£
|
||
.Dv MAP_ANON
|
||
¤òºîÀ®¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¥Õ¥¡¥¤¥ëµ½Ò»Ò¤Ï \-1 ¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
|
||
.Fa offset
|
||
°ú¿ô¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£
|
||
.\".It Dv MAP_FILE
|
||
.\"Mapped from a regular file or character-special device memory.
|
||
.It Dv MAP_FIXED
|
||
¥·¥¹¥Æ¥à¤¬¡¢»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤È°Û¤Ê¤ë¥¢¥É¥ì¥¹¤òÁªÂò¤¹¤ë¤³¤È¤òµöÍÆ¤·¤Þ¤»¤ó¡£
|
||
»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬»ÈÍѤǤ¤Ê¤¤¾ì¹ç¡¢
|
||
.Fn mmap
|
||
¤Ï½èÍý¤Ë¼ºÇÔ¤·¤Þ¤¹¡£
|
||
.Dv MAP_FIXED
|
||
¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
|
||
.Fa addr
|
||
¤Ï¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
|
||
¤³¤Î¥ª¥×¥·¥ç¥ó¤Î»ÈÍѤϤª´«¤á¤Ç¤¤Þ¤»¤ó¡£
|
||
.It Dv MAP_HASSEMAPHORE
|
||
Îΰè¤Ë¥»¥Þ¥Õ¥©¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë²ÄǽÀ¤¬¤¢¤ë¤³¤È¡¢ÆÃ¼ì¤Ê½èÍý¤¬É¬ÍפʲÄǽÀ¤¬
|
||
¤¢¤ë¤³¤È¤ò¥«¡¼¥Í¥ë¤ËÄÌÃΤ·¤Þ¤¹¡£
|
||
.It Dv MAP_INHERIT
|
||
¤³¤Î¥Õ¥é¥°¤ÏÀµ¼°¤Ë¸øÉ½¤µ¤ì¤¿¤â¤Î¤È¤·¤Æ°·¤ï¤ì¤¿¤³¤È¤Ï¤Ê¤¯¡¢
|
||
¤â¤Ï¤ä¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
|
||
¤µ¤é¤Ê¤ë¾ðÊó¤Ï
|
||
.Xr minherit 2
|
||
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
|
||
.It Dv MAP_NOCORE
|
||
Îΰè¤Ï¥³¥¢¥Õ¥¡¥¤¥ë¤Ë´Þ¤Þ¤ì¤Þ¤»¤ó¡£
|
||
.It Dv MAP_NOSYNC
|
||
¤Ï¤³¤Î VM ¥Þ¥Ã¥×¤ò·Ðͳ¤·¤Æ±ø¤µ¤ì¤¿¥Ç¡¼¥¿¤ò¡¢Ìµ°Ç¤Ë¤Ç¤Ï¤Ê¤¯
|
||
(Ä̾ï¤Ï¥Ú¡¼¥¸¥ã¤Ë¤è¤Ã¤Æ) ɬÍפʻþ¤Î¤ßʪÍýŪ¤Ê¥á¥Ç¥£¥¢¤Ë
|
||
¥Õ¥é¥Ã¥·¥å¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
|
||
ÉáÄÌ¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¢¹¹¿·¥Ç¡¼¥â¥ó¤Ï¤³¤Î¥Þ¥Ã¥×¤Ç
|
||
±ø¤µ¤ì¤¿¥Ú¡¼¥¸¤ò¥Õ¥é¥Ã¥·¥å¤·¤Ê¤¤¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
|
||
¤³¤ì¤Ë¤è¤ê¡¢¥Õ¥¡¥¤¥ë¥Ð¥Ã¥¯¥¢¥Ã¥×¤µ¤ì¤¿¶¦Í¥á¥â¥ê¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ·¤Æ
|
||
̵´Ø·¸¤Ê¥×¥í¥»¥¹¤Î´Ö¤Ç¥á¥â¥ê¥¢¥¯¥»¥¹¤ò¸úΨŪ¤Ë¶¦Í¤¹¤ë¤³¤È¤¬
|
||
¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
|
||
¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¤Ê¤¤¤È¡¢±ø¤µ¤ì¤¿ VM ¥Ú¡¼¥¸¤ÏÉÑÈË (Ä̾ï 30-60 ÉÃËè) ¤Ë
|
||
¥Ç¥£¥¹¥¯¤Ë¥Õ¥é¥Ã¥·¥å¤µ¤ì¤ë¤«¤âÃΤ줺¡¢¤½¤Î¤è¤¦¤Êưºî¤òɬÍפȤ·¤Ê¤¤¾ì¹ç
|
||
(Î㤨¤Ð IPC ¤Î¤¿¤á¤Ë¥Õ¥¡¥¤¥ë¤òÍѤ¤¤¿¶¦Í mmap Îΰè¤òÍѤ¤¤Æ¤¤¤ë¾ì¹ç)
|
||
¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ËÌäÂ꤬½Ð¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
|
||
.Dv MAP_NOSYNC
|
||
¤ò»È¤Ã¤Æ¤¤¤ë¤«¤Ë¤«¤«¤ï¤é¤º¡¢
|
||
VM/ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î°ì´ÓÀ¤ÏÊݤ¿¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
|
||
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï
|
||
.Ux
|
||
¥×¥é¥Ã¥È¥Õ¥©¡¼¥à´Ö¤Ç (¤Þ¤À) °Ü¿¢À¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢
|
||
¤¤¤¯¤Ä¤«¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÇƱ¤¸Æ°ºî¤ò¤¹¤ë¤è¤¦¤Ë
|
||
¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤«¤âÃΤì¤Þ¤»¤ó¡£
|
||
.Pp
|
||
.Em ·Ù¹ð !
|
||
.Xr ftruncate 2
|
||
¤ò»È¤¤¥Õ¥¡¥¤¥ë¤ò³ÈÄ¥¤·¤Æ¤«¤é¡¢¤Ä¤Þ¤ê¥Õ¥¡¥¤¥ë¤ËÂ礤ʷê¤ò¶õ¤±¤Æ¤«¤é¡¢
|
||
¤½¤Î·ê¤ò¶¦Í
|
||
.Fn mmap
|
||
¤ò½¤Àµ¤·¤ÆËä¤á¤ë¾ì¹ç¡¢¿¼¹ï¤Ê¥Õ¥¡¥¤¥ëÃÇÊÒ²½¤¬À¸¤¸¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£
|
||
¤³¤ÎÃÇÊÒ²½¤òÈò¤±¤ë¤¿¤á¤Ë¡¢
|
||
.Fn mmap
|
||
¤Ç¤½¤ÎÎΰè¤ò½¤Àµ¤¹¤ëÁ°¤Ë¡¢¿·µ¬¤Ë³ÈÄ¥¤·¤¿Îΰè¤Ë 0 ¤ò
|
||
.Fn write
|
||
¤·¤Æ¡¢¥Õ¥¡¥¤¥ë¤Î¥Ð¥Ã¥¥ó¥°¥¹¥È¥¢¤ò»öÁ°¤Ë³ä¤êÅö¤Æ¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
|
||
¥Ç¥£¥¹¥¯¤Ø¤Î¥Õ¥é¥Ã¥·¥å¤¬Á´¤¯¥é¥ó¥À¥à¤ËÀ¸¤¸¤ë¤¿¤á¡¢
|
||
ÃÇÊÒ²½ÌäÂê¤ËÆÃ¤ËÉÒ´¶¤Ê¤Î¤Ï¡¢
|
||
.Dv MAP_NOSYNC
|
||
¥Ú¡¼¥¸¤Ç¤¹¡£
|
||
.Pp
|
||
Ʊ¤¸¤³¤È¤¬¡¢
|
||
.Dv MAP_NOSYNC
|
||
¤ò»È¤¤¥Õ¥¡¥¤¥ë¥Ù¡¼¥¹¤Î¶¦Í¥á¥â¥ê¥¹¥È¥¢¤ò¼ÂÁõ¤¹¤ë¾ì¹ç¤Ë¤â¸À¤¨¤Þ¤¹¡£
|
||
.Fn ftruncate
|
||
¤·¤Æ¥Ð¥Ã¥¥ó¥°¥¹¥È¥¢¤òºî¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢0 ¤ò
|
||
.Fn write
|
||
¤·¤Æ¥Ð¥Ã¥¥ó¥°¥¹¥È¥¢¤òºî¤ë¤³¤È¤ò¿ä¾©¤·¤Þ¤¹¡£
|
||
¤¿¤È¤¨¤Ð¡¢
|
||
.Dq Li dd if=filename of=/dev/null bs=32k
|
||
¤ò»È¤¦¤Ê¤É¤·¤ÆµðÂç¤Ê¥Õ¥¡¥¤¥ë¤ò¥·¡¼¥±¥ó¥·¥ã¥ë¤ËÆÉ¤ß¼è¤ê¤Ê¤¬¤é¡¢
|
||
.Dq Li iostat 1
|
||
¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤ÇÆÀ¤é¤ì¤ë KB/t (žÁ÷ 1 ²ó¤¢¤¿¤ê¤Î¥¥í¥Ð¥¤¥È¿ô) ¤ò
|
||
´Ñ»¡¤¹¤ë¤³¤È¤Ç¥Õ¥¡¥¤¥ëÃÇÊÒ²½¤Î¥Æ¥¹¥È¤¬²Äǽ¤Ç¤¹¡£
|
||
.Pp
|
||
.Xr fsync 2
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤¹¤Ù¤Æ¤Î±øÀ÷¤µ¤ì¤¿¥Ç¡¼¥¿¤È¥Õ¥¡¥¤¥ë¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥á¥¿¥Ç¡¼¥¿
|
||
(NOSYNC ¤Î±ø¤ì¤¿ VM ¥Ç¡¼¥¿¤ò´Þ¤à) ¤òʪÍýŪÇÞÂΤ˥եé¥Ã¥·¥å¤·¤Þ¤¹¡£
|
||
.Xr sync 8
|
||
¥³¥Þ¥ó¥É¤È
|
||
.Xr sync 2
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢±øÀ÷¤µ¤ì¤¿ NOSYNC VM ¤Î¥Ç¡¼¥¿¤òÄ̾ï¥Õ¥é¥Ã¥·¥å¤·¤Þ¤»¤ó¡£
|
||
.Xr msync 2
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
|
||
.Bx
|
||
¤ÇÀ°¹çÀ¤Î¤¢¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ð¥Ã¥Õ¥¡¥¥ã¥Ã¥·¥å¤¬¼ÂÁõ¤µ¤ì¤¿¤Î¤Ç
|
||
Çѻߤµ¤ì¤Þ¤·¤¿¡£
|
||
¤·¤«¤·¤Ê¤¬¤é¡¢±ø¤ì¤¿ VM ¥Ú¡¼¥¸¤È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò·ë¤Ó¤Ä¤±¡¢
|
||
ʪÍýŪÇÞÂΤˤ¹¤°¤Ë (¸åÄø¤Ç¤Ï¤Ê¤¯) ¥Õ¥é¥Ã¥·¥å¤µ¤»¤ëÍÑÅÓ¤Ë
|
||
»È¤ï¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£
|
||
.It Dv MAP_PRIVATE
|
||
½¤Àµ¤Ï¥×¥í¥»¥¹¸Çͤ˹Ԥï¤ì¤Þ¤¹¡£
|
||
.It Dv MAP_SHARED
|
||
½¤Àµ¤Ï¶¦Í¤µ¤ì¤Þ¤¹¡£
|
||
.It Dv MAP_STACK
|
||
.Dv MAP_STACK
|
||
¤Ï
|
||
.Dv MAP_ANON
|
||
¤ª¤è¤Ó 0 ¤Î
|
||
.Fa offset
|
||
»ØÄê¤ò´Þ¤ß¤Þ¤¹¡£
|
||
.Fa fd
|
||
°ú¿ô¤Ï -1 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢
|
||
.Fa prot
|
||
¤Ë¤Ï¾¯¤Ê¤¯¤È¤â
|
||
.Dv PROT_READ
|
||
¤È
|
||
.Dv PROT_WRITE
|
||
¤¬Æþ¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
|
||
¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥¹¥¿¥Ã¥¯¤ÎÀèÆ¬¤ò³«»ÏÅÀ¤È¤·²¼Êý¤Ë¿¤Ó¤ë¡¢¥µ¥¤¥º¤¬ºÇÂç¤Ç
|
||
.Fa len
|
||
¥Ð¥¤¥È¤Þ¤Ç¿¤Ó¤ë¥á¥â¥êÎΰè¤òºîÀ®¤·¤Þ¤¹¡£
|
||
¥¹¥¿¥Ã¥¯¤ÎÀèÆ¬¤Ï¡¢¸Æ¤Ó½Ð¤·¤«¤éÊÖ¤µ¤ì¤¿³«»Ï¥¢¥É¥ì¥¹¤Ë
|
||
.Fa len
|
||
¥Ð¥¤¥È¤ò²Ã¤¨¤¿¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£
|
||
ºÇ¤â¿¤Ó¤¿¾ì¹ç¤Î¥¹¥¿¥Ã¥¯¤Î²¼Ã¼¤Ï¡¢
|
||
¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë³«»Ï¥¢¥É¥ì¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£
|
||
.El
|
||
.Pp
|
||
.Xr close 2
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Ú¡¼¥¸¤ò¥¢¥ó¥Þ¥Ã¥×¤·¤Þ¤»¤ó¡£
|
||
¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï
|
||
.Xr munmap 2
|
||
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
|
||
.Pp
|
||
¸½ºß¤ÎÀß·×¤Ç¤Ï¥×¥í¥»¥¹¤Ï¥¹¥ï¥Ã¥×¶õ´Ö¤Î°ÌÃÖ¤ò»ØÄê¤Ç¤¤Þ¤»¤ó¡£
|
||
¾Íè¤Ï¡¢ÄɲäΥޥåԥ󥰥¿¥¤¥×
|
||
.Dv MAP_SWAP
|
||
¤òÄêµÁ¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
|
||
¤³¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ëµ½Ò»Ò°ú¿ô¤Ë¤Ï
|
||
¥¹¥ï¥Ã¥×¤ò¹Ô¤¦¤Ù¤¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥Ð¥¤¥¹¤ò»ØÄꤷ¤Þ¤¹¡£
|
||
.Sh Ìá¤êÃÍ
|
||
Àµ¾ï¤Ë´°Î»¤¹¤ë¤È¡¢
|
||
.Fn mmap
|
||
¤Ï¡¢¥Þ¥Ã¥×¤µ¤ì¤¿Îΰè¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤·¤Þ¤¹¡£
|
||
¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï
|
||
ÃÍ
|
||
.Dv MAP_FAILED
|
||
¤¬ÊÖ¤µ¤ì¡¢¥¨¥é¡¼¤ò¼¨¤¹¤¿¤á¤Ë
|
||
.Va errno
|
||
¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
|
||
.Sh ¥¨¥é¡¼
|
||
.Fn mmap
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¼¡¤Î¾ì¹ç¤Ë¼ºÇÔ¤·¤Þ¤¹:
|
||
.Bl -tag -width Er
|
||
.It Bq Er EACCES
|
||
¥Õ¥é¥°
|
||
.Dv PROT_READ
|
||
¤¬
|
||
.Fa prot
|
||
°ú¿ô¤Î°ìÉô¤È¤·¤Æ»ØÄꤵ¤ì¤Þ¤·¤¿¤¬¡¢
|
||
.Fa fd
|
||
¤¬ÆÉ¼è¤êÍѤ˳«¤«¤ì¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£
|
||
¥Õ¥é¥°
|
||
.Dv MAP_SHARED
|
||
¤È
|
||
.Dv PROT_WRITE
|
||
¤¬
|
||
.Fa flags
|
||
¤È
|
||
.Fa prot
|
||
°ú¿ô¤Î°ìÉô¤È¤·¤Æ»ØÄꤵ¤ì¤Þ¤·¤¿¤¬¡¢
|
||
.Fa fd
|
||
¤Ï½ñ¹þ¤ßÍѤ˳«¤«¤ì¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£
|
||
.It Bq Er EBADF
|
||
.Fa fd
|
||
°ú¿ô¤¬Í¸ú¤Ê³«¤«¤ì¤¿¥Õ¥¡¥¤¥ë¤Îµ½Ò»Ò¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
|
||
.It Bq Er EINVAL
|
||
.Dv MAP_FIXED
|
||
¤¬»ØÄꤵ¤ì¤Æ
|
||
.Fa addr
|
||
°ú¿ô¤¬¥Ú¡¼¥¸¶³¦¤ËÀ°Îó¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢¤Þ¤¿¤Ï»ØÄê¤Î
|
||
¥¢¥É¥ì¥¹¤Î°ìÉô¤¬¥æ¡¼¥¶¥×¥í¥»¥¹¤Î͸ú¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤Ê¤ê¤Þ¤¹¡£
|
||
.It Bq Er EINVAL
|
||
.Fa len
|
||
°ú¿ô¤¬Éé¤Ç¤·¤¿¡£
|
||
.It Bq Er EINVAL
|
||
.Dv MAP_ANON
|
||
¤¬»ØÄꤵ¤ì¤Æ
|
||
.Fa fd
|
||
°ú¿ô¤¬ -1 ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£
|
||
.It Bq Er EINVAL
|
||
.Dv MAP_ANON
|
||
¤¬»ØÄꤵ¤ì¤Æ¤ª¤é¤º¡¢
|
||
.Fa fd
|
||
¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥¥ã¥é¥¯¥¿·¿ÆÃ¼ì¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£
|
||
.It Bq Er EINVAL
|
||
.Fa offset
|
||
°ú¿ô¤¬¥Ú¡¼¥¸¶³¦¤ËÀ°Î󤷤Ƥ¤¤Þ¤»¤ó¤Ç¤·¤¿ (¸å½Ò¤¹¤ë¡Ö
|
||
.Sx ¥Ð¥°
|
||
¤Î¾Ï¡×¤ò»²¾È)¡£
|
||
.It Bq Er ENOMEM
|
||
.Dv MAP_FIXED
|
||
¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢
|
||
.Fa addr
|
||
°ú¿ô¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Þ¤»¤ó¡£
|
||
.Dv MAP_ANON
|
||
¤¬»ØÄꤵ¤ì¤ÆÍøÍѤǤ¤ë¥á¥â¥ê¤¬ÉÔ½¼Ê¬¤Ç¤·¤¿¡£
|
||
sysctl ÃÍ
|
||
.Va vm.nax_proc_mmap
|
||
¤Ç»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹Ëè¤Î mmap ¸Â³¦¤Ë㤷¤Þ¤·¤¿¡£
|
||
.El
|
||
.Sh ´ØÏ¢¹àÌÜ
|
||
.Xr madvise 2 ,
|
||
.Xr mincore 2 ,
|
||
.Xr minherit 2 ,
|
||
.Xr mlock 2 ,
|
||
.Xr mprotect 2 ,
|
||
.Xr msync 2 ,
|
||
.Xr munlock 2 ,
|
||
.Xr munmap 2 ,
|
||
.Xr getpagesize 3 ,
|
||
.Xr make.conf 5
|
||
.Sh ¥Ð¥°
|
||
.Fa len
|
||
°ú¿ô¤Ï 2GB ¤Ë¸ÂÄꤵ¤ì¤Þ¤¹¡£
|
||
2GB ¤ò¤ï¤º¤«¤Ë¾å²ó¤ë¥Þ¥Ã¥Ô¥ó¥°¤Ïµ¡Ç½¤·¤Þ¤»¤ó¤¬¡¢
|
||
2GB, 4GB, 6GB ¤ª¤è¤Ó 8GB ¤è¤ê¤ï¤º¤«¤Ë¾¯¤Ê¤¤¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤Ë¤Ä¤¤¤Æ
|
||
(¥Õ¥¡¥¤¥ë¥µ¥¤¥º % 2GB) ¤Î¥µ¥¤¥º¤Î¥¦¥£¥ó¥É¥¦¤ò¥Þ¥Ã¥×¤Ç¤¤Þ¤¹¡£
|
||
.Pp
|
||
À©Ìó¤Ï¿ºÌ¤ÊÍýͳ¤«¤éÀ¸¤¸¤Æ¤¤¤Þ¤¹¡£
|
||
¤½¤Î¤Û¤È¤ó¤É¤Ï¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¾å¤ÎÃø¤·¤¤¥Ú¥Ê¥ë¥Æ¥£¤Î¤¿¤á¡¢
|
||
.Fx
|
||
¤Ç¤Ï VM ¥·¥¹¥Æ¥àÆâ¤Ç 64 ¥Ó¥Ã¥È¤Î¥ª¥Õ¥»¥Ã¥È¤ò»ÈÍѤ·¤¿¤¯¤Ê¤¤¤³¤È¤È
|
||
´Ø·¸¤·¤Æ¤¤¤Þ¤¹¡£
|
||
¤·¤¿¤¬¤Ã¤Æ
|
||
.Fx
|
||
¤Ï 32 ¥Ó¥Ã¥È¤Î¥Ú¡¼¥¸¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢¤³¤ì¤Ë¤è¤Ã¤Æ
|
||
.Fx
|
||
¤Ç¤ÏºÇ¹â¤Ç 8TB ¤Þ¤Ç¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤òÍøÍѤǤ¤Þ¤¹¡£
|
||
¼ÂºÝ¤Ë¤Ï¤µ¤é¤ËÀ©Ì󤬲ݤµ¤ì¤Æ»ÈÍѲÄǽ¥µ¥¤¥º¤Ï 1TB ¤Þ¤Ç¤Ç¤¹¤¬¡¢
|
||
¤³¤ì¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¡¼¥ÉÆâ¤Î¥Ð¥°¤Ë¤è¤ë¤â¤Î¤Ç¤¹
|
||
(¥Ö¥í¥Ã¥¯ÈÖ¹æ·×»»¤ò¹Ô¤Ã¤Æ¤¤¤ë¤È¤¤Î·åÍî¤Á)¡£
|
||
.Pp
|
||
2GB À©¸Â¤Î¤â¤¦¤Ò¤È¤Ä¤ÎÍýͳ¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥á¥¿¥Ç¡¼¥¿¤¬Éé¤Î¥ª¥Õ¥»¥Ã¥È¤Ë
|
||
¸ºß¤Ç¤¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
|
||
.Pp
|
||
0 ¥Ð¥¤¥È¤ò
|
||
.Fn mmap
|
||
¤·¤è¤¦¤È¤·¤Æ¤â²¿¤Î¸ú²Ì¤â¤Ê¤¯¡¢Ã±¤ËÀ®¸ù¤·¤Þ¤¹¡£
|
||
°ìÊý¡¢0 ¥Ð¥¤¥È¤ò
|
||
.Fn munmap
|
||
¤·¤è¤¦¤È¤¹¤ë¤È
|
||
.Bq Er EINVAL
|
||
¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
|