Go back OS Review Device Driver NS Tools Home Papers Daily Link To Main |
10. µ¥µå¶ô (Deadlocks)
Áö³ 2Àå¿¡ °Éó¼ µîÀåÇß´ø Å°¿öµåÁß Çϳª´Â µ¥µå¶ô(deadlock)À̾úÁÒ. µ¥µå¶ôÀ» À̹øÀå¿¡¼´Â Á»´õ ±× Àǹ̸¦ ü°èÈ ½ÃÅ°°í ÇÁ·Î¼¼½º°¡ ²Ä¦´Þ½Ï ¸øÇÏ´Â µ¥µå¶ô »óŸ¦ ¹Ì¿¬¿¡ ¹æÁöÇϰųª Ç®¾îÁÖ´Â ±â¹ýµéÀ» ¸î°¡Áö ¼Ò°³Çغ¼±î ÇÕ´Ï´Ù. ¸ÕÀú µ¥µå¶ôÀÌ ¹ß»ýÇÏ´Â ÀÌÀ¯¸¦ Çѹø »ìÆ캼±î¿ä? ¸ÖƼÇÁ·Î±×·¡¹Ö ȯ°æ¿¡¼ÀÇ ¸î°¡Áö ÇÁ·Î¼¼½º´Â À¯ÇÑ°³!ÀÇ ¸®¼Ò½º¸¦ Â÷ÁöÇÏ·Á°í ¾Æ¿õ´Ù¿õ°Å¸³´Ï´Ù. ÇÑ°³ÀÇ ÇÁ·Î¼¼½º°¡ ¸®¼Ò½º¸¦ ¿ä±¸ÇßÀ»¶§ ¸¸ÀÏ ±× ¸®¼Ò½º°¡ ÇöÀç ´õÀÌ»ó Á¦°øÀÌ ºÒ°¡´ÉÇÒ¶§´Â(ÀÌ°æ¿ì´Â ´Ù¸¥ ÇÁ·Î¼¼½º°¡ ÀÌ¹Ì ±× ¸®¼Ò½º¸¦ ¼ï~ °¡Á®°¡¼ ¾²°íÀÖ´Â °æ¿ì°ÚÁÒ?) ÀÚ½ÅÀ» ´ë±â»óÅ·ΠÀüȯ½ÃŲµÚ ÇØ´ç ¸®¼Ò½º°¡ Á¦°øÀÌ °¡´ÉÇÒ¶§±îÁö ±× »óŸ¦ À¯ÁöÇÕ´Ï´Ù. À̶§, ´ë±â»óÅ¿¡ µ¹ÀÔÇÑ ÇÁ·Î¼¼½º°¡ ¿µ¿µ ÀÚ½ÅÀÇ »óŸ¦ Àüȯ½ÃÅ°Áö ¸øÇÏ´Â °æ¿ì°¡ ¹ß»ýÇϴµ¥, ±× ÀÌÀ¯´Â ±â´Ù¸®°í ÀÖ´Â ¸®¼Ò½ºµéÀ» Áã°íÀÖ´Â ÇÁ·Î¼¼½ºµé ¿ª½Ã °°Àº ÀÌÀ¯·Î ´ë±â»óÅ¿¡ ºüÁ®Àֱ⠶§¹®ÀÌÁÒ. ¿ì¸®´Â ÇöÀç ÀÌ·¸°Ô ¿µ¿øÇÏ°Ô ´ë±â»óÅ·ΠºüÁ®¹ö¸° ÀÏ·ÃÀÇ ÇÁ·Î¼¼½ºµéÀÌ Ã³ÇØÀÖ´Â »óȲÀ» ¹Ù·Î µ¥µå¶ôÀ̶ó°í ÀÏÄ´ °ÍÀÔ´Ï´Ù. (»ç¶÷µé ¼·Î ÀÚ½ÅÀÇ Ã¥ÀÓÀ̳ª Àǹ«¸¦ ÀÌ·±½ÄÀ¸·Î ¶°¹Ð¸é »çȸÀûÀ¸·Î µ¥µå¶ôÀÌ ÀϾ´Â°Ô ¾Æ´Ò±î ½Í±º¿ä) ÇÑ°¡Áö ÁÖ¸ñÇÒ »ç½ÇÀÌ Çϳª Àִµ¥, ¾ÆÁ÷±îÁöÀÇ ´ëºÎºÐÀÇ ¿À¿¡½º´Â µ¥µå¶ô ÇعýÀ» Á¦°øÇÏÁö ¾Ê°í ÀÖ´Ù´Â °ÍÀÌÁÒ. ¿©Å ±×·³ ±×¹®Á¦¸¦ ¾î¶»°Ô ÇØ°áÇ߳İí¿ä? ¾ó¸¶Àü Çб³ Àü»ê½Ç¿¡¼ ¿£Æ¼¸¦ µ¥¸®°í ³ë´Âµ¥ Á¡Á¡ ´À·ÁÁö´õ´Ï °á±¹ ¸ÀÅÊÀÌ°¡ °¡¼ ¶¡À» È긮¸ç ¾ó·· ¾îµå¹ÎÀ» ã¾Æ°¬´õ·¨ÁÒ. "ÇìÀÌ ¾ÆÀú¾¯, ¸¶ÀÌ »ÇÅ· ¿£Æ¼ ¸À°¬½á, ÄÞ¿Â! ÇïÇÁ¹Ì!". ±× ¾îµå¹Î ¾ÆÀú¾¾ ÀλóÀ» ÆÅ! ¾²´õ´Ï Á¦°¡ ÀÖ´ø ÀÚ¸®·Î ¼ºÅ¼ºÅ,,,¿ª½Ã ¾îµå¹ÎÀº ´Ù¸£´õ¶ó±¸¿ä. ±× ºí·ç ½ºÅ©¸°¿¡ ¶á ÀÌÇظøÇÒ ¼ýÀÚµé°ú ¸Þ½ÃÁö¸¦ ¸é¹ÐÇÏ°Ô °üÂûÇÏ´õ´Ï Á¦°Ô ¸»ÇÏ´õ±º¿ä. "reboot,,," ¸®¼Â´ÜÃ߸¦ ¾â¹Ó°Ô ÄÛ~ ´©¸£°í ¾îµÒ¼ÓÀ¸·Î »ç¶óÁ³½À´Ï´Ù. µ¥µå¶ô ÇعýÀº ±Ù·¡¿¡ µé¾î¼¾ß Á¶±Ý¾¿ Ãß°¡µÇ°í ÀÖ´Â °æÇâÀεí ÇÕ´Ï´Ù. ÀÌ´Â Çö´ëÀÇ ¿À¿¡½º¿¡¼´Â ¿¹Àü°ú´Â ºñ±³ÇÒ¼ö ¾øÀ»¸¸Å ´Ù¾çÇÑ ÇÁ·Î¼¼½ºµé ¹× ´Ù¾çÇÑ ¸®¼Ò½ºµéÀÌ ³¹«ÇÏ°í ÀÖ°í, Çѹø »ý¼ºµÇ¸é ¿¹Àüº¸´Ù ´õ¿í ¿À·¡ °³°Ü¾ß ÇÏ´Â(long-live) ÆÄÀϵîÀÌ µ¥ÀÌÅͺ£À̽º µî°ú ÇÔ²² Çö´ë ±â¼úÀÇ ÃѾƷΠ¶°¿À¸£±â ¶§¹®Àεí ÇØ¿ä. »ç½Ç Ãʹݿ¡ ¾ð±ÞÇß´ø ¹èÄ¡½Ã½ºÅÛ Â÷¿øÀÇ ¿À¿¡½º¿¡´Â µ¥µå¶ô ÇعýÀÌ ±×¸® ÇÊ¿äÇÑ Å×Å©´ÐÀÌ ¾Æ´Ï°ÚÁÒ? ¸ÕÀú ¿©±â¼ ¸»ÇÏ´Â ¸®¼Ò½º°¡ ¹«¾ùÀ̳Ä,,, ¸®¼Ò½º¸¦ ¸î°¡Áö ¹üÁÖ·Î ³ª´©¾î º¸¸é Å©°Ô ¸Þ¸ð¸® °ø°£, ¾¾ÇÇÀ¯ ½ÎÀÌŬ, I/OÀåÄ¡ µîÀ¸·Î ³ª´¼ö ÀÖ°ÚÁÒ. ¸¸ÀÏ 2°³ÀÇ ¾¾ÇÇÀ¯°¡ ´Þ¸° ½Ã½ºÅÛÀ̶ó¸é ±× ½Ã½ºÅÛ¿¡¼ '¾¾ÇÇÀ¯ ŸÀÔÀÇ ¸®¼Ò½º´Â µÎ°³ÀÇ ÀνºÅϽº(instance)¸¦ °¡Áö°í ÀÖ´Ù'¶ó°í ¸»ÇÏ°Ô µË´Ï´Ù. ¸®¼Ò½º¸¦ Á¤ÀÇÇÒ¶§ ÇÑ°¡Áö ÁÖÀÇÇÒ »çÇ×ÀÌ Àִµ¥, ÇÁ¸°ÅÍ°¡ 2´ë ÀÖ´Ù°í ÇսôÙ. ¸¸ÀÏ ÇÁ¸°Æà ÇÁ·Î¼¼½º°¡ ÇÁ¸°ÅÍ ¸®¼Ò½ºÀÇ ÀνºÅº½º¸¦ ¿ä±¸ÇÒ¶§, ±× ÇÁ¸°ÅÍ°¡ ¸¸ÀÏ ¼·Î ¿·¿¡ ³õ¿©ÀÖ´Ù¸é¾ß µÑÁß ÇϳªÀÇ ÀνºÅº½º¸¦ ³Ñ°ÜÁÙÅ×´Ï 2°³¸¦ °°Àº ¸®¼Ò½º ŸÀÔÀÇ ÀνºÅϽº·Î ¼³Á¤Çصµ ¹«¹æÇÏÁö¸¸, ¸¸ÀÏ ÇÑ°³´Â 1Ãþ, ¶ÇÇÑ°³´Â 10Ãþ¿¡ ³õ¿©ÀÖ´Ù¸é À̶§´Â ¹®Á¦°¡ ´Þ¶óÁý´Ï´Ù. Áï, ´Ù¸¥Á¾·ù ŸÀÔÀÇ ÀνºÅº½º°¡ 1°³¾¿ ÀÖ´Ù°í ¼³Á¤À» ÇÏÁö ¾Ê´Â´Ù¸é À¯Àú´Â ÇÁ¸°Æ® ¸í·ÉÀ» ¶§¸°µÚ 1Ãþ¿¡¼ 10Ãþ±îÁö »±ÀÌÄ¡°ÔµË´Ï´Ù. ¾ðÁ¦ ¾î´À ÇÁ¸°ÅÍÀÇ ¸®¼Ò½º ÀνºÅÏÆ®¸¦ »ç¿ëÇÒÁö´Â ±×¶§ÀÇ »óȲ¿¡ µû¶ó ´Þ¶óÁö´Ï±î¿ä. ¸®¼Ò½º¸¦ ÇÁ·Î¼¼½º°¡ È°¿ëÇϴµ¥¿¡´Â ´ÙÀ½ÀÇ 3´Ü°è °úÁ¤À» °ÅÄ¡°Ô µË´Ï´Ù. 1. ¿ä±¸(Request) 2. »ç¿ë(Use) 3. ÇØÁ¦(Release) À̶§ ¸®¼Ò½ºÀÇ ¿ä±¸¹× ÇØÁ¦´Â ¼¼¸¶Æ÷¾îÀÇ wait¹× signal·Î ¼öÇàÇÏ°Ô µË´Ï´Ù. ¶ÇÇÑ ¿À¿¡½º´Â ¸®¼Ò½ºÀÇ »ç¿ë °¡´É¹× ºÒ°¡´É¿¡ ´ëÇÑ ±â·ÏÀ» ½Ã½ºÅÛ Å×ÀÌºí¿¡ ±â·ÏÇÏ°Ô µÇÁö¿ä. ¸ÕÀú ¸®¼Ò½º°¡ ÀϾ±â À§ÇÑ 4°¡Áö ÇÊ¿äÁ¶°ÇÀÌ ÀÖ½À´Ï´Ù. ÇÊ¿äÁ¶°ÇÀ̶ó´Â ¶æÀº ¿©±â¼ 'µ¥µå¶ôÀÌ ÀϾ¼ Çѹø »ìÆ캸´Ï ±× »óȲÀÌ ¹Ýµå½Ã 4°¡Áö Á¶°ÇÀ» ¸ðµÎ µû¸£´õ¶ó' ÀÔ´Ï´Ù. '4°¡Áö Á¶°Ç ¸ðµÎ¿¡ ¾î¶² »óȲÀÌ ÇØ´çµÈ´Ù°í Çؼ ¹Ýµå½Ã µ¥µå¶ôÀÌ ÀϾ°ÍÀÌ´Ù'´Â ¾Æ´ÏÁÒ. À§ÀÇ ¸»ÀÌ ÀÌÇصÇÁö ¾ÊÀ¸½ÅºÐ ´Ù½ÃÇѹø °õ°õÈ÷ µÇ¾Ã¾îº¸¼Å¿ä. 1. »óÈ£¹èŸ¼º(¹ÂÅؽº:Mutual Exclusion): Á¸ÀçÇÏ´Â ¸®¼Ò½º!Áß ÃÖ¼ÒÇÑ ÇÑ°³´Â Àý´ë °øÀ¯°¡ ºÒ°¡´ÉÇÑ ¸ðµå¿¡ ³õ¿©ÀÖ´Â °æ¿ìÀÔ´Ï´Ù. 2. Áã°í±â´Ù¸®±â(Hold&Wait): Á¸ÀçÇÏ´Â ÇÁ·Î¼¼½º!Áß ÃÖ¼ÒÇÑ ÇÑ°³´Â ÃÖ¼ÒÇÑ ÇÑ°³ÀÇ ¸®¼Ò½º¸¦ ²¿¿Á Áã°í¼ ´õ ÇÊ¿äÇÑ ¸®¼Ò½º¸¦ ±â´Ù¸®°í ÀÖ´Â °æ¿ìÀÔ´Ï´Ù.(¹°·Ð ´õ ÇÊ¿äÇÑ ¸®¼Ò½º´Â ÇöÀç ´Ù¸¥ ÇÁ·Î¼¼½º°¡ Áã°í ÀÖÁÒ) 3. ¼±Á¡ºÒ°¡(No Preemption): ¸®¼Ò½ºÀÇ ¼±Á¡ÀÌ Çã¿ëµÇÁö ¾ÊÀ»°æ¿ìÀÔ´Ï´Ù. Áï, ÇÑ°³ÀÇ ÇÁ·Î¼¼½º°¡ ÀÏ´Ü ¸®¼Ò½º¸¦ Áã°ÔµÇ¸é ÀÚ½ÅÀÇ ÀÓ¹«¸¦ ¿Ï¼öÇÑµÚ ÀÚÁøÇØÁ¦ÇÏÁö ¾Ê´Â ÀÌ»ó ±× ´©±¸µµ ±×ÀÇ ¸®¼Ò½º¸¦ »©¾ÑÀ» ¼ö ¾ø´Â °æ¿ìÀÔ´Ï´Ù. 4. ¿øÇü¼øȯ±â´Ù¸²(Circular Waiting): ±â´Ù¸®°í ÀÖ´Â ÇÁ·Î¼¼½ºÀÇ ÁýÇÕ {P0, P1,..., Pn}ÀÌ ¹Ýµå½Ã Á¸ÀçÇϵÇ, À̶§ P0Àº P1ÀÌ Áã°í ÀÖ´Â ¸®¼Ò½º¸¦ ±â´Ù¸®°í, P1´Â P2ÀÇ,,,¸¶Áö¸·À¸·Î PnÀº P0ÀÇ °¡ Áã°í ÀÖ´Â ¸®¼Ò½º¸¦ ±â´Ù¸®´Â °æ¿ìÀÔ´Ï´Ù. ¾Æ, ´Ù½ÃÇѹø ´õÆÛ±º ÀÌ °Á¸¦ ÀÛÀº ÅؽºÆ® ¿¡µðÅÍ·Î ±â¼úÇϸç ÁÂÀýÀ» ´À³¢´Â ¼ø°£ÀԹ̴Ù. ¸ÕÀú µ¥µå¶ô ¹®Á¦¿¡ ´ëÇÑ °³³äÀ» ´õ¿í ¸íÈ®È÷ Çϱâ À§ÇÏ¿© ÇÊ¿äÇÑ ¸®¼Ò½º ÇÒ´ç ±×·¡ÇÁ(Resource-allocation graph)¸¦ ±×·Á¾ß¸¸ µÇ´Âµð, Èì, ¾Æ¹«·¡µµ Çѹø ¹«¸®¸¦ Çؼ¶óµµ ¾Æ½ºÅ°Ä³¸¯ÅÍ·Î Çѹø ½Ãµµ¸¦ Çغ¸°Î½À´Ï´Ù. / ¤± . O ²þ²þ,,, ¾Æ,,,µµÀúÈ÷ ºÒ°¡´ÉÇÕ´Ï´Ù -_-. È»ìÇ¥¿Í ¹Ú½º ÂÀ ±×¸®°í ¶Ë±Û¹è±â°¡ ÇÊ¿äÇϰǸ¸, À̸ðµÎ¸¦ ³ªÀÇ ½Ç·ÂÀ¸·Î ¿©±â¿¡ ±×¸°´Ù´Â°Í ÀÚü°¡ ºÒ°¡´É ÇÕ´Ï´Ù. ¾ÕÀ¸·Î ÆîÃÄÁö´Â ¼³¸íÀ» Á»´õ ¸íÈ®ÇÏ°Ô ÀÌÇØÇÏ°í ½ÍÀ¸½ÅºÐ, ±³°ú¼ p.211ºÎÅÍ ³ª¿À´Â ±×¸²À» Âü°íÇϽʼî. ¸ÕÀú P¿¡¼ RÀ» ÇâÇÑ È»ìÇ¥´Â µ¿±×¶ó¹ÌÀÎ ÇÁ·Î¼¼½º P°¡ ³×¸ð ŸÀÔÀÇ Á¡ ¸®¼Ò½º RÀ» ¿ä±¸ÇÏ°í ÀÖ´Ù´Â ¶æÀÌ°í, R¿¡¼ P¸¦ ÇâÇÑ È»ìÇ¥´Â ¸®¼Ò½º RÀÌ ÇÁ·Î¼¼½º P¿¡ ÇÒ´çµÇ¾ú´Ù´Â ÀǹÌÀÌÁÒ. ¸ÕÀú ¸®¼Ò½º ÇÒ´ç ±×·¡ÇÁ¿¡¼ ³×¸ð ŸÀÔ³»¿¡ ´Ü ÇÑ°³¸¸ÀÇ Á¡ ¸®¼Ò½º ÀνºÅº½º°¡ Á¸ÀçÇÒ¶§ ÇÁ·Î¼¼½º¹× ¸®¼Ò½º»çÀÌÀÇ È»ìÇ¥°¡ ¼·Î ¼øȯÇÏ´Â ·çÇÁ¸¦ ±×¸®¸é ©ÅÊÀÌ µ¥µå¶ôÀÔ´Ï´Ù. ÇÏÁö¸¸, °°Àº ŸÀÔÀÇ ¸®¼Ò½º°¡ ¿©·¯°³ÀÇ ÀνºÅº½º·Î Á¸ÀçÇÑ´Ù¸é ±×·¡ÇÁ¿¡¼ ¼øȯÇÏ´Â ·çÇÁ°¡ ³ª¿Â´Ù°í ¹Ýµå½Ã µ¥µå¶ôÀº ¾Æ´ÏÁÒ. µ¥µå¶ôÀÌ ¸¸ÀÏ ¹ß»ýÇß´Ù¸é ¹Ýµå½Ã ¼øȯÇÏ´Â ·çÇÁ°¡ ³ª¿À°Ô µÇ°í¿ä. °«ÀÕ? µ¥µå¶ôÀÌ ¹ß»ýÇÏ´Â °æ¿ì¿¡ ´ëÇÑ ¸ðµ¨¸µÀ» ÀÌÁ¦ ¿ì¸®´Â ÀÌÇظ¦ ÇßÀ¸´Ï, µ¥µå¶ôÀ» ó¸®ÇÏ´Â ¹æ¹ýÀ» ³íÇغ¸µµ·Ï ÇսôÙ. ¹æ¹ýÀº ¾Æ·¡¿Í °°ÀÌ Å©°Ô 3°¡Áö°¡ ÀÖ½À´Ï´Ù. 1. ÇÁ·ÎÅäÄÝ(protocol:±Ô¾à)À» ÀÌ¿ëÇÏ¿© ¾ÖÃÊ¿¡ µ¥µå¶ôÀÌ ¹ß»ýÇÏ´Â °ÍÀ» ¹Ì¿¬¿¡ ¹æÁöÇÏÀÚ. 2. ÀÏ´Ü ½Ã½ºÅÛÀ¸·Î ÇÏ¿©±Ý µ¥µå¶ô¿¡ µé¾î°¡´Â °ÍÀ» Çã¿ëÇϵÇ, ½º½º·Î ȸº¹Çϵµ·Ï ¸¸µéÀÚ. 3. µ¥µå¶ô¹®Á¦ ÀÚü¸¦ ¾Ã¾î¹ö¸®ÀÚ. ±×¸®°í µ¥µå¶ôÀÌ ¾ÈÀϾî³Ã´ ÇÏÀÚ. Á» ÀǾÆÇÏ°ÚÁö¸¸, À¯´Ð½º¸¦ ºñ·ÔÇÑ ´ëºÎºÐÀÇ ¿À¿¡½º´Â ¹Ù·Î 3¹øÀÇ ¹æ¹ýÀ» ÀÌ¿ëÇÑ´ä´Ï´Ù. Ȳ´çÇÏÁÒ? »·»·ÇѰ͵é,,,°í·Î ¿ì¸®´Â ¿µ¹®µµ ¸ð¸¥Ã¼ ¼ö¸¹Àº µ¥µå¶ôÀ» ¿©Å ´çÇÑ°Ì´Ï´Ù. ¸ÕÀú 1¹øÀ» ±¸ÇöÇÏ´Â ¹æ¹ýÀº 2°¡Áö·Î ´Ù½Ã ³ª´¹´Ï´Ù. µ¥µå¶ô¹æÁö(deadlock prevention)¿Í µ¥µå¶ôÇÇÇϱâ(deadlock aviodance)ÀÌÁö¿ä. ÀÌ µÑÀÇ ¶æÀÌ ºñ½º¹«·¹ÇÑ°Ô ¾î° ¾Æ¸®±î¸®ÇØ º¸ÀÌÁö¸¸, µÑÀº ¸íÈ®ÇÑ Â÷À̸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ¸ÕÀú preventionÀº À§¿¡¼ ±â¼úµÈ 4°¡Áö Á¶°ÇÁß Çϳª¶óµµ ¸¸Á·ÀÌ ¾ÈµÇ¸é °áÄÚ µ¥µå¶ôÀº ¹ß»ýÄ¡ ¾Ê´Â´Ù´Â È®½ÅÇÏ¿¡ Ãâ¹ßÀ» ÇÏÁÒ. ±×·¡¼ ¸®¼Ò½º ÇÒ´ç½Ã ù ´Ü°èÀÎ ÇÁ·Î¼¼½ºÀÇ ¸®¼Ò½º ¿ä±¸¿¡ ÀÀÇϱâ Àü¿¡ 4°¡Áö Á¶°ÇÀ» ÇÇÇϵµ·Ï ¸î°¡Áö Á¦ÇÑÀ» °¡ÇÏ°Ô µË´Ï´Ù. ÀÌ¿Í º°°³·Î avoidance´Â ÇÁ·Î¼¼½ºµéÀÌ ¿À¿¡½º¿¡°Ô ¸ÕÀú ¸®¼Ò½ºÀÇ »ç¿ë°èȹ¿¡ ´ëÇÑ Ãß°¡ÀûÀÎ Á¤º¸¸¦ ±Í¶äÇØÁÖ°Ô µÊÀ¸·Î¼ µ¥µå¶ôÀ» ¹æÁöÇϴµ¥, ¾ÕÀ¸·Î µîÀåÇÒ ¾ÈÀü»óÅÂ(Safe State)¸¦ ¹ðÄ¿½º¾Ë°í¸®Áò(Banker's Algorithm)À» ÅëÇØ ±¸ÇöÇÏ´Â °úÁ¤¿¡¼ ¹Ù·Î ÇÑ°³ÀÇ ÇÁ·Î¼¼½º°¡ ÃÖ´ë·Î ¸î°³ÀÇ Æ¯Á¤ÇÑ ¸®¼Ò½º¸¦ Á¡À¯ÇÒ°ÍÀΰ¡¿¡ ´ëÇÑ Á¤º¸°¡ ÇÊ¿äÇÏ°Ô µÈ´ä´Ï´Ù. 2¹øÀº ½Ã½ºÅÛÀ¸·Î ÇÏ¿©±Ý µ¥µå¶ôÀÌ ¹ß»ýÇß´ÂÁö, ¾ÈÇß´ÂÁö¸¦ ÆǺ°ÇÏ°í ȸº¹Çϵµ·Ï ¸¸µé¾îÁÖ´Â ¾Ë°í¸®ÁòÀ» »ç¿ëÇÏ°Ô µË´Ï´Ù. À̶§ »ç¿ëµÇ´Â ¾Ë°í¸®ÁòÀº ¹ðÄ¿½º¾Ë°í¸®Áò°ú ¸Å¿ì À¯»çÇÏÁö¸¸ ¾à°£ ´Ù¸£´õ±º¿ä. 3¹øó·³ ¹è°´Â ½Ã½ºÅÛ¿¡¼´Â ´ç¿¬È÷ µ¥µå¶ôÀÌ ¹ß»ýÇÏ°Ô µÇ°í ½Ã½ºÅÛ ¸®¼Ò½º°¡ ¼Ò¸ðµÇ¸é¼ ½Ã½ºÅÛÀÌ Á¡Á¡ ´À·ÁÁö°í, ½ÇÇàµÇÁö ¸øÇÏ´Â ÇÁ·Î¼¼½º°¡ ¹ß»ýÇÏ°ÔµÇÁÒ. °á±¹Àº Æøź¸Â°Ô µË´Ï´Ù. ¸ÕÀú µ¥µå¶ô¹æÁö(deadlock prevention) ±â¹ýÀ» »ìÆ캾½Ã´Ù. Á¶°Ç1 Àº ¹ÂÅؽºÀε¥, ÀÌ´Â ¸®¼Ò½ºÀÇ ¿ø·¡ Ư¼º»ó Àý´ë °øÀ¯¸¦ ÇÒ ¼ö ¾ø´Â ¸®¼Ò½º°¡ Á¸ÀçÇؾ߸¸ Çϱ⿡ ¹ÂÅؽº¸¦ Á¦°ÅÇϴ°ÍÀº ÀÏÂġ Æ÷±âÇÕ´Ï´Ù. °á·ÐÀº Á¶°Ç1 ±ý¼ö ¾ø´Ù ÀÔ´Ï´Ù. Á¶°Ç2´Â Áã°í±â´Ù¸®±âÀε¥ À̸¦ ±ú±â À§ÇÏ¿© ¸ðµç ¸®¼Ò½º¸¦ ÇѲ¨¹ø¿¡ Áã°í ÇÁ·Î¼¼½ºÀÇ ½ÇÇàÀ» ½ÃÀÛ Çϰųª, ÇÁ·Î¼¼½º°¡ ¾î¶² ¸®¼Ò½º¸¦ ¿ä±¸Çҽÿ¡´Â ÀÚ½ÅÀÌ Àý´ë·Î ´Ù¸¥ ¸®¼Ò½º¸¦ Áã°í ÀÖÁö ¸øÇÏ°Ô Çϴ°ÍÀÌÁÒ. ÀÌ ¹æ¹ýÀÇ ´ÜÁ¡Àº ¸®¼Ò½ºÀÇ È°¿ëµµ°¡ È®~ ¶³¾îÁüÀ¸·Î½á º»ÁúÀûÀÎ ¿À¿¡½ºÀÇ ¸ñÀûÀ» À§¹èÇÏ°Ô µÇ°í ƯÁ¤ ÇÁ·Î¼¼½º°¡ ¹è°íÇÄ(starvation)¿¡ ½Ã´Þ¸± °¡´É¼º¿¡ ³õÀδٴ °ÍÀÔ´Ï´Ù. Á¶°Ç3Àº ¼±Á¡ÇüÀ» Àû¿ëÇÔÀ¸·Î½á ±ý¼ö Àִµ¥, ÀÌ´Â ÇÑ ÇÁ·Î¼¼½º°¡ ÇÊ¿ä·ÎÇÏ´Â ¸®¼Ò½º¸¦ ´Ù¸¥ ÇÁ·Î¼¼½º°¡ ´Ù¸¥ ¸®¼Ò½º¸¦ ±â´Ù¸®¸é¼ Áã°í ÀÖ´Ù¸é ±× ¸®¼Ò½º¸¦ ¼±Á¡ÇÔÀ¸·Î½á »©¾Ñ¾Æ ¿À°Ô µË´Ï´Ù. Áï, '±â´Ù¸®´Â ÀÚ¿© ¸®¼Ò½º °¡Áú ÀÚ°Ý ¾ø´Ù'¶ó´Â ¸ðÅä·Î µ¥µå¶ôÀ» ¹æÁöÇϴ°ÍÀÌÁÒ. ÀÌ´Â ÇÑ°¡Áö Å« ´ÜÁ¡À» °¡Áö°í Àִµ¥, ¹Ù·Î ¸ðµç ¸®¼Ò½º¿¡ Àû¿ëÇÒ¼ö´Â ¾ø´Ù´Â »ç½ÇÀÔ´Ï´Ù. ÇÁ¸°ÅÍ°°Àº ¸®¼Ò½º¿¡ Àû¿ëÇß´Ù°¡´Â ¸öÀº À̽ÂÈñÀε¥ ¾ó±¼Àº ÂïÂïÀÌ µûÀ§ÀÇ ±ú´Â ±×¸² ³ª¿ÀÁÒ. ¸¶Áö¸·À¸·Î Á¶°Ç4 ¿øÇü¼øȯ±â´Ù¸²À» ±ú±â À§ÇÏ¿© ¸ðµç ¸®¼Ò½º¿¡ ¹øÈ£¸¦ ºÎ¿©ÇÏ°í, ÇÑ ÇÁ·Î¼¼½º°¡ ´ÙÀ½ ¸®¼Ò½º¸¦ ÇÒ´çÇÒ¶§¿¡´Â ¹Ýµå½Ã ¸®¼Ò½º ¹øÈ£°¡ Àü ¸®¼Ò½ºº¸´Ù Ŭ¶§¿¡¸¸ ÇÒ´çÀÌ °¡´ÉÇϵµ·Ï ±Ô¾àÀ» ¸Î°ÔµË´Ï´Ù. ±×·±µ¥ È¿À²¼ºÀ» À§ÇØ ¸®¼Ò½º¸¶´Ù »ç¿ëµÇ´Â ¼ø¼¸¦ °í·ÁÇÏ¿© ¹øÈ£ ºÎ¿©ÇÏ´Â ÀÛ¾÷ÀÌ ¸Å¿ì ³ÇØÇÕ´Ï´Ù. ´ÙÀ½À¸·Î µ¥µå¶ôÇÇÇϱâ(deadlock avidance) ±â¹ýÀ» À§Çؼ´Â ¶ÇÇÑ°¡Áö Áß¿äÇÑ °³³äÀ» Á¦½ÃÇØ¾ß Çϴ±º¿ä. ¹Ù·Î ¾ÈÀü»óÅÂ(Safe State)¶ó°í ºÒ¸®¿ì´Â »óÅÂÀε¥, ÀÌ´Â ¶È°°Àº ÀüÁ¦(°°Àº Á¾·ùÀÇ ÇÁ·Î¼¼½º¿Í °°Àº °¹¼öÀÇ ¸®¼Ò½º)¿¡¼µµ ƯÁ¤ ¼ø¼·Î ÇÁ·Î¼¼½º°¡ ¸®¼Ò½º¸¦ Á¡À¯ÇÏ°Ô µÇ¸é µ¥µå¶ôÀÌ ¹ß»ýÇÏÁö ¾Ê´Â ¾ÈÀü¼ø¼(Safe Sequence)°¡ Á¸ÀçÇÏ°Ô µÇ°í, ¹Ù·Î ±× ¾ÈÀü¼ø¼°¡ Á¸ÀçÇÏ´Â »óȲÀ» ¹Ù·Î ¾ÈÀü»óŶó°í Á¤ÀÇÇÏ´Â °ÍÀÌÁÒ. ÀÌ°ÍÀ» Á÷°üÀûÀ¸·Î »ý°¢ÇÑ´Ù¸é, ÇÁ·Î¼¼½º´Â ¸®¼Ò½º¸¦ Á¡À¯!ÇÏ´Â ÇàÀ§ »Ó¸¸ ¾Æ´Ï¶ó ¸®¼Ò½º¸¦ ³ö!ÁÖ´Â ÇàÀ§µµ ÇÑ´Ù´Â »ç½ÇÀ» »ó±âÇßÀ»¶§ ºÐ¸íÀÌ ¸®¼Ò½ºÀÇ ÇÒ´ç ¼ø¼¿¡ µû¶ó µ¥µå¶ôÀÌ ¹ß»ýÇϱ⵵ ¾ÈÇϱ⵵ ÇÑ´Ù´Â »ç½ÇÀ» ´À³¥¼ö ÀÖÀ»°Ì´Ï´Ù. µ¥µå¶ô»óÅ´ ºñ¾ÈÀü»óÅÂÀÇ ºÎºÐÁýÇÕÀÔ´Ï´Ù. °í·Î ¾ÈÀü»óÅ¿¡¼´Â Àý´ë·Î µ¥µå¶ôÀÌ ÀϾÁö ¾Ê´Â´Ù´Â º¸ÀåÀ» ¹Þ´Â´Ù´Â ÀüÁ¦¸¦ ÇÒ¼ö ÀÖ°ÔµÇÁÒ. ±×·³ µµµ¥Ã¼ ¾ÈÀü¼ø¼¶õ? (What is the Safe Sequence?) ¸¸ÀÏ ÇÁ·Î¼¼½ºÀÇ ÁýÇÕ {P1, P2,..., Pn}ÀÌ ÀÖ´Ù°í ÇÒ¶§, ÀÓÀÇÀÇ Pi°¡ ¿ä±¸Çϴ ŸÀÔÀÇ ¸®¼Ò½º ÀνºÅÏÆ®ÀÇ ¼ö°¡ ÀÓÀÇÀÇ Pj(À̶§ j<i)¿¡ ÀÌ¹Ì ÇÒ´çµÈ ¼ö¿Í ¾ÆÁ÷ Á¦°ø °¡´ÉÇÑ °°Àº ŸÀÔÀÇ ¸®¼Ò½º ÀνºÅºÆ®ÀÇ ¼öÀÇ ÇÕº¸´Ù ÀÛ´Ù!¸é ÇÁ·Î¼¼½º°¡ 󸮵Ǵ ¼ø¼<P1, P2,..., Pn>Àº ¾ÈÀü¼ø¼ÀÌ´Ù. À§ÀÇ ¸»À» Åä´ë·Î ºÐ¹èµÈ ¸®¼Ò½ºÀÇ ¼ö¹× ³²Àº ¸®¼Ò½ºÀÇ ¼ö¸¦ ŸÀÔº°·Î Æ®·¡Å·ÇÏ°í °ú¿¬ ¾ÈÀü¼ø¼°¡ Á¸ÀçÇÏ´ÂÁö¸¦ È®ÀÎÇÑ µÚ¿¡¾ß ¸®¼Ò½º¸¦ ºÐ¹èÇÏ·Á¸é °¢ ÇÁ·Î¼¼½º°¡ ¾ÕÀ¸·Î »ç¿ëÇÒ ÃÖ´ëÇÑÀÇ ¸®¼Ò½ºÀÇ ¼ö¸¦ ŸÀÔº°·Î ¼±¾ðÇØÁà¾ß ÇÕ´Ï´Ù. ±×·¸±â¿¡ º» ¹æ¹ýÀº Ãß°¡ÀûÀÎ Á¤º¸¸¦ ÇÁ·Î¼¼½º°¡ ¿À¿¡½º¿¡°Ô ³Ñ°ÜÁÖ¾î¾ß ±¸ÇöÀÌ °¡´ÉÇÑ °ÍÀÌÁÒ. ÀÌ°ÍÀ» ¾Ë°í¸®ÁòÈ ÇÑ°ÍÀ» ¿ì¸®´Â ¹ðÄ¿Áî¾Ë°í¸®Áò(Banker's Algorithm)À̶ó°í ÇÏ°í, ±× ÀÌÀ¯´Â ÀºÇàÀÌ µ·À» ´ëÃâÇØÁÙ¶§ À§ÀÇ ¹æ¹ý´ë·Î ÇØ¾ß ÀºÇàÀÌ ÆÄ»êÇÏÁö ¾Ê°Ô µÇ±â ¶§¹®ÀÌÁÒ. µ·Àº ÇÑÁ¤µÈ ¸®¼Ò½º, ÀºÇàÀº ¿À¿¡½º, ´ëÃâÇÏ´Â »ç¶÷Àº ÇÁ·Î¼¼½º, ÆÄ»êÀº µ¥µå¶ô¿¡ °¢°¢ ´ëÀÀµÇ°ÚÁÒ? ¹ðÄ¿Áî¾Ë°í¸®Áò ¶ÇÇÑ ²Ï À¯¸íÇÑ ¾Ë°í¸®ÁòÀÔ´Ï´Ù. Á¦°¡ º» ¹®¼¿¡´Â ±¸Ã¼ÀûÀ¸·Î ±â¼úÇÏÁö´Â ¾ÊÁö¸¸, ÇѹøÂë Ã¥ p.221~p.222¿¡ ³ª¿Â ¾Ë°í¸®ÁòÀÇ È帧À» ÁÖ¿í µû¶ó°¡º¸±æ °·ÂÇÏ°Ô ±ÇÀ¯ÇÕ´Ï´Ù. ¿©±â¼´Â 2Â÷¿ø ¹è¿µéÀ» ³²¹ßÇÏ´Â °æÇâÀÌ Àֱ⿡ ±Ø½ÉÇÑ °è»ê·®°ú ´ë·®ÀÇ ¸Þ¸ð¸®¸¦ ¿ä±¸ÇÏ°Ô µÇÁö¿ä. ÀÌ·± ¾Ë°í¸®ÁòÀ» ºñ½Ñ ¾Ë°í¸®Áò(expensive algorithm)À̶ó°í ÀÏĽÀ´Ï´Ù. ±×·¡¼ ÀϹÝÀûÀÎ ¿À¿¡½º¿¡¼´Â äÅÃÀÌ ²¨·ÁÁö´Âµí ÇØ¿ä. ¹èº¸´Ù ¹è²ÅÀÌ ´õ Å«µ¥ ´©°¡ ¾²³²,,, µ¥µå¶ôÀ» ÇØ°áÇÏ´Â µÎ¹ø° ¹æ¹ý(¸ÕÀú µ¥µå¶ô ¹ß»ýÇ϶ó°í Çã°í ÈÄ¿¡ Àâ¾Æ³»ÀÚ)Àº Å©°Ô µÎ´Ü°è·Î ±× °úÁ¤ÀÌ ÁøÇàµÇÁö¿ä. ù°·Î ¸ÕÀú ƯÁ¤ ¾Ë°í¸®ÁòÀÌ µ¥µå¶ôÀÌ °ú¿¬ ¹ß»ýÇߴ°¡¸¦ ÆÇ´ÜÇÏ°í, ¸¸ÀÏ ¹ß»ýÇßÀ½À» °ËÃâÇϸé, µÎ¹ø°·Î µ¥µå¶ôÀ» ȸº¹½ÃÅ°°Ô µË´Ï´Ù. Á» ´ç¿¬ÇÑ ¼ø¼¿´³ª?,,,ÇÏÁö¸¸, ¼³¸í¿¡¼ ÀÌ·¸°Ô µÎ´Ü°è·Î ±¸Áö ³ª´« ÀÌÀ¯°¡ ÀÖ½À´Ï´Ù. ¸ÕÀú ù´Ü°è¸¦ »ìÆ캸¸é, ¸¸ÀÏ °¢ ¸®¼Ò½º°¡ ÇÑ°³ÀÇ ÀνºÅϽº¸¸À» °®´Â°æ¿ì¶ó¸é ±×³É ±×µé»çÀÌÀÇ ¿øÇü¼øȯÀ» °ËÃâÇÏ¸é °£´ÜÇÏ°Ô ÇØ°áµÇ°ÚÁö¸¸, °¢ ŸÀÔÀÇ ¸®¼Ò½º°¡ ¿©·¯°³À϶§ÀÇ µ¥µå¶ôÀ» °ËÃâÇÒ¶§¿¡´Â À§ÀÇ ¹ðÄ¿½º¾Ë°í¸®Áò°ú µ¿ÀÏÇÑ µ¥ÀÌÅÍ ½ºÆ®·°ÃÄÀÇ ¾Ë°í¸®ÁòÀ» »ç¿ëÇÏ°Ô µÇÁö¿ä. ±×·¡¼ Çѹø °ËÃâÀ» ½ÃµµÇÒ¶§¸¶´Ù ¾¾ÇÇÀ¯¿¡ ´ë·®ÀÇ ¿À¹öÇìµå°¡ ¿ä±¸µË´Ï´Ù. °í·Î ÀÌ °ËÃâ½Ãµµ¸¦ ÀÚÁÖÇÏÀÚ´Ï ±¸´õ±â ¹«¼Å¿ö¼ Àå¸ø´ã±×´Â °ÝÀÌ°í, °¡²û¾¿¸¸ ÇÏÀÚ´Ï, ¹¹ ¾ÈÇϴ°ųª ¸ÅÇÑ°¡Áö°í,,,¹Ù·Î ù´Ü°è¿¡¼ ºÎÅÍ ¿ì¸®´Â °ñ¶§¸®´Â µô·¹¸¶¿¡ ºüÁ®¹ö¸®°Ô µÇ´Â °ÍÀÌÁÒ. ¶ÇÇÑ µ¥µå¶ôÀ» ù´Ü°è¿¡¼ ¹ß°ßÇÑ´Ù°í Çصµ ÀÌ°Å ¶Ç ¹®Á¦°¡ ¹ß»ýÇØ¿ä. µ¥µå¶ôÀÌ ¹ß»ýÇߴٴ°ÍÀº ¾Ë°Î´Âµ¥, µµµ¥Ã¼ ¾î´À ÇÁ·Î¼¼½º³ðÀÌ ¹Ù·Î µ¥µå¶ôÀ» À¯¹ßÇß´ÂÁö¸¦ Åå~ Âó¾î³»±â°¡ ºÒ°¡´ÉÇÏ´Ù´Â °ÍÀÌÁÒ. ±×·¡¼ ¶Ç À̶§ µÎ°¡ÁöÀÇ ¼±ÅÃÀÇ ±â·Î¿¡ ³õÀÌ°Ô µÇ´Âµ¥, ù°´Â ÇÑ´Ù´Â ÁþÀÌ ¸¾ÆíÇÏ°Ô µ¥µå¶ô¿¡ ¿¬·çµÈ ¸ðµç ÇÁ·Î¼¼½º¸¦ ½Î±×¸® ¼÷ûÇعö¸®°Å³ª, µÑ°´Â ¼¼¿ù¾Æ ³»¿ù¾Æ ÇÁ·Î¼¼½º ÇϳªÇϳª¸¦ ¾ø¾Ö¸é¼ °ú¿¬ ÀÌ µ¥µå¶ô »óÅ°¡ Ç®¸®´ÂÁö¸¦ °üÂûÇϴ°ÍÀÌÁÒ. ÀÌ°Å ¾ÆÁÖ °ñÄ¡¾ÆÇÅ´Ï´Ù. »ý°¢Çغ¸½Ã±æ, ¸ðµç ÇÁ·Î¼¼½º¸¦ ¾ø¾ÖÀÚ´Ï ¿©Å °¢ ÇÁ·Î¼¼½º ³ª¸§´ë·Î ±×µ¿¾È ³ë°¡´ÙÇؼ ÀÌ·ç¾î³õÀº ¼º°ú¸¦ ÇѼø°£¿¡ ³¯·Á¹ö¸®´Â °ÍÀÌ°í, ±×·¸´Ù°í Çϳª ¾ø¿¡°í µ¥µå¶ô °ËÃâ½ÃµµÇÏ°í, ¶ÇÇϳª ¾ø¾Ö°í µ¥µå¶ô °ËÃâ½Ãµµ ÇÏ°í,,,¸¸ÀÏ ¹é°³ÀÇ ÇÁ·Î¼¼½º°¡ ¿¬·çµÇ¾ú´Ù¸é, ¾Æ¸¶ µ¥µå¶ô ¾î¶²³ðÀÌ À¯¹ßÇß´ÂÁö ãÀ¸·Á´Ù ³¯»ú´Ï´Ù. ÀÚ, ÀÌÁ¦´Â ¿©·¯ºÐÀÌ ¿Ö ±× À§´ëÇÏ°¡°í ÀÔÀ»¸ð¾Æ Âù¾çÇÏ´Â À¯´Ð½ºÁ¶Â÷ ÀÌ µ¥µå¶ô ÇØ°á»çµéÀ» ¿Ü¸éÇß´ÂÁö°¡ ÀÌÇØ°¡ µÇ½Ã´ÂÁö¿ä? ±×·¡¼ À̹æ¸éÀ» ¾î¶»°Ô ÇØ°áÇغ¸°Ú´Ù°í ¸ðÀÎ ÀÚĪ ¹Ú»çµéÀÌ ³»³õÀº ´ë¾ÈÀ̶õ, ´Ù¸§¾Æ´Ñ ±×³É 'Àú°Íµé ¼¯¾î¼ ¾²ÀÚ'ÀÔ´Ï´Ù. ¸»±×´ë·Î ¸®¼Ò½º¸¦ ŸÀÔº°·Î ºÐ·ùÇÏ¿© °¢ ¸®¼Ò½º¸¶´Ù ³ª¸§´ë·Î È¿°úÀûÀ̶ó°í ¿©°ÜÁö´Â µ¥µå¶ô ÇعýÀ» Àû¿ëÇÏÀÚ´Â À̾߱âÀÌÁÒ. ¿À¿¡½º¿¡ ´ëÇÑ ºÒŸ´Â È£±â½ÉÀ¸·Î ¿©±â±îÁö Á¦´ë·Î ÀÌÇØÇÏ½Ã°í ¿À½ÅºÐµéÀº ÀÌÁ¦ ¾î´ÀÁ¤µµ ¿À¿¡½º¸¦ ¹Ù¶óº¸´Â »õ·Î¿î ´«ÀÌ »ý±â¼ÌÀ»°Ì´Ï´Ù. Á¦°¡ ±âȹÇÑ ¿À¿¡½º°³·ÐÀÇ ºÐ·®ÀÇ 2/3Á¤µµ°¡ ³¡³µÀ¸´Ï±î¿ä. ÄÄÇ»ÅÍ¿¡ ¿ì¸®´Â ¹«¾ùÀΰ¡ Á¤È®ÇÑ ¼öÄ¡¸¦ ÀÔ·ÂÇÏ°í Ä®·ÎÀé Àé ´äÀ» Ãâ·Â¹Þµí, ÄÄÇ»ÅÍÀÇ ¹Ø¹ÙÅÁÀÎ ¿À¿¡½ºµµ ÀÌ·¯ÇÑ ¼º°ÝÀÇ ¿¬Àå¼±¿¡¼ ¿Ïº®ÇÑ Á¶°¢À¸·Î ÀÌ·ç¾îÁ® ÀÖÀ»°ÍÀ̶ó°í ¹Ï°í Àִ»ç¶÷µéÀÌ ÀÇ¿Ü·Î ¸¹ÁÒ. ÇÏÁö¸¸, ¾îÂ¸é ¿ÀÈ÷·Á ¿À¿¡½º¾ß¸»·Î Á¤¸» ´ëÃ¥¾ø´Â ÄÄÇ»ÅÍÀÇ Àý´ëÇÊ¿ä ¿ä¼Ò¿´´ø °ÍÀÔ´Ï´Ù. ´ÙÀ½Àå¿¡¼´Â ÈĹݺÎÀÇ ²É,,,¹Ù·Î ¸Þ¸ð¸® ¸Þ´ÏÁö¸ÕÆ®¸¦ ´Ù·ê¿¹Á¤ÀÔ´Ï´Ù. ¿©±â¿¡¼µµ ¿©·¯ºÐµéÀÌ Æò¼Ò¿¡ ¸¹ÀÌ ¸»ÇÏ°í µè´Â ¹öÃĸ޸ð¸®, ¼¼±×¸ÕÆ®, ±×¸®°í ÆäÀÌ¡µîÀÇ º¸½º±Þ ´Ü¾îµéÀÌ ¹ö¶óÀ̾îƼ¼î¸¦ ÆîÄ¥¿¹Á¤ÀÌ´Ï ´ÙÀ½ÇÁ·Î,,,±â´ëÇØÁּſä. -duffer °æÁØ (http://vorlon.cwru.edu/~kxm73)
|