MLOCKALL

Section: ¸®´ª½º ÇÁ·Î±×·¡¸Ó ¸Å´º¾ó (2)
Updated: 1995³â 11¿ù 26ÀÏ
Index
Return to Main Contents
 

À̸§

mlockall - È£ÃâÇÑ ÇÁ·Î¼¼½ºÀÇ ÆäÀÌ¡À» ±ÝÁö½ÃŲ´Ù.  

»ç¿ë¹ý

#include <sys/mman.h>

int mlockall(int flags);
 

¼³¸í

mlockallÀº È£ÃâÇÑ ÇÁ·Î¼¼½ºÀÇ ÁÖ¼Ò °ø°£¿¡ ´ëÀÀµÇ´Â ¸ðµç ÆäÀÌÁö¿¡ ´ëÇÑ ÆäÀÌ¡À» ±ÝÁö½ÃŲ´Ù. ¿©±â¿¡´Â ÄÚµå, µ¥ÀÌÅÍ¿Í ½ºÅà ÆäÀÌÁö ¶ÇÇÑ °øÀ¯ ¶óÀ̺귯¸®, »ç¿ëÀÚ ¿µ¿ª Ä¿³Î µ¥ÀÌÅÍ, °øÀ¯ ¸Þ¸ð¸®, ¸Þ¸ð¸®¿¡ ´ëÀÀµÈ ÆÄÀÏÀÌ Æ÷ÇԵȴÙ. ¸ðµç ÆäÀÌÁö´Â mlockallÀÌ ¼º°øÇßÀ» ¶§ RAM¿¡ »óÁÖÇÏ´Â °ÍÀÌ º¸ÀåµÈ´Ù. ±×¸®°í munlockÀ̳ª munlockall¿¡ ÀÇÇØ ´Ù½Ã Àá±ÝÀÌ Ç®¸± ¶§±îÁö ¶Ç´Â ÇÁ·Î¼¼½º°¡ Á¾·áÇÒ ¶§±îÁö ¶Ç´Â exec¿¡ ÀÇÇØ ´Ù¸¥ ÇÁ·Î±×·¥ÀÌ ½ÃÀÛµÉ ¶§±îÁö RAM¿¡ »óÁÖÇÏ´Â °ÍÀÌ º¸ÀåµÈ´Ù. fork¿¡ ÀÇÇÑ ÀÚ½Ä ÇÁ·Î¼¼½º´Â ÆäÀÌÁö Àá±ÝÀ» »ó¼Ó¹ÞÁö ¾Ê´Â´Ù.

¸Þ¸ð¸® Àá±ÝÀº ÁÖ·Î µÎ °¡Áö °æ¿ì¿¡ ÀÀ¿ëµÈ´Ù: ½Ç½Ã°£ ¾Ë°í¸®Áò°ú high-security µ¥ÀÌŸ ó¸®. ½Ç½Ã°£ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ °æ¿ì´Â °áÁ¤·ÐÀûÀΠŸÀְ̹ú ½ºÄÉÁÙ¸µ °°Àº °ÍÀÌ ¿ä±¸µÇ´Âµ¥, ÀÌ ¶§ ÆäÀÌ¡Àº ¿¹»óÄ¡ ¸øÇÑ ÇÁ·Î±×·¥ ½ÇÇà Áö¿¬À» ¾ß±âÇÏ´Â ÁÖ¿ä ¿øÀÎÀÌ´Ù. ¶ÇÇÑ ½Ç½Ã°£ ÀÀ¿ëÇÁ·Î±×·¥Àº º¸Åë sched_setscheduler·Î ½Ç½Ã°£ ½ºÄÉÁì·¯¸¦ »ç¿ëÇÑ´Ù. ¾ÏÈ£ º¸¾È ¼ÒÇÁÆ®¿þ¾î´Â µ¥ÀÌÅÍ·Î ¾ÏÈ£³ª º¸¾ÈÅ° °°Àº Áß¿ä ¹ÙÀÌÆ®¸¦ ó¸®ÇÑ´Ù. ÆäÀÌ¡ °á°ú, ÀÌ µ¥ÀÌÅÍ°¡ Áö¼ÓÀûÀÎ ½º¿Ò ÀúÀå ÀåÄ¡¿¡ ÀúÀåµÇ¸ç º¸¾È ¼ÒÇÁÆ®¿þ¾î°¡ RAM¿¡¼­ ÀÌ µ¥ÀÌÅ͸¦ Áö¿ì°í ³¡³­ ÈÄ¿¡µµ ¿À·§µ¿¾È ¿ÜºÎ¿¡ ³ëÃâµÉ ¼ö ÀÖ´Ù. º¸¾È ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ ÀÛÀº ¸Þ¸ð¸® ¿µ¿ª¸¸À» Àá°¡¾ßÇÏ°í, ÀÌ ¶§´Â mlockÀ» ÀÌ¿ëÇϱâ Àû´çÇÏ´Ù.

flags ÀÎÀÚ´Â ´ÙÀ½ »ó¼ö¸¦ ³í¸® OR¸¦ ÇÏ¿© ÁöÁ¤µÉ ¼ö ÀÖ´Ù.

MCL_CURRENT
ÇÁ·Î¼¼½ºÀÇ ÁÖ¼Ò °ø°£¿¡ ÇöÀç ´ëÀÀµÇ´Â ¸ðµç ÆäÀÌÁö¸¦ Àá±Ù´Ù.
MCL_FUTURE
¾ÕÀ¸·Î ÇÁ·Î¼¼½ºÀÇ ÁÖ¼Ò °ø°£¿¡ ´ëÀÀµÉ ¸ðµç ÆäÀÌÁö¸¦ Àá±Ù´Ù. ¿¹¸¦ µé¾î »õ·Î¿î ¸Þ¸ð¸® ´ëÀÀ ÆÄÀÏÀ̳ª °øÀ¯ ¸Þ¸ð¸® ¿µ¿ª »Ó¸¸¾Æ´Ï¶ó ´Ã¾î³­ Èü°ú ½ºÅÃÀÇ ÆäÀÌÁö¿¡ »ç¿ëµÇ´Â ÆäÀÌÁö¿¡ ÇØ´çµÈ´Ù.

¸¸¾à MCL_FUTUREÀÌ ÁöÁ¤µÇ°í Àá±ä ÆäÀÌÁö ¼ö°¡ Çã¿ëµÈ ÇѰ踦 ÃÊ°úÇÏ¸é ½Ã½ºÅÛ ÄÝÀº ENOMEM ¿¡·¯·Î ½ÇÆÐÇÒ °ÍÀÌ´Ù. ½ºÅÃÀÌ ´Ã¾î³ª »õ ÆäÀÌÁö°¡ ´ëÀÀµÇ¸é, Ä¿³ÎÀº ½ºÅà ȮÀåÀ» °ÅºÎÇÏ°í SIGSEGV ½Ã±×³ÎÀ» º¸³½´Ù.

½Ç½Ã°£ ÇÁ·Î¼¼½º´Â ½Ã°£ ÀÓ°è ¿µ¿ªÀ» ¼öÇàÇϱâ Àü¿¡ ÃæºÐÇÑ ½ºÅà ÆäÀÌÁö¸¦ Àá°¡µÎ¾î, ±× ÇÔ¼ö È£Ãâ¿¡ ÀÇÇØ ÆäÀÌÁö ¿À·ù°¡ ¹ß»ýÇÏÁö ¾Ê´Â´Ù. ÀÌ´Â ÃæºÐÈ÷ Å« Áö¿ª º¯¼ö¸¦ °¡Áö°í, ½ºÅà ÆäÀÌÁö¸¦ ¸¸µé±â À§ÇØ ÀÌ Å« ¹è¿­ÀÌ Â÷ÁöÇÑ ¸Þ¸ð¸®¿¡ ¾²±â¸¦ ÇÏ´Â ÇÔ¼ö¸¦ È£ÃâÇÏ¿©¼­ ÀÌ·ê ¼ö ÀÖ´Ù. ÀÌ·± ¹æ¹ýÀ¸·Î ÃæºÐÇÑ ÆäÀÌÁö¸¦ ½ºÅÿ¡ ´ëÀÀ½ÃÄÑ RAM¿¡ Àá°¡µÑ ¼ö ÀÖ´Ù. ÀÌ ¾²±â´Â ÀÓ°è ¿µ¿ª¿¡¼­ copy-on-write ÆäÀÌÁö ¿À·ù°¡ ¹ß»ýÇÏÁö ¾Ê°Ô ÇÑ´Ù.
  ¸Þ¸ð¸® Àá±ÙÀº ½ºÅÃÀÌ ¾Æ´Ï´Ù. Áï, mlockÀ̳ª mlockallÀÌ ¿©·¯¹ø È£ÃâµÇ¾î ¿©·¯¹ø Àá°å´ø ÆäÀÌÁö´Â »óÀÀÇÏ´Â ¹üÀ§¿¡ ´ëÇÑ munlockÀ̳ª munlockall¸¦ ´Ü Çѹø È£ÃâÇÏ¿© Àá±ÝÀ» Ç® ¼ö ÀÖ´Ù. ¿©·¯ À§Ä¡³ª ¿©·¯ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ Àá°ÜÁø ÆäÀÌÁö´Â Àû¾îµµ ÇϳªÀÇ À§Ä¡³ª ÇÁ·Î¼¼½º¿¡ ÀÇÇØ Àá°ÜÁ® ÀÖ´Â ÇÑ RAM¿¡¼­ °è¼ÓÀûÀ¸·Î Àá±ÝÀÌ À¯ÁöµÈ´Ù.

mlockall°ú munlockall¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â POSIX ½Ã½ºÅÛ¿¡¼­ _POSIX_MEMLOCKÀº <unistd.h>¿¡ Á¤ÀǵǾî ÀÖ´Ù.

 

¹Ýȯ°ª

¼º°ø½Ã, mlockallÀº 0À» ¸®ÅÏÇÑ´Ù. ¿¡·¯½Ã, -1 À» ¸®ÅÏÇϸç, errno´Â ÀûÀýÇÑ °ªÀ¸·Î ¼³Á¤µÈ´Ù.  

¿¡·¯

ENOMEM
ÇÁ·Î¼¼½º°¡ Çã¿ëµÇ´Â Àá±Ý ÆäÀÌÁöÀÇ ÃÖ´ë ¼ö¸¦ ÃÊ°úÇß´Ù.
EPERM
È£ÃâÇÑ ÇÁ·Î¼¼½º°¡ ¿Ã¹Ù¸¥ ±ÇÇÑÀ» °®°í ÀÖÁö ¾Ê´Ù. ´ÜÁö ·çÆ® ÇÁ·Î¼¼½º¿¡¸¸ ÆäÀÌÁöÀÇ Àá±ÝÀ» Çã¿ëµÈ´Ù.
EINVAL
À߸øµÈ flags°¡ ÁöÁ¤µÇ¾ú´Ù.
 

ȣȯ

POSIX.1b, SVr4. SVr4´Â EAGAIN ¿¡·¯ Á¶°ÇÀ» Ãß°¡ÀûÀ¸·Î ±â¼úÇÑ´Ù.  

°ü·Ã Ç׸ñ

munlockall(2), mlock(2), munlock(2)  

¿ªÀÚ

ÀÓÁ¾±Õ <hermes44@secsm.org>, 2000³â 5¿ù 26ÀÏ


 

Index

À̸§
»ç¿ë¹ý
¼³¸í
¹Ýȯ°ª
¿¡·¯
ȣȯ
°ü·Ã Ç׸ñ
¿ªÀÚ

This document was created by man2html, using the manual pages.
Time: 08:06:59 GMT, March 25, 2004