.\" Copyright (c) 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. .\" .\" @(#) mlock. 2 8.2 (Berkeley) 12/11/93 .\" %FreeBSD: src/lib/libc/sys/mlock. 2, v 1.6. 2.5 2001/12/14 18:34:01 ru Exp % .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man2/mlock. 2, v 1.7 2001/12/23 00:03:42 horikawa Exp $ .Dd June 2, 1993 .Dt MLOCK 2 .Os .Sh ¸íĪ .Nm mlock , .Nm munlock .Nd ¹°¸® ÆäÀÌÁö¸¦ ¸Þ¸ð¸®³»¿¡¼­ ¶ô (¾ð·ÎÅ©) ÇÑ´Ù .Sh ÇÁ·Î±×·¥ ¶óÀ̺귯¸® .Lb libc .Sh ¼­½Ä .In sys/types.h .In sys/mman.h .Ft int .Fn mlock "const void *addr" "size_t len" .Ft int .Fn munlock "const void *addr" "size_t len" .Sh ÇØ¼³ .Fn mlock ½Ã½ºÅÛ ÄÝÀº, .Fa addr (À¸)·ÎºÎÅÍ °³½ÃÇÑ´Ù .Fa len ¹ÙÀÌÆ®ÀÇ °¡»ó ÁÖ¼Ò ¹üÀ§¿¡ ´ëÀÀÇÏ´Â ¹°¸® ÆäÀÌÁö¸¦ ¸Þ¸ð¸®¿¡ Àá±Þ´Ï´Ù. .Fn munlock È£ÃâÀº, 1 °³(»ì) ÀÌ»óÀÇ .Fn mlock È£Ãâ¿¡ ÀÇÇØ ¶ô µÇ°í ÀÖ¾ú´Ù ÆäÀÌÁö¸¦ ¾ð·ÎÅ© ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¾çÂÊ ¸ðµÎ¿¡ ´ëÇØ, .Fa addr ÆÄ¶ó¹ÌÅÍ´Â ÆäÀÌÁö »çÀÌÁîÀÇ Á¤¼ö¹è°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. .Fa len ÆÄ¶ó¹ÌÅͰ¡ ÆäÀÌÁö »çÀÌÁîÀÇ Á¤¼ö¹è°¡ ¾Æ´Ñ °æ¿ì, ³¡¸ÎÀ» ¼ö ÀÖ½À´Ï´Ù. ¹üÀ§ Àüü°¡ È®º¸µÇ°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. .Pp .Fn mlock È£ÃâÀÇ µÚ, Áö½Ã¹ÞÀº ÆäÀÌÁö´Â, ¾ð·ÎÅ© µÉ ¶§±îÁö ºñ»óÁÖÆäÀÌÁö ÆúÆ®µµ ¾îµå·¹½º º¯È¯ faultµµ ÀÏÀ¸Å°Áö ¾Ê½À´Ï´Ù. ±×·¯³ª, TLB ÀÇ °ü¸®¸¦ ¼ÒÇÁÆ®¿þ¾î·Î ½ÇÀåÇϰí ÀÖ´Â ¾ÆÅ°ÅØÃÄ¿¡¼­´Â, º¸È£ À§¹Ý fault, ¶Ç´Â TLB ¹Ì½º fault¸¦ ÀÏÀ¸Å³ °¡´É¼ºÀº ÀÖ½À´Ï´Ù. ÆäÀÌÁö¿¡ °üÇÑ ¸ðµç ¶ô µÈ ¸ÅÇÎÀÌ »èÁ¦µÉ ¶§±îÁö ¹°¸® ÆäÀÌÁö´Â ¸Þ¸ð¸®¿¡ ¸Ó¹´´Ï´Ù. º¹¼öÀÇ ÇÁ·Î¼¼½º°¡, °¢°¢ÀÇ °¡»ó ÁÖ¼Ò ¸ÅÇÎÀ¸·ÎºÎÅÍ °°Àº ¹°¸® ÆäÀÌÁö¸¦ Àá±Ù´Ù °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. °°ÀÌ 1 °³ÀÇ ÇÁ·Î¼¼½º°¡ °°Àº ÆäÀÌÁö¿¡ ´ëÇÑ ´Ù¸¥ º¹¼öÀÇ °¡»ó ¸ÅÇο¡ ÀÇÇØ, ¶Ç´Â °°Àº ÁÖ¼Ò ¹üÀ§¿¡ÀÇ ³×½ºÆ® Çß´Ù .Fn mlock È£Ãâ¿¡ ÀÇÇØ, ÆäÀÌÁö¸¦ ´ÙÁß¿¡ Àá±Ù´Ù °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ¾ð·ÎÅ©´Â, .Fn munlock ¿¡ ÀÇÇØ ¸í½ÃÀûÀ¸·Î, ¶Ç´Â .Fn munmap ¿¡ ÀÇÇØ ¾Ï¹¬ÀûÀ¸·Î ÇàÇØÁý´Ï´Ù. .Fn munmap (Àº)´Â MAPµÇ¾î ÀÖÁö ¾ÊÀº ÁÖ¼Ò ¹üÀ§ÀÇ ÇÒ´çÀ» ÇØÁ¦ÇÕ´Ï´Ù. ¶ô µÈ ¸ÅÇÎÀº .Xr fork 2 ¿¡ ÀÇÇÑ child process¿¡´Â °è½ÂµÇÁö ¾Ê½À´Ï´Ù. .Pp ¹°¸® ¸Þ¸ð¸®´Â ÀáÀçÀûÀ¸·Î ºÎÁ·ÇÑ ¸®¼Ò½ºÀ̹ǷÎ, ÇÁ·Î¼¼½º´Â ¾î´À Á¤µµ Àá±Û ¼ö ÀÖÀ»±îÀÇ Á¦ÇÑÀ» ¹Þ½À´Ï´Ù. 1 °³ÀÇ ÇÁ·Î¼¼½º´Â, ½Ã½ºÅÛ Àüü¿¡ °øÅëÀÇ ``°íÁ¤µÈ ÆäÀÌÁö''ÇѰè, ¶Ç´Â ÇÁ·Î¼¼½º¸¶´ÙÀÇ .Li RLIMIT_MEMLOCK ¸®¼Ò½º ÇѰèÀÇ ¾ðÁ¨°¡ ÀÛÀº (ºÐ)ÆíÀÇ °ª±îÁö .Fn mlock ÇÒ ¼ö ÀÖ½À´Ï´Ù. .Pp ÀÌ·¯ÇÑ È£ÃâÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº ½´ÆÛ À¯Àú »ÓÀÔ´Ï´Ù. .Sh ¹Ýȯ°ª .Rv -std .Pp È£ÃâÀÌ ¼º°øÇϸé(ÀÚ), ¹üÀ§³»ÀÇ ¸ðµç ÆäÀÌÁö°¡ ¶ô (¾ð·ÎÅ©) µË´Ï´Ù. ½ÇÆÐÇßÀ» °æ¿ì´Â, ¹üÀ§³»ÀÇ ¸ðµç ÆäÀÌÁöÀÇ ¶ô »óÅ´ º¯°æµÇÁö ¾Ê½À´Ï´Ù. .Sh ¿¡·¯ .Fn mlock (Àº)´Â ´ÙÀ½ÀÇ °æ¿ì¿¡ 󸮸¦ ½ÇÆÐÇÕ´Ï´Ù. .Bl -tag -width Er .It Bq Er EPERM È£ÃâÃøÀÌ ½´ÆÛ À¯Àú°¡ ¾Æ´Õ´Ï´Ù. .It Bq Er EINVAL ÁöÁ¤µÈ ÁÖ¼Ò°¡ ÆäÀÌÁö °æ°è¿¡ Á¤·ÄµÇ¾î ÀÖÁö ¾ÊÀºÁö, ¶Ç´Â ±æÀ̰¡ ºÎÀÔ´Ï´Ù. .It Bq Er EAGAIN Áö½Ã¹ÞÀº ¹üÀ§ÀÇ ¶ô¿¡ ÀÇÇØ, ¶ô µÈ ¸Þ¸ð¸®¿¡ ´ëÇÑ ½Ã½ºÅÛ ÇÑ°è ¶Ç´Â ÇÁ·Î¼¼½º¸¶´ÙÀÇ ÇѰ踦 ÃʰúÇØ ¹ö¸³´Ï´Ù. .It Bq Er ENOMEM Áö½Ã¹ÞÀº ÁÖ¼Ò ¹üÀ§ÀÇ ÀϺθ¦ ÇÒ´çÇÒ ¼ö ÀÖ°í ÀÖÁö ¾Ê½À´Ï´Ù. ÆäÀÌÁöÀÇ fault / ¸ÅÇÎÀ¸·Î ¿¡·¯°¡ ÀÖ¾ú½À´Ï´Ù. .El .Fn munlock (Àº)´Â ´ÙÀ½ÀÇ °æ¿ì¿¡ ½ÇÆÐÇÕ´Ï´Ù. .Bl -tag -width Er .It Bq Er EPERM È£ÃâÃøÀÌ ½´ÆÛ À¯Àú°¡ ¾Æ´Õ´Ï´Ù. .It Bq Er EINVAL ÁöÁ¤µÈ ÁÖ¼Ò°¡ ÆäÀÌÁö °æ°è¿¡ Á¤·ÄÇϰí ÀÖÁö ¾Ê´ÂÁö, ¶Ç´Â ±æÀ̰¡ ºÎÀÔ´Ï´Ù. .It Bq Er ENOMEM Áö½Ã¹ÞÀº ÁÖ¼Ò ¹üÀ§ÀÇ ÀϺθ¦ ÇÒ´çÇÒ ¼ö ÀÖ°í ÀÖÁö ¾Ê½À´Ï´Ù. Áö½Ã¹ÞÀº ÁÖ¼Ò ¹üÀ§ÀÇ ÀϺΰ¡ ¶ô µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. .El .Sh °ü·Ã Ç׸ñ .Xr fork 2 , .Xr mincore 2 , .Xr minherit 2 , .Xr mmap 2 , .Xr munmap 2 , .Xr setrlimit 2 , .Xr getpagesize 3 .Sh ¹ö±× Sun ÀÇ ½ÇÀå°ú ´Þ¸®, °°Àº ÁÖ¼Ò ¹üÀ§¿¡ °üÇÑ º¹¼öÀÇ .Fn mlock È£Ãâ¿¡ ´ëÇØ¼­, ½ÇÁ¦·Î ÆäÀÌÁö¸¦ ¾ð·ÎÅ© Çϱâ À§Çؼ­ ´ëÀÀÇÏ´Â ¼öÀÇ .Fn munlock È£ÃâÀÌ ÇÊ¿äÇÕ´Ï´Ù. Áï .Fn mlock ÀÇ ³×½ºÆ®ÀÔ´Ï´Ù. À̰ÍÀº ½ÇÀå»óÀÇ °á°úÀÌ¸ç »ç¾çÀº ¾Æ´Ï¶ó°í »ý°¢ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. .Pp ÇÁ·Î¼¼½º¸¶´ÙÀÇ ¸®¼Ò½ºÀÇ ÇѰè´Â ¶ô µÈ °¡»ó ¸Þ¸ð¸®ÀÇ ¾ç¿¡ÀÇ Á¦ÇÑÀ¸·Î, ½Ã½ºÅÛ Àüü¿¡ °øÅëÀÇ Á¦ÇÑÀº ¶ô µÈ ¹°¸® ÆäÀÌÁöÀÇ ¼ö¿¡ ´ëÇÑ ¹°°ÇÀÔ´Ï´Ù. ÀÌ¿Í °°ÀÌ, 2 °³(»ì)ÀÇ ´Ù¸¥ ¸ÅÇÎÀ¸·ÎºÎÅÍ °°Àº ¹°¸® ÆäÀÌÁö¸¦ Àá±×¸é(ÀÚ) ÇÁ·Î¼¼½º¸¶´ÙÀÇ Á¦ÇÑ¿¡ ´ëÇØ¼­´Â 2 ÆäÀÌÁö·Î¼­ Ä«¿îÆ® µÇ¾î ½Ã½ºÅÛ Á¦ÇÑ¿¡¼­´Â 1 ÆäÀÌÁö¸¸À¸·Î¼­ Ä«¿îÆ® µË´Ï´Ù. .Pp ÇÁ·Î¼¼½º¸¶´ÙÀÇ ¸®¼Ò½º Á¦ÇÑÀº Çö½ÃÁ¡¿¡¼­´Â ¼­Æ÷Æ®µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. .Sh ¿ª»ç .Fn mlock ÇÔ¼ö¿Í .Fn munlock ÇÔ¼ö´Â .Bx 4.4 ±×¸®°í óÀ½ µîÀåÇß½À´Ï´Ù.