[ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): wooyou (LEKI_stick) ³¯ Â¥ (Date): 2001³â 11¿ù 7ÀÏ ¼ö¿äÀÏ ¿ÀÈÄ 09½Ã 34ºÐ 51ÃÊ Á¦ ¸ñ(Title): [q] ÀÚÁÖ ¹ß»ýÇÏ´Â malloc¿¡ ÀÇÇÑ perfÀúÇÏ ÇöÀç pcap library¸¦ ÀÌ¿ëÇؼ­ network packetÀ» Àâ¾Æ¼­ ºÐ¼®ÇÏ´Â ÇÁ·Î±×·¥À» Çϳª ÀÛ¼ºÇÏ°í ÀÖ½À´Ï´Ù. ¸Å¹ø captureÇÑ packetÀ» mallocÇؼ­ ÀâÀº ¸Þ¸ð¸®¿¡ ³Ö¾îµÎ°í, fragmentationµÈ °ÍµéÀ» ÇÕÃļ­ ºÐ¼®ÇÏ´Â ¸ðµâ·Î ÀüÇØÁÝ´Ï´Ù. µû¶ó¼­ packetÇϳª¸¦ ÀâÀ» ¶§¸¶´Ù mallocÀÌ ¹ß»ýÇϴµ¥, ÀÌ ÇÁ·Î±×·¥ÀÇ cpu »ç¿ë·®ÀÌ ¸¹½À´Ï´Ù. ÀÌ·± »óȲ¿¡ ´ÙÀ½°ú °°Àº Áú¹®ÀÌ ÀÖ½À´Ï´Ù. 1. ÀÌ¿Í°°Àº ºó¹øÇÑ mallocÀÇ ¼öÇàÀº cpu¸¦ ¸¹ÀÌ »ç¿ëÇϳª¿ä? 2. Àü¿¡ CnUnixº¸µå¿¡ malloc ´ë½Å »ç¿ëÇÏ´Â ´Ù¸¥ library list°¡ ¿Ã¶ó¿Â ȨÆäÀÌÁö°¡ ÀÖ¾ú´ø°Í °°Àºµ¥(¾Æ¸¶ swhan´ÔÀÌ ¿Ã¸®¼Ì´ø °Í °°Àºµ¥..) ÀÌÁß¿¡ ºü¸£´Ù°í ÇÏ´Â LibÀ» »ç¿ëÇϸé cpu»ç¿ë·®ÀÌ ¸¹ÀÌ ÁÙ¾îµé±î¿ä? 3. ±×¸®°í, ÀÌ·± °æ¿ì¿¡ mallocÀ» »ç¿ëÇÏÁö ¾Ê°í staticÇÏ°Ô Ã³¸®ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖÀ»±î¿ä? ¼Ò½ºµµ ¾øÀÌ ¹«Åδë·Î À̾߱â Çؼ­ Á» ¶á±¸¸§ °°Àº »ý°¢Àº µéÁö¸¸, ÀÌ°÷ÀÇ °í¼ö´ÔµéÀÇ Á¶¾ðÀ» ºÎŹÇÕ´Ï´Ù. [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): swhan (kkRunner) ³¯ Â¥ (Date): 2001³â 11¿ù 7ÀÏ ¼ö¿äÀÏ ¿ÀÈÄ 10½Ã 22ºÐ 55ÃÊ Á¦ ¸ñ(Title): Re: [q] ÀÚÁÖ ¹ß»ýÇÏ´Â malloc¿¡ ÀÇÇÑ perf 1. Åë°ú :) 2. ÀÚÇ϶û´ÔÀÌ ¿Ã¸®½Å ±Û¿¡ QF mallocÀΰ¡ ÀÖ½À´Ï´Ù. quick-fitÀÌ´ø°¡/ ½ºÆçÀÌ Á¤È®ÇÏÁö ¾Ê±º¿ä :) 3. Àú°°À½ malloc¾È¾²°í fixed length buffer array¸¦ ÀÌ¿ëÇÏ°Ú½À´Ï´Ù. ¶Ç, slot number¸¦ Âß ¸ð¾Æ³ù´Ú free list¿Í occupied list¸¦ °ü¸®Çϸé empty slot ¼­Ä¡ÇÏ´Â ½Ã°£µµ ¾È°É¸®°í ²Ï ºü¸¨´Ï´Ù. memory ÃæºÐÇÑ »óÅ¿¡¼­ application¸¸ÀÌ ¾µ ¼ö ÀÖ´Â ¹æ¹ýÀÌÁö¿ä :) [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): terzeron (the cowboy) ³¯ Â¥ (Date): 2001³â 11¿ù 8ÀÏ ¸ñ¿äÀÏ ¿ÀÀü 11½Ã 41ºÐ 33ÃÊ Á¦ ¸ñ(Title): Re: [q] ÀÚÁÖ ¹ß»ýÇÏ´Â malloc¿¡ ÀÇÇÑ perf '¸¹ÀÌ'¶ó´Â Ç¥ÇöÀº upper bound¿Í lower bound°¡ ¾ø±â ¶§¹®¿¡ »ó´ëÀûÀÎ ÀǹÌÀÏ ¼ö¹Û¿¡ ¾ø½À´Ï´Ù. ´Ù½Ã ¸»¾¸µå¸®¸é, static allocation¿¡ ºñÇϸé mallocÀº dynamic allocationÀÌ¶ó¼­ CPU¸¦ ´õ ¸¹ÀÌ »ç¿ëÇÕ´Ï´Ù. ÇÏÁö¸¸ ¿ì¸®°¡ »ý°¢ÇÏ´Â °Íº¸´Ù´Â mallocÀ̶ó´Â system callÀÌ CPU¸¦ ¸¹ÀÌ ¾²´Â ÆíÀº ¾Æ´Õ´Ï´Ù. mallocÀº °¢°¢ÀÇ ÇÁ·Î¼¼½º¿¡°Ô Çã¿ëµÈ ¸Þ¸ð¸® ¿µ¿ªÀ» ÆäÀÌÁö ´ÜÀ§·Î ÇÒ´ç¹Þ°í ±×°É ´Ù½Ã ÀÛÀº Á¶°¢À¸·Î ÂÉ°³¾î ¾²´Â Á¤µµÀÇ ¿ªÇÒÀ» Çϱ⠶§¹®ÀÌÁÒ. ¹°·Ð OS¸¶´Ù stdlibÀÇ malloc()À» ±¸ÇöÇÏ´Â ¹æ¹ýÀº ¾à°£¾¿ ´Ù¸£°ÚÁö¸¸ mallocÀÇ ±âº» ¸ÞÄ¿´ÏÁòÀº ¸ÕÀú Å« ºí·°(ÆäÀÌÁöµç ûũµç)À» ÇÒ´ç¹Þ°í ±×°É Àß°Ô ÂÉ°³¾î ¾²´Â °Ì´Ï´Ù. ¹°·Ð fragmentation°ú fittingÀÇ ¹®Á¦°¡ À־ best-fitÀ̳ª quick-fitÀÌ´Ï ÇÏ´Â À̾߱âµéÀÌ ³ª¿À´Âµ¥, ¼Óµµ¸¦ ¿°µÎ¿¡ µÎ½Å´Ù¸é À§¿¡¼­ swhan´Ô²²¼­ ¸»¾¸ÇϽŠ´ë·Î Zaharang´ÔÀÇ quick fittingÀ» ã¾Æ¼­ Àо½Ã¸é µÉ °Ì´Ï´Ù. Á÷Á¢ ±¸ÇöÇϼŵµ µÇ°í, ³Î·ÁÀÖ´Â malloc implementationÀ» Âü°íÇϼŵµ µË´Ï´Ù. À¢¸¸ÇÑ OS, PL, VM, DBMS, library¿¡´Â ´Ù malloc ±¸ÇöÀÌ ÀÖ½À´Ï´Ù. ±âº» ¾ÆÀ̵ð¾î¸¸ ÀÌÇØÇÏ½Ã¸é ±¸Çö ÀÚü°¡ Å©°Ô ¾î·Á¿î °ÍÀº ¾Æ´Ï¶ó°í º¾´Ï´Ù. [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): dalgong (´Þ°ø¾ÆÀú¾¾) ³¯ Â¥ (Date): 2001³â 11¿ù 8ÀÏ ¸ñ¿äÀÏ ¿ÀÈÄ 04½Ã 47ºÐ 10ÃÊ Á¦ ¸ñ(Title): Re: [q] ÀÚÁÖ ¹ß»ýÇÏ´Â malloc¿¡ ÀÇÇÑ perf mallocÀº system callÀÌ ¾Æ´Õ´Ï´Ù. malloc/free´Â brk, sbrk¿¡ ´ëÇÑ libraryÀÔ´Ï´Ù. Áú¹® ÇϽŠºÐ²²¼­ »ç¿ëÇÏ°í ÀÖ´Â ÀÚ·áÀÇ Æ¯¼ºÀ» Àß ÀÌÇØÇϽðí, °Å±â¿¡ Àû´çÇÑ memory°ü¸® Á¤Ã¥À» ¼¼¿ì½Ã´Â°Ô Áß¿äÇÏ°ÚÁö¿ä. ¾ÕÀÇ swhan´Ôó·³ ¾Æ¹«·¡µµ ÀÌÂÊ À̶ó¸é maximum size(bound°¡ ÀÖ°ÚÁÒ?)¸¸Å­ÀÇ bufferÀâ¾Æ µÎ°í, Àç»ç¿ëÇϽô°Ô... [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): sang (¸ÛÅִ븸) ³¯ Â¥ (Date): 2001³â 11¿ù 8ÀÏ ¸ñ¿äÀÏ ¿ÀÈÄ 04½Ã 54ºÐ 07ÃÊ Á¦ ¸ñ(Title): Re: [q] ÀÚÁÖ ¹ß»ýÇÏ´Â malloc¿¡ ÀÇÇÑ perf °á±¹... ÇÊ¿äÇÑ ¸Þ¸ð¸®ÀÇ upper bound¸¦ ¸ð¸£´Ï, ½Ã½ºÅÛÀÌ Çã¶ôÇÏ´Â Çѵµ³»¿¡¼­ Àû´çÈ÷ Å« ¸Þ¸ð¸®¸¦ staticÇÏ°Ô Àâ¾Æ³õ°í À§¿¡ ¾î¶² ºÐÀÌ ¸»¾¸ÇϽŠ°Íó·³ °ü¸®Çϸ鼭 µ¿ÀÛÇÏ´Ù°¡, ¸¸¾à staticÇÏ°Ô Àâ¾Æ³õÀº ¾çÀ» ³Ñ¾î°¥ ¶§´Â dynamicÇÏ°Ô ¸Þ¸ð¸®¸¦ allocate¹ÞÀ»¼ö ÀÖµµ·Ï malloc()À» ÄÝÇϵµ·Ï Çϸé Àû´çÈ÷ ŸÇùµÈ ¹æ¹ýÀ¸·Î µ¿ÀÛÇÏÁö ¾ÊÀ»±î¿ä. [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): cdpark (¹ÚÁ¾´ë) ³¯ Â¥ (Date): 2001³â 11¿ù 8ÀÏ ¸ñ¿äÀÏ ¿ÀÈÄ 05½Ã 52ºÐ 44ÃÊ Á¦ ¸ñ(Title): Re: [q] ÀÚÁÖ ¹ß»ýÇÏ´Â malloc¿¡ ÀÇÇÑ perf ¸î¸î ¾µ¸¸ÇÑ Àü·«µé.. 1. No free() call.. ÇÁ·Î±×·¥ Áß°£¿¡ °è¼Ó malloc()À¸·Î ¸Þ¸ð¸®¸¦ ´ÃÀÌ´Ù°¡ ¸·ÆÇ¿¡ free()·Î ´Ù ¾´ ¹öÆÛ¸¦ µ¹·ÁÁÖ´Â °æ¿ì¶ó¸é... ¾Æ¿¹ free()¸¦ ÇÏÁö ¾Ê´Â °Íµµ ÇÑ ¹æ¹ý! 2. free list À¯Áö ÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇÏ´Â ÀÚ·á Å©±â°¡ ÀÏÁ¤ÇÑ °æ¿ì(ȤÀº ±× Å©±â Â÷ÀÌ°¡ °ÅÀÇ ¾ø´Â °æ¿ì)¿£ free() ½Ã¿¡ ¹«Á¶°Ç free()¸¦ ºÎ¸£Áö ¾Ê°í free_list¶ó´Â linked list¿¡ Àӽà º¸°ü. ´ÙÀ½¹ø malloc È£Ã⠽ÿ¡ free_list¿¡ ÀÖ´Â °É ¿ì¼±ÀûÀ¸·Î µ¹·ÁÁÜ. 3. cyclic queue ÀÌ¿ë static array(ȤÀº mallocÀ¸·Î ÀâÀº Å­Áö¸·ÇÑ ¹è¿­ Çϳª)¸¦ ÀÌ¿ë, cyclic queue¸¦ ±¸ÇöÇؼ­ ÀÌ¿ë. 2¹øÀÇ º¯Çü. 4. malloc library ±³Ã¼ ¸Þ¸ð¸® È¿À²Àº ¶³¾îÁöÁö¸¸ ´ë½Å ¹ÝÀÀ ½Ã°£ÀÌ ºü¸¥ ¾Ë°í¸®ÁòÀ¸·Î ´ëü. ¾î·°Å³ª »óȲ¿¡ µû¶ó ´Ù¸¨´Ï´Ù. ¸Þ¸ð¸® criticalÀ̳Ä, ¸Þ¸ð¸® »ç¿ëÀÌ °è¼Ó ´Ã¾ú´Ù ÁÙ¾ú´Ù ÇÏ´À³Ä, ÇÑ ¹ø¸¸ µ¹¸®´À³Ä, serveró·³ °è¼Ó Á×Áö ¾Ê°í µµ´À³Ä µîÀÇ º¯¼ö¸¦ °í·ÁÇؾßÁÒ. [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): terzeron (the cowboy) ³¯ Â¥ (Date): 2001³â 11¿ù 8ÀÏ ¸ñ¿äÀÏ ¿ÀÈÄ 07½Ã 18ºÐ 22ÃÊ Á¦ ¸ñ(Title): Re: [q] ÀÚÁÖ ¹ß»ýÇÏ´Â malloc¿¡ ÀÇÇÑ perf Á¦°¡ CnUnixº¸µå¿¡ ¾µ ¶§¸¶´Ù Àڲ٠Ʋ¸° °Ô À־ ¸Á½Å¸¸ ´çÇϴ±º¿ä. ^^ ¾î·µç dalgong´Ô ´öºÐ¿¡ Á¦´ë·Î ¹è¿ì°Ô µÇ´Ï °¨»çÇÕ´Ï´Ù. [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): swhan (kkRunner) ³¯ Â¥ (Date): 2001³â 11¿ù 8ÀÏ ¸ñ¿äÀÏ ¿ÀÈÄ 07½Ã 29ºÐ 56ÃÊ Á¦ ¸ñ(Title): Re: [q] ÀÚÁÖ ¹ß»ýÇÏ´Â malloc¿¡ ÀÇÇÑ perf ±×°Ô ¸Á½ÅÀÇ ¹üÁÖ¿¡ µé¾î°¡³ª¿ä? À߸øµÈ °ÍÀ» °è¼Ó ¿ì±â´Â °Íµµ ¾Æ´Ï°í.. ¾à°£ÀÇ ¿À·ù¿Í ÁöÀû Á¤µµÀε¥.. ¹¹.. Àú°°ÀÌ ³»°øÀÌ ¾ø´Â »ç¶÷µé¸¸ ±×·¸°Ô »ý°¢Çϴ°ǰ¡¿ä? O.o ¹¹ ¾î·µç Àú´Â CnUnix¿¡ ¾µ¶§¸¶´Ù ´À³¢´Â°Ô... Âزû ¸Á°¡Áö¸é ¸¹ÀÌ ¹è¿î´Ù...´Â :) ±Ùµ¥.. ¿ìÀ¯´Ô... re-assembleÇÑ packetÀÇ ÃÖ´ë Å©±â´Â ¾î´ÀÁ¤µµÀΰ¡¿ä? ¼³¸¶ MB´Â ¾Æ´Ï°ÚÁÒ?