Solaris :: vmem.

°¡»ó ¸Þ¸ð¸® ÇÒ´ç ÀÚÀÇ Perl ÀÎÅÍÆäÀ̽º
Áö±Ý ´Ù¿î·Îµå

Solaris :: vmem. ¼øÀ§ ¹× ¿ä¾à

±¤°í

  • Rating:
  • ƯÇã:
  • Perl Artistic License
  • °¡°Ý:
  • FREE
  • °Ô½ÃÀÚ À̸§:
  • Alexander Golomshtok
  • °Ô½ÃÀÚ À¥»çÀÌÆ®:
  • http://search.cpan.org/~agolomsh/

Solaris :: vmem. ű×


Solaris :: vmem. ¼³¸í

°¡»ó ¸Þ¸ð¸® ÇÒ´ç¿¡ ÆÞ ÀÎÅÍÆäÀ̽º Çö´ë ÀÀ¿ë ÇÁ·Î±×·¥Àº Å« ¹è¿­ ó¸®ÀÇ Á߿伺ÀÌ Áõ°¡ÇÏ°íÀÖ´Ù, ±×·¡¼­ ´õ ¸¹Àº ¸Þ¸ð¸®¸¦ ´õ ¸¹Àº ¸Þ¸ð¸®¿Í ÄÄÇ»ÅÍ Àü¿ø µîÀÌ °¡´ÉÇÏ°Ô µÉ ¶§ ¼ÒºñÇÏ´Â °æÇâÀÌÀÖ´Ù. CPU ¼Óµµ°¡ ¸Þ¸ð¸® ¾×¼¼½º speeds.Hereº¸´Ù ÈξÀ ºü¸£°Ô Áõ°¡ÇÏ°í Àֱ⠶§¹®¿¡, ¸Þ¸ð¸® È¿À²¼ºÀÇ »ó´ëÀû Á߿伺Àº ƯÈ÷ 64 ºñÆ® ¸ðµå ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ Å« ¹è¿­À» À§ÇØ, ´õ ³ªÀº ÁÖ¼Ò·Î Çϳª °³ÀÇ ¹æ¹ýÀÌ ¹®Á¦ ´õ ³ôÀºµÇ¾î °¡°íÀÖ´Ù. ¿©±â¿¡ Á¦½ÃµÈ ¾ÆÀ̵ð¾î´Â ÈξÀ ´õ Å« ¹è¿­À» ¸¸µé ¼ö ÀÖÁö¸¸, ±×·¸°Ô ÇÒ ¾ð´õ malloc¿¡ ÇÒ´ç µÈ ¹è¿­ÀÇ ¹®Á¦ (OS) ±¹ÁöÀû ÀÎ ¼Ö·ç¼Ç Solaris Ç÷§Æû ¶Ç´Â Çö´ë ¿î¿µ üÁ¦¿¡ ³»ÀåµÇ¾î °¡»ó ¸Þ¸ð¸® ÆäÀÌÁö ÁÖ¹®Çü ±â´ÉÀ» »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù ¸Þ¸ð¸® (½º¿Ò °ø°£)¿¡ ºñ¿ëÀ» µéÀÌÁö ¾Ê°í ±× malloc¿¡ÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ°ÍÀº °¡»ó ¸Þ¸ð¸® ¾î·¹ÀÌ°¡ Á¦°øÇÏ´Â °ÍÀÔ´Ï´Ù. °³¹ßÀÚ´Â º¸ÅëÀÇ malloc¿¡ ÇÒ´ç µÈ ¸Þ¸ð¸®¿Í µ¿ÀÏÇÑ ¼º´É Ư¼ºÀÌ ¸Å¿ì Å« ¹è¿­À» ¸¸µé ¼ö ÀÖÁö¸¸ front.The ¼Ö¶ó¸®½º±îÁö ÀÚ¿øÀ» ¼Òºñ ÇÒ ÇÊ¿ä¾øÀÌ :: Vmem ÆÐÅ°Áö´Â ¹è¿­¿¡ ´ëÇÑ °¡»ó ÁÖ¼Ò °ø°£ÀÇ ¸¹Àº ¾çÀ» ¿¹¾à ÇÒ ¼ö ÀÖ½À´Ï´Ù ÀÓÀÇÀÇ °³Ã¼, ±×°ÍÀ» ¸Þ¸ð¸® ½º¿Ò °ø°£À» È®º¸ÇÏÁö. ½ÇÁ¦ ¸Þ¸ð¸® (½º¿Ò) ÇÒ´çÀº ÆäÀÌÁö·Î µ¥ÀÌÅ͸¦ ¸Þ¸ð¸®, ÆäÀÌÁö¸¦ ä¿ï °æ¿ì¿¡¸¸, Áï, ´À¸®°Ô ¹ß»ýÇÕ´Ï´Ù. ¿©±â¿¡ Á¦½ÃµÈ ƯÁ¤ ±¸ÇöÀº ¸Þ¸ð¸®¿¡ µ¥ÀÌÅÍ°¡ ä¿öÁú ¶§±îÁö °¡»ó ¸Þ¸ð¸®¿¡ (VM) ½Ã½ºÅÛ È¯°æ¿¡¼­ÀÇ malloc´Â ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏÁö ¾Ê´Â ¿ïÆ®¶ó ½ºÆÅ processors.Note¿¡¼­ ½ÇÇàµÇ´Â Solaris ½Ã½ºÅÛÀÔ´Ï´Ù. ±×·¯³ª malloc¿¡ °¢°¢ ÇÒ´çÇϱâÀ§ÇÑ ¸Þ¸ð¸® (½º¿Ò °ø°£)À» È®º¸ÇÑ´Ù. ´ç½ÅÀÌ mallocÀ» °¡Áø ¸¹Àº ¾çÀÇ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ´Â °æ¿ì µû¶ó¼­, ´ç½ÅÀº NULLÀ» ¹ÝȯÀ» Áö¿øÇϱ⿡ ÃæºÐÇÑ ½º¿Ò °ø°£, ¶Ç´Â ´Ù¸¥ malloc¿¡ ÀÖ¾î¾ßÇÕ´Ï´Ù. °¡»ó ¸Þ¸ð¸® ¹è¿­Àº »ç¿ë °¡´ÉÇÑ ¸Þ¸ð¸® (½º¿Ò °ø°£) .This Â÷ÀÌ°¡ ¼Ö¶ó¸®½º :: Vmem ´ç½ÅÀÌ ¸¹Àº ¿¹¾à ÇÒ ¼öÀÖ´Â 64 ºñÆ® ¸ðµå¿¡¼­ ƯÈ÷ Áß¿äÇÕ´Ï´Ùº¸´Ù ÈξÀ ´õ Å« °¡»ó ¾î·¹À̸¦ »ý¼º ÇÒ ¼ö ¾ø½À´Ï´Ù ¿¹ºñ ¸Þ¸ð¸® (½º¿Ò °ø°£À») ÇÒ °¡»ó ÁÖ¼Ò °ø°£ÀÇ Å׶ó ¹ÙÀÌÆ®. ÃæºÐÇÑ µð½ºÅ© ½º¿Ò °ø°£ ¸¸µé±â (½ÇÁ¦ ¸Þ¸ð¸®¸¦ ¾ð±ÞÇÏÁö ¾Ê±â À§ÇÏ¿©)´Â ¿À´Ã³¯ÀÇ Àú·ÅÇÑ µð½ºÅ©°¡ ½Ç¿ëÀûÀÌÁöÀÌ Á¤µµÀÇ ÁÖ¼Ò °ø°£À» Áö¿øÇÕ´Ï´Ù. Á¦¾È µÈ °¡»ó ¸Þ¸ð¸® ¾î·¹ÀÌÀÇ API´Â ±âÁ¸ÀÇ malloc¾ø´Â À¯»ç óÀ½ µÎ ¼¼ °³ÀÇ ·çƾÀ¸·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù. ´ÙÀ½Àº ÇÁ·ÎÅä ŸÀÔ°ú ÀÌ·¯ÇÑ ±â´É¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀÔ´Ï´Ù $ Å©±â = ALLOC ($ VAR, $ req_size).; ALLOC ()´Â ¹ÙÀÌÆ® ´ÜÀ§·Î ÁÖ¾îÁø Å©±âÀÇ °¡»ó ÁÖ¼Ò °ø°£ÀÇ Ã»Å©¸¦ ÇÒ´ç. ¼º°ø½Ã, ALLOC ()´Â ¸Þ¸ð¸® ûũ¿Í "°ü°è"ÇÒ´ç µÈ °ø°£¿¡ $ var¿¡ ÀμöÀÇ ½ÇÁ¦ Å©±â¸¦ ¹ÝȯÇÕ´Ï´Ù. ´ç½ÅÀÌ µ¥ÀÌÅÍ ¹è¿­À» ä¿ì±â °°ÀÌ VM ½Ã½ºÅÛÀº ÆäÀÌÁö¿¡ ÀÇÇØÀÌ ¹è¿­, ÆäÀÌÁö ¸Þ¸ð¸®¸¦ ÇÒ´çÇÕ´Ï´Ù. Àº $ req_size °ªÀº ´ÙÀ½ Çϵå¿þ¾î ÆäÀÌÁö boundary.release ($ VAR)·Î ¹Ý¿Ã¸²µÇ¾î ¸±¸®½º¸¦ () $ VAR Àμö ¹× ¹ÝȯÇÏ´Â ¸ðµç ¸Þ¸ð¸®¿Í ½Ã½ºÅÛ¿¡ ´Ù½Ã ±×°ÍÀ» À§ÇØ ¿¹¾à µÈ °¡»ó ÁÖ¼Ò °ø°£°ú °ü·ÃµÈ °¡»ó ¸Þ¸ð¸® °ø°£À» Æı«ÇÑ´Ù. $ newSize¿Í = ($ VAR, $ req_size) Æ®¸², Æ®¸² () (¹ÙÀÌÆ®)º¸´Ù ÀÛÀº Å©±â·Î °¡»ó ÁÖ¾îÁø °¡»ó ¸Þ¸ð¸® ûũÀÇ Å©±â¸¦ °¨¼Ò½ÃŲ´Ù. ÀÌ ·çƾÀº ¼±Åà »çÇ×ÀÔ´Ï´Ù. ±×°ÍÀº ´ç½ÅÀÌ µ¥ÀÌÅÍ·Î ¹è¿­À» ä¿î °æ¿ì¿¡ À¯¿ëÇÏ°í ÀÌ¹Ì ÇÒ´ç ä¿öÁø °Íº¸´Ù ´ç½ÅÀÌ ´õ ÀÌ»ó ¸Þ¸ð¸®¸¦ ÇÊ¿ä·ÎÇÏÁö ¾Ê½À´Ï´Ù °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. Àº $ req_size °ªÀº ´ÙÀ½ ÆäÀÌÁö °æ°è±îÁö ¹Ý¿Ã¸²µË´Ï´Ù. funcationÀÌ ±â´ÉÀ» »ç¿ëÇÏ¸é ½Ã½ºÅÛ¿¡ µÚÂÊ¿¡ ¾à°£ÀÇ °¡»ó ÁÖ¼Ò °ø°£À» ¹Ýȯ ÇÒ ¼ö ÀÖ½À´Ï´Ù () °¡»ó ¸Þ¸ð¸® chunk.The Æ®¸²ÀÇ »õ·Î¿î (½ÇÁ¦) Å©±â¸¦ ¹ÝȯÇÕ´Ï´Ù. ´ç½ÅÀÌ "¼ÕÁú"¸Þ¸ð¸® ûũÀÇ ³¡À»Áö³ª ÁÖ¼ÒÀÇ ¹üÀ§¿¡ µ¥ÀÌÅ͸¦ ³ÖÀ» °æ¿ì, µ¥ÀÌÅ͸¦ ´õ ÀÌ»ó »ç¿ëÇÒ ¼öÀÖÀ» °Í °°Àº °ÍÀ¸·Î, ÇØ´ç ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÏÁö ¾Ê½À´Ï´Ù. (´ÙÀ½ ÆäÀÌÁö °æ°è·Î ¹Ý¿Ã¸²) $ req_size ´ç½ÅÀÌ Æ®¸² ()¿Í °¡»ó ¸Þ¸ð¸® ûũ¸¦ ¼ÕÁú ÇÑ ¿ø·¡ÀÇ °¡»ó size.Onceº¸´Ù ÀÛÀº °æ¿ì,ÀÌ ·çƾÀº ¿µÇâÀ» È£Ãâ, ´ç½ÅÀº ´õ ÀÌ»óÇÏ¿© ¼ºÀåÇÒ ¼ö ¾ø½À´Ï´Ù ¸»´Ü¿¡ µ¥ÀÌÅ͸¦ Ãß°¡. Àº $ newSize¿Í °æ°è¸¦ ³Ñ¾î ¸ðµç ÂüÁ¶´Â ¿À·ù°¡ ¹ß»ýÇÕ´Ï´Ù. ±×°ÍÀº ´ç½ÅÀÌ ÇÕ¸®ÀûÀ¸·Î ´ç½ÅÀÌ Áö±ÝÀÌ ¹è¿­ again.SYNOPSIS »ç¿ë ¼Ö¶ó¸®½º :: VmemÀ» È®Àå ÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù °æ¿ì¿¡¸¸ ¸Þ¸ð¸® ûũ¸¦ ¼ÕÁúÇÏ´Â ÁÁÀº ¾ÆÀ̵ð¾îÀÌ´Ù; $ Å©±â = ALLOC ($ ³ØŸÀÌ, 16384); $ Å©±â = Æ®¸² ($ ³ØŸÀÌ, 8192); ($ ŸÀÌ) ÇØÁ¦; ¿ä±¸ »çÇ× : ¡¤ Perl.


Solaris :: vmem. °ü·Ã ¼ÒÇÁÆ®¿þ¾î