ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
1절. ¼Ò°³¿ì¸®´Â ÀÌ¹Ì PIPE ¸¦ ÅëÇÑ IPC ÀÇ ±¸Çö¿¡ ´ëÇØ¼ ¸î¹ø¿¡ °ÉÃÄ ´Ù·ç¾ú¾ú´Ù. ±×·±µ¥ ÇÊÀÚ°¡ ½Ç¼ö·Î º¸¸ðÀڽİ£ÀÇ Åë½ÅÀ» À§ÇÑ pipe ÀÇ »ç¿ë¿¡ ´ëÇÑ ³»¿ëÀº »©¸Ô¾ú¾ú´Ù. À̹ø¿¡´Â ÀÌ pipe ÀÇ »ç¿ë¹ý¿¡ ´ëÇÑ ÀÀ¿ëÀ» ¿¹¸¦µé¾î ¼³¸íÇÒ »ý°¢ÀÌ´Ù. 2절. ¸¸µé°íÀÚ Çϴ°Ϳ츮´Â ¸î°³ÀÇ ½ÇÇàÇÁ·Î±×·¥À¸·Î ÀÌ·ç¾îÁø ½Ã½ºÅÛÀ» ¼³Ä¡ÇÏ ÀÏÁ¾ÀÇ ÀÚµ¿½ÇÇà ÇÁ·Î±×·¥À» ¸¸µé°ÍÀÌ´Ù. ÀÌ ½Ã½ºÅÛÀº 3°³ÀÇ ÇÁ·Î±×·¥À¸·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥µéÀº ÀÏÁ¤ÇÑ ¼ø¼´ë·Î ½ÇÇàÀÌ µÇ¾î¾ß Çϸç, ÇϳªÀÇ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ±âÀü¿¡ ¹Ù·Î¾ÕÀÇ ÇÁ·Î±×·¥ÀÌ Á¦´ë·Î ½ÇÇàµÇ¾ú´ÂÁö È®ÀÎÈÄ Á¦´ë·Î ½ÇÇàµÇ¾ú´Ù¸é ½ÇÇàµÇ¾î¾ß ÇÑ´Ù. À̰ÍÀ» ±¸ÇöÇϱâ À§Çؼ ¿ì¸®´Â main ½ÇÇàÆÄÀÏÀ» Çϳª ¸¸µçÈÄ, main ½ÇÇàÆÄÀÏ¿¡¼ fork&exec ¹æ½ÄÀ» ÀÌ¿ëÇØ¼ ¼ø¼´ë·Î ³ª¸ÓÁö 3°³ÀÇ sub ÇÁ·Î±×·¥µéÀ» ½ÇÇàÇÏ°Ô µÉ°ÍÀÌ´Ù. sub ÇÁ·Î±×·¥ÀÇ ½ÇÇà¼ø¼¿Í ½ÇÇàÇÒ ÆÄÀÏÀ̸§À» ÁöÁ¤ÇØÁÖ±â À§ÇÑ ¼³Á¤ÆÄÀÏÀ» °¡Áö°Ô µÇ¸ç, main ÇÁ·Î±×·¥Àº ¼³Á¤ÆÄÀÏÀ» Àоîµé¿©¼ sub ÇÁ·Î±×·¥µéÀ» ½ÇÇà½ÃŰ°Ô µÉ°ÍÀÌ´Ù. ±×·±µ¥ À̵é ÇÁ·Î±×·¥Àº ¾ÕÀÇ ÇÁ·Î±×·¥ÀÌ Á¦´ë·Î ½ÇÇàµÇ¾ú´ÂÁö È®ÀÎÈÄ Â÷·Ê´ë·Î ½ÇÇà½ÃÄÑÁÖ¾î¾ß ÇÒ°ÍÀÌ´Ù. ±×·¯±â À§Çؼ main ÇÁ·Î±×·¥Àº ÇϳªÀÇ sub ÇÁ·Î±×·¥À» ½ÇÇà½ÃŲÈÄ ½ÇÇà½ÃŲ sub ÇÁ·Î±×·¥°ú pipe ¸¦ ÀÌ¿ëÇØ¼ Åë½ÅÀ» ÇÏ°Ô µÉ°ÍÀÌ´Ù. sub ÇÁ·Î±×·¥Àº ÀÚ½ÅÀÇ pid ¸¦ main ÇÁ·Î±×·¥¿¡ ³Ñ°ÜÁÖ°Ô µÇ°í, main Àº ÀÌ pid ¸¦ ³Ñ°Ü ¹ÞÀ¸¸é sub ÇÁ·Î±×·¥ÀÌ Á¦´ë·Î ½ÇÇàµÇ¾ú´Ù°í ÆÇ´ÜÇÏ°í ´ÙÀ½ sub ÇÁ·Î±×·¥À» ½ÇÇàÇÏ°Ô µÈ´Ù. 2.1절. pipe(2) ÇÔ¼ö¿¡ ´ëÇØ¼pipe ÇÔ¼ö¸¦ È£ÃâÇÏ°Ô µÇ¸é, ÀбâÀü¿ë°ú ¾²±âÀü¿ë µÎ°³ÀÇ ÆÄÀÌÇÁ¸¦ »ý¼ºÇÒ¼ö ÀÖ´Ù.
PIPE ÀÇ Àü¹ÝÀûÀΠƯ¼ºÀº ÀÌ »çÀÌÆ®ÀÇ ´Ù¸¥ ¹®¼µéÀ» Âü°íÇϱ⠹ٶõ´Ù. 2.2절. ÀÛµ¿ processÀÌ ÇÁ·Î±×·¥Àº ¾Æ¸¶ ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î ÀÛµ¿ÇÒ°ÍÀÌ´Ù.
exec ÇÔ¼ö¸¦ ½ÇÇà½Ãų°æ¿ì ¿¸°ÆÄÀÏ Áö½ÃÀÚ°¡ »ó¼ÓµÈ´Ù´Â Á¡À» ¾Ë°í ÀÖÀ»°ÍÀÌ´Ù. dup2 ¸¦ ÀÌ¿ëÇØ¼ ±âÁ¸¿¡ ¸¸µé¾îÁø ¾²±âÀü¿ë ÆÄÀÌÇÁ ¹øÈ£¸¦ Ç¥ÁØÃâ·Â(1) À¸·Î º¹»çÇÏ°í ³ª¼ execl ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ ÇÁ·Î±×·¥À» ½ÇÇà½Ã۸é, ÀÌ ÇÁ·Î±×·¥Àº Ç¥ÁØÃâ·ÂÀ» ÅëÇØ¼ ºÎ¸ðÀÇ ÆÄÀÌÇÁ ¿Í Åë½ÅÇÒ¼ö ÀÖ°Ô µÈ´Ù. 2.3절. ¿¹Á¦ Äڵ忹Á¦ ÄÚµå´Â 2°³ÀÇ ¼Ò½º·Î ÀÌ·ç¾îÁú °ÍÀÌ´Ù. Çϳª´Â main ÇÁ·Î±×·¥À¸·Î ÇÁ·Î±×·¥ÀÇ À̸§Àº pm.cc À̰í, ´Ù¸¥ Çϳª´Â pm ÇÁ·Î±×·¥¿¡¼ frok&exec ·Î ½ÇÇà½Ãų sub ÇÁ·Î±×·¥À¸·Î À̸§Àº proc.c ÀÌ´Ù. ¿¹Á¦ : proc.c
ÇÁ·Î±×·¥ÀÌ ÇÏ´ÂÀÏÀº °£´ÜÇÏ´Ù. ÀÚ½ÅÀÇ pid ¹øÈ£¸¦ write ¸¦ ÀÌ¿ëÇØ¼ Ç¥ÁØÃâ·ÂÀ¸·Î º¸³»´Â °ÍÀÌ´Ù. ÀÌ Ç¥ÁØÃâ·ÂÀº pm ¿¡¼ »ý¼º½ÃŲ pipe ¿Í ¿¬°áµÇ¾î ÀÖÀ½À¸·Î pid ¹øÈ£´Â pm ÇÁ·Î±×·¥À¸·Î Àü´ÞµÉ °ÍÀÌ´Ù. ÀÌ ÆÄÀÏÀ» ÄÄÆÄÀÏ ÇÑ´ÙÀ½¿¡ proc1, proc2, proc3 ¶ó´Â À̸§À¸·Î º¹»çÇØ¼ Àû´çÇÑ µð·ºÅ丮¿¡ ¿Å°Ü ³õµµ·Ï ÇÏÀÚ. ÇÊÀÚÀÇ °æ¿ì /usr/yundream/bin ¿¡ ¿Å°Ü ³õ¾Ò´Ù. ¿¹Á¦ : main.c
pm.cc ´Â main ÇÁ·Î±×·¥ÀÌ´Ù. ¼³Á¤ÆÄÀÏ config.cfg ·Î ºÎÅÍ ½ÇÇà½ÃÄÑ¾ßµÉ ÆÄÀÏÀ̸§À» Àоîµé¾î¿Í¼ vector ·Î ¸ñ·ÏÀ» ¸¸µç´ÙÀ½¿¡ fork&exec ·Î ¹Ì¸® ¸¸µé¾î ³õÀº proc1, proc2, proc3 ¸¦ ½ÇÇà ½ÃŰ´Ù. config.cfg ÆÄÀÏÀº ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÉ°ÍÀÌ´Ù.
À§ÀÇ ÇÁ·Î±×·¥À» ½ÇÇà½ÃŰ¸é ¾Æ·¡¿Í °°Àº °á°ú¸¦ º¸¿©ÁÙ°ÍÀÌ´Ù.
ÀÌÁ¦ pm ÀÇ ÆÄÀÏÁö½ÃÀÚ ±¸Á¶¸¦ ¾Ë¾Æº¸°Ú´Ù. pm ÀÇ pid ¹øÈ£¸¦ ¾Ë¾Æ³»°í /proc/pmpid/fd ·Î À̵¿Çؼ ls °ªÀ» ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.
|
|
||||||||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|