OS

Go back

OS Review
Device Driver
NS Tools

Home
Papers
Daily Link


To Main
2. ÄÄÇ»ÅÍ ±¸Á¶ (Computer System Structure)

¿À¿¡½º¸¦ ±¸Ã¼ÀûÀ¸·Î ³íÇϱ⿡ ¾Õ¼­¼­ ¸ÕÀú ¿À¿¡½º°¡ ´ã°ÜÁú ÄÄÇ»ÅÍÀÇ ±¸Á¶¿¡ ´ëÇÑ °³°ýÀûÀÎ ÀÌÇØ°¡ ¸ÕÀú ÀÖ¾î¾ß ÇÏ´Â°Ç ´çµ¹»¥µ¥±âÀÌ°ÎÁÒ?

°í·Î, ±¸Á¶¸¦ ÇÑÆí »ìÆ캸´Â ½Ã°£À» ¿À´ÃÀº °¡Á®º¸±â·Î ÇÏÁÒ. ¸ÕÀú ÄÄÇ»Å͸¦ ÀÌ·ç´Â ºÎÇ°µé·Î½á ¾¾ÇÇÀ¯°¡ ÀÖ¾î¾ß Çϰΰí, ¾¾ÇÇÀ¯´Â °Å½ÃÀûÀ¸·Î º¸¸é µð¹ÙÀ̽º(device:ÁÖº¯±â±â)µé°ú ¿¬°áÀÌ µÇ¾îÀִµ¥, ±× »çÀÌ¿¡´Â ÄÁÆ®·Ñ·¯(controller:Á¦¾î±â)µéÀÌ ¸¶Ä¡ °í¼Óµµ·Î Åç°ÔÀÌÆ®¿Í °°Àº Á¸Àç·Î ¹öƼ°í ¼­ÀÖ°í, µµ·Î´Â °øµ¿À¸·Î »ç¿ëµÇ´Â ¹ö½º(bus:»µ¾² -_-)¶ó°í ºÒ¸®¿ì´Â ±æ·Î ÀÌ·ç¾îÁ®ÀÖ½À´Ï´Ù. À̶§ ÇÑÁ¾·ùÀÇ ÄÁÆ®·Ñ·¯´Â ÇÑÁ¾·ùÀÇ ÁÖº¯±â±â¸¦ Ã¥ÀÓÁö°ÔµÇ´Âµ¥, ÁÖº¯±â±â¶ó°í Çؼ­ ¹¹ ½ºÄ³³Ê ÇÁ¸°ÅÍ µûÀ§µé¸¸À» ÀǹÌÇÏÁö´Â ¾Ê¾Æ¿ä, ¿©±â¼­ÀÇ ÁÖº¯±â±â¿¡´Â ·¥À̳ª Çϵ尰Àº ³»ºÎÀûÀÎ ÄÄÆ÷³ÍÆ®¸¦ Æ÷ÇÔÇÏ´Â ¶æÀÌ´Ï À¯ÀÇÇϽñæ.

ÀÚ, ±×·³ ¸Ó¸´¼Ó¿¡ ±×¸²ÀÌ Çϳª ±×·ÁÁ³À¸¸®¶ó »ý°¢µË´Ï´Ù. Áß¾Ó¿¡ ¾¾ÇÇÀ¯°¡ ¶± ¹öƼ°í ÀÖ°í, °øµ¿ ¹ö½º¶ó´Â ±æÀ» ÅëÇØ ÀÏ·ÃÀÇ ÄÁÆ®·Ñ·¯µé°ú ¾¾ÇÇÀ¯´Â Åë½ÅÀ» ÇÏ°í, ±× ÄÁÆ®·Ñ·¯µéÀº °á±¹ ÁÖº¯±â±âµé°ú ¿¬°áµÇ¾îÀÖ´Â ÅäÆú·ÎÁö ¸»ÀÔ´Ï´Ù.

Àá½Ã À̾߱⸦ µ¹·Á¼­,,,Çö´ëÀûÀÎ ¿À¿¡½º¸¦ Àá½Ã À̾߱â Çغ¾½Ã´Ù. ÄÄÇ»ÅÍ¿¡ Àü¿øÀÌ µé¾î¿À´Â ¼ø°£, Á¦ÀϸÕÀú bootstrap ÇÁ·Î±×·¥À̶ó´Â°ÍÀÌ ½ÇÇàÀÌ µË´Ï´Ù. º»ÇÁ·Î±×·¥Àº ÃʱâÈ­(¾¾ÇÇÀ¯³»ºÎ!ÀÇ ºü¸£!Áö¸¸ ÀÛÀº! ¿ë·®ÀÇ ·¹Áö½ºÅÍ!¶ó ºÒ¸®¿ì´Â ±â¾ï¼ÒÀÚÀÇ ÃʱâÈ­, µð¹ÙÀ̽º ÄÁÆ®·Ñ·¯ÀÇ ÃʱâÈ­, ¸Þ¸ð¸®ÀÇ ÃʱâÈ­ µîµî)¸¦ ¸ðÁ¶¸® ½ÃÄѹö¸°´ÙÀ½-Á¦°¡ »ý°¢Çϱ⿡´Â ÇØÇǸÆÀÌ ¶ß¸é¼­ ¸ðµç Çϵå¿þ¾îÀÇ Á¤»óÀ¯¹«¸¦ üũÇÏ´Â °úÁ¤µµ ¹Ù·Î ÀÌ ´Ü°è°¡ ¾Æ´Ò±î ½Í±º¿ä- ¿À¿¡½º¸¦ ±¸µ¿½ÃÄÑÁÝ´Ï´Ù. Á»´õ Á¤È®È÷ ¸»Çϸé, ¿À¿¡½ºÀÇ Ä¿³Î(kerel:¿À¿¡½ºÀÇ °í°»ÀÌ!)À» ·¥¿¡ ¶ç¿öÁÖÁö¿ä. ¿À¿¡½ºÀÇ ÇÊ¿äÇÑ ºÎºÐµéÀÌ ½ÇÇàµÇ°í ³ª¸é ±×´ÙÀ½¿¡ ¹«¾ùÀ» ÇÏ´À³Ä,,,

ÇÏ¿°¾øÀÌ ±â´Ù¸³´Ï´Ù. ¹»? À̺¥Æ®¸¦¿ä. Àû¾îµµ ¸ÅŲÅä½Ã ÇÁ·Î±×·¡¹Ö¿¡ Á¶±ÝÀÌ¶óµµ °ü½ÉÀ» °¡Á®º» »ç¶÷À̶ó¸é ÀÍÈ÷¾Æ´Â À̺¥Æ®. ÀÌ°ÍÀº ¿À¿¡½ºÇÐÀûÀÎ ¸»·Î Á»´õ ¿øÃÊÀûÀ¸·Î ¸»ÇÑ´Ù¸é "ÀÎÅÍ·´Æ®(interrupt)"¶ó°í ÇÏÁÒ. ¾ÕÀ¸·Î À̺¥Æ®¿Í ÀÎÅÍ·´Æ®´Â °ÅÀÇ µî°¡ÀÇ ¸»·Î ¾ºÀÎ´Ù°í ¿©°ÜÁֽñæ.

ÀÎÅÍ·´Æ®´Â ¸Å¿ì Áß¿äÇÑ Àǹ̸¦ °¡Áö°í ÀÖ´Â »ç°ÇÀÔ´Ï´Ù. ÁÖ·Î ¾¾ÇÇÀ¯°¡ ¹º°¡¿¡ ¿­ÁßÇÏ°í ÀÖÀ»¶§(¾¾ÇÇÀ¯´Â ³ë´Â°Í¿¡µµ ¿­ÁßÀ» ÀßÇÏÁÒ) ÀÎÅÍ·´Æ®¸¦ °É¾îÁÜÀ¸·Î½á ¾¾ÇÇÀ¯°¡ ÀÎÅÍ·´Æ®¸¦ °ÉÀº ³à¼®ÀÌ ¿ä±¸ÇÏ´Â ÀÏÀ» ¼öÇàÇØÁÖ°Ô ¸¸µå´Â°ÍÀÔ´Ï´Ù. ÀÎÅÍ·´Æ®´Â Á¤¸»·Î ´Ù¾çÇÑ Á¾·ù·Î ³ªÅ¸³ª´Âµ¥, °ÔÁß¿¡´Â I/O°¡ ¿Ï¼ºµÇ¾úÀ½À» ¾Ë¸®´Â ÀÎÅÍ·´Æ®-ÆÄÀÏÀÇ Ä«ÇÇ°¡ ³¡³­°æ¿ì°¡ ¹Ù·Î ÀÌ°æ¿ì°ÚÁÒ- ¾î¶² ¼öÄ¡¸¦ ¿µÀ¸·Î ³ª´©´Â ÁþÀ» ÀúÁú·¶À»¶§ °É¾îÁÖ´Â ÀÎÅÍ·´Æ®, ¿À¿¡½ºÀÇ ¼­ºñ½º¸¦ ¿ä±¸ÇÏ´Â ÀÎÅÍ·´Æ®µî,,,ÂüÀ¸·Î ¸¹ÁÒ. À̶§, ¿À¿¡½º´Â ÂüÀ¸·Î ´ë´ÜÇÕ´Ï´Ù. ¾Æ´Ï, ¿À¿¡½ºÀÇ ¼³°èÀÚ°¡ ´õ ´ë´ÜÇÏ´Ù°í ºÁ¾ß°ÚÁÒ.

»ý°¢Çغ¾½Ã´Ù. ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇß´Ù´Â °ÍÀº? ¹Ù·Î ¾¾ÇÇÀ¯¿¡°Ô "³ª ÀÌ°Å ÇØÁàÀ¯"¶ó°í ÀÏÄ´ °ÍÀÌ°í, ±×·³ µµµ¥Ã¼ ¾¾ÇÇÀ¯´Â "ÀÌ°Í"À» ¹ºÁö ¾î¶»°Ô ¾Ë°í ÇØÁÙ±î¿ä? ÂïÂïÀ̶ó¸é¾ß "¸ó¼Ò¸±Çϴ°ïÁö,,,"¶ó°í ¾Ã°ÎÁö¸¸, ¿À¿¡½º´Â ¸ðµç Á¾·ùÀÇ ÀÎÅÍ·´Æ®¿¡´ëÇÑ ¸ðµç Á¾·ùÀÇ ÇØ°á¹ýÀ» ÀÌ¹Ì ÁغñÇسõÀº °ÍÀÔ´Ï´Ù. °¢ ÀÎÅÍ·´Æ®´Â °¢ ¼­ºñ½º ·çƾ°ú ÀÏÁ¾ÀÇ ÇÔ¼ö°ü°è¸¦ °¡Áö°í ÀÖ°í, ¾¾ÇÇÀ¯´Â ´ÜÁö Áß°£¿¡¼­ µÑ°£ÀÇ Â¦¸ÂÃ߱⠰ÔÀÓÀ» Áñ±â°í Àִ¼ÀÀÌÁÒ.

ÀÎÅÍ·´Æ®´Â ¶ÇÇÑ Çϵå¿þ¾îÀÎ ÄÁÆ®·Ñ·¯ »Ó¸¸ÀÌ ¾Æ´Ï¶ó ¼ÒÇÁÆ®¿þ¾î°¡ ¹ß»ý½ÃÅ°±âµµ ÇØ¿ä. ¼ÒÇÁÆ®¿þ¾î ÀÎÅÍ·´Æ® Æ®·¦(trap)À̶ó°íµµ ºÒ¸®¿ì±âµµ ÇÏ°í¿ä, "½Ã½ºÅÛÄÝ(system call)" À̶ó´Â ÇüÅ·Π¾¾ÇÇÀ¯¿¡ µµ´ÞÇÏ°Ô µÇÁÒ. À̴ ƯÁ¤ ÆÐÅÏ!ÀÇ Àü±â½ÅÈ£°¡ ½Ã½ºÅÛ ¹ö½º¸¦ µû¶ó¼­ ¾¾ÇÇÀ¯¸¦ ½ê·Á¹ö¸²À¸·Î½á ¹ß»ýÇßÀ½À» ¾Ë°Ô µË´Ï´Ù. ¾¾ÇÇÀ¯°¡ ÀÎÅÍ·´Æ®¸¦ ¹ÞÀ¸¸é(Çϵå°Ç ¼ÒÇÁÆ®°Ç°£¿¡) ¸ÕÀú ÀڱⰡ ÇÏ´øÀÏÀ» Áß´ÜÇعö·Á¿ä. ±×¸®°í ½ÇÇà±ÇÇÑÀ» ¾î¶² "¸Þ¸ð¸®ÀÇ °íÁ¤µÈ À§Ä¡"·Î È×~ ´øÁ®ÁÖÁö¿ä. ±× À§Ä¡´Â ¼­ºñ½º·çƾÀÇ Äڵ尡 ½ÃÀ۵Ǵ ÁöÁ¡À̱⶧¹®¿¡ ·çƾÀÌ ½ÇÇàµÈ´ÙÀ½¿¡¾ß, ´Ù½Ã ÇÏ´øÀÏÀ» °è¼Ó ¾¾ÇÇÀ¯´Â ÇÕ´Ï´Ù.

À§ÀÇ ÀåȲÇÑ ¼³¸íÀº ¹Ù·Î ÄÄÇ»ÅÍ ¾ÆÅ°ÅØÃÄ¿¡¼­ ÀÎÅÍ·´Æ®°¡ Â÷ÁöÇÏ´Â Á߿伺À» °­Á¶Çϱâ À§ÇÑ Àß³­Ã´ÀÔ´Ï´Ù. °³°³ÀÇ ÄÄÇ»ÅÍ ±¸Á¶ ¸¶´Ù ÀÎÅÍ·´Æ®¸¦ ó¸®ÇÏ´Â ±¸Ã¼ÀûÀÎ ¹æ¹ýµéÀÌ ³ª¸§´ë·Î Á¸ÀçÇϴµ¥, ¹Ù·Î Á÷°üÀûÀÌ¸ç ´ëÇ¥ÀûÀÎ °ÍÀÌ "ÀÎÅÍ·´Æ® º¤ÅÍ(interrupt vector)"¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ¸ÕÀú, ¾Æ¹«¸® ±× Á¾·ù°¡ ¸¹¾Æµµ, ¸ÕÀú À¯ÇÑ°³ÀÇ ÀÎÅÍ·´Æ®ÁýÇÕÀÌ Á¸ÀçÇÑ´Ù´Â ÀüÁ¦¿¡¼­ °¢ ÀÎÅÍ·´Æ® Çڵ鸵 ¼­ºñ½º ·çƾÀÌ µé¾îÀÖ´Â ÁÖ¼Ò¸¦ °¡¸£Å°´Â Æ÷ÀÎÅ͸¦ Å×À̺íÈ­ÇÑ°ÍÀÌ ¹Ù·Î ÀÎÅÍ·´Æ® º¤ÅÍÀÌÁÒ. µÎ°³ÀÇ ÀüÇô ´Ù¸¥ ¿À¿¡½ºÃ³·³ º¸ÀÌ´Â MS-DOS¿Í UNIX°¡ ¹Ù·Î ÀÌ·¯ÇÑ ¹æ¹ýÀ» ÀÌ¿ëÇÕ´Ï´Ù. ÀÎÅÍ·´Æ® ¹ß»ýÇϸé, ¸ÕÀú ÀÎÅÍ·´Æ® º¤Å͸¦ ÁÖ¿í ÈȾµÚ ´ëÀÀµÇ´Â ·çƾÀÇ ½ÃÀÛÁÖ¼Ò¸¦ ã¾Æ¼­ Çѹ濡 ÄÝÇعö¸®´Â ¹æ½ÄÀÌÁÒ.

¾Æ±îÀü¿¡ ÀÎÅÍ·´Æ® ¹ß»ý½Ã ¾¾ÇÇÀ¯´Â ÇÏ´øÀÏÀ» Áï½Ã Áß´ÜÇÑ´Ù°í ÇßÁÒ? ±×·³ µµµ¥Ã¼ ÇÏ´ø ±×ÀÏÀº ÃßÈÄ¿¡ ¾î¶»°Ô ´Ù½Ã ÇÏ°Ô µÇ´Â°¡?! ÇÏ´Â Àǹ®Á¡ÀÌ »ý±â°í ¸¿´Ï´Ù. ¾¾ÇÇÀ¯´Â ±³È°ÇÏ°Ôµµ ½ÇÇàÇÏ´ø ÀνºÆ®·°¼Ç°ú °ü·ÃµÈ »óÅÂ(·¹Áö½ºÅÍ °ªµé, ÇÁ·Î±×·¥ Ä«¿îÅÍ-´ÙÀ½À¸·Î ½ÇÇàÇؾßÇÒ Äڵ尡 ´ã°ÜÁ®ÀÖ´Â ÁÖ¼Ò¸¦ ´ã´Â °ø°£ÀÔ´Ï´Ù- µîµî)¸¦ °í½º¶õÀÌ ÀúÀåÇسõ°í ÀÎÅÍ·´Æ®¸¦ ó¸®ÇÑµÚ ´Ù½Ã ÁÖ¾Æ¾Ç ÆîÃļ­ ÇÏ´øÀÏÀ» ÇÏ°Ô µÇ´Â ½ÄÀÌÁÒ. ¶ÇÇÑ ÇϳªÀÇ ÀÎÅÍ·´Æ®°¡ ½ÇÇàµÇ°í ÀÖÀ»¶§¿¡´Â 󸮰¡ ³¡³ª±â Àü±îÁö ¶Ç´Ù¸¥ ÀÎÅÍ·´Æ®´Â ºÒ´ÉÈ­(disabled)µË´Ï´Ù. ±×·¸Áö ¾ÊÀ»°æ¿ì µÎ¹ø° ÀÎÅÍ·´Æ®°¡ 󸮵ǰí ÀÖ´ø ù¹ø° ÀÎÅÍ·´Æ®ÀÇ µ¥ÀÌÅ͸¦ ¸ù¶¥ µ¤¾î¹ö¸± À§ÇèÀÌ Àְŵç¿ä. À̶§ ù¹ø°´Â °á±¹ ¹Ì¾Æ ÀÎÅÍ·´Æ®(lost interrupt)°¡ µÇ¾î¹ö¸®°í ¸»ÁÒ.

±×·³ ÀÎÅÍ·´Æ®¶ó°í ´Ù °°Àº ÀÎÅÍ·´Æ®³Ä, ÀüÇô ¾Æ´Õ´Ï´Ù. ÀÎÅÍ·´Æ®µµ ³ª¸§´ë·Î °èº¸°¡ Á¸ÀçÇϱ⿡ ÇÁ¶óÀ̾îƼ(priority)°¡ ÁÖ¾îÁöÁÒ. ÀÎÅÍ·´Æ®µµ ¿©·µÀÌ ÇѲ¨¹ø¿¡ ¹ß»ýÇϴ°æ¿ì ÀÏÁ¾ÀÇ Å¥(óÀ½ ¿À´ÂÀÚ Ã³À½ ¼­ºñ½º±ÇÇÑ ÁÖ¾îÁü)¿¡ ´ã¾Æ¼­ º¸°üÇÏ°Ô µÇ´Âµ¥, ÇÁ¶óÀ̾îƼ°¡ ³ôÀº ³ðÀº µý¾Öµé ±×³É ¾Ã¾î¹ö¸³´Ï´Ù. ½ÉÁö¾î´Â ½ÇÇàµÇ°í ÀÖ´Â ³·Àº ÇÁ¶óÀ̾îƼ ÀÎÅÍ·´Æ®¸¦ ¹Ð¾î³»ÁÒ.

Çö´ëÀÇ ¿À¿¡½º´Â ÀÎÅÍ·´Æ® µå¸®ºì(interrupt driven) ¹æ½ÄÀÔ´Ï´Ù. À¯Àú°¡ ¾Æ¹«Áþµµ ¾ÈÇÔÀ¸·Î½á ÀÎÅÍ·´Æ®°¡ ¹ß»ý ¾ÈµÈ´Ù¸é ¾¾ÇÇÀ¯´Â ±×³É ³î±â ¹Ù»Ú°Ô µÇ´Â°ÅÁÒ. ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇÏ°Ô µÇ¸é Á¦ÀϸÕÀú ¿À¿¡½º´Â ¾¾ÇÇÀ¯ÀÇ »óŸ¦ º¸Á¸Çϱâ À§ÇÏ¿© ÀúÀåÀ» ½ÃÅ°°í, ¾î¶² ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇߴ°¡¸¦ ¾Ë¾Æ³»±â À§ÇÏ¿© "´©±¸¿©~!!!"¶ó°í ¹°¾îº¸´Â °úÁ¤À» °ÅÄ¡°Ô µÇÁÒ. ´ëÇ¥ÀûÀÎ ¹æ¹ýÀº Æú¸µ(polling)Àε¥, ÀÌ°Å Âü ¹«½ÄÇÑ ¹æ¹ýÀÔ´Ï´Ù. ¸ðµç I/O µð¹ÙÀ̽ºµé¿¡°Ô ÀÏÀÏÀÌ "´Ï°¡ ³¯ ºÒ·¶´Ù³Ä?"¶ó°í ¹°¾îº¸´Â ¹æ¹ýÀÌÁÒ.

ÀÚ, Ãʹݿ¡ Àá½Ã ¾ð±ÞÇß´ø µð¹ÙÀ̽º ÄÁÆ®·Ñ·¯¿¡ ´ëÇؼ­ ´Ù½Ã »ìÆ캸¸é, ÄÁÆ®·Ñ·¯¿¡ µû¶ó¼­´Â ÇÑ°³ ÀÌ»óÀÇ µð¹ÙÀ̽ºµéÀ» ´Þ¾ÆÁÙ¼öµµ ÀÖ½À´Ï´Ù. ±× ´ëÇ¥ÀûÀÎ ¿¹°¡ ¹Ù·Î ½ºÄ¿Áö(SCSI:Small Computer Systems Interface)ÀÔ´Ï´Ù. ÃÊ±â ¸Æ À¯Àú¶ó¸é ´©±¸³ª ÇѹøÂë ÀÚ½ÅÀÇ ¸ÆÀÌ ´ç½Ã ²Ï °ª³ª°¡°í Áøº¸ÀûÀÌ¸ç ºü¸¥ ÄÁÆ®·Ñ·¯ÀÎ ÀÌ ½ºÄ¿Áö¸¦ ³»ÀåÀ¸·Î ÀåÂøÇß´Ù´Â »ç½Ç¿¡¼­ ÀںνÉÀ» ´À³¢°ï Çß¾úÁÒ. ½ºÄ¿Áö´Â ÃÖ´ë 7°³ ÀÌ»óÀÇ µð¹ÙÀ̽ºµéÀ» µ¥ÀÌÁö üÀÎ(daisy chain:¼­·Î ²¿¸®¿¡ ²¿¸®¸¦ ¹«´Â ¹æ½Ä)À¸·Î ¿¬°áÀÌ °¡´ÉÇÏÁÒ. ½ºÄ¿ÁöÀÇ ÃÖ´ë Ư¡Àº ¹Ù·Î ±× µ¶¸³¼º¿¡ Àִµí Çѵ¥, ½ºÄ¿Áö ¾î´ðÅͶó ÇÔÀº ÀÌ¹Ì ¶ÇÇÑ°³ÀÇ I/O¸¸À» Àü´ãÇÏ´Â µ¶¸³µÈ ¾¾ÇÇÀ¯¸¦ °¡Áö°í Àֱ⿡ ±×¸¸Å­ ¾¾ÇÇÀ¯¿¡ ºÎ°úµÉ ÀÎÅÍ·´Æ®¸¦ "³» ¼±¿¡¼­" ó¸®ÇØÁÖ´Â ¹ÏÀ½Á÷ÇÑ ÀåÄ¡ÀÔ´Ï´Ù. ¾¾µð¾Ë(CDR:CD Recordable)µî°ú °°Àº ÀåÄ¡¿¡ ½ºÄ¿Áö°¡ Á¤¸» ÁÁÀºÀÌÀ¯°¡ ¹Ù·Î ¾ðÁ¦ ¹ß»ýÇÒÁö ¸ð¸£´Â I/O ÀÎÅÍ·´Æ®·Î ÀÎÇÏ¿© ¾¾ÇÇÀ¯°¡ ±× °í±ÍÇÑ ¾¾µð±Á±â ½Ã°£¿¡ µýÁþÇÏ´Â ºóµµ°¡ ÈξÀ ÁÙ¾îµé±â ¶§¹®ÀÌÁÒ. ±×·¯³ª, ÃÖ±ÙÀÇ °æÇâÀ¸·Î ±¸Áö µûÁöÀÚ¸é ¾¾ÇÇÀ¯ÀÇ ´É·ÂÀÌ ¿ö³« Ź¿ùÇØ Áö´Ùº¸´Ï ÀÌÁ¨ I/O ¶§¹®¿¡ ¹ß»ýµÇ´Â ÀÎÅÍ·´Æ® ÂëÀº "²­"À¸·Î ¿©±â´ÂÁö¶ó, ´ëÁßÀûÀÎ ¸ÆÀÇ ¾ÆÅ°ÅØÃÄ°¡ Á»´õ Àú·ÅÇÑ EIDE¹æ½ÄÀ¸·Î Áøº¸¸¦ °¡ÀåÇÑ ¿ÀÈ÷·Á ÇÑ¹ß Åðº¸ÇÏ´Â °æ¿ìµµ ½É½ÉÂú°Ô º¼¼ö ÀÖ½À´Ï´Ù.

µð¹ÙÀ̽º ÄÁÆ®·Ñ·¯´Â °á±¹ µ¥ÀÌŸ¸¦ ÁÖº¯ µð¹ÙÀ̽ºµé°£¿¡ ¿Å±â´Â Ã¥ÀÓÀ» Àü´ãÇÏ°í ÀÖ´Â ÀåÄ¡À̸ç, ¹öÆÛ¸¦ °¡Áö°í ÀÖ°ÚÁö¿ä. Âü°í·Î Åë»óÀûÀÎ µð½ºÅ© ÄÁÆ®·Ñ·¯ÀÇ ¹öÆÛ »çÀÌÁî´Â ¼½ÅÍ(´ë°Ô 512K)ÀÇ Á¤¼ö¹è°¡ µÇµµ·Ï ¼³°èµÈ´Ù°í ÇÕ´Ï´Ù. I/O¸¦ ½ÃÀÛÇϱâ À§ÇÏ¿©´Â ÀÏ´Ü ¾¾ÇÇÀ¯°¡ µð¹ÙÀ̽º ÄÁÆ®·Ñ·¯ ³»ºÎ¿¡ Á¸ÀçÇÏ´Â ·¹Áö½ºÅ;ȿ¡ Àû´çÇÑ ¸í·É¾î ¼Â!¹× µ¥ÀÌÅÍ!¸¦ ³Ö¾îÁÝ´Ï´Ù. ±×·³ µð¹ÙÀ̽º ÄÁÆ®·Ñ·¯´Â Â÷·Ê·Î ±× ¸í·É¾îµéÀ» Çϳª¾¿ ÀоÀ¸·Î½á ¾î¶°ÇÑ Á¶Ä¡¸¦ ÃëÇØ¾ß ÇÏ´ÂÁö¸¦ ÆÇ´ÜÇÏ°Ô µÇÁÒ.

ÀÚ, I/O ¿äû¿¡ ÀÇÇÏ¿©, ÀÌÁ¦ ¸· À§ÀÇ ¿©·¯°¡Áö °úÁ¤À» °ÅÃÄ I/O°¡ ½ÃÀ۵Ǿú´Ù°í °¡Á¤À» ÇսôÙ. À̶§ µÎ°¡ÁöÀÇ °æ¿ì°¡ ½Ã½ÃÅÛ ÀüüÀûÀÎ Â÷¿ø¿¡¼­ ¹ß»ýÇÒ ¼ö Àִµ¥, ÇÑ°¡Áö´Â I/O°¡ ³¡³¯¶§±îÁö ±â´Ù·È´Ù°¡ ¾¾ÇÇÀ¯ÀÇ »ç¿ë±ÇÀÌ À¯Àú¿¡°Ô ³Ñ°Å°¡´Â °æ¿ì(ÀÌ°æ¿ì¸¦ µ¿±âÀû I/O : Synchronous I/O)¿Í I/O°¡ ½ÃÀ۵Ȱ͸¸ È®ÀÎÇÏ°í ¹Ù·Î À¯Àú¿¡°Ô »ç¿ë±ÇÀÌ ³Ñ¾î°¡´Â °æ¿ì(ºñµ¿±âÀû I/O : Asynchronous I/O)°¡ ÀÖ°ÚÁÒ. °¢°¢ÀÇ ±¸Çö ¿ø¸® ¹× ¾î¶²°æ¿ì¿¡ ¾î¶°ÇÑ I/O¸¦ »ç¿ëÇÏ´ÂÁö°¡ ±Ã±ÝÇϽźÐ, Ã¥À» º¸½Ã±æ.

I/O¶ó°í ¶Ç ´Ù ¶È°°ÀÌ Ãë±ÞÇؼ­´Â ¾ÈµÇ´Â °æ¿ì°¡ »ý±â°ï ÇÏÁÒ. ¾î¶²°æ¿ìÀϱî¿ä? ÇǾ¾ÀÇ »ç¿îµåÄ«µå¸¦ ¼¼ÆÃÇÒ¶§ Á¾Á¾ µîÀåÇÏ´Â ¸»ÀÎ DMA(Direct Memory Access)°¡ ¹Ù·Î ÀÌ·¯ÇÑ Æ¯¼öÇÑ ÇüÅÂÀÇ I/OÁß ÇϳªÀÔ´Ï´Ù. º¸Åë, I/O°¡ ¹ß»ýÇÒ¶§¿¡´Â ¾ðÁ¦³ª ¾¾ÇÇÀ¯°¡ Áß°£¿¡¼­ ÁßÀçÀÚ ¿ªÇÒÀ» ÇÏ°í ÀÖÀ½À» À§¿¡¼­ ÁÖ¿í ¼³¸íÇßÀ½´Ï´Ù¸¸, ¿ÀÈ÷·Á ÀÌ·¯ÇÑ ÁßÀ翪ÇÒÀÌ ÃÊ°í¼Ó µð¹ÙÀ̽ºÀÎ ¸Þ¸ð¸®(¿©±â¼­´Â ·¥À» ÀǹÌÇÕ´Ï´Ù)¿ÍÀÇ µ¥ÀÌÅÍ ±³È¯¿¡ À־´Â ¿ÀÈ÷·Á ¹ø°Å·Î¿î Á¸Àç°¡ µÇ¾î¹ö¸®ÁÒ. °í·Î, ¿À¿¡½ºÀÇ ÀϺÎÀÎ µð¹ÙÀ̽º µå¶óÀ̹ö´Â DMAÄÁÆ®·Ñ·¯ÀÇ ·¹Áö½ºÅÍ¿¡ ¼Ò½º(source)ÀÇ ÁÖ¼Ò¹× µ¥½ºÆ¼³×À̼Ç(destination)ÀÇ ÁÖ¼Ò ±×¸®°í ´ÜÀ§ Àü¼Û Å©±â¸¦ ¼¼ÆÃÇÑµÚ ¾¾ÇÇÀ¯ÀÇ Å¬·°À» Âñ²ûÂñ²û ÈÉÃij»¸é¼­ ¿øÇÏ´Â µð¹ÙÀ̽º¿Í ¸Þ¸ð¸®¿ÍÀÇ µ¥ÀÌÅÍ ±³È¯À» Á÷Á¢ Çϵµ·Ï À¯µµÇØ ÁÝ´Ï´Ù. ¹°·Ð CPU´Â À̶§ ÇÏ°í ½ÍÀº ÀÏÀ» ÇÏ°í ÀÖ°ÔµÇÁÒ. µ¥ÀÌÅÍ Àü¼ÛÀÌ ´Ù ³¡³ª¸é ±×Á¦¼­¾ß DMAÄÁÆ®·Ñ·¯´Â ¾¾ÇÇÀ¯¿¡°Ô "¾ß, Àü¼Û ³¡³µ¾î Â¥»þ"¶ó°í ÀÎÅÍ·´Æ®¸¦ °É¾îÁÖ°Ô µË´Ï´Ù. Á¡Á¡ °ÔÀ»·¯Áö´Â ¿ì¸®ÀÇ ¾¾ÇÇÀ¯,,,

±×¹Û¿¡ Á» Ư¼öÇÑ ÇüÅ·Π¸¹ÀÌ ¾²ÀÌ´Â I/O¸¦ Á»´õ ¾ð±ÞÇغ¾½Ã´Ù. ¸ÕÀú, memory-mapped I/O¶ó´Â °ÍÀÌ Àִµ¥, À̰ͶÇÇÑ ¸Þ·Î¸®°¡ ºü¸£´Ù´Â Ư¼ºÀ» ÀÌ¿ëÇÑ ÁþÀÌÁÒ. ·¥ÀÇ Æ¯Á¤ ¿µ¿ªÀÌ Æ¯Á¤ µð¹ÙÀ̽º ÄÁÆ®·Ñ·¯ÀÇ ·¹Áö½ºÅ͵é°ú 1:1 ´ëÀÀ°ü°è¸¦ °®µµ·Ï ¸ÕÀú ¾à¼ÓÀ» ÇÑµÚ ·¥¿¡ Àü¼ÛÇÒ µ¥ÀÌÅ͸¦ ¼ï¼ï¼ï ³Ö¾îÁִ°ÍÀÌÁÒ. ¸ÕÀú, ¸Å¹ø ÀÓÀÇÀÇ ¾îµå·¹½º¿¡ µ¥ÀÌÅ͸¦ ³Ö´Â°Íº¸´Ù ÈξÀ ºü¸£´Ù´Â »ç½ÇÀº ´ç±ÙÀÌ°í, ÀÌ·¯ÇÑ ÇüÅÂÀÇ I/O°¡ ¾¾¸®¾óÅë½Å(serial communication:ºñ¿£³ª ¼Ò¼¼Áö ó·³ ÁÙÁÙÀÌ Â÷·Ê·Î 0°ú 1ÀÌ Èê·¯µé¾î°¡´Â Åë½Å)À» ÇϰԵɰæ¿ì¸¦ Àá½Ã »ý°¢Çغ¾½Ã´Ù. ¾÷µ¥ÀÌÆ®µÉ µ¥ÀÌŸ°¡ ´Ù ÁغñµÇ¾úÀ½À»(µð¹ÙÀ̽º ¶ÇÇÑ Áغñ°¡ µÇ¾îÀÖ¾î¾ß°ÎÁÒ?) µµµ¥Ã¼ ¼­·Î ¾î¶»°Ô ¾Ë¾Æ³¾±î¿ä?-Áغñ°¡ µÇ¾ß ±âÂ÷ó·³ ÀÏ·ÃÀÇ µ¥ÀÌÅ͸¦ Ãâ¹ß½ÃÅ°°ÎÁÒ.

¾¾ÇÇÀ¯°¡ À§¿¡ ¼³¸íÇÑ Æú¸µÀ» ÀÌ¿ëÇÏ¿© µð¹ÙÀ̽º°¡ ÁغñµÇ¾úÀ½À» ¾Ë¾Æ³»´Â ¹æ½ÄÀ» PIO(programmed I/O)¶ó°í ÀÏÄÂÀ¸¸ç, ¾¾ÇÇÀ¯ ´ë½Å µð¹ÙÀ̽º°¡ ÀÚÁøÇؼ­ "³ª Áغñ ¿Ï·á"¶ó°í ÀÎÅÍ·´Æ®¸¦ ¾¾ÇÇÀ¯¿¡°Ô ¿ÀÈ÷·Á Àü´ÞÇÏ´Â ¹æ½ÄÀ» interrupt driven I/O¶ó°í ÇÕ´Ï´Ù. Èì, Á¤¸» ¿©±âÀú±â¼­ ÀÏ»ó»ýÈ°¿¡¼­ ³ªÅ¸³ª´ø ¾Ö¸Å¸ðÈ£ ÇÏ´ø ´Ü¾îµéÀÌ ¸¶±¸¸¶±¸ ½ñ¾ÆÁöÁö ¾Ê³ª¿ä? :)

±×¹Û¿¡ Á»´õ ¾ð±ÞÇÏ°í Ç À̾߱Ⱑ Àִµ¥, ±×°Ç ´ÙÀ½Àå¿¡¼­ Çϱâ·Î ÇÏÁÒ. Áö±Ý ÅؽºÆ® ¿¡µðÅÍÀÇ ÇÑ°èÀÎÁö ³Ê¹« ´À·Á¼­ ¾²±â°¡ Èûµé°Åµç¿ä.

-duffer °æÁØ (http://vorlon.cwru.edu/~kxm73)