µðÁöÅПÀÓ½º

 


[¾Ë¾Æº¾½Ã´Ù] öÇÐÀÚµéÀÇ ¸¸Âù¹®Á¦(The Dining-Philosophers Problem)

ÇÁ¸°Æ® ÆäÀ̽ººÏ Æ®À§ÅÍ Ä«Ä«¿À½ºÅ丮
"öÇÐÀÚ 5¸íÀÌ 5°³ÀÇ Æ÷Å©¸¦ 2°³¾¿ ½á¼­ ¾î¶»°Ô »çÀÌÁÁ°Ô ½ºÆÄ°ÔƼ¸¦ ¸ÔÀ»±î"

¿øÈ°ÇÑ ÀÚ¿øÈ°¿ë À§ÇÑ ÀÛ¾÷±ÔÄ¢
ÇÁ·Î¼¼½º È¿À²Àû ±¸µ¿¿ø¸® ¿¬±¸

'ÀÚ¿øµ¶Á¡' '±³Âø»óÅÂ' ¸ðµÎ ÇÇÇؾß
µ¿±âÈ­µµ±¸ '¼¼¸¶Æ÷¾î' µîÀ¸·Î ÇØ°á



¿ÀÁ÷ ±×µéÀÇ »ý¾Ö¸¦ ¸Ô°í »ý°¢ÇÏ´Â °ÍÀ¸·Î º¸³»´Â 5¸íÀÇ Ã¶ÇÐÀÚµéÀÌ ÀÖ½À´Ï´Ù. ÀÌ Ã¶ÇÐÀÚµéÀº ¿øÇü Å×ÀÌºí¿¡ ¾É¾Æ ÀÖ°í °¢ÀÚ ¾Õ¿¡´Â ¸ÔÀ½Á÷½º·¯¿î ½ºÆÄ°ÔƼ°¡ ³õ¿©ÀÖ½À´Ï´Ù. ±×¸®°í ½ºÆÄ°ÔƼ Á¢½Ã »çÀÌ¿¡´Â 5°³ÀÇ Æ÷Å©°¡ ÀÖ½À´Ï´Ù. öÇÐÀÚ´Â »ý°¢ÇÒ ¶§´Â ¾î¶² Àϵµ ÇÏÁö ¾Ê°í ¹è°¡ °íÆÄÁö¸é °¡Àå °¡±îÀÌ¿¡ ³õÀÎ µÎ °³ÀÇ Æ÷Å©¸¦ ÀÌ¿ëÇØ ½ºÆÄ°ÔƼ¸¦ ¸Ô½À´Ï´Ù.(¹Ýµå½Ã µÎ °³ÀÇ Æ÷Å©¸¦ ÀÌ¿ëÇØ¾ß ÇÕ´Ï´Ù.) ¿· »ç¶÷ÀÌ »ç¿ëÇÏ°í ÀÖ´Â Æ÷Å©´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ »óȲ¿¡¼­ ¾î¶»°Ô Çϸé öÇÐÀÚ ¸ðµÎ ½ºÆÄ°ÔƼ¸¦ Àß ¸ÔÀ» ¼ö ÀÖÀ»±î¿ä? (ÀÌ ¹®Á¦´Â Á£°¡¶ô µÎ ÂÊ°ú ¹äÀ¸·Î Ç¥ÇöµÇ±âµµ ÇÕ´Ï´Ù.)

´Ü¼øÇÏ°í ¾î¼¸é ±âÀÌÇÑ ÀÌ ³íÁ¦´Â ´ëÇп¡¼­ ÄÄÇ»ÅÍ°øÇÐÀ» °øºÎÇÏ´Â »ç¶÷À̶ó¸é ÇѹøÂë Á¢ÇÏ´Â `öÇÐÀÚµéÀÇ ¸¸Âù ¹®Á¦(The Dining-Philosophers Problem)'ÀÔ´Ï´Ù.

³×´ú¶õµå Ãâ½ÅÀ¸·Î 1972³â Æ©¸µ»óÀ» ¼ö»óÇÑ ÄÄÇ»ÅÍ°úÇÐÀÚ ¿¡Ã÷Ç㸣 µ¥ÀÌÅ©½ºÆ®¶ó(Edsger W. Dijkstra, 1930~2002)°¡ °í¾ÈÇÑ ÀÌ ¹®Á¦´Â ÄÄÇ»ÅÍ ³»¿¡¼­ ±¸Çö ÁßÀÎ ÇÁ·Î±×·¥ÀÎ ÇÁ·Î¼¼½ºÀÇ È°µ¿À» ³ªÅ¸³À´Ï´Ù. ÄÄÇ»ÅÍ¿¡¼­ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°¸é ÇÁ·Î¼¼½º°¡ »ý¼ºµÇ¾î ±¸µ¿ÇÕ´Ï´Ù. ÀÌ ÇÁ·Î¼¼½º´Â ÄÄÇ»ÅͷκÎÅÍ ÀÚ¿øÀ» ÇÒ´ç¹Þ¾Æ ÀÏÇÏ°í ¿ì¸®´Â ±× °á°ú¸¦ ¹Þ¾Æº¾´Ï´Ù. ÀÌ°ÍÀÌ ¿ì¸®°¡ ÇÁ·Î±×·¥À» ½ÇÇàÇÏ°í ±¸µ¿ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ½±°Ô »ý°¢Çؼ­ öÇÐÀÚ°¡ µÎ °³ÀÇ Æ÷Å©·Î ½ºÆÄ°ÔƼ¸¦ ¸Ô´Â ÇàÀ§´Â Æ÷Å©¶ó´Â ÀÚ¿ø(CPU¿Í ¸Þ¸ð¸® µî)À» ÀÌ¿ëÇؼ­ ½ºÆÄ°ÔƼ¶ó´Â °úÁ¦¸¦ ó¸®ÇÏ´Â °ÍÀÔ´Ï´Ù.


¹°·Ð ÀÌ·± ¹æ½ÄÀ¸·Î ÇϳªÀÇ ÇÁ·Î¼¼½º¸¸ µ¿ÀÛÇÑ´Ù¸é ¹®Á¦°¡ ¾øÁö¸¸ ¿ì¸®°¡ »ç¿ëÇÏ´Â ÄÄÇ»ÅÍ´Â ¿©·¯ ÇÁ·Î¼¼½º°¡ µ¿½Ã¿¡ ÀÏÀ» ó¸®ÇÏ°í ÀÚ¿øÀ» ¿øÇϱ⠶§¹®¿¡ ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù. ¸öÀº ÇϳªÀε¥ ¿©·¯ ¸í°ú ¿¬¾Ö¸¦ ÇÏ·Á´Ùº¸´Ï ¹®Á¦°¡ ¹ß»ýÇÏ´Â °ÍÀÌÁö¿ä. ÀÌ·² °æ¿ì »ç¶÷µéÀ» ¸¸³ª´Â ±ÔÄ¢À» Á¤ÇÏ°í ÀÏÁ¤À» Àß Á¶Á¤Çؾ߰ÚÁö¿ä. ÄÄÇ»Å͵µ ¸¶Âù°¡ÁöÀÔ´Ï´Ù. ¿øÈ°ÇÑ ÀÚ¿øÀÇ »ç¿ëÀ» À§Çؼ­´Â ÀÛ¾÷ÀÇ ±ÔÄ¢À» Á¤ÇÏ°í ¼öÇà½Ã±â¸¦ Á¶Á¤ÇÏ´Â µ¿±âÈ­°¡ ÇÊ¿äÇÕ´Ï´Ù.
¸¸¾à ±ÔÄ¢À̳ª µ¿±âÈ­ ¾øÀÌ ÇÑ ÇÁ·Î¼¼½º°¡ ÀÚ¿øÀ» µ¶Á¡ÇÑ´Ù¸é ´Ù¸¥ ÇÁ·Î¼¼½º´Â ½ºÆÄ°ÔƼ¸¦ ¸ÔÁö ¸øÇØ ±â¾Æ»óÅÂ(Starvation)¿¡ ºüÁú °ÍÀÔ´Ï´Ù. ¶Ç ¸ðµç ÇÁ·Î¼¼½º°¡ ÇϳªÀÇ Æ÷Å©¸¸ µé°í ±â´Ù¸°´Ù¸é ±×µéÀº °è¼Ó ´Ù¸¥ Æ÷Å©¸¦ ±â´Ù·Á¾ßÇÏ´Â ±³Âø»óÅÂ(deadlock)¿¡ ºüÁö°í ÄÄÇ»ÅÍ´Â ÀÛµ¿ÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.

µ¥ÀÌÅ©½ºÆ®¶ó´Â ÀÌ·± »óÈ£°£ÀÇ ¹®Á¦µéÀ» ÇØ°áÇϱâ À§ÇØ ÀÌ ³íÁ¦¸¦ °í¾ÈÇÏ¿© ¹ß»ýÇÒ ¼ö ÀÖ´Â ¹®Á¦µéÀ» »ý°¢Çغ¸°í ÇØ°á¹æ¹ýÀ» ã¾Ò½À´Ï´Ù. ±×·¸´Ù¸é ±â¾Æ³ª ±³Âø»óŸ¦ ¸·±â À§Çؼ­´Â ¾î¶»°Ô ÇØ¾ß ÇÏ´Â °ÍÀϱî?

¿ì¼± ¼¼¸¶Æ÷¾î(Semaphores)¶ó°í ÇÏ´Â µ¿±âÈ­ µµ±¸¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÀÌÅ©½ºÆ®¶ó°¡ °í¾ÈÇÑ ¼¼¸¶Æ÷¾î´Â °øÀ¯ÀÚ¿ø¿¡ ´ëÇÑ Á¢±ÙÀ» Á¦ÇÑÇÏ¿© ¹®Á¦¸¦ ÇØ°áÇÕ´Ï´Ù. °£´ÜÈ÷ ¼³¸íÇϸé ÄÄÇ»ÅÍ ÀÛµ¿À» °ü¸®ÇÏ´Â ¿ÀÆÛ·¹ÀÌÆýýºÅÛ(OS)¿¡ ¼¼¸¶Æ÷¾î °ªÀ» µÎ°í µ¡¼À°ú »¬¼ÀÀ¸·Î °ªÀ» º¯È­½ÃÄÑ ÀÚ¿ø Á¢±Ù±ÇÇÑÀ» ºÎ¿©ÇÏ´Â °ÍÀÔ´Ï´Ù. ±×·¯³ª ¼¼¸¶Æ÷¾î°¡ ¸ðµç ±³Âø»óÅ ¹®Á¦¸¦ ÇØ°áÇØÁÖÁö´Â ¸øÇÕ´Ï´Ù.

´Ù¸¥ ¿©·¯ °¡Áö ±³Âø»óÅ ÇØ°áÃ¥À» ¿­°ÅÇغ¸¸é ´ÙÀ½°ú °°½À´Ï´Ù. ÃÖ´ë 4¸íÀÇ Ã¶ÇÐÀڵ鸸 Å×ÀÌºí¿¡ µ¿½Ã¿¡ ¾Éµµ·Ï Çã¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç ÇÑ Ã¶ÇÐÀÚ°¡ Æ÷Å© µÎ °³¸¦ ¸ðµÎ ÁýÀ» ¼ö ÀÖÀ» ¶§¸¸ Æ÷Å©¸¦ Áýµµ·Ï Çã¿ëÇÏ´Â °Íµµ ¹æ¹ýÀÔ´Ï´Ù. ȤÀº ºñ´ëĪ ÇØ°á¾ÈÀ» »ç¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, öÇÐÀڵ鿡°Ô ¹øÈ£¸¦ ¸Å°Ü ¦¼öÀÇ Ã¶ÇÐÀÚ´Â ¿À¸¥ÂÊ Á£°¡¶ôÀ» Áý°í ´ÙÀ½¿¡ ¿ÞÂÊ Á£°¡¶ôÀ» Àâµµ·Ï ÇÏ´Â ¹Ý¸é, Ȧ¼öÀÇ Ã¶ÇÐÀÚ´Â ¹Ý´ë·Î ±ÔÄ¢À» Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù.

ÇÏÁö¸¸ Á¤ÇØÁø ´äÀº ¾ø½À´Ï´Ù. ÄÄÇ»ÅÍ°øÇÐÀ» ¿¬±¸ÇÏ´Â »ç¶÷À̶ó¸é È¿À²ÀûÀÌ°í âÁ¶ÀûÀÎ ±ÔÄ¢À» ã¾Æº¸´Â °Íµµ Çй®À» ÇÏ´Â ÇϳªÀÇ Áñ°Å¿òÀÏ °ÍÀÔ´Ï´Ù.

¾î¶»°Ô Çϸé öÇÐÀÚµéÀÌ ½ºÆÄ°ÔƼ¸¦ È¿À²ÀûÀ¸·Î Àß ¸ÔÀ» ¼ö ÀÖÀ»Áö ¿©·¯ºÐµéµµ ÇѹøÂë »ý°¢ÇØ º¸´Â °ÍÀº ¾î¶»°Ú½À´Ï±î?