Go back OS Review Device Driver NS Tools Home Papers Daily Link To Main |
11. ¸Þ¸ð¸®°ü¸®ÀÇ ±âÃÊ (Basics of Memory Management)
Áö³ ³»¿ëÀ» ÅëÇÏ¿© ¿ì¸®´Â ¾¾ÇÇÀ¯ ½ºÄÉÁÙ¸µÀ» ÅëÇÏ¿© ¾¾ÇÇÀ¯ÀÇ È°¿ëµµ¸¦ ³ôÀÌ°í, ¾¾ÇÇÀ¯¸¦ Æ÷ÇÔÇÑ ¿©·¯ ¸®¼Ò½ºµéÀ» º¸´Ù È¿°úÀûÀ¸·Î °øÀ¯ÇÔÀ¸·Î½á ½Ã½ºÅÛÀÇ ¼Óµµ ¹× À¯Àú¿¡ ´ëÇÑ ¹ÝÀÀÀ» Àü¹ÝÀûÀ¸·Î Çâ»ó ½ÃŲ´Ù´Â »ç½ÇÀ» ¾Ë¼ö ÀÖ¾úÁÒ. ¿©±â¿¡´Â ¾ÆÁÖ Áß¿äÇßÁö¸¸, ¸íÈ®È÷ ¾ð±ÞµÇÁö ¾ÊÀº ÀüÁ¦°¡ ÇÑ°¡Áö ÀÖ½À´Ï´Ù. ¹Ù·Î ¿©·¯ ÇÁ·Î¼¼½ºµéÀÌ °¢ÀÚ ÀھƽÇÇöÀ» ÇÏ´Â °ø°£ÀÎ ¸Þ¸ð¸®¿¡ ´ëÇÑ ¿À¿¡½ºÀÇ °ü¸®ÀÔ´Ï´Ù. º»Àå¿¡¼´Â ¿©·¯°¡Áö ¸Þ¸ð¸® °ü¸® ±â¹ýµé°ú ±×¿¡ ´ëÀÀµÇ´Â ¾Ë°í¸®ÁòµéÀ» ¼³¸íÇϱâ À§ÇÑ ±âÃÊ ¾îÈÖµé°ú ±âÃÊ Áö½ÄÀ̵îÀåÇÕ´Ï´Ù. ¾Æ, ¼öµµÄÚµå(Pseudo-code)´Â ¾ÕÀ¸·Î´Â º» ½ºÅ͵𰡠³¡³ª±â Àü±îÁö´Â Àý´ë ÃâÇöÇÏÁö ¾ÊÀ¸´Ï¸¸Å, ±äÀå Ǫ½Ã°í, Æí¾ÈÇÑ ¸¶À½À¸·Î ³ª¸ÓÁö ³íÀǵéÀ» Áñ°ÜÁֽñ⠹ٷ¡¿ä. º» ÀåÀ» µé¾î°¡±â¿¡ ¾Õ¼¼ ÇÑ°¡Áö ÁÖÁöÇÒ »ç½ÇÀº ´ëºÎºÐÀÇ ¸Þ¸ð¸® °ü¸® ±â¹ýµéÀº ½Ã½ºÅÛÀÇ Çϵå¿þ¾îÀû µðÀÚÀο¡ ¸¹ÀÌ Á¿ìµÈ´Ù´Â »ç½ÇÀÌÁÒ. Áï Çϵå¿þ¾î°¡ Áö¿øÀ» ÇؾßÇÑ´Ù´Â ¶æÀÔ´Ï´Ù. ±×·¯¸é ¾î¶°ÇÑ ¹æ¹ýÀ¸·Î ¿À¿¡½º´Â ¸Þ¸ð¸®¸¦ °ü¸®ÇÏ´ÂÁö Çѹø º»°ÝÀûÀ¸·Î »ìÆ캼±î¿ä? ¾Æ, ±×¸®°í ÀÌ°ÍÀº ÀÏÁ¾ÀÇ Àú¸¸ÀÇ ÁÖ°üÀϼö Àִµ¥, ¸Þ¸ð¸® °ü¸®¸¦ ³íÇÑ´Ù ÇÔÀº ¸Þ¸ð¸® ÀÚü¸¸ÀÇ È¿°úÀû ÀÌ¿ë º¸´Ù´Â ¹éÅ·½ºÅä¾î(backing store)¶ó ºÒ¸®´Â Çϵåµå¶óÀÌºê °°Àº º¸Á¶±â¾ïÀåÄ¡¿Í ÁÖ±â¾ïÀåÄ¡ÀÎ ¸Þ¸ð¸® »çÀÌÀÇ ¹Ì¹¦ÇÑ °ü°è¸¦ Àß È°¿ëÇϴ°ÍÀ» ¶æÇÏ´Âµí ½Í½À´Ï´Ù. ±× µÑÀº »ç½Ç º»ÁúÀûÀ¸·Î´Â ¿ë·®°ú ¼Óµµ¸¸ÀÌ ´Ù¸¦»Ó ¹º°¡¸¦ ÀúÀå ÇÑ´Ù´Â Ãø¸é¿¡¼´Â ÇÏµî ´Ù¸¦¹Ù°¡ ¾ø°Åµç¿ä. ¸Þ¸ð¸®¸¦ ´Ü¼øȽÃŲ ½Ã°¢¿¡¼ ¹Ù¶óº¼¶§¿¡´Â ¿öµå(word)¶Ç´Â ¹ÙÀÌÆ®(byte)´ÜÀ§ÀÇ ±æÁ×ÇÑ ÀÏÂ÷¿ø ¹è¿ÀÔ´Ï´Ù. ¸Þ¸ð¸®¿Í ¾¾ÇÇÀ¯°¡ ¾î¶»°Ô »óÈ£ÀÛ¿ëÇÏ´ÂÁö Çѹø »ìÆ캸¸é, ¾¾ÇÇÀ¯´Â ÇÁ·Î±×·¥ Ä«¿îÅÍ(Program Counter:´ÙÀ½ ½ÇÇàÇÒ ¸í·ÉÀÌ µé¾îÀÖ´Â ¸Þ¸ð¸®ÀÇ ÁÖ¼Ò)¸¦ ÂüÁ¶Çؼ ¸í·ÉÀ» ¶ç¿ì°í(fetch), ±× ¸í·ÉÀÌ ¼öÇàµÇ¸é¼ ƯÁ¤ÇÑ ÁÖ¼ÒÀÇ ¸Þ¸ð¸® °ø°£¿¡¼ÀÇ ·Îµù, ¶Ç´Â ÀúÀåµîÀ» Ãß°¡Àû!À¸·Î ¹ß»ý½ÃÅ°°Ô µË´Ï´Ù(ÇÁ·Î±×·¥ Ä«¿îÅ͵µ À̶§ ¾÷µ¥ÀÌÆ® µÇ°ÚÁÒ). ¿©±â¼ ¿ì¸®´Â ÇÑ°¡Áö »ç½ÇÀ» ¾Ë¼ö Àִµ¥, ¸Þ¸ð¸®ÀÇ ½Ã°¢¿¡¼´Â È£ÃâµÇ´Â ÀÚ½ÅÀÇ ÁÖ¼Ò°ªµé¿¡ ´ëÇÑ ÀÏ·ÃÀÇ È帧(stream)¸¸ÀÌ ÀνĵɻÓ, ¾î¶°ÇÑ ¿ø¸®·Î ÇØ´ç ÁÖ¼Ò°ªµéÀÌ »ý¼ºµÇ°í, ¾¾ÇÇÀ¯°¡ ¸Þ¸ð¸®¸¦ È£ÃâÇÒ¶§¸¶´Ù ³»º¸³»´Â ¸í·É¾î³ª µ¥ÀÌÅÍ°ªÀ» »ý¼ºÇÏ´ÂÁöµî¿¡´Â ÀüÇô ¹«ÁöÇÏ´Ù´Â Á¡ÀÌÁÒ. °í·Î ¾ÕÀ¸·Î ¿ì¸®°¡ ¸Þ¸ð¸® °ü¸®¸¦ ³íÀÇÇÔ¿¡ ÀÖ¾î¼ '¾î¶»°Ô ¸Þ¸ð¸® ÁÖ¼Ò°ªµéÀÌ ¾Ë°í¸®Áò¿¡¼ »ý¼ºµÇ´Â°¡?'¶ó´Â Ȳ´çÇÑ Áú¹® º¸´Ù´Â ÇØ´ç ¾Ë°í¸®Áò¿¡¼ '¾î¶°ÇÑ ¼ø¼!·Î ¸Þ¸ð¸® ÁÖ¼Ò°ªÀ» »ý¼º½ÃÅ°´Â°¡'°¡ ¶ó´Â ±¸Ã¼ÀûÀÎ Áú¹®ÀÌ ¹Ù·Î ¾ÕÀ¸·Î ÆîÃÄÁú ³íÀÇÀÇ ÇÙ½ÉÀÌ µÇ°Î½À´Ï´Ù. ¸Þ¸ð¸®¸¦ ³íÇÔ¿¡ÀÖ¾î¼ ¸ÕÀú ¹ÙÀεù(binding)À̶ó´Â °³³äÀ» Á¦ÀÏ ¸ÕÀú ¤°í ³Ñ¾î°¥ ÇÊ¿ä°¡ ÀÖÀÖ¾î¿ä. À¯Àú ÇÁ·Î±×·¥Àº ÀÏ´Ü ÇÏµå µð½ºÅ© ¾È¿¡ ¹ÙÀ̳ʸ® ÆÄÀÏ·Î Á¸À縦 ÇÏÁö¿ä. ÀÌ°ÍÀÌ ½ÇÇàÀÌ µÇ±â À§Çؼ´Â ¹Ýµå½Ã ¸Þ¸ð¸®»ó¿¡ ±×°Íµµ ÇÁ·Î¼¼½º ³»ºÎ·Î ·ÎµùÀÌ µÇ¾î¾ß¸¸ ÇÕ´Ï´Ù. ¿ì¸®°¡ ƯÁ¤ ¾îÇÃÀ» ½ÇÇà½ÃÅ°±â À§ÇÏ¿© ´õºíŬ¸¯ Çϴ¼ø°£, Äڵ尡 ¸Þ¸ð¸®¿¡ ·ÎµùÀÌ µÇ±â À§Çؼ´Â ÇÁ·Î±×·¥³»ºÎ¿¡ Á¸ÀçÇÏ´ø ½Éº¼ÁÖ¼Ò°ª(symbolic address)µéÀÌ ½ÇÁ¦·Î ÇÒ´çÀÌ °¡´ÉÇÑ ÀçÇÒ´ç°¡´ÉÁÖ¼Ò(relocatable address)°ªµé·Î ÁÖ¸£¸¤~ º¯È¯ µÇ¾î¾ß ÇÏ°ÚÁÒ. ¹Ù·Î ÀÌ·¯ÇÑ °úÁ¤À» ¿ì¸®´Â ¹ÙÀεùÀ̶ó°í ÀÏÄ´ °ÍÀÔ´Ï´Ù. ¹ÙÀεùÀº ±× ÇൿÀÌ ÃëÇØÁö´Â ½ÃÁ¡¿¡ µû¶ó¼ ¸î°¡Áö·Î ³ª´· ¼ö ÀÖ½À´Ï´Ù. ù°·Î´Â ÄÄÆÄÀÏŸÀÓ(compile time)À¸·Î½á ¼Ò½ºÄڵ带 ÄÄÆÄÀÏÇÒ¶§ ÀÌ¹Ì ¾î¶² º¯¼ö ¾î¶² ¸í·É¾î°¡ ±¸Ã¼ÀûÀ¸·Î ¾î¶² Àý´ëÀû(absolute) ¸Þ¸ð¸®¿¡ ÇÒ´çµÇ´ÂÁö°¡ °áÁ¤µÇÁÒ. 640kÁ¤µµÀÇ ÀÛÀº ¸Þ¸ð¸®¸¦ È¿°úÀûÀ¸·Î ÀÌ¿ëÇؾßÇÏ´Â MS-DOSÀÇ *.comÆÄÀϵéÀÌ ÀÌ¿¡ ÇØ´çÀÌ µË´Ï´Ù. µÎ¹ø°·Î ·ÎµåŸÀÓ(load time)ÀÔ´Ï´Ù. ÀÌ°æ¿ì ÃÖÁ¾ ¹ÙÀεùÀº ÇÁ·Î±×·¥ÀÌ ·ÎµåµÇ´Â ¼ø°£ °áÁ¤µÇ¸ç ½ÃÀÛÁÖ¼Ò°ª(starting address)ÀÌ ¹Ù²ð¶§, ³ª¸ÓÁö ÁÖ¼Ò°ªµéÀº ÀÚµ¿ÀûÀ¸·Î ÁÖ¸£¸£ ¹Ð·Á¼ ¹ÙÀεù µÇ°ÚÁÒ. ¸¶Áö¸·À¸·Î ¿¢¼¼Å¥¼ÇŸÀÓ(exectution time)Àε¥, ÀÌ°ÍÀº Á¤¸» ¸·°ÇÑ ¹ÙÀεù ¹æ¹ýÀ¸·Î½á, ÇÁ·Î¼¼½º ´ÜÀ§·Î ÇÊ¿äÇÒ¶§¸¶´Ù ±× ³»¿ëÀÌ ·±Å¸ÀÓÁß ¹ÙÀεùÀÌ µÇÁö¿ä. Çϵå¿þ¾îÀû Áö¿øÀ» Çʼö·Î ¿ä±¸ÇÕ´Ï´Ù. ¹ÙÀεù°ú´Â º°°³·Î ´ÙÀ̳»¹Í·Îµù(dynamic loading)À» ÀÌÇØÇÒ ÇÊ¿ä°¡ ÀÖ±º¿ä. ´ÙÀ̳»¹Í·ÎµùÀº ·çƾ!´ÜÀ§·Î ÇØ´ç ·çƾÀÌ È£ÃâµÇ±â Àü ¼ø°£¿¡Á¶Â÷ ±× ·çƾÀÌ ¸Þ¸ð¸®°¡ ¾Æ´Ñ µð½ºÅ©¿¡¼ ±úºñÀ۰Ÿ®°Ô ¸¸µå´Â ±â¹ýÀÔ´Ï´Ù. ÀÌ ±â¹ýÀÇ ÀåÁ¡Àº »ç¿ëµÇÁö ¾Ê´Â ·çƾµéÀº °áÄÚ ¸Þ¸ð¸®¸¦ Á¡À¯ÇÏÁö ¾ÊÀ½À¸·Î½á °á±¹ ·ÎµùÁ¶Â÷ µÇÁö ¾Ê°Ô µÈ´Ù´Â »ç½ÇÀ̸ç, ÀÌ ±â¹ýÀÇ Æ¯Â¡Àº Ưº°È÷ ¿À¿¡½ºÀÇ Æ¯º°ÇÑ Áö¿øÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê°í ÇÁ·Î±×·¡¸ÓÀÇ Àç·®¿¡ µû¶ó ±¸ÇöÀÌ °¡´ÉÇÏ´Ù´Â »ç½ÇÀÌÁÒ. ÀÌ ±â¹ýÀº ÁÖ·Î µå¹°°Ô ¹ß»ýÇÏ´Â ¿¡·¯Ã³¸® ·çƾµûÀ§¿¡ Àû¿ëÇϸé ÁÁ´Ù°í Çϳ׿ä. ¹ÙÀεùÀº °á±¹ Äڵ尡 ¿Ã·ÁÁú ¹°¸®ÀûÀÎ ¸Þ¸ð¸® ÁÖ¼Ò°ªÀ» °áÁ¤!ÇÏ´Â °úÁ¤ÀÌ°í, ·ÎµùÀº °áÁ¤µÈ ¹°¸®ÀûÀÎ ÁÖ¼Ò°ª¿¡ Äڵ带 ÇÒ´ç½ÃÅ°´Â ÇàÀ§!¶ó°í ÇÒ¼ö ÀÖ°Ú½À´Ï´Ù. ¶Ç, ´ÙÀ̳»¹Í¸µÅ·(dynamic linking)À̶ó´Â°ÍÀÌ µîÀåÇϴµ¥, À©µµ¿ìÁîÀÇ *.dll(dinamic linked library)ÆÄÀϵéÀÌ ¹Ù·Î ÀÌ ´ÙÀ̳»¹Í¸µÅ· ±â¹ýÀÇ »ç»ý¾Æ µéÀÔ´Ï´Ù. ´ëºÎºÐÀÇ ¿À¿¡½ºµéÀº ½ºÅÂƽ¸µÅ·(static linking)À̶ó´Â ·©±ÍÁöÀÇ ¶óÀ̺귯¸®µéÀÌ ÄÄÆÄÀϽà ÇÕüµÇ´Â ±â¹ýÀ» »ç¿ëÇÏÁÒ. ±×·±µ¥ ´ÙÀ̳»¹Í¸µÅ·Àº ÄÄÆÄÀÏ°úÁ¤Áß ¸µÅ©°úÁ¤ÀÌ ¹Ù·Î ·±Å¸ÀÓ¿¡ ÀϾٴ Â÷ÀÌÁ¡À» °¡Áö°í ÀÖ½À´Ï´Ù. Áï, °¢ dllÀº ÀÌ¹Ì ÄÄÆÄÀÏµÈ ¶óÀ̺귯¸®µéÀΰÍÀÔ´Ï´Ù. À̱â¹ýÀº ÁÖ·Î ½Ã½ºÅÛ ¶óÀ̺귯¸®µé¿¡ Àû¿ëÇϸé È¿°ú¸¦ º»´Ù°í Çϴµ¥, ¿ø¸®´Â ´ÙÀ½°ú °°½À´Ï´Ù. ÄÄÆÄÀϽà ½ºÅÓ(stub)À̶ó´Â °£´ÜÇÑ Ç¥Àû°°Àº°ÍÀÌ ÇØ´ç ¶óÀ̺귯¸® ·çƾÀÇ ÂüÁ¶(reference) ´ë½Å ´Þ·ÁÀÖ´Ù°¡(ÇØ´ç ·çƾÀ» Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇؼ ÄÝÇÏ´Âµí ½Í±º¿ä) ·±Å¸Àӽà ÇØ´ç ·çƾÀÌ ºÒ¸®¸é ±× ½ºÅÓÀº ÀÚ½ÅÀ» ±× ·çƾÀÌ µé¾îÀÖ´Â ±¸Ã¼Àû ÁÖ¼Ò°ª°ú ¹Ù²ãÄ¡±â Çعö¸³´Ï´Ù. Çѹø ÀÌ»ó ·çƾÀÌ ºÒ¸®°Ô µÇ¸é Àü¿¡ ½ºÅÓÀÌ ÀÖ¾ú´Ù´Â »ç½ÇÁ¶Â÷ ÀØ°í Â¥¿¬½º·´°Ô ÇѸöÀÌ µÇ´Â°ÍÀÌÁÒ. ´ÙÀ̳»¹Í ·Îµù°ú´Â ´Þ¸®(º» Àý¿¡¼´Â ¸µÅ·ÀÔ´Ï´Ù) ÀÌ ±â¹ýÀº ¸¸ÀÏ °¢ ÇÁ·Î¼¼½º°¡ ¼·Î ÇÁ·ÎÅؼÇ(proctection)À» °É°í ÀÖ´Ù¸é ¿À¿¡½º¸¸ÀÌ ±×µé »çÀÌÀÇ ÁßÀçÀÚ°¡ µÇ¾îÁÙ¼ö ÀÖÀ¸¹Ç·Î ¿À¿¡½ºÀÇ µµ¿òÀ» Çʼö·Î ÇÕ´Ï´Ù. À̹æ¹ýÀÌ Á¦´ë·Î¸¸ »ç¿ëµÇ¸é Á¤¸» °·ÂÇÔÀ» ¹ßÈÖÇϴµ¥, °¢ ÇÁ·Î¼¼½º´Â ¶óÀ̺귯¸® ·çƾÀ» °¢ÀÚÀÇ ¸Þ¸ð¸®¿¡ º¹»çÇÏÁö ¾ÊÀºÃ¤ ´Ü ÇÑ°³ÀÇ ¿øº»À» »ç¿ëÇÏ°Ô µÊÀ¸·Î½á ¸Þ¸ð¸®¸¦ Àý°¨ÇÏ°í, ÄÄÆÄÀÏµÈ ¹ÙÀ̳ʸ®ÄÚµå ¶ÇÇÑ ¾ðÁ¦ ¾²ÀÏÁöµµ ¸ð¸£´Â ¶óÀ̺귯¸® ÄÚµåµéÀ» ³»ºÎ¿¡ Æ÷ÇÔÇÏ°í ÀÖÁö ¾Ê±â¿¡ ³¯¾ÀÇØÁö°Ô µË´Ï´Ù. Àϼ®ÀÌÁ¶ÀÇ È¿°úÀÌÁÒ. Ç㳪, ÇöÀç À©µµ¿ìÁî¿¡¼ »ç¿ëµÇ°í ÀÖ´Â ²ÃÀ» º¸°íÀÖ³ë¶ó¸é, ÇÑ°³ÀÇ ¾îÇÃÀÌ ÀνºÅçµÉ¶§¸¶´Ù Ȥ½Ã³ª ÇÏ´Â ¸¶À½¿¡ ³Êµµ³ªµµ dllÆÄÀϵéÀ» ±ò´Ùº¸´Ï dll °³ÆÇõÁö°¡ µÇ¾î¹ö¸®´Â °æÇâÀÌ Àִµí ÇÏ´õ±º¿ä. ±×·¡µµ M$Á¦Ç°±º »çÀÌ¿¡¼´Â ²Ï È¿°úÀûÀ¸·Î ¾²ÀÌ´Âµí ½Í½À´Ï´Ù. Á¤¸» ¼ö¸¹Àº ¾îÈÖµéÀÌ µîÀåÇϴ±º¿ä! À̹ø¿¡´Â ¿À¹ö·¹ÀÌ(Overlay)¶ó´Â ±â¹ýÀ» ¾ËÇÊ¿ä°¡ Àִµ¥, ¾ÆÁÖ °íÀüÀûÀÌÁö¸¸ Á¤¸» À¯¿ëÇß´ø ±â¹ýÀ̶ø´Ï´Ù. ÇÑ ÇÁ·Î±×·¥ÀÌ a, b, c, ±×¸®°í d¶ó´Â ¹ÙÀ̳ʸ®·Î ÀÌ·ç¾îÁ³´Ù°í ÇßÀ»¶§, ¸¸ÀÏ c¿Í d°¡ °¢°¢ ½Éº¼Å×À̺í(symbol table)°ú °øÅë·çƾ(common routine)µî°ú °°´Ù¸é, ¿ì¸®´Â Á¦ÀϸÕÀú a, c, d¸¦ ¸Þ¸ð¸®¿¡ ·ÎµùÇؼ ¾²´Ù°¡ ³ªÁß¿¡ b°¡ ÇÊ¿äÇÒ¶§ ºñ·Î¼ a´ë½Å b¸¦ ¼¡~ ¹Ù²ãÄ¡±â ÇØÁÖ´Â ±â¹ýÀÔ´Ï´Ù. ½ÇÁ¦ÀûÀ¸·Î ÀÌ ±â¹ýÀ» Àû¿ëÇÒ¶§¿¡´Â e¶ó´Â »ó´ëÀûÀ¸·Î ¾ÆÁÖ ÀÛÀº ¸Þ¸ð¸®¸¦ Â÷ÁöÇÏ´Â ¿À¹ö·¹ÀÌ µå¶óÀ̹ö(overlay driver)¸¦ ¸¸µé¾î¼ »ç¿ëÇÏ°Ô µÇÁö¿ä. ¿À¹ö·¹ÀÌ µå¶óÀ̹ö°¡ »óȲ¿¡ ¸ÂÃç¼ a ¶Ç´Â b¸¦ ¸Þ¸ð¸®¿¡ ¿Ã·È´Ù ³»·È´Ù ÇØÁÖ´Â ÁßÀçÀÚ ¿ªÇÒÀ» ¼öÇàÇÏ°Ô µË´Ï´Ù. ÀÌ ±â¹ýÀº ¾î¶»°Ô º¸¸é ¾ÕÀ¸·Î ¼Ò°³µÉ ÆäÀÌ¡À̳ª ¹öÃò¾î¸Þ¸ð¸® ±â¹ý°ú ºñ½ÁÇØ º¸Àϼö ÀÖÀ¸³ª ±×°Ç Âø°¢ÀÔ´Ï´Ù. º» ±â¹ýÀº ¸¸µé°íÀÚ ÇÏ´Â ÇÁ·Î±×·¥ÀÇ ±íÀº ÀÌÇظ¦ ¸ÕÀú ÇÊ¿ä·Î Ç߱⿡ ²Ï ³ÇØÇÑ ±â¹ýÀ̱⵵ Ç߰ŵç¿ä(¿¾³¯¿¡ Çѵü±òÀÌ ÇÑ´Ù´Â ÇÁ·Î±×·¡¸ÓµéÀÌ ÀÌ ±â¹ýÀ» ¾Ö¿ëÇßÁÒ). ¹Ù·Î ÀÌÁ¡ÀÌ ÈÄÀÚµé°úÀÇ °¡Àå Å« Â÷ÀÌÁ¡ÀÔ´Ï´Ù. ÈÄÀÚµéÀº ¾îµð±îÁö³ª Çö´ëÀûÀÎ ¿À¿¡½º Â÷¿ø¿¡¼ Áö¿øÇØÁÖ´Â ±â¹ýÀ̴ϱî¿ä. ¾¾ÇÇÀ¯¿¡¼ »ý¼ºµÇ´Â ¸Þ¸ð¸®ÀÇ ÁÖ¼Ò°ªÀ» ¿ì¸®´Â ¾ÕÀ¸·Î ³í¸®ÁÖ¼Ò°ª(logical address)À̶ó°í ÇÏ°í, ½ÇÁ¦·Î ¸Þ¸ð¸®¿¡ ÀÇÇؼ ÀνĵǴ ¸Þ¸ð¸®ÀÇ ÁÖ¼Ò°ªÀ» ¹°¸®ÁÖ¼Ò°ª(phisical address)À̶ó°í ÇÒ°ÍÀÔ´Ï´Ù. Ãʹݿ¡ ¾ð±ÞµÇ¾ú´ø ¹ÙÀεùÁß ÄÄÆÄÀÏŸÀÓ ¹ÙÀεù°ú ·ÎµåŸÀÓ ¹ÙÀεù ÀÌ µÎ°¡Áö´Â ³í¸®ÁÖ¼Ò°ª°ú ¹°¸®ÁÖ¼Ò°ªÀÌ ÀÏÄ¡ÇÕ´Ï´Ù. Ç㳪, ¿¢¼¼Å¥¼ÇŸÀÓ ¹ÙÀεùÀº ±× µÑÀÌ ´Ù¸£ÁÒ. À̶§ÀÇ ³í¸®ÁÖ¼Ò°ªÀ» ¹Ù·Î ¹öÃÄÁÖ¼Ò°ª(virtual address)À̶ó°í ÇÏ°Ô µË´Ï´Ù. ÀÌ°æ¿ì, ±× µÑÀÇ ÁÖ¼Ò°ªÀÌ ´Ù¸£·Á¸é ·±Å¸ÀÓ ¸ÊÇÎÀÌ µÑ »çÀÌ¿¡¼´Â ¹Ýµå½Ã ÀϾ¾ß ÇÏ°ÚÁÒ? ¹Ù·Î ±× ¸ÊÇÎÀ» ¼öÇàÇØ ÁÖ´Â Çϵå¿þ¾î À¯´ÖÀÌ ¹Ù·Î MMU(Memory Management Unit)ÀÔ´Ï´Ù. ¸ðÅä·Ñ¶ó ¾¾ÇÇÀ¯Áß 68030ÀÌÇϸ¦ »ç¿ëÇÏ´ø ¸ÅŲÅä½Ã ±âÁ¾ÀÎ LC³ª Ŭ·¡½Ä µî¿¡¼ ¾ÕÀ¸·Î ¼³¸íµÉ ¹öÃĸ޸ð¸®(virtual memory)¸¦ »ç¿ëÇÒ¼ö ¾ø¾ú´ø ÀÌÀ¯°¡ ¹Ù·Î ¿©±â¿¡ ÀÖ¾î¿ä. MMU³»ºÎÀÇ ¸Þ¸ð¸®ÇÁ·ÎÅؼǿ¡ µîÀåÇß´ø º£À̽º·¹Áö½ºÅÍ(base register)°¡ ÀÌÁ¦ºÎÅÍ´Â ¸®·ÎÄÉÀ̼Ƿ¹Áö½ºÅÍ(relocation register)¶ó°í ºÒ¸®°Ô µÇ´Âµ¥, ¿©±â¿¡´Â ÀÏÁ¤ÇÑ Á¤¼ö°ªÀÌ µé¾î°¡ ÀÖ¾î¼ ³í¸®ÁÖ¼Ò°ª°ú ¹°¸®ÁÖ¼Ò°ª»çÀÌÀÇ Â¦Áþ±â¸¦ 'µ¡¼À'À¸·Î ¼öÇàÇØÁÖ°Ô µË´Ï´Ù. ¿¹¸¦µé¾î, ³í¸® ÁÖ¼Ò°ªÀÌ 346ÀÌ°í, ¸®·ÎÄÉÀ̼Ƿ¹Áö½ºÅÍ°ªÀÌ 14000À̶ó¸é ¹°¸®ÁÖ¼Ò´Â 346+14000=14346À̶ó´Â °ªÀ¸·Î °è»êµÇ´Â ½ÄÀÌÁÒ. ´ç¿¬È÷ ³í¸®ÁÖ¼Ò°ªÀÇ 347´Â ¹°¸®ÁÖ¼Ò°ªÀÇ 14347¿¡ ´ëÀÀµÇ°Ô µË´Ï´Ù. À̶§ À¯Àú ÇÁ·Î±×·¥Àº ¹°¸®ÁÖ¼Ò°ªÀ¸·Î ÀÚ½ÅÀÇ ³í¸®ÁÖ¼Ò°¡ º¯È¯µÈ´Ù´Â »ç½ÇÁ¶Â÷ ÀνÄÀ» ¸øÇϸç, ¸ðµç ¹°¸®ÀûÀÎ ¸Þ¸ð¸® ÇÒ´çÀº ¿À¿¡½º¿Í MMU»çÀÌÀÇ ³ó°£À¸·Î ÀÌ·ç¾îÁý´Ï´Ù. ÀÌ º¯È¯Àº ¸Å¹ø ¸Þ¸ð¸®¸¦ ¾×¼¼½ºÇÒ¶§¸¶´Ù ÀϾ´Â ÇʼöºÒ°¡°áÇÑ º¯È¯À̱⿡ Çϵå¿þ¾îÀûÀ¸·Î ±¸ÇöÀ» ÇسõÁö ¾ÊÀ¸¸é ¸Å¹ø ³í¸®ÁÖ¼Ò¿Í ¹°¸®ÁÖ¼Ò»çÀÌÀÇ Â¦Áþ±â ÇÏ´Ù°¡ ²µ¿À¹ÙµÉ°ÍÀº ÀÚ¸íÇÑ ÀÌÄ¡ÁÒ. ÀÌÁ¨ ½½½½ º»°ÝÀûÀÎ ±âÃÊ ¸Þ¸ð¸® °ü¸® Å×Å©´ÐµéÀ» ³íÇÒ¶§°¡ ´Ù°¡¿À°í ÀÖ±º¿ä. ±× ½ÅȣźÀ¸·Î½á ¸ÕÀú ½º¿ÍÇÎ(swapping)À» »ìÆ캸µµ·Ï ÇÏÁÒ. ¿©±â¼ÀÇ ½º¿ÍÇÎÀº ÇʼöÀûÀ¸·Î ¹éÅ·½ºÅä¾î(´Ù¸§¾Æ´Ñ Çϵåµå¶óÀ̺ê)¸¦ ÇÊ¿ä·ÎÇϸç, ÇÁ·Î¼¼½º´ÜÀ§·Î ÀϾ´Â Çö»óÀÔ´Ï´Ù. Áï, ¿ä±¸µÇ´Â ÇÁ·Î¼¼½º¸¦ ¸Þ¸ð¸®¿¡ ·ÎµùÇϱâ À§ÇÏ¿© ¸ÕÀú ÇÊ¿ä¾ø´Â ÇÁ·Î¼¼½º ÇÑ°³¸¦ ½º¿Ò¾Æ¿ô(¶Ç´Â roll out)½ÃŲµÚ ÇØ´ç ÇÁ·Î¼¼½º¸¦ ½º¿ÒÀÎ(¶Ç´Â roll in)½ÃÅ°´Â °ÍÀÔ´Ï´Ù. ¿©±â¼ Çѹø ½º¿Ò¾Æ¿ôµÇ¾ú´ø ÇÁ·Î¼¼½º°¡ ´Ù½Ã ½º¿ÒÀÎ µÉ¶§¿¡´Â ¿ø·¡ ÀÚ½ÅÀÌ ¸Þ¸ð¸®¿¡ ÀÖ¾ú´ø À§Ä¡¿¡ ¿À°Ô µÉÁö ¾Æ´ÒÁö´Â ÀüÀûÀ¸·Î ¹ÙÀεù ±â¹ý¿¡ µû¶ó¼ Á¿ìµÇ¿ä. MMUÀÇ ¸®·ÎÄÉÀ̼Ƿ¹Áö½ºÅ͸¦ ÀÌ¿ëÇÑ ¿¢¼¼Å¥¼ÇŸÀÓ ¹ÙÀεùÀÇ °æ¿ì ·±Å¸ÀÓÁß ¸Þ¸ð¸®ÀÇ ¹°¸®ÀûÀÎ ÁÖ¼Ò°ªÀÌ ±×¶§±×¶§ °áÁ¤µÇ±â¿¡ ´Ù½Ã ½º¿ÒÀεǾúÀ»¶§ÀÇ À§Ä¡°¡ Àü¿¡ ÀÖ´ø À§Ä¡¿Í ´Þ¶óµµ µÇ°ÚÁÒ. º°°Å ¾Æ´Ñ°Å °°Áö¸¸ Áß¿äÇÑ Â÷ÀÌÁ¡ÀÔ´Ï´Ù. ÀϺΠ¼º°Ý±ÞÇÑ ºÐµé, Áö±Ý Àú°ÍÀÌ ¹Ù·Î ¹öÃĸ޸𸮿©~!!! ÇÏ°í ÁÁ¾ÆÇϽðÎÁö¸¸, ¾Æµû, °Å µÚ°Ô ±ÞÇÏ½Ã³× ±×·ª,,,¾ÆÁ÷ ¹öÃÄ ¸Þ¸ð¸® ´Ù·ç·Á¸é ´Ù´ÙÀ½ ¹®¼¿¡¼³ª °¡´ÉÇÒµí Çã´Ï ¸ÕÀú ¿©±â¼ õõÈ÷ ±âÃÊ ½×´Â ÀÛ¾÷ºÎÅÍ Çսôٿä. ¹°·Ð ¹öÃĸ޸𸮰¡ ½º¿ÍÇÎÀ» ÀÌ¿ëÇϱâ´Â ÇÏÁö¸¸, ¹öÃĸ޸ð¸®ÀÇ ÇÙ½ÉÀº ±×°ÍÀÌ ¾Æ´Õ´Ï´Ù. ÀÌÁ¦²¯ ´Ù·é ³»¿ë ¹× À§ÀÇ »óȲÀ» ¾î´ÀÁ¤µµ ÀÌÇØÇß´Ù´Â ÀüÁ¦ÇÏ¿¡ ÇÁ·Î¼¼½º°¡ ½ÇÇàµÇ´Â °úÁ¤À» Á¦´ë·Î ´Ù½Ã ±â¼úÇØ º¸±â·Î ÇÏÁÒ. ÇÁ·Î¼¼½º ½ºÄÉÁÙ¸µÀÇ ÁÖ¿¬±ÞÀÎ ·¹µðÅ¥ºÎÅÍ ÀçµîÀå½ÃÄѺ¸¸é, ·¹µðÅ¥´Â ¸Þ¸ð¸®³»¿¡ ÇÒ´çµÊÀ¸·Î½á Áغñ¸¦ ¸¶Ä£ ÇÁ·Î¼¼½ºµé »Ó¸¸ ¾Æ´Ï¶ó ¹éÅ·½ºÅä¾î³»¿¡¼ ÀÚ½ÅÀÇ À̹ÌÁö¸¦ ¸¸µé°í Áغñ¸¦ ¸¶Ä£ ÇÁ·Î¼¼½ºµé ¶ÇÇÑ Æ÷ÇÔÇÏ°í ÀÖ¾ú½À´Ï´Ù. ¾¾ÇÇÀ¯ ½ºÄÉÁÙ·¯°¡ ¾î¶² ÇÁ·Î¼¼½º¸¦ ½ÇÇàÇϱâ·Î °áÁ¤À» ³»¸®¸é Á¦ÀϸÕÀú µð½ºÆÐó¸¦ ºÎ¸£°Ô µÇ°í µð½ºÆäÃÄ´Â ´ÙÀ½ ½ÇÇàµÉ ÇÁ·Î¼¼½º°¡ ¸Þ¸ð¸®¿¡ ÀÖ´ÂÁö ºÎÅÍ È®ÀÎÇÏ°Ô µÇ´Â °ÍÀÌÁÒ. ¸¸ÀÏ ÇÁ·Î¼¼½º°¡ ¾ø´Ù¸é À̶§ »ç¿ë°¡´ÉÇÑ ¸Þ¸ð¸®°¡ ÀÖ´ÂÁö¸¦ È®ÀÎÇÏ°í, ¾ø´Ù¸é ¹Ù·Î ½º¿ÍÇÎÀÌ ÇØ°á»çÀÇ ÇÊ»ì±â·Î µîÀåÇÏ°Ô µÇ´Â°ÍÀÔ´Ï´Ù. ½º¿ÍÇÎÀÌ ÀϾ¶§ÀÇ ÄÁÅؽºÆ® ½ºÀ§Äª¿¡ °É¸®´Â ½Ã°£Àº ²Ï Å©°ÚÁÒ? ´õ±¸³ª ½º¿ÍÇνà °É¸®´Â ½Ã°£ÀÇ ´ëºÎºÐÀº µ¥ÀÌÅÍ Àü¼Û ½Ã°£ÀÌ´Ï ¸¸Å, ¾ó¸¶¸¸ÅÀÇ ¸Þ¸ð¸®°¡ ½º¿ÍÇεǴ°¡¿Í °É¸®´Â ½Ã°£Àº ºñ·ÊÇÏ°Ô µË´Ï´Ù. °í·Î ¶ó¿îµå¶óºó¾Ë°í¸®ÁòÀ» ÀÌ¿ëÇÒ¶§¿¡´Â ½º¿ÍÇνà ºÎ¿©µÇ´Â ŸÀÓÄöÅÒ ¶ÇÇÑ ÀûÀýÇÏ°Ô Áõ°¡½ÃÄÑÁà¾ß°ÚÁö¿ä. ÀÌ·¡Àú·¡ º¹ÀâÇØÁö°í ÀÖ´Â ¿À¿¡½ºÀ̱º¿ä. ½º¿ÍÇνà Á¤¸» ÁÖÀÇÇØ¾ß ÇÒ Á¡ÀÌ Çϳª°¡ ÀÖÁö¿ä. °£´ÜÇÏ°Ô »ý°¢Çؼ I/O¸¦ ¿ä±¸Çسõ°í ±â´Ù¸®´Â ÇÁ·Î¼¼½º°¡ ½º¿Ò¾Æ¿ô´çÇß´Ù°í Ĩ½Ã´Ù. I/OÀÇ °á°ú´Â ±×·³ ¾îµð·Î? ÀÌ°ÍÀ» ÇØ°áÇÏ´Â ¹æ¹ýÀº µÎ°¡Áö°¡ Àִµ¥, ù°´Â ÀÏ´Ü I/O¸¦ ±â´Ù¸®°í ÀÖ´Â ÇÁ·Î¼¼½º´Â Àý´ë·Î ½º¿ÍÇÎ ´ë»ó¿¡¼ Á¦¿Ü½ÃÅ°´Â°Í°ú, µÎ¹ø°´Â I/O¸¦ Çϱä ÇϵÇ, ¹Ýµå½Ã ½Ã½ºÅÛ ¹öÆÛ(system buffer)¸¦ ÀÌ¿ëÇؼ Áß°£ ÀúÀå¸Åü¸¦ ¾ðÁ¦³ª °æÀ¯ÇÏ°Ô ¸¸µå´Â °ÍÀÔ´Ï´Ù. µÑ´Ù ³ª¸§´ë·ÎÀÇ Àå´ÜÁ¡ÀÌ ÀÖÀ¸´Ï Àß »ý°¢ÇØ º¸½Ã±â ¹Ù·¡¿ä. ÈÞ¿ì,,,ÀÌ°Å µÎÀåÁ¤µµ·Î ³¡³»·Á Çߴµ¥ »ê³Ñ¾î »ê°°Àº ÁÖÁ¦·Î±º¿ä. ½ÇÁ¦ ±³°ú¼¿¡¼µµ ¸Þ¸ð¸®¿¡ °üÇѰ͸¸ µÎéÅ͸¦ ÇÒ´çÇÏ°í Àְŵç¿ä. ÀÏ´Ü ¿©±â±îÁö ¸Þ¸ð¸® °ü¸® Å×Å©´ÐÀ» ÀÌÇØÇϱâ À§ÇÑ ±âº»À̾ú´Ù°í »ý°¢ÇÏ½Ã¸é µÉµí½Í½À´Ï´Ù. ´ÙÀ½Àå¿¡¼´Â ¸Þ¸ð¸®¸¦ ¾î¶»°Ô Á¶°¢³»¼ »ç¿ëÇϸé ÁÁÀ»±î¸¦ °í¹ÎÇÏ´Ù°¡ ź»ýÇÑ ÆäÀÌ¡ ±â¹ý°ú ¼¼±×¸àÅ×ÀÌ¼Ç ±â¹ý¿¡ ´ëÇÑ ³»¿ëÀ» ´Ù·ç¾îº¸·Á ÇÕ´Ï´Ù. À̹ø ³»¿ëÀ» Á¦´ë·Î ÀÌÇØÇÏ¼Ì´Ù¸é ±×´ÙÁö ¾î·ÆÁö ¾ÊÀº ³»¿ëÀÏ°Ì´Ï´Ù :) -duffer °æÁØ (http://vorlon.cwru.edu/~kxm73)
|