[Áöµð³ÝÄÚ¸®¾Æ]¸®´ª½º´Â ÀÌÁ¦ ¹ßÇ¥ 13³âÂ÷¿¡ µé¾î°£´Ù. 1991³â ¸»¿¡ ¸¸µé¾îÁø ¸®´ª½º´Â Ãʱ⿡´Â ´Ù¸¥ ¿î¿µÃ¼Á¦¿¡ ºñÇØ ÈξÀ ¹Ì¾àÇÑ Á¸Àç¿´´Ù. ¼º´ÉÀÌ ¿ì¼öÇÏÁöµµ ¾ÊÀ¸¸ç º¸È£ ¸ðµå¿¡¼ °£½ÅÈ÷ µ¹¾Æ°¡´Â À¯´Ð½º Ŭ·Ð¿¡ °¡±î¿ü´Ù. ÇÏÁö¸¸ °³¹ßÀÚµéÀº ¸®´ª½º¿¡ ¿±¤Çß´Ù. ±×µé¿¡°Ô´Â Àڽŵ鸸ÀÇ À¯´Ð½º¸¦ PC¿¡¼ µ¹¸± ¼ö ÀÖ´Ù´Â »ç½Ç¸¸À¸·Îµµ ´ë´ÜÇÑ ÀÏÀ̾ú´Ù. À̶§ºÎÅÍ ¸®´ª½º °³¹ßÀÚ Ä¿¹Â´ÏƼ°¡ Çü¼ºµÇ±â ½ÃÀÛÇß´Ù. ÀÌ Ä¿¹Â´ÏƼ¿¡ ÀÇÇÑ °³¹ß ¹æ½ÄÀº ±× Àü±îÁö´Â À¯·Ê°¡ ¾ø´ø ÀÏ·Î, ±× ÀÇ¹Ì¿Í °¡Ä¡¿¡ ´ëÇØ¼± ¿¡¸¯ ·¹À̸յåÀÇ ¡¸¼º´ç°ú ½ÃÀ塹À̶ó´Â ±Û¿¡ Àß ¿ä¾àµÇ¾î ÀÖ´Ù.
¸®´ª½º´Â Ãʱ⿡ M. Bach°¡ ¾´ Ã¥ ¡ºThe Design of the Unix Operating System¡»ÀÇ ±¸ÇöÀ» Ãæ½ÇÇÏ°Ô µû¸£´Ù°¡ ¼ö¸¹Àº ½ÃÇàÂø¿À¿Í °³¼±À» °ÅÄ£ ÈÄ ÀÏÁ¾ÀÇ ¸ÞÀνºÆ®¸² ¿î¿µÃ¼Á¦·Î µé¾î¼¹´Ù. ÃʱâÀÇ ¸®´ª½º´Â ±âº»ÀûÀ¸·Î AT&TÀÇ ¡®System VÀÇ Ãʱ⠹öÀü À¯´Ð½º Ä¿³Î(System V Release 2, ÀÌÇÏ SRV2)¡¯À» Ãæ½ÇÇÏ°Ô µû¶ú´Ù. SVR2 Ä¿³ÎÀº 1980³â´ë Ãʹݿ¡ ¸¸µé¾îÁø °ÍÀ¸·Î System V Release 4 ÀÌÈÄÀÇ Ä¿³Î°ú´Â ¸¹ÀÌ ´Ù¸£´Ù. SVR4´Â ½ã ¸¶ÀÌÅ©·Î½Ã½ºÅÛÁîÀÇ ±¸ÇöÀ» ÀϺΠ¹Ý¿µÇϱ⵵ ÇßÀ¸¸ç, ¸¹Àº ºÎºÐÀÌ »õ·Î ¾º¾îÁø º¸´Ù º»°ÝÀûÀÎ Ä¿³ÎÀ̾ú´Ù. ¾Æ¸¶ SVR4¿¡¼ Ãâ¹ßÇßÀ¸¸é Áö±Ý°ú´Â ´Ù¸¥ ¸ð½ÀÀÏ °ÍÀ̶ó´Â °Ô ÇÊÀÚÀÇ ÃßÃøÀÌ´Ù.
ÀÌ·± ÇØ¹¬Àº ÄÚµåµéÀº ÃʱâÀÇ ¸®´ª½º ÄÚµåµé°ú ºñ½ÁÇÏ´Ù(°ü½ÉÀÌ ÀÖ´Â µ¶ÀÚµéÀº
http://minnie.tuhs.org/UnixTree¿¡¼ ¿ª»çÀûÀÎ ÄÚµåµéÀ» º¼ ¼ö ÀÖ´Ù). ¹°·Ð ½Ã°£ÀÌ Áö³ªÀÚ ÄÚµåµéÀº Á¡Á¡ ´õ º¹ÀâÇÏ°Ô µÇ¾úÀ¸¸ç ÀÌ·± ÄÚµåµé»Ó¸¸ ¾Æ´Ï¶ó Äڵ带 ¸¸µå´Â gcc³ª ´Ù¸¥ À¯Æ¿¸®Æ¼µéµµ ÇÔ²² º¹ÀâÇØÁ³´Ù. ¸®´ª½ºÀÇ Ãʱâ ÄÚµåµéÀº Áö±ÝÀº ¼Ò½ºÆ÷Áö·Î ¿Å°Ü°£ Linux Cross refer ence ÇÁ·ÎÁ§Æ®(
http://lxr.linux.no)¿¡¼ º¼ ¼ö ÀÖ´Ù.
 | |  |
| [±×¸² 1] ¡º¼º´ç°ú ½ÃÀå¡»ÀÇ Ç¥Áö | | [±×¸² 2]¡º¸®´ª½º Çõ¸í°ú ·¹µåÇÞ¡»ÀÇ Ç¥Áö |
ÀÎÅͳݰú ¸®´ª½ºÀÇ ¹ßÀü
ÀÏ´Ü ¸®´ª½ºÀÇ Ä¿³ÎÀÌ ¸¸µé¾îÁöÀÚ ¼ö¸¹Àº GNU ¼ÒÇÁÆ®¿þ¾îµéÀÇ ±¸ÇöÀÌ ±× ¾È¿¡¼ ÀÌ·ïÁ³´Ù(ºñ½ÁÇÑ ½Ã±â¿¡ GNUÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀÌ BSD³ª ´Ù¸¥ ¿î¿µÃ¼Á¦¿¡¼µµ ±¸ÇöµÇ¾ú´Ù). ¸®´ª½ºÀÇ °³¹ßÀÌ ÃÊâ±âÀÇ ¡®ÀÎÅͳݡ¯À» Áß½ÉÀ¸·Î ´ëÇп¡ ÀÖ´Â »ç¶÷µé°ú ÃʱâÀÇ ¸®´ª½º ÇØÄ¿µéÀ» Áß½ÉÀ¸·Î ÀÌ·ç¾îÁ³µíÀÌ ¸®´ª½ºÀÇ º¸±Þµµ ¹öÀü 1À̳ª 2.0´ë ÃÊ¹Ý ¹öÀüÀÌ ¹ßÇ¥µÇ´ø ½Ã±âÀÇ ¡®Æø¹ßÀûÀÎ ÀÎÅÍ³Ý º¸±ÞÀ¸·Î ÀÎÇÑ ¼¹öÀÇ Çʿ伺¡¯°ú ¸Â¹°·È´Ù.
ÀÌ º¸±ÞÀÌ ³Ê¹«³ª »¡¶ú°í ÃʱâÀÇ ¿ËÈ£ÀÚµéÀÌ ¿¼ºÀûÀ̾ú±â ¶§¹®¿¡ ¾÷°è°¡ °ü½ÉÀ» °¡Áö±â Àü¿¡ ÀÌ¹Ì ¼ö¸¹Àº ¸®´ª½º ¹Ú½ºµéÀÌ ¼¹ö ÇϿ콺 ³»¿¡¼ µ¹¾Æ°¡°í ÀÖ¾ú´Ù. ¸®´ª½º ¾÷°èÀÇ Ãʱâ IPO °úÁ¤¿¡ ÀÎÅÚÀ» ºñ·ÔÇÑ ´ëÇü IT ¾÷üµéÀÌ °ü¿©ÇÑ °ÍÀº ¾îÇöóÀ̾𽺠¼¹ö·Î¼ÀÇ ¸®´ª½ºÀÇ Àü·«Àû °¡´É¼ºÀ» ¹Ý¿µÇÑ °áÁ¤À̾ú´Ù. ·Î¹öÆ® ¿µÀÌ ¾´ ¡º¸®´ª½º Çõ¸í°ú ·¹µåÇÞ¡»À̶ó´Â Ã¥Àº ÀÌ·¯ÇÑ »óȲÀ» Àß Á¤¸®Çß´Ù. ¾÷°èµéÀÇ ¸®´ª½º¿¡ ´ëÇÑ °ü½ÉÀº ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¸¦ ½È¾îÇѴٱ⺸´Ù´Â ±× ¿µÇâ±Ç¿¡¼ ²ø·Á´Ù´Ï±â ½È¾îÇÏ´Â ¸ÞÀÌÄ¿µéÀÇ ¼Ó»çÁ¤¿¡µµ ±âÀÎÇß´Ù.
ÀÌ¿Í ÇÔ²² ¼ø¼öÇÏ°Ô ¸®´ª½º ÀÚü¸¦ Áñ±â´Â °³¹ßÀڵ鵵 ´Ã¾î³µ´Ù. »ç¶÷µéÀÌ ¿©·¯ °¡Áö ÀÌÀ¯·Î ¸®´ª½º¿¡ ¸¹Àº ±â´ë¸¦ ½ñ¾Æº×´Ùº¸´Ï ¸®´ª½º´Â ÇϳªÀÇ ´ë¾ÈÀ̶ó±âº¸´Ù´Â ´ë¾ÈÀÇ »ó¡¹°Ã³·³ º¸ÀÌ°Ô µÇ¾ú´Ù. ¾÷üµéÀº ¾Æ¹«¸® ¸¹Àº µ·À» µéÀÌ´õ¶óµµ ÀÌ·¸°Ô ¿Ï¼÷ÇÑ ¿î¿µÃ¼Á¦¸¦ ÅÎÇÏ´Ï ¸¸µé ¼ö ¾ø´Ù´Â »ç½ÇÀ» Àß ¾Ë°í ÀÖ¾ú±â ¶§¹®¿¡ ¿©·¯ °¡Áö ÁÁÀº ÀÌÀ¯¸¦ ´ë¸ç ¸®´ª½º¸¦ ¿ËÈ£Çϰí Áö¿øÇß´Ù. ¸ÞÀνºÆ®¸² ¿î¿µÃ¼Á¦·Î¼ÀÇ ¸®´ª½º´Â ÁÖÀå ´ç½ÃÀÇ Ãʱ⿡´Â ¼º´É»ó ³í¶õÀÇ ¿©Áö°¡ ÀÖ¾úÁö¸¸ ¸¹Àº ¹ßÀüÀÌ ÀÌ·ç¾îÁø ÇöÀç´Â ±×·¸Áöµµ ¾Ê´Ù.
¾ó¸¶ ÈÄ ¸®´ª½º¿¡ ´ëÇÑ ÀÌÇØ°¡ ³ô¾ÆÁö°í Ç÷§Æû À̽ÄÀÌ ½¬¿öÁöÀÚ ARMÀ̳ª MIPS, PPC µîÀ» Áß½ÉÀ¸·Î ÀÓº£µðµå ¸®´ª½º¿¡ ´ëÇÑ °ü½ÉÀÌ ¾Æ¿ï·¯ Ä¿Á³´Ù. À̰ÍÀº ¸®´ª½º°¡ ¹ßÇ¥µÇ°í ¸î ³âÀÌ Áö³ªÀÚ ÀÚ¿¬½º·´°Ô ¿¹ÃøµÇ¾ú´ø ÀÏ·Î ÀÓº£µðµå ¸®´ª½ºÀÇ ¼ö¿ä ¿ª½Ã ²ÙÁØÈ÷ Áõ°¡Çß´Ù. LineoÀÇ IPO ÀÌÈÄ ¸¹Àº ÀÓº£µðµå ¸®´ª½º ȸ»ç°¡ ź»ýÇß´Ù. ±¹³»¿¡¼µµ ¸¶Âù°¡Áö·Î ÀÓº£µðµå ¸®´ª½º¸¦ Ç¥¹æÇÏ´Â ¸î °³ÀÇ È¸»çµéÀÌ Åº»ýÇß´Ù.
ªÀº ±â°£ µ¿¾È ¸¹Àº º¯È¸¦ °ÅÃÄ ¸®´ª½º´Â Ä¿³Î ¹öÀü 2.6´ë¿¡ À̸£·¶´Ù. ¾ÆÁ÷Àº ¸¹Àº »ç¿ëÀÚµéÀÌ 2.4´ëÀÇ Ä¿³Î¿¡ ¸Ó¹°·¯ ÀÖÁö¸¸ °ð 2.6 Ä¿³ÎÀ» »ç¿ëÇÒ °ÍÀÌ´Ù. 2.4¿¡¼µµ ±×·¸Áö¸¸ 2.6 Ä¿³ÎÀº ¸¹Àº º¯È¸¦ µ¿¹ÝÇß´Ù. °í¼º´É ¼¹ö¿Í ÀÓº£µðµå¸¦ µ¿½Ã¿¡ Ç¥¹æÇÏ¸ç °¢ÀÚ°¡ ÀÌ·ç°í ½ÍÀº °ÍµéÀ» Åõ¿µÇÏ´Â ÀÛÀº ¸¶¼ú»óÀÚ °°Àº ¸®´ª½º°¡ ¹öÀü 2.6¿¡ À̸¥ °ÍÀÌ´Ù.
¸®´ª½º 2.6 Ä¿³Î¿¡ ´ëÇØ¼
¸®´ª½º¿¡ °üÇÑ Ã¥Àº ¾Æ´ÏÁö¸¸ À¯´Ð½ºÀÇ ÀÏÁ¾ÀÎ ¼Ö¶ó¸®½ºÀÇ Ä¿³Î ±¸Á¶¸¦ ´Ù·é ¡ºSolaris Internals¡»ÀÇ Ç¥Áö¿¡´Â À¯¸íÇÑ ½ºÆ÷Ã÷Ä« ¸ÞÀÌÄ¿ÀÎ ·ÎÅͽºÀÇ ¿£Áø ±¸Á¶µµ°¡ ³ª¿Â´Ù(
www.solarisinternals.com). ÀúÀÚµéÀÌ Ä¿³Î Ã¥ÀÇ Á¦¸ñ¿¡ ¿£ÁøÀ» Ç¥Á¦·Î ¾´ °ÍÀº ¾î¼¸é Àǹ̽ÉÀåÇÏ´Ù. ÀúÀÚµéÀº Ä¿³Î ¾ÆÅ°ÅØÆ®¶ó±âº¸´Ù´Â Ä¿³ÎÀÇ Æ©´× ÂÊ¿¡ °¡±î¿î »ç¶÷µéÀÌ´Ù. Ä¿³Î°ú ¿£ÁøÀº À¯»ç¼ºÀÌ ÀÖ¾î º¸ÀδÙ.
ÀÚµ¿Â÷ÀÇ ¿£ÁøÀ̶ó´Â °ÍÀº ±× ÀÚü°¡ ÃÖ°íÀÇ ¿£Áö´Ï¾î¸µÀÌ¸é¼ ¿£ÁøÀÇ ¹ßÀü°ú º¯È¿¡ ´ëÇÑ °èº¸°¡ ÀÖ°í ÇϳªÀÇ ¿£Áø ºí·°°ú Çìµå°¡ ¸¸µé¾îÁö¸é ½Ê¿© ³â°£ ±×´ë·Î »ç¿ëµÉ ¼ö¹Û¿¡ ¾ø´Ù. ÀÏ´Ü ¿Ï¼ºµÈ ¿£ÁøÀº Ưº°ÇÑ °³¼± ¾øÀÌ ÇϳªÀÇ Á¸Àç ±× ÀÚü·Î¼ Â÷Á¾ÀÇ ¼ö¸íÀÌ ´ÙÇÒ ¶§±îÁö ºÎºÐÀûÀÎ ÃÖÀûȸ¦ °è¼ÓÇÏ¸é¼ ±â¼úÀûÀ¸·Î ¹ßÀüÇÑ´Ù. ¸¹Àº Ãֽбâ¼úµéÀ» ¿ÜºÎ¿¡¼ µé¿©¿À±â´Â ÇÏÁö¸¸ ÀÚ½ÅÀÇ °ÍÀ¸·Î ¸¸µé·Á¸é Çdzª´Â ³ë·ÂÀÌ ÇÊ¿äÇÏ´Ù. ÇÏÁö¸¸ ÀÚµ¿Â÷¶ó´Â °ÍÀº ¿£Áø¸¸À¸·Î ¸¸µé¾îÁö´Â °ÍÀÌ ¾Æ´Ï¸ç ¼ö¸¹Àº ºÎǰµéÀÇ ÇÕÀÌ´Ù. Á¶Ç⼺À̶óµç°¡ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º, ±×¸®°í ¿£ÁøÀÇ ¼º´É°ú ±âŸ ¸ðµç ¿£Áö´Ï¾î¸µÀÇ ÇÕÀÌ´Ù.
À¯´Ð½º ¿î¿µÃ¼Á¦µµ Ä¿³ÎÀÌ ¸Å¿ì Áß¿äÇÑ ¿£ÁøÀÌÁö¸¸ ´Ù¸¥ °ÍµéÀÇ µµ¿òÀÌ ¾øÀ¸¸é °áÄÚ ¿Ï¼ºÇ°ÀÌ µÇÁö ¾Ê´Â´Ù. ¶ÇÇÑ ¿£Áøµéµµ Á¡Â÷ º¹ÀâÇØÁ®¼ °ú°ÅÀÇ ´Ü¼øÇÏ°í ¿ì¾ÆÇß´ø ¿£Áø ±¸Á¶ÀÇ ¾Æ¸§´Ù¿òÀº ¾îµð¿¡µµ ¾ø´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í ¸ðµç ¿£ÁøÀº °°Àº ¸ñÀûÀ» °¡Áö°í ÀÖÀ¸¸ç ±¸Á¶µµ ºñ½ÁÇÏ´Ù. ÇÏÁö¸¸ ¿©±â¼ ÇÑ °¡Áö È®½ÇÇÑ »ç½ÇÀÌ ÀÖ´Ù¸é ¿£ÁøÀ» »õ·Î ¸¸µé°Å³ª Æ©´×(°³¼±)ÇÏ·Á´Â »ç¶÷ÀÌ ÀÖ´Ù¸é ¿£ÁøÀÇ ±âº»¿¡ ´ëÇÑ Èçµé¸®Áö ¾Ê´Â Áö½ÄÀÌ ÀÖ¾î¾ß Çϰí, ½ÇÁ¦·Î ¼öµµ ¾øÀÌ ¶â¾îº¸°í ´Ù¸¥ ¿£Áøµé°úµµ ºñ±³ÇØ º¸¾Æ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. Ä¿³ÎÀ» ¿£Áø¿¡ ºñÀ¯Çϱâ´Â ÇßÁö¸¸ ¿Ïº®ÇÑ ºñÀ¯´Â ¾Æ´Ï´Ù.
ÇÊÀÚ´Â ¾î¼¸é ÀÏÁ¾ÀÇ ½ÅÇü ¿£Áø¿¡ ºñ±³ÇÒ ¼ö ÀÖ´Â ¸®´ª½º Ä¿³Î 2.6¿¡ ´ëÇØ ¼³¸íÇÏ·Á°í ÇÑ´Ù. ¸®´ª½º Ä¿³Î 2.6¿¡ À̸£·¯ ¸¹Àº º¯È°¡ ÀÖ¾úÁö¸¸ ±× Áß ¸î °¡ÁöÀÇ Áß¿äÇÑ º¯È¿¡ ´ëÇØ¼ °£´ÜÈ÷ Àû¾îº¸·Á ÇÑ´Ù. Å©°íÀÛÀº º¯ÈµéÀÌ ÀÖ°ÚÁö¸¸ Å©°Ô´Â ¾²·¹µå¿Í ½ºÄÉÁì·¯¿¡¼ °¡Àå ¸¹ÀÌ ¹Ù²î¾ú´Ù. ¹®Á¦´Â µÎ ÁÖÁ¦¸¸ ÇÏ´õ¶óµµ ´Ü¼øÇÑ ³»¿ëÀÌ ¾Æ´Ï¾î¼ ÀÌ·¯Àú·¯ÇÑ ³»¿ëÀ̶ó°í ¹¶¶×±×¸®°í, °ü·Ã ¼Àû°ú URL·Î °ü½ÉÀ» µ¹¸®´Â Á¤µµ·Î ³¡³ª°í ¸» °Í °°´Ù´Â Á¡ÀÌ´Ù. ½±°Ô ¾²·Á°í ¾Ö¸¦ ¾²±ä ÇϰÚÁö¸¸ ÇÊÀÚ´Â µ¶ÀÚµéÀÌ ¸®´ª½º Ä¿³Î ±¸Á¶¿¡ ´ëÇØ ¾à°£ÀÇ °ü½ÉÀÌ ÀÖ´Ù°í °¡Á¤ÇÒ ¼ö¹Û¿¡ ¾øÀ½À» ¾çÇØÇØ Áֱ⠹ٶõ´Ù.
¾²·¹µå ±¸Á¶
¾²·¹µåÀÇ ¼º´É°ú È¿À²ÀÌ ÇÁ·Î±×·¥ÀÇ Àü¹ÝÀû ¼º´É¿¡ Å« ¿µÇâÀ» ³¢Ä£´Ù´Â °ÍÀº ´ç¿¬ÇÑ ÀÏÀÌ´Ù. ½Ã½ºÅÛ ÀÚ¿ø°ú °ü·ÃµÈ ¾²·¹µå »ç¿ë¿¡ ´ëÇÑ ºÎºÐÀº ´õ¿í ±×·¯ÇÏ´Ù. ÇÊÀÚ´Â ¿î¿µÃ¼Á¦¿¡¼ °¡Àå ¾î·Á¿î ºÎºÐÀÇ Çϳª°¡ ¾²·¹µå¶ó°í »ý°¢ÇÑ´Ù(¸®´ª½º´Â ¾²·¹µåÀÇ º¹À⼺¿¡¼´Â ¿¹¿Ü¿¡ ¼ÓÇÑ´Ù). ¾²·¹µå´Â ¿î¿µÃ¼Á¦¿¡¼ ½ÇÇàÀÇ ´ÜÀ§·Î Áß¿äÇÑ ¿ä¼ÒÀÌ°í ½ºÄÉÁì·¯¿Í ±ä¹ÐÇÑ °ü·ÃÀÌ ÀÖ´Ù. SMP¿ÍÀÇ ¿¬°ü¼º ¿ª½Ã ¸Å¿ì °ÇÏ¸ç ¾²·¹µå¸¸À¸·Îµµ ¿î¿µÃ¼Á¦ ±³°ú¼¸¦ Çϳª ¾µ ¼ö ÀÖÀ» Á¤µµÀÌ´Ù.
ÇÁ·Î±×·¡¹Ö¿¡¼ °íÀüÀûÀÎ ÇÁ·Î¼¼½º ¸ðµ¨ ´ë½Å ¾²·¹µå¸¦ »ç¿ëÇÏ´Â °¡Àå Áß¿äÇÑ ÀÌÀ¯´Â ¿î¿µÃ¼Á¦ÀÇ °üÁ¡¿¡¼ º¸¾ÒÀ» ¶§ ÀÚ¿ø Á¡À¯ ¸é¿¡¼ °æÁ¦ÀûÀ̱⠶§¹®ÀÌ´Ù. ¾²·¹µå´Â 1980³â´ë Á߹ݺÎÅÍ Áß¿äÇÑ °ü½É»ç·Î ºÎ°¢µÇ¾ú´Âµ¥ ÀÌ ´ç½ÃºÎÅÍ ¼Ö¶ó¸®½º³ª ¸¶Å©(Mach)°°Àº ¿î¿µÃ¼Á¦´Â ¾²·¹µåÀÇ °³³äÀ» º»°ÝÀûÀ¸·Î µµÀÔÇϱ⠽ÃÀÛÇß´Ù.
°ú°Å ¸¶Å©¿¡¼ »ç¿ëÇß´ø Ç¥±â ¹æ¹ýÀ» ÀÌ¿ëÇÑ´Ù¸é ÀϹÝÀûÀÎ À¯´Ð½ºÀÇ ÇÁ·Î¼¼½º¿Í ¾²·¹µå ±¸Á¶´Â ´ÙÀ½°ú °°ÀÌ ¿ä¾àÇÒ ¼ö ÀÖ´Ù. ¸¶Å©ÀÇ ºÐ·ù¹ý¿¡ µû¸£¸é ŽºÅ©(task)´Â ¸Þ¸ð¸® °ø°£À» ºñ·ÔÇÑ ÀÚ¿ø ÇÒ´çÀÇ ±âº» ´ÜÀ§À̸ç, ¾²·¹µå´Â ½ÇÇàÀÇ ±âº»Àû ´ÜÀ§ÀÌ´Ù(¸¶Å©¿¡¼´Â ÇÁ·Î¼¼½º¸¦ ŽºÅ©¶ó´Â ¿ë¾î¸¦ »ç¿ëÇ߱⠶§¹®¿¡ ¾²·¹µå¿Í ŽºÅ©¶ó´Â ¿ë¾î¸¦ ±×´ë·Î »ç¿ëÇß´Ù).
¡ß ÀüÅëÀû À¯´Ð½ºÀÇ ÇÁ·Î¼¼½º ±¸Á¶ : ³»ºÎÀûÀ¸·Î ¾²·¹µå°¡ 1°³ÀΠŽºÅ©·Î º»´Ù. ÀÚ¿ø ´ÜÀ§ÀΠŽºÅ©ÀÇ ÀÚ¿ø ÇÒ´ç°ú ½ÇÇà ´ÜÀ§ÀÎ ¾²·¹µåÀÇ °ü¸®´Â Ä¿³ÎÀÌ °ü¸®ÇÑ´Ù. ¸®´ª½ºÀÇ ¿ë¾î¸¦ ºô¸é ¾²·¹µå´Â °ð ÇÁ·Î¼¼½ºÀ̰í, ÀÚ¿ø °ü¸®´Â Ä¿³ÎÀÌ ¸Ã´Â´Ù.
¡ß »ç¿ëÀÚ ¾²·¹µå : ÀϹÝÀûÀΠŽºÅ© ¾È¿¡ ±¸ÇöµÇ´Â »ç¿ëÀÚ ¾²·¹µå´Â ŽºÅ© ³»¿¡ »ç¿ëÀÚ ¾²·¹µå¸¦ ±¸ÇöÇϱâ À§ÇÑ ¸Þ¸ð¸® °ü¸®ÀÚ¿Í ½ºÄÉÁì·¯¸¦ µû·Î ¼³Ä¡ÇÑ´Ù. ¾²·¹µåµéÀ» °ü¸®Çϱâ À§ÇÑ ¾²·¹µå °ü¸®ÀÚ°¡ ÇÊ¿äÇÏ´Ù. GNUÀÇ ¡®Pthread¡¯³ª ÀÚ¹ÙÀÇ ¡®¾²·¹µå °ü¸®ÀÚ¡¯ °°Àº ±¸Á¶°¡ »ç¿ëÀÚ ¾²·¹µå¿¡ ¼ÓÇÑ´Ù.
¡ß Ä¿³Î ¾²·¹µå ¶Ç´Â °æ·® ¾²·¹µå : ¼Ö¶ó¸®½ºÀÇ LWP(Light Weight Process)³ª ¸î °¡Áö Á¾·ùÀÇ Ä¿³Î ¾²·¹µåµéÀÌ ¿©±â¿¡ ÇØ´çµÇ´Âµ¥, Ä¿³ÎÀº Ä¿³Î ¾²·¹µå¿¡ ´ëÇÑ CPUÀÇ ÀÚ¿ø ÇÒ´çÀ» °ü¸®ÇÑ´Ù. Ä¿³Î ¾²·¹µå´Â ´Ù¾çÇÑ ¹æ½ÄÀ¸·Î ŽºÅ© ³»¿¡¼ »ç¿ëÀÚ ¾²·¹µå¿Í °áÇÕÇÑ´Ù.
¾²·¹µåÀÇ ±¸Á¶¿¡ ´ëÇÑ ¸¹Àº ¹®¼µéÀÌ ÀÖ°í ¼·Î »óÀÌÇÑ ¿ë¾î¸¦ »ç¿ëÇÔÀ¸·Î½á ¸¹Àº È¥¼±ÀÌ ºñ·ÔµÇ¾ú´Ù. È¥¶õ½º·´´Ù°í ´À³¢´Â µ¶Àڵ鿡°Ô´Â Ä¿³Î ¾²·¹µå °°Àº ¿ë¾î¸¦ óÀ½À¸·Î ²ôÁý¾î³»°í »ç¿ëÇϱ⠽ÃÀÛÇÑ Tom DoeppnerÀÇ ¹®¼¸¦ Àо±â¸¦ ±ÇÇÑ´Ù(
http://www.cs. brown.edu/people/twd/´Â ȨÆäÀÌÁöÀÌ¸ç ±× Áß¿¡¼ ThreaMon ÆÐŰÁöÀÇ ¹®¼ÀÇ ÀϺÎÀÎ
http://www.cs.brown.edu/research/thmon/ thmon2a.htmlÀº ÁÁÀº ¿ä¾à ¹®¼ÀÌ´Ù).
°á±¹ ¾²·¹µåÀÇ ±¸Á¶´Â Å©°Ô »ç¿ëÀÚ ¾²·¹µå¿Í Ä¿³Î ¾²·¹µå°¡ 1:1ÀÎ ±¸Á¶, ¼ø¼öÇÑ »ç¿ëÀÚ ¾²·¹µåÀÇ ±¸ÇöÀÎ 1 to Many ±¸Çö(1:N), ±×¸®°í ¼Ö¶ó¸®½º µî¿¡¼ ±¸ÇöµÇ¾ú´ø Many to Many(M:N) ±¸Á¶°¡ ÀÖ°Ú´Ù. ±×¸®°í Áß°£¿¡ ¸Å¿ì Çõ½ÅÀûÀÎ Many to ManyÀÇ ±¸Á¶¸¦ Á¦½ÃÇß´ø Thomas AndersonÀÇ ½ºÄÉÁì·¯ ¾×Ƽº£À̼Ç(Scheduler Actiavtion) °°Àº ±¸ÇöÀÌ ÀÖ´Ù(Anderson, T.E., Bershad, B.N., Lazowska, and Levy, H.M. 1992. Scheduler activations : effective kernel support for the user-level management of parallelism).
µ¶ÀÚµéÀÌ AndersonÀÇ ±ÛÀ» Àдٺ¸¸é ¹«¾ð°¡ ¿µ°¨ÀÌ ¶°¿À¸£´Â ´À³¦ÀÌ µé °ÍÀÌ´Ù. ¿ö³« ¸¹Àº ¹®¼°¡ Àֱ⠶§¹®¿¡ ´ëºÎºÐÀÇ ¿î¿µÃ¼Á¦ ±³°ú¼¿¡¼µµ ÀÌ ±¸Á¶µéÀ» ¼Ó½Ã¿øÈ÷ ¾Ë·Á ÁÖÁö´Â ¸øÇϰí ÀÖ´Ù. ÇÊÀÚ´Â °³ÀÎÀûÀ¸·Î µ¶ÀÚµéÀÌ U.VahaliaÀÇ ¡¸Unix Internals¡¹ÀÇ ¹®¼µéÀ» Àд °ÍÀÌ ÁÁÀº Ãâ¹ßÁ¡ÀÌ¶ó º»´Ù. º»Áö ÀÚ·á Áß¿¡´Â 2002³â 2¿ùÈ£ ¡®¿î¿µÃ¼Á¦ ¿Àµð¼¼ÀÌ¡¯¿¡¼ ¹æÁØ¿µ ¾¾°¡ ¾´ ¡®¿î¿µÃ¼Á¦´Â ÇÁ·Î±×·¥À» ¾î¶»°Ô ½ÇÇàÇϴ°¡¡¯¶ó´Â ±ÛÀÌ ÁÁÀº Âü°í°¡ µÉ ¼ö ÀÖ´Ù.
¸®´ª½ºÀÇ ¾²·¹µå ±¸Á¶¿Í ´Ù¸¥ À¯´Ð½º ¿î¿µÃ¼Á¦¿ÍÀÇ Â÷À̸¦ ºñ±³ÇÑ´Ù¸é ¸®´ª½º´Â ÀüÀûÀ¸·Î Ä¿³Î ¾²·¹µå¸¦ ÅëÇØ ¾²·¹µå ±¸Á¶¸¦ ±¸ÇöÇϰí ÀÖ´Ù´Â Á¡ÀÏ °ÍÀÌ´Ù. ¸®´ª½º¸¸ Ä¿³Î ¾²·¹µå¸¦ »ç¿ëÇϰí ÀÖ´Â °ÍÀº ¾Æ´ÏÁö¸¸ ¿î¿µÃ¼Á¦¸¶´Ù Â÷À̰¡ Àֱ⠶§¹®¿¡ °£´ÜÇÑ ¼³¸íÀÌ ÇÊ¿äÇÏ´Ù. ¸®´ª½º¿¡¼ Ä¿³Î ¾²·¹µå¸¦ Áö¿øÇÏ´Â ÇÁ·ÎÁ§Æ®´Â ¸î °¡Áö ´ë¾È Áß¿¡¼ Ulrich Drepper, Ingo MolnarÀÇ NPTL(Native POSIX Thread Library)·Î ±Í°áµÇ¾ú´Ù. ÀÌ ¸ðµ¨¿¡¼´Â Ä¿³ÎÀÌ °¢ ¾²·¹µåÀÇ »ý¼º°ú Á¾·á ½ºÄÉÁ층À» °ü¸®ÇÑ´Ù. ÀÌ¿Í ¹Ý´ë·Î »ç¿ëÀÚ ¾²·¹µå ¸ðµ¨¿¡¼´Â Ä¿³ÎÀÌ ÇÁ·Î¼¼½º¸¸ °ü¸®ÇÏ°í °¢ ¾²·¹µåµéÀº »ç¿ëÀÚ °ø°£¿¡¼ °ü¸®µÈ´Ù. ¼ø¼öÇÑ Ä¿³Î ¾²·¹µå/ÇÁ·Î¼¼½ºÀÇ ¹®Á¦¶ó¸é ³Ê¹« °Å´ëÇÑ ¾²·¹µå, ±×·¯´Ï±î ÀÚ¿ø Á¡À¯·®ÀÌ ¸¹Àº ¾²·¹µåÀÇ ¹®Á¦°¡ ÀÖ°í, ¼ø¼öÇÑ »ç¿ëÀÚ ¾²·¹µåÀÇ ¹®Á¦¶ó¸é ½Ã½ºÅÛ ÄݰúÀÇ Á¶À²¿¡ ¹®Á¦°¡ ÀÖ´Ù.
½ºÄÉÁì·¯ ¾×Ƽº£À̼ÇÀº ÀÌ·¯ÇÑ ¹®Á¦¸¦ ¾÷ÄÝ(Scheduler Upcall)À» ÅëÇØ ÇØ°áÇÏ¿´´Âµ¥ ¸Å¿ì ÀÌ»óÀûÀ¸·Î º¸¿´±â ¶§¹®¿¡ ³ªÁß¿¡´Â ¼Ö¶ó¸®½º¸¦ Æ÷ÇÔÇÑ ¸¹Àº ¿î¿µÃ¼Á¦°¡ ÀÌ ½ºÄÉÁì·¯ ¾×Ƽº£À̼ÇÀ» ±¸ÇöÇß´Ù. ½ºÄÉÁì·¯ ¾×Ƽº£À̼ÇÀº »ó´ëÀûÀ¸·Î °æ·®ÀÎ IPC¿Í Á¤±³ÇÑ ¾²·¹µå ±¸Á¶¸¦ ÇÊ¿ä·Î Çϴµ¥ ±¸Çö¸¶´Ù ¸¹Àº ¹®Á¦Á¡µéÀÌ ¹ß»ýÇß´Ù. ¼Ö¶ó¸®½º´Â ±âÁ¸ÀÇ doors °°Àº °æ·®ÀÇ IPC ±¸Á¶¸¦ ¾Æ¿ëÇÏ¿´°í ¾²·¹µå ±¸Á¶´Â ±âÁ¸ÀÇ M:N ¼³ºñ¸¦ ÀÌ¿ëÇÏ¿´´Âµ¥, À̵éÀº ÀÌ¹Ì ±¸ÇöµÇ¾ú´ø °ÍµéÀÓ¿¡µµ ºÒ±¸ÇÏ°í ½ºÄÉÁì·¯ ¾×Ƽº£À̼ÇÀº ±¸Çö¿¡ ¸¹Àº ¹®Á¦Á¡µéÀÌ ÀÖ¾ú´Ù°í ÀüÇØÁø´Ù.
Margo Seltzer µî¿¡ ÀÇÇØ ÀÌ·ç¾îÁø BSD¿¡¼ÀÇ Ãʱ⠱¸ÇöÀº Ưº°È÷ ÀåÁ¡ÀÌ ¾ø¾ú´Ù. ³ªÁß¿¡ NetBSD¿¡¼ Á¶±Ý ³ªÀº ¹æ¹ýÀ¸·Î ´Ù½Ã ±¸ÇöµÇ±ä ÇßÀ¸³ª °áÁ¤ÀûÀÎ °ÍÀº ¾Æ´Ï¾ú´Ù. ¶Ù¾î³ °³³äÀÌ ÀÖÁö¸¸ ºó¾àÇÑ ±¸ÇöÀÌ ¾ðÁ¦³ª ½ºÄÉÁì·¯ ¾×Ƽº£À̼ÇÀÇ ¹®Á¦¿´´Ù. °á±¹ 1:1 Ä¿³Î ¾²·¹µåÀÇ ±¸ÇöÀº Å©°Ô ³ª»Û ¹æ¹ýÀÌ ¾Æ´Ï¾ú´Ù. ¸®´ª½ºÀÇ ´Ü¼øÇÑ ¾²·¹µå ±¸Á¶¿Í IPCµéÀ» »ý°¢ÇÏ¸é ½ºÄÉÁì·¯ ¾×Ƽº£À̼ǰú ºñ½ÁÇÑ ¹æ¹ýÀÌ Å©°Ô À¯¸®ÇÒ °Íµµ ¾Æ´Ï±â ¶§¹®¿¡ ÀÚ¿øÀ» È¿°úÀûÀ¸·Î »ç¿ëÇÒ ¼ö¸¸ ÀÖÀ¸¸é ÇöÀç·Î¼´Â 1:1ÀÌ ½Ç¿ëÀûÀÎ Ãø¸é¿¡¼ ´õ ³ªÀ» ¼öµµ ÀÖ´Ù. ÀÌ ÁÖÁ¦¿¡ ´ëÇØ ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº
http://people.redhat.com/drepper/ glibcthreads.html¿¡ ³ª¿Â ¼³¸íÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù.
¾²·¹µåÀÇ ±¸Çö À̿ܿ¡µµ ¾²·¹µåÀÇ ½ºÄÉÁ층ÀÇ ±íÀº ¿µ¿ª¿¡´Â ÈξÀ ´õ º¹ÀâÇÑ ºÎºÐÀÌ ¸¹Áö¸¸ ¸®´ª½º¿¡¼´Â 1:1·Î Á¦ÇÑÇØ¹ö¸²¿¡ µû¶ó °£´ÜÇÑ ÇÁ·Î¼¼¼ ½ºÄÉÁ층À¸·Î ¹®Á¦¸¦ ´Ü¼øÇÏ°Ô ¸¸µé ¼ö ÀÖ´Ù. ¾ÕÀ¸·Î ¸®´ª½ºÀÇ ¾²·¹µå¿Í ¾²·¹µåÀÇ ½ºÄÉÁ층ÀÌ ¾î¶»°Ô ¹Ù²ð Áö´Â ¸ð¸£Áö¸¸ ´çºÐ°£Àº ºÎ¸ð ÇÁ·Î¼¼½ºÀÇ ÀÚ¿øÀ» °øÀ¯ÇÏ´Â ´Ù¸¥ ÇÁ·Î¼¼½º¸¦ º¹Á¦ÇÏ´Â ÇöÀçÀÇ clone() call¿¡¼ Å©°Ô ¹þ¾î³¯ °Í °°Áö´Â ¾Ê´Ù. ¸®´ª½º Ä¿³ÎÀÇ ¾²·¹µå´Â ÇÁ·Î¼¼½º¿Í ´Ù¸£Áö ¾ÊÀ¸³ª clone()À¸·Î º¹Á¦ÇÑ ÇÁ·Î¼¼½º´Â ºÎ¸ð¿Í ÁÖ¼Ò °ø°£, ÆÄÀÏ ½Ã½ºÅÛ ÀÚ¿ø, ÆÄÀÏ ¼¼úÀÚ, ½Ã±×³Î Çڵ鷯¸¦ °øÀ¯ÇÒ ¼ö ÀÖ´Ù. ¸®´ª½ºÀÇ ¾²·¹µå´Â ºñ·Ï ÇÁ·Î¼¼½ºÀÌÁö¸¸ ÇÁ·Î¼¼½ºÀÇ »ý¼º°ú ¼Ò¸ê ±×¸®°í ÀÚ¿ø ¹èÄ¡°¡ ¹«°Å¿î(¸¹Àº ½Ã°£°ú ÀÚ¿øÀ» ¼ÒºñÇÏ´Â) ÆíÀÌ ¾Æ´Ï¶ó´Â Á¡À» °Á¶Çϰí ÀÖ´Ù(Á» ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº people.redhat.com/drepper/nptl-design.pdf¸¦ ÂüÁ¶).
ºñ·Ï ¸®´ª½º°¡ ÇÁ·Î¼¼½º¿Í °°Àº ±¸ÇöÀÇ °£´ÜÇÑ ±¸Á¶ÀÇ ¾²·¹µå¸¦ »ç¿ëÇϰí ÀÖÁö¸¸ ºñ±³ ¶Ç´Â ÀÌÇØ¸¦ À§ÇÏ¿© ´Ù¸¥ ¿î¿µÃ¼Á¦ÀÇ ¾²·¹µå¿¡ °üÇÑ ¹®¼µéµµ Àо±â¸¦ °·ÂÈ÷ ±ÇÇÑ´Ù. ±×¸®°í ¸®´ª½º ¾²·¹µåÀÇ ±¸Çö ¿ª»ç¿Í ³»ºÎ ±¸Á¶µµ¸¦ ¾Ë°í ½ÍÀº µ¶ÀÚ´Â ¡ºIA-64 ¸®´ª½º Ä¿³Î¡»ÀÇ ¡¸ÇÁ·Î¼¼½º, ŽºÅ©, ¾²·¹µå¡¹ ÆíÀ» Àо¸é ¸¹Àº µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
½ºÄÉÁì·¯
¸®´ª½ºÀÇ ½ºÄÉÁì·¯´Â 2.2¿Í 2.4 ¶§ºÎÅÍ ¸¹Àº º¯È¸¦ °Þ¾ú±â ¶§¹®¿¡ È¥¶õ½º·¯¿î ºÎºÐµµ ÀÖ´Ù. 2.6 Ä¿³ÎÀÇ Æ¯Â¡À̶ó°í ¸»ÇÏ´Â O(1) ½ºÄÉÁì·¯´Â Ingo Molnar¿¡ ÀÇÇØ ½ÃÇèÀûÀ¸·Î Ä¿³Î 2.4 ¶§ºÎÅÍ Á¸ÀçÇß´Ù. Ä¿³ÎÀÇ ½Ç½Ã°£¼ºÀ̶óµç°¡ ¼±Á¡¼º °°Àº ºÎºÐÀº ´Ù¸¥ À¯´Ð½º ¿î¿µÃ¼Á¦¿¡¼µµ ¸¹Àº ³í¶õÀÌ ÀÖ¾ú´ø ºÎºÐÀ̹ǷΠ¸®´ª½º¸¸ÀÇ ¹®Á¦´Â ¾Æ´Ñ °ÍÀÌ´Ù. ¸Å¿ì ¹æ´ëÇÑ ºÐ·®ÀÇ ±âº» Áö½ÄÀÌ ÇÊ¿äÇϱä ÇÏÁö¸¸ ÇÊÀÚ´Â µ¶Àڵ鿡°Ô ¸ÕÀú U.VahaliaÀÇ ¡ºUnix Internal¡»¸¦ Àо±â¸¦ ±ÇÇÑ´Ù. ±× ´ÙÀ½¿¡ ¸®´ª½º¿Í °ü·ÃµÈ Robert LoveÀÇ ¡ºLinux Kernel Development¡»¸¦ Àб⸦ ±ÇÇÏ°í ½Í´Ù.
¾ó¸¶ Àü ¿¡ÀÌÄÜÃâÆÇ»ç¿¡¼ ¡ºÀÓº£µðµå °³¹ßÀÚ¸¦ À§ÇÑ ¸®´ª½º ½ÉÃþ ºÐ¼®¡»À̶ó´Â Á¦¸ñÀ¸·Î ÃâÆÇµÇ¾ú´Ù. ¸®´ª½º ÁÖ¿ä °³¹ßÀÚÀÇ ÇÑ »ç¶÷ÀÌ Àß Á¤¸®µÈ ±¸¼ºÀ¸·Î ³»¿ëÀ» ¿ä¾àÇÑ Ã¥ÀÌ´Ù. ÁÖ·Î Ä¿³Î 2.6¿¡ ´ëÇÑ ³»¿ëÀ» Áß½ÉÀ¸·Î ±ÛÀ» Àü°³Çß´Ù. ³»¿ëÀÌ ÁÁÁö¸¸ ºÐ·®ÀÌ ´Ù¼Ò ¸¹Àº ¡º¸®´ª½º Ä¿³ÎÀÇ ÀÌÇØ¡»¸¦ º¸°í Á¤¸®°¡ ¾È µÇ´Â µ¶ÀÚ¶ó¸é ÀÌ Ã¥ÀÇ Àß ¿ä¾à¡¤Á¤¸®µÈ ³»¿ëÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. »ç½Ç ±Ç¼öÈ£ ¾¾ÀÇ ¡º¸®´ª½º ÇÁ·Î±×·¡¹Ö ¹ÙÀÌºí¡»ÀÌ ³ª¿À±â ÀüºÎÅÍ ¸·¿¬È÷ À¥¿¡ ¶°µµ´Â ¹®¼¿¡¼ O(1) ½ºÄÉÁì·¯¿¡ ´ëÇÑ ±ÛµéÀ» Á¢ÇÒ ¼ö ÀÖ¾úÀ¸³ª Ã¥À¸·Î ¾Ë±â ½±°Ô Á¤¸®µÈ °ÍÀ» º¸±â´Â ¾ÕÀÇ Ã¥¿¡¼ºÎÅÍ´Ù.
¸®´ª½ºÀÇ ½ºÄÉÁì·¯¿¡ °üÇÑ Áß¿äÇÑ ³»¿ëÀ» ¿ä¾àÇÏ¸é ´ÙÀ½°ú °°´Ù.
¡ß ¿Ïº®ÇÑ O(1) ½ºÄÉÁ층À» ±¸ÇöÇÏ¿© »õ ½ºÄÉÁì·¯ ÇÏ¿¡¼´Â ½ÇÇà ÁßÀÎ ÇÁ·Î¼¼¼ÀÇ °³¼ö³ª ´Ù¸¥ Á¶°Ç¿¡ ¹«°üÇÏ°Ô ÀÏÁ¤ÇÑ ½Ã°£ ³»¿¡ ½ºÄÉÁ층ÀÌ ÀϾ¾ß ÇÑ´Ù.
¡ß ¿ÏÀüÇÑ SMP È®À强À» °¡Áú °Í. ÇÁ·Î¼¼¼ °íÀ¯ÀÇ lock°ú ½ÇÇàÅ¥(runqueue) °°Àº ±¸Á¶°¡ ÇÊ¿äÇÏ´Ù.
¡ß SMP¿ÍÀÇ »ó¼ºÀ» °³¼±ÇÑ´Ù. ÇÁ·Î¼¼¼¿¡ ´ëÇÑ ·Îµå¹ë·±¼ °°Àº ±¸Á¶¸¦ ±¸ÇöÇÑ´Ù.
¡ß ÁÁÀº ÀÎÅÍ·¢Æ¼ºê ¼º´ÉÀ» ±¸ÇöÇÑ´Ù.
¡ß °øÆòÇÑ ½ºÄÉÁ층ÀÌ ÀϾ ¼ö ÀÖµµ·Ï ÇÁ·Î¼¼½ºÀÇ Å¸ÀÓ ½½¶óÀ̽º¸¦ ÀûÀýÈ÷ ÇÒ´çÇØ¾ß ÇÑ´Ù.
¡ß ¸¹Àº ¼öÀÇ SMP¿¡ ´ëÇØ¼µµ ÁÁÀº ¼º´ÉÀ» ³¾ ¼ö ÀÖµµ·Ï È®À强À» °³¼±ÇÑ´Ù.
ÀÌ·¯ÇÑ ¸ñÇ¥¸¦ ±¸ÇöÇϱâ À§ÇØ ½ºÄÉÁì·¯´Â ¸¹Àº ºÎºÐÀÌ º¯°æµÇ¾î ÀÌÀüÀÇ Ä¿³Î°ú´Â ¸¹ÀÌ ´Ù¸£´Ù. µ¶ÀÚµéÀÌ ±Ã±ÝÇØ ÇÒ Áöµµ ¸ð¸£´Â O(1) ½ºÄÉÁì·¯¶ó´Â °ÍÀº ½ÇÇàÅ¥¿Í ½ÇÇàÅ¥ÀÇ ¹è¿¿¡ ´ëÇÑ ±¸Á¶¸¦ º¯°æÇÏ¸é¼ ±¸ÇöµÈ´Ù. ±âÁ¸ÀÇ ½ºÄÉÁì·¯´Â À̸¥¹Ù ¶ó¿îµå·ÎºóÀ̳ª ´Ü¼øÇÑ º¯ÇüÀÇ ÇüÅ·Π´ÙÀ½°ú °°ÀÌ ±¸ÇöµÈ´Ù.
for (½Ã½ºÅÛÀÇ ¸ðµç ŽºÅ©¿¡ ´ëÇØ¼){
¿ì¼±¼øÀ§¸¦ Àç°è»êÇÑ´Ù.
ŸÀÓ ½½¶óÀ̽º °ªÀ» Àç°è»êÇÑ´Ù.
}
ÀÌ ±¸ÇöÀº °£´ÜÇÏÁö¸¸ ¹®Á¦°¡ ÀÖ´Ù. ¿ì¼± ½Ã½ºÅÛÀÇ Å½ºÅ©°¡ ¸¹Àº °æ¿ì ÀÏÁ¤ÇÑ ½Ã°£ ³»¿¡ ½ºÄÉÁ층 °è»êÀ» ¿Ï·áÇÑ´Ù´Â º¸ÀåÀÌ ¾ø´Ù. ±×¸®°í ¿ì¼±¼øÀ§ Àç°è»êÀ» ÇàÇÒ ¶§¿¡´Â ŽºÅ© µð½ºÅ©¸³ÅÍ¿Í Å½ºÅ© ¸ñ·Ï¿¡ ´ëÇÑ º¸È£ÀåÄ¡ÀÎ ¶ôÀ» °É°Ô µÇ¹Ç·Î ¶ôÀÇ °æÀï »óŰ¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. »õ·Î¿î ½ºÄÉÁì·¯´Â ÀÌ·¯ÇÑ ±¸Á¶°¡ ¾Æ´Ï¶ó °¢°¢ÀÇ ÇÁ·Î¼¼¼¿¡ ´ëÇØ 2°³ÀÇ ¿ì¼±¼øÀ§ ¹è¿À» µÐ´Ù. Çϳª´Â ½ÇÇàÅ¥¿¡ Àִ ŽºÅ© Áß Å¸ÀÓ ½½¶óÀ̽º°¡ ³²¾ÆÀִ Ȱ¼º ¹è¿ÀÌ°í ´Ù¸¥ Çϳª´Â ŸÀÓ ½½¶óÀ̽º¸¦ ´Ù ¼ÒÁøÇÑ ºñȰ¼º ¹è¿ÀÌ´Ù.
»õ·Î¿î ½ºÄÉÁì·¯¿¡¼´Â ŸÀÓ ½½¶ó¸®½º¸¦ ¼ÒÁøÇÑ Å½ºÅ©¿¡ ´ëÇØ ·çÇÁ¿¡¼ ¿ì¼±¼øÀ§ Àç°è»êÀ» ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ºñȰ¼º ¹è¿¿¡ ÷°¡ÇÑ´Ù. Ȱ¼º°ú ºñȰ¼º ¹è¿Àº ¿ì¼±¼øÀ§ ¹è¿·Î ½ºÄÉÁì·¯´Â À̵鿡 ´ëÇÑ ºñÆ®¸Ê ¹è¿À» À¯ÁöÇÑ´Ù. °ü½ÉÀÌ ÀÖ´Â µ¶ÀÚ´Â ·Î¹öÆ® ·¯ºêÀÇ Ã¥À» Àо¸é ±×¸²°ú ¼Ò½º°¡ Àß ¼³¸íµÅ ÀÖ¾î ÀüüÀûÀÎ ±¸Á¶ ÆÄ¾Ç¿¡ µµ¿òÀÌ µÉ °ÍÀÌ´Ù. ±×¸®°í ±Ç¼öÈ£ ¾¾ÀÇ Ã¥¿¡¼ ºÐ¼®ÇÑ °ÍÀº ÁÖ·Î ±¸Á¶Ã¼¿Í ¼Ò½ºÄڵ忡 °üÇÑ ºÎºÐÀÌ´Ù.
°á°úÀûÀ¸·Î ½ºÄÉÁì·¯´Â ºñÆ®¸Ê ¹è¿¿¡¼ °¡Àå ³ôÀº ¿ì¼±¼øÀ§¸¦ °®´Â ºñÆ®¸ÊÀ» ã¾Æ ÇØ´ç ŽºÅ©¸¦ ½ºÄÉÁìÇÏ´Â °ÍÀ¸·Î ÀÏÁ¤ÇÑ ½Ã°£ ³»¿¡ ¸ðµç ŽºÅ©¿¡ ´ëÇÑ ½ºÄÉÁ층À» ¸Å¿ì ½±°Ô ó¸®ÇÒ ¼ö ÀÖ´Ù. ¸®´ª½ºÀÇ O(1) ½ºÄÉÁì·¯´Â ¸Å¿ì ´Ü¼øÇÑ ¾ÆÀ̵ð¾î °°Áö¸¸ ÁÁÀº °á°ú¸¦ ³»°í ÀÖ´Ù.
http://developer.osdl.org/craiger/hackbench/¿¡ ¼º´É Æò°¡ ±×·¡ÇÁ°¡ ÀÖ´Ù. ¶Ç Á¤¸» ½ºÄÉÁì·¯¸¦ Å×½ºÆ®ÇØ º¸°í ½ÍÀº ºÐµéÀº À¯¿µÃ¢ ¾¾ÀÇ °£´ÜÇÑ ÄÚµå ÇØÅ·À» º¯°æÇÏ¿© ¸î °¡Áö Å×½ºÆ®¸¦ ÇØº¼ ¼öµµ ÀÖ°Ú´Ù(
http://kelp.or.kr/korweblog/stories.php?story=03/12/17/1060745)
¼±Á¡Çü Ä¿³Î
¸®´ª½º 2.6 Ä¿³ÎÀÇ ¶Ç ´Ù¸¥ Ư¼ºÀ̶ó¸é Ä¿³Î ³»¿¡¼ÀÇ ¼±Á¡ÀÌ °¡´ÉÇÏ´Ù´Â °ÍÀε¥ ±âÁ¸ÀÇ Ä¿³ÎµéÀº ¼±Á¡À» Çã¿ëÇÏÁö ¾ÊÀ½À¸·Î½á ³»ºÎÀûÀÎ µ¥ÀÌÅÍ ±¸Á¶ÀÇ ÀÚ¿¬½º·¯¿î º¸È£°¡ °¡´ÉÇÑ Ãø¸éµµ ÀÖ¾ú´Ù. ±×·¯³ª ½ºÄÉÁì·¯ÀÇ ¼º´ÉÀÌ Çâ»óµÊ¿¡ µû¶ó ¼±Á¡ÀÌ ÇÊ¿äÇØÁ³°í ±âÁ¸ Ä¿³ÎÀÇ ¼±Á¡ÀÌ ÀϾ´Â °æ¿ì¸¦ Æ÷ÇÔÇØ¼ ¼±Á¡ÀÌ °¡´ÉÇÑ(¶ôÀÌ °É¸®Áö ¾ÊÀº) »óÅ¿¡¼´Â ¾ðÁ¦µçÁö ¼±Á¡ °¡´ÉÇÏ°Ô µÇ¾ú´Ù.
¸®´ª½º 2.6ÀÇ Áß¿äÇÑ ±¸Á¶ º¯°æ ºÎºÐÀº °£´ÜÇÑ ¾²·¹µå ±¸Á¶¿Í ´Ü¼øÇÏÁö¸¸ ¼º´ÉÀÌ ÁÁÀº O(1) ½ºÄÉÁì·¯ÀÇ Á¶ÇÕÀ¸·Î ÀÌ·ç¾îÁø °ÍÀÌ´Ù. ½ºÄÉÁì·¯¿¡ ´ëÇÑ ±ÛÀ» ¾²°í ³ª´Ï ÇÊÀÚÀÇ ½Ç·ÂÀÇ ÇѰ谡 ´À²¸Áö´Â °Í °°¾Æ ´ä´äÇϱ⸸ ÇÏ´Ù. ±×·¡¼ ¿ä¾àÀÌ Àß µÇ¾î ÀÖ´Â ±ÛÀ» ¼Ò°³ÇÏ´Â °Ô ³ªÀ» °ÍÀ̶ó »ý°¢ÇÑ´Ù(
http://www-903.ibm.com/devel operworks/kr/linux/library/l-inside.html).
¸Þ¸ð¸® °ü¸®
¸Þ¸ð¸® °ü¸®´Â Å©°Ô µÎ °¡Áö·Î ³ª´¶´Ù. Ä¿³Î ¸Þ¸ð¸®ÀÇ °ü¸®¿Í ÇÁ·Î¼¼½º ¾îµå·¹½º °ø°£ÀÇ °ü¸®¶ó´Â µÎ °¡ÁöÀÇ Å« ÁÖÁ¦°¡ ÀÖ´Ù. »ç½Ç ÀÌ ºÎºÐÀº ³Ê¹« ¹æ´ëÇÑ ÁÖÁ¦·Î Áö±Ý±îÁö ÁÁÀº Ã¥ÀÌ ¾ø¾ú´Ù°í ÇØµµ °ú¾ðÀÌ ¾Æ´Ï´Ù(¿ø·¡ ¸Þ¸ð¸® °ü¸®´Â ÇÊÀÚÀÇ ÁÖ¿ä °ü½É»çÀÌÁö¸¸ ¸Å¿ì ±¤¹üÀ§ÇϹǷΠÀÌ ±Û¿¡¼ ´Ù·ç±â´Â Èûµç ÁÖÁ¦´Ù. ±×·¡¼ °£´ÜÈ÷ ¼Ò°³¸¸ ÇϰڴÙ). »ç¶÷µéÀÌ º°·Î °ü½ÉÀ» °®Áö ¾ÊÁö¸¸ ¿î¿µÃ¼Á¦ÀÇ ¼º´É¿¡¼ º´¸ñ¿¡ ÇØ´çÇÏ´Â ºÎºÐÀ̱⵵ ÇÏ´Ù.
Ä¿³Î 2.6¿¡¼ÀÇ ÇÁ·Î¼¼½º ÁÖ¼Ò °ø°£ÀÇ °ü¸®´Â Rik van RielÀÇ r-map(reverse mapping, ¿ª¸ÊÇÎ)ÀÌ Ã¤¿ëµÇ¾ú°í ±âÁ¸ÀÇ Andrea Arcangelli°¡ °³¹ßÇÑ VM(Virtual Memory)ÀÇ ±¸Á¶ ¿ª½Ã °³¼±µÇ¾ú´Ù. ÇöÀç ¸®´ª½º °³¹ßÆÀÀº Áö±ÝÀÇ VM¿¡ ´ëÇØ¼´Â °ú°Åº¸´Ù ¸¸Á·½º·¯¿î Æò°¡¸¦ ³»¸®°í ÀÖ´Ù. ¿ª¸ÊÇÎÀ» ÅëÇÑ ¼º´É °³¼±ÀÌ ÀϾ´Âµ¥, ÇÊÀÚ´Â º»Áö 2004³â 2¿ùÈ£ ƯÁýÀÎ 64ºñÆ® ¿î¿µÃ¼Á¦ÀÇ ÁÖ¼Ò °ø°£ °ü¸®¿¡¼ ÀÌ·¯ÇÑ Á¡µéÀ» ¼³¸íÇÑ ÀûÀÌ ÀÖ´Ù.
VM¿¡ ´ëÇØ¼´Â ÀÚ·á°¡ ºÎÁ·ÇÑ ÆíÀÌÁö¸¸ ÃÖ±Ù¿¡ ÁÁÀº Ã¥ÀÌ Çϳª ³ª¿Ô´Ù. ÀúÀÚ´Â Mel GormanÀ¸·Î Ã¥ Á¦¸ñÀº ¡ºUnderstanding the Linux Virtual Memory Manager¡»ÀÌ´Ù. ÀÌ Ã¥Àº ÀúÀÚÀÇ È¨ÆäÀÌÁö¿¡¼ °ü¸®µÇ¾ú´ø µÎ °¡Áö ¹®¼(
http://www.skynet.ie/~mel/)¸¦ ÇÕÄ£ °ÍÀÌ´Ù. ÀÌ Mel GormanÀÇ ¹®¼·Î ¸¹Àº »ç¶÷µéÀÌ VM ±¸Á¶¸¦ Á¢ÇÒ ¼ö ÀÖ¾ú´Ù. Ã¥¿¡´Â Ä¿³Î 2.6¿¡ ´ëÇÑ ºÎºÐÀÌ Ãß°¡µÇ¾ú´Ù°í ÇÑ´Ù. ÇÏÁö¸¸ ȨÆäÀÌÁöÀÇ ¹®¼¸¸À¸·Îµµ °ü½É ÀÖ´Â µ¶ÀÚµéÀº ¸¹Àº µµ¿òÀ» ¹ÞÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.
Ä¿³Î¿¡¼µµ µ¥ÀÌÅÍ ½º¸ð±× Çö»ó!
Áß¿äÇÑ À̾߱â´Â ´Ù »©³õÀº µíÇϰí Ã¥ ¼Ò°³¿Í URL Àû¾î³õ±â¸¸À¸·Î ³¡³ µíÇÑ ±ÛÀ» ¸¶¹«¸®ÇÏ¸é¼ ÇÊÀÚ´Â ¶Ç Çѹø °¡º¿î ±«¸®°¨¿¡ ºüÁö°Ô µÇ¾ú´Ù. Á¶¸® ÀÖ´Â ¼³¸í ´É·ÂÀÇ ºÎÁ·ÀÌ´Ù. ÇÏÁö¸¸ ¹®ÇåµéÀº ¸Å¿ì Áß¿äÇѵ¥, Ä¿³ÎÀÌ º»°ÝÀûÀÎ ¼º´É°ú ±¸Á¶¸¦ Áö´Ï°Ô µÇ¸é¼ Âü°í¹®ÇåÀ̳ª Àоî¾ß ÇÒ Ã¥ÀÇ ºÐ·®Àº ´õ ¸¹¾ÆÁö°í µ¶ÀÚµéÀº Á¶±Ý¾¿ ´õ ¸¹Àº °ü½É°ú ½Ç·ÂÀÌ ÇÊ¿äÇÏ°Ô µÇ¾ú´Ù. °ú°Åó·³ ¸î ³â µ¿¾È Á¤ÀÛ Ä¿³ÎÀÇ ±¸Á¶¿¡ °üÇÑ Ã¥ÀÌ ´Ü 1~2±Ç ¹Û¿¡ ³ª¿ÀÁö ¾Ê´ø ½ÃÀý¿¡ ºñÇÏ¸é ±×·¡µµ ³´´Ù°í ÇÒ ¼ö ÀÖ´Ù. Ä¿³Î ºÐ¾ß¿¡¼µµ Ã¥µéÀÌ Á¡Â÷ ¸¹¾ÆÁ® À̸¥¹Ù ¡®µ¥ÀÌÅÍ ½º¸ð±×¡¯ Çö»óÀÌ ¿À°í ÀÖ´Ù. @