.\" 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. .\" .\" @(#) madvise. 2 8.1 (Berkeley) 6/9/93 .\" %FreeBSD: src/lib/libc/sys/madvise. 2, v 1.17. 2.6 2001/12/14 18:34:01 ru Exp % .\" .\" WORD: revert ½á µÇµ¹¸®´Â(dirty ÀÎ ÆäÀÌÁö¸¦ ÆÄÀÏ ½Ã½ºÅÛ¿¡ ±âÀÔÇÑ´Ù)[madvise. 2] .\" WORD: physically backing store ¹°¸®Àû ¹èÅ· ½ºÅä¾î .\" (°¡»ó±â¾ïÀÇ µÚ¿¡ ÀÖ´Â µð½ºÅ© area, swap ³ª ÆÄÀÏ ½Ã½ºÅÛ?!) .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man2/madvise. 2, v 1.8 2001/12/23 00:03:42 horikawa Exp $ .Dd July 19, 1996 .Dt MADVISE 2 .Os .Sh ¸íĪ .Nm madvise .Nd ¸Þ¸ð¸®ÀÇ »ç¿ë¹ý¿¡ ´ëÇØ Á¶¾ðÀ» ÁØ´Ù .Sh ÇÁ·Î±×·¥ ¶óÀ̺귯¸® .Lb libc .Sh ¼­½Ä .In sys/types.h .In sys/mman.h .Ft int .Fn madvise "void *addr" "size_t len" "int behav" .Sh ÇØ¼³ .Fn madvise ½Ã½ºÅÛ ÄÝ¿¡ ÀÇÇØ, ÀÚ½ÅÀÇ ¸Þ¸ð¸® ÀÌ¿ëÀÇ ½À¼ºÀÇ Áö½ÄÀÌ ÀÖ´Â ÇÁ·Î¼¼½º´Â, ±×°ÍÀ» ½Ã½ºÅÛ¿¡ ¼³¸íÇÒ ¼ö ÀÖ½À´Ï´Ù. Áö±Ý±îÁö ¾Ë·ÁÁ® ÀÖ´Â ½À¼ºÀº, .Aq Pa sys/mman.h ±×¸®°í Á¤Àǵǰí ÀÖ¾î ´ÙÀ½°ú °°½À´Ï´Ù. .\" 6 À¸·ÎºÎÅÍ (¶æ)ÀÌÀ¯ Ãß°¡ .Bd -literal #define MADV_NORMAL 0 /* ÀÌ ÀÌÈÄ, Ư¼öÇÑ Ã³¸®´Â ÇÊ¿ä¾ø´Ù */ #define MADV_RANDOM 1 /* ·£´ýÀÎ ÆäÀÌÁö ÂüÁ¶°¡ ¿¹ÃøµÈ´Ù */ #define MADV_SEQUENTIAL 2 /* ½ÃÄö¼ÈÀÎ ÂüÁ¶°¡ ¿¹ÃøµÈ´Ù */ #define MADV_WILLNEED 3 /* ÀÌ·¯ÇÑ ÆäÀÌÁö¸¦ ÇÊ¿ä·Î ÇÑ´Ù */ #define MADV_DONTNEED 4 /* ÀÌ·¯ÇÑ ÆäÀÌÁö¸¦ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù */ #define MADV_FREE 5 /* µ¥ÀÌÅÍ´Â Áö±Ý Áß¿äÇÏÁö ¾Ê´Ù */ #define MADV_NOSYNC 6 /* ¸í½ÃÀûÀ¸·Î ¹°¸®Àû ¹èÅ· ½ºÅä¾î°¡ À§Å¹µÇÁö ¾Ê´Â °æ¿ì */ #define MADV_AUTOSYNC 7 /* µðÆúÆ®´Â ¹°¸®Àû ¹èÅ· ½ºÅä¾î¿¡ À§Å¹µÈ´Ù */ #define MADV_NOCORE 8 /* ÄÚ¾î ÆÄÀÏ¿¡ ÆäÀÌÁö¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â °Í */ #define MADV_CORE 9 /* ÄÚ¾î ÆÄÀÏ¿¡ ÆäÀÌÁö¸¦ º¹±Í½ÃŲ´Ù */ .Ed .Pp .Bl -tag -width MADV_SEQUENTIAL .It Dv MADV_NORMAL µðÆúÆ®ÀÇ ÆäÀÌ¡ µ¿ÀÛÀ¸·Î µ¹¾Æ¿Àµµ·Ï(µíÀÌ) ½Ã½ºÅÛ¿¡ Áö½ÃÇÕ´Ï´Ù. .It Dv MADV_RANDOM ÆäÀÌÁö°¡ ·£´ý¿¡ ¾×¼¼½º µÇ¾î ÇÁ¸®ÆêÄ¡°¡ À¯¸®ÇÏÁö ¾Ê´Ù°í »ý°¢µÈ´Ù°í ÇÑ´Ù ÈùÆ®ÀÔ´Ï´Ù. .It Dv MADV_SEQUENTIAL ÁöÁ¤ÀÇ ÆäÀÌÁö°¡ fault·Î ÀÐÇûÀ» ¶§, ±× ÆäÀÌÁöÀÇ Á÷ÀüÀÇ ÆäÀÌÁöÀÇ ¿ì¼± ¼øÀ§¸¦ VM ½Ã½ºÅÛÀÌ ³»¸®µµ·Ï(µíÀÌ) ÇÕ´Ï´Ù. .It Dv MADV_WILLNEED ÁöÁ¤ÀÇ °¡»ó ÁÖ¼Ò ¹üÀ§³»¿¡ ÀÖ´Â ÆäÀÌÁö°¡ ÀϽÃÀûÀ¸·Î ³ôÀº ¿ì¼± ¼øÀ§¸¦ °¡Áöµµ·Ï(µíÀÌ) ÇØ, ±×°ÍµéÀÌ ¸Þ¸ð¸®³»¿¡ ÀÖ´Â °æ¿ì, ÇØ¹æµÉ °¡´É¼ºÀ» °¨¼Ò½Ãŵ´Ï´Ù. ÇÑÃþ ´õ ÀÌ¹Ì ¸Þ¸ð¸®³»¿¡ ÀÖ´Â ÆäÀÌÁö´Â Áï½Ã ÇÁ·Î¼¼½º¿¡ MAP µÇ¾î °Å±â¿¡ µû¶ó ÇÁ·Î¼¼½º Àüü¿¡ °ÉÄ¡´Â fault¿¡ ÀÇÇÑ Àб⿡ ÀÇÇÑ´Ù ºÒÇÊ¿äÇÑ ¿À¹öÇìµå¸¦ Á¦°ÅÇÕ´Ï´Ù. À̰ÍÀº, fault¿¡ ÀÇÇÑ ÆäÀÌÁöÀÇ ¹èÅ· ½ºÅä¾î·ÎºÎÅÍÀÇ Àб⸦ ÀÏÀ¸Å°°Ô ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ¸Þ¸ð¸®³»¿¡ ÀÌ¹Ì ÀÖ´Â ÆäÀÌÁö¸¦ È£ÃâÇØ ¿·ÀÇ ÇÁ·Î¼¼½º¿¡ Àçºü¸£°Ô MAP ½Ãŵ´Ï´Ù. .It Dv MADV_DONTNEED VM ½Ã½ºÅÛ¿¡, ÁöÁ¤ÀÇ ¹üÀ§³»ÀÇ ÆäÀÌÁöÀÇ ¸Þ¸ð¸®³» ¿ì¼± ¼øÀ§ÀÇ °¨¼Ò¸¦ Çã°¡ÇÕ´Ï´Ù. ÇâÈÄ, ÀÌ ÁÖ¼Ò ¹üÀ§¿¡ÀÇ ÂüÁ¶´Â ÆäÀÌÁö ÆúÆ®¸¦ ¹ß»ý½Ã۰ÚÁö¿ä. .It Dv MADV_FREE VM ½Ã½ºÅÛ¿¡ ÆäÀÌÁö¸¦ ÇØ¹æÇÏ´Â ÀÚÀ¯¸¦ ÁÖ¾î ÁöÁ¤ ÆäÀÌÁö ¹üÀ§³»ÀÇ Á¤º¸°¡ ÀÌ¹Ì Áß¿äÇÏÁö ¾ÊÀº °ÍÀ» ½Ã½ºÅÛ¿¡ ÅëÁöÇÕ´Ï´Ù. À̰ÍÀº, address °ø°£À» À¯È¿ÇÏ°Ô ÇÑä·Î .Xr malloc 3 ÇÏÁö¸¸ address °ø°£³»ÀÇ ÀÓÀÇÀÇ À§Ä¡ÀÇ ÆäÀÌÁö¸¦ ÇØ¹æÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) ÇÏ´Â È¿À²ÀûÀÎ ¹æ¹ýÀÔ´Ï´Ù. ÆäÀÌÁö°¡ ´ÙÀ½¿¡ ÂüÁ¶µÉ ¶§¿¡´Â, ±× ÆäÀÌÁö´Â ¿ä±¸½Ã Á¦·Î Ŭ¸®¾îÀÇ ´ë»óÀ¸·Î µÇ¾î ÀÖÀ» °¡´É¼ºµµ ÀÖ°í, ¶Ç´Â .Dv MADV_FREE È£Ãâ Àü¿¡ °Å±â¿¡ ÀÖ´ø µ¥ÀÌÅͰ¡ ³²¾Æ ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù. ÆäÀÌÁö°¡ ´Ù½Ã ¼öÁ¤µÉ ¶§±îÁö, ±× address °ø°£ ¹üÀ§¿¡ ´ëÇÑ ÂüÁ¶¸¸À¸·Î´Â, VM ½Ã½ºÅÛÀº ¹èÅ· ½ºÅä¾î·ÎºÎÅÍ Á¤º¸¸¦ ÆäÀÌÁö¿¡ ÀоîµéÀÌ´Â µ¿ÀÛÀ» ½Ç½ÃÇÏÁö ¾Ê°Ô µË´Ï´Ù. .\" (¶æ)ÀÌÀ¯ Ãß°¡ .It Dv MADV_NOSYNC ÀÌ MAP¿¡ °ü·Ã ÁöÀ» ¼ö ÀÖ°í ÀÖ´Â µ¥ÀÌÅ͸¦ ¹°¸®Àû ¹èÅ· ½ºÅä¾î¿¡ Ç÷¡½Ã ÇÏÁö ¾Ê°Ô ½Ã½ºÅÛ¿¡ ¿ä±¸ÇÕ´Ï´Ù. Åë»ó, À̰Ϳ¡ ÀÇÇØ, ÆÄÀÏ ½Ã½ºÅÛ ¾÷µ¥ÀÌÆ® demon°¡ VM ½Ã½ºÅÛÀÌ ´õ·´Èù ÆäÀÌÁö¸¦ ƯÈ÷ ÀÌÀ¯µµ ¾ø´Âµ¥ ¹°¸® µð½ºÅ©¿¡ ¾²±âºÒÇÊ¿äÇÑ µ¿ÀÛÀ» ¹æÁöÇÕ´Ï´Ù. VM ¿Í ÆÄÀÏ ½Ã½ºÅÛÀÇ Àϰü¼ºÀº Ç×»ó À¯ÁöµÇ´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä. ÀÌ ±â´ÉÀº, MAP µÈ µ¥ÀÌÅͰ¡ ÇÊ¿äÇÑ ¶§¸¸, (Åë»ó, ½Ã½ºÅÛÆäÀÌÀð¿¡ ÀÇÇØ) Ç÷¡½Ã µÇ´Â °ÍÀ» ÇÁ·ÎÅØ¼ÇÇϰí Àִ¿¡ Áö³ªÁö ¾Ê½À´Ï´Ù. .Pp ÀÌ ±â´ÉÀ» »ç¿ëÇÏ´Â ÀüÇüÀûÀÎ °æ¿ì¶õ, ÆÄÀÏÀ» µÚ¿¡ °¡Áö´Â °øÀ¯ ¸Þ¸ð¸® area¸¦ ÇÁ·Î¼¼½º (IPC) °£ Åë½ÅÀ¸·Î »ç¿ëÇÏ°í ½ÍÀ» ¶§, ƯÈ÷, ±× area¿¡ °Ý³³µÇ´Â µ¥ÀÌÅ͸¦ ¹°¸®Àû µð½ºÅ©¿¡ ±âÀÔÇÒ Çʿ䰡 ¾ø´Â °æ¿ìÀÔ´Ï´Ù. ÀÌ ±â´ÉÀº, SysV °øÀ¯ ¸Þ¸ð¸® È£Ãâ·Î ¾òÀ» ¼ö ÀÖ´Â mmap ¼º´É°ú µ¿µîÀÇ ¼º´ÉÀ» ÁÖ°í, ÇÑÆí, SysV °øÀ¯ ¸Þ¸ð¸® È£ÃâÀ» »ç¿ëÇÏ´Â °Íº¸´Ù, Ä¡¹ÐÇÑ Á¦¾î°¡ °¡´ÉÇØº¸´Ù Á¦¾àÀÌ ÀûÀº ¹æ¹ýÀ̱⵵ ÇÕ´Ï´Ù. ±×·¯³ª ÀÌ ±â´ÉÀº UNIX Ç÷§Æû°£¿¡¼­ À̽ļºÀÌ ¾ø´Â °Í¿¡ ÁÖÀÇÇØ ÁÖ¼¼¿ä (¸î°³ÀÇ Ç÷§Æû¿¡¼­´Â µðÆúÆ®·Î ¿Ã¹Ù¸£°Ô ÇൿÇÒÁöµµ ¸ð¸£Áö ¾Ê½À´Ï´Ù¸¸). ÀÚ¼¼ÇÑ Á¤º¸¿¡ °üÇØ¼­´Â, .Xr mmap 2 ÀÇ MAP_NOSYNC ¼½¼ÇÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä. .It Dv MADV_AUTOSYNC Àå·¡, ÁÖ¼Ò ¹üÀ§³»ÀÇ ÆäÀÌÁö°¡ ´õ·´ÇôÁ³À» °æ¿ì¸¦ À§Çؼ­(¶§¹®¿¡) MADV_NOSYNC ÀÇ È¿°ú¸¦ ¹ÙÅÁÀ¸·Î µÇµ¹¸³´Ï´Ù. ÀÌ¹Ì ´õ·´ÇôÁö°í ÀÖ´Â ÆäÀÌÁö¿¡ ´ëÇÑ È¿°ú´Â ºÎÁ¤ÀÔ´Ï´Ù. ½á µÇµ¹·Á ÇÒÁöµµ ¸ð¸£°í, ÇÏÁö ¾ÊÀ»Áöµµ ¸ð¸¨´Ï´Ù. ¾²±â ¹ÝȯÀ» È®½ÇÈ÷ ÇàÇÏ·Á¸é , .Xr msync 2 ¶Ç´Â .Xr fsync 2 ½Ã½ºÅÛ ÄÝÀ» »ç¿ëÇÕ´Ï´Ù. .It Dv MADV_NOCORE area´Â, ÄÚ¾î ÆÄÀÏ¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù. .It Dv MADV_CORE ÄÚ¾î ÆÄÀÏÀÇ area¸¦ Æ÷ÇÔÇÕ´Ï´Ù. .El .Sh ¹Ýȯ°ª .Rv -std madvise .Sh ¿¡·¯ .Fn madvise ÇÔ¼ö´Â ´ÙÀ½ÀÇ °æ¿ì¿¡ ½ÇÆÐÇÕ´Ï´Ù. .Bl -tag -width Er .It Bq Er EINVAL .Fa addr Àμö¿Í .Fa len Àμö·Î ÁöÁ¤µÈ °¡»ó ÁÖ¼Ò ¹üÀ§°¡ À¯È¿ÇÏÁö´Â ¾Ê½À´Ï´Ù. .El .Sh °ü·Ã Ç׸ñ .Xr mincore 2 , .Xr mprotect 2 , .Xr msync 2 , .Xr munmap 2 .Sh ¿ª»ç .Fn madvise ÇÔ¼ö´Â .Bx 4.4 ±×¸®°í óÀ½ µîÀåÇß½À´Ï´Ù.