ÄÄÇ»ÅÍ¿¡¼ ¹«¾ùÀΰ¡¸¦ µ¿½Ã¿¡ ½ÇÇà½ÃŲ´Ù´Â °³³äÀº ÃÊâ±âºÎÅÍ ÀÖ¾ú´Ù. ½ÇÁ¦·Î 1970³â´ë À¯´Ð½º ±¸Çö¿¡´Â ÀÌ¹Ì ¸ÖƼŽºÅ·À̶ó´Â °³³äÀÌ Æ÷ÇԵǾî ÀÖ¾ú´Ù. ÇÏÁö¸¸ ÀÌ·± ¹æ½ÄÀÌ ¹ü¿ëÀûÀ¸·Î »ç¿ëµÇ±â ±îÁö´Â ¿À·£ ½Ã°£ÀÌ °É·È´Ù. 1995³â Windows 95°¡ ³ª¿À±â±îÁö PC ¿î¿µÃ¼Á¦¸¦ °ÅÀÇ µ¶Á¡Çß´ø DOS ½ÃÀý¿¡´Â Çѹø¿¡ ÇϳªÀÇ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â °ÍÀÌ »ó½ÄÀ̾ú°í, ´Ù¸¥ ÇÁ·Î±×·¥°ú µ¿½Ã¿¡ ½ÇÇàµÇ´Â ÇÁ·Î±×·¥À» ¸¸µå´Â °ÍÀÌ ´ë´ÜÇÑ Å×Å©´ÐÀ¸·Î Ãë±Þ ¹Þ¾Ò´Ù. Windows 3.1ÀÇ µîÀå°ú ÇÔ²² ¸ÖƼŽºÅ·À̶õ °³³äÀÌ ÀϹÝÀε鿡°Ô º»°ÝÀûÀ¸·Î ¼Ò°³µÇ¾ú´Ù. Windows 3.1Àº DOS À§¿¡¼ ±¸µ¿µÇ´Â ÇÁ·Î±×·¥À̾úÁö¸¸ ¿©·¯¸ð·Î ÇöÀç WindowsÀÇ ±âƲÀ» ´ÙÁø ¿î¿µÃ¼Á¦¿´´Ù. ºñ¼±Á¡Çü ¸ÖƼŽºÅ· ¹æ½ÄÀ» Áö¿øÇß°í ÇöÀç »ç¿ëµÇ´Â GUIÀÇ ±âº» °³³äÀ» ¼Ò°³ÇÑ ¿î¿µÃ¼Á¦¿´´Ù. ÀÌ·± ½Ã±â¸¦ °ÅÃÄ Windows 95°¡ µîÀåÇÏ¸é¼ DOS ½ÃÀý¿¡ ±»¾îÁ³´ø ÀϹÝÀεéÀÇ »ó½ÄÀº ¿ÏÀüÈ÷ µÚÁýÇû´Ù. ÀÌÁ¦ ÇÁ·Î±×·¥Àº ¿ø·¡ ´ç¿¬È÷ µ¿½Ã¿¡ ½ÇÇàµÇ´Â °ÍÀÌ°í, ¿î¿µÃ¼Á¦¿¡¼ ¸ÖƼŽºÅ·À̶õ ´ç¿¬È÷ Áö¿øÇØ¾ß µÇ´Â ±â´ÉÀÌ µÅ¹ö·È´Ù. Windows 95ÀÇ ¼±Á¡Çü ¸ÖƼŽºÅ·Àº ÀϹÝÀε鿡°Ô ±×·± ÀνÄÀ» ½É¾îÁֱ⿡ ÃæºÐÇß´Ù.
ÇÏÁö¸¸ ¸ðµç ÀÏÀÌ Ç×»ó ÁÁÀº Á¡¸¸ ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. ÀϹÝÀε鿡°Ô ´ç¿¬ÇÑ ±â´É ³»Áö´Â ÃູÀÌ ½Ã¼±À» ´Þ¸®Çؼ °³¹ßÀÚÀÇ ÀÔÀåÀ¸·Î ¹Ù¶óº¸¸é Àç¾Ó°úµµ °°±â ¶§¹®ÀÌ´Ù. ´Ü¼øÈ÷ µ¿½Ã¿¡ ½ÇÇàµÈ´Ù´Â »ç½Ç ¸¸À¸·Î´Â ±×·¸°Ô ¸¹Àº ¹®Á¦°¡ ¹ß»ýÇÏÁø ¾ÊÁö¸¸ µ¿½Ã »óȲ¿¡¼ ¹«¾ùÀΰ¡¸¦ °øÀ¯Çϱ⠽ÃÀÛÇϸé Áö¿Á ¹®À» ¿©´Â °Í°ú µ¿ÀÏÇÑ È¿°ú¸¦ °¡Á®¿Â´Ù. ´Ü¼øÈ÷ Çϳª¸¸ °øÀ¯Çصµ ÀÌ·±µ¥ ÇÁ·Î¼¼½º ³»¿¡¼ ¸ðµç ÀÚ¿øÀ» °øÀ¯ÇÏ´Â ½º·¹µå´Â ¹®Á¦ ¹ß»ýÀÇ Á¤µµ°¡ ´õ ½É°¢ÇÏ´Ù. ÀÌ·± ȯ°æÀº °³¹ßÀÚ¿¡°Ô ¾öû³ª°Ô ¸¹Àº ¹®Á¦µéÀ» ¾È°ÜÁÖ¾ú°í, ´õºÒ¾î ±âÁ¸¿¡´Â °í¹ÎÇÒ ÇÊ¿äµµ ¾ø¾ú´ø ¹®Á¦µé¿¡ ´ëÇؼ °í·ÁÇϵµ·Ï ¸¸µé¾ú´Ù. ±×¸®°í ÀÌ ½ÃÁ¡ºÎÅÍ ´õ ÀÌ»ó ÇÁ·Î±×·¥Àº °áÁ¤·ÐÀûÀ¸·Î µ¿ÀÛÇÏÁö ¾Ê°Ô µÇ¾ú´Ù. ÀÌ´Â ´Þ¸® Ç¥ÇöÇϸé ÀçÇö ºÒ°¡´ÉÇÑ ¹«¼öÇÑ ¹ö±×µéÀÌ ½º·¹µå¶ó´Â Æǵµ¶óÀÇ »óÀÚ¸¦ ÅëÇؼ ¼¼»óÀ¸·Î ÃâÇöÇß´Ù´Â °ÍÀÌ´Ù.
ÀÌ·± ¿©·¯ ÀÌÀ¯·Î ¸ÖƼ ½º·¹µå ÇÁ·Î±×·¡¹ÖÀº À©µµ¿ì ÇÁ·Î±×·¡¹Ö Áß¿¡¼µµ ¸Å¿ì ¾î·Á¿î ºÎºÐ¿¡ ¼ÓÇÑ´Ù. ±×·³¿¡µµ Á¡Á¡ ´õ PCÀÇ ÄÚ¾î ¼ö´Â ´Ã¾î°¡°í ¸ÖƼ ½º·¹µå ÇÁ·Î±×·¡¹ÖÀº Á¡Á¡ ´õ ´ç¿¬ÇÑ ÀÏÀÌ µÇ¾î°¡°í ÀÖ´Ù. ¿Ö ¸ÖƼ ½º·¹µå ÇÁ·Î±×·¡¹ÖÀÌ ¾î·Á¿î °ÍÀϱî? ¾Æ¸¶µµ ¿ì¸®ÀÇ »ý°¢ ÀÚü°¡ º´·ÄÀûÀ¸·Î µ¿½Ã ó¸®ÇÏ´Â °Í¿¡ Àͼ÷ÇÏÁö ¾ÊÀº Á¡¿¡ ±× ±Ùº»ÀûÀÎ ¿øÀÎÀÌ ÀÖÀ» °Í °°´Ù. À̹ø ½Ã°£¿¡´Â ÄÄÇ»ÅÍ¿¡¼ ¸ÖƼŽºÅ·À» ±¸ÇöÇÏ´Â ±âº»ÀûÀÎ ±¸Á¶¿Í ¸ÖƼŽºÅ·ÀÌ °¡Á®¿À´Â µ¿±âÈ ¹®Á¦¿¡ ´ëÇؼ »ìÆ캸µµ·Ï ÇÏÀÚ.
½ÃºÐÇÒ
¿äÁòÀº CPU°¡ ¿©·¯ °³ ´Þ¸° ÄÄÇ»ÅÍ°¡ ÀϹÝÀûÀÌ´Ù. ½º¸¶Æ®Æù¿¡µµ µà¾ó Äھ žÀçµÇ´Â ¼¼»óÀÌ´Ï PC´Â µÎ ¸»Çϸé ÀܼҸ®´Ù. ÀÌ·¸°Ô CPU°¡ ¿©·¯ °³ ´Þ¸° ÄÄÇ»ÅÍ¿¡¼´Â µ¿½Ã¿¡ ½ÇÇàÇÏ´Â °ÍÀÌ Çϳªµµ ÀÌ»óÇÏÁö ¾Ê´Ù. ÀåÄ¡ °³¼ö¸¸Å µ¿½Ã¿¡ ½ÇÇàÇÒ ¼ö ÀÖ´Â °ÍÀº ´©°¡ ºÁµµ ´ç¿¬ÇÑ ÀÏÀ̱⠶§¹®ÀÌ´Ù. ÇÏÁö¸¸ Windows°¡ Àα⸦ ²øµí ¸»µíÇß´ø Windows 3.1 ½ÃÀýºÎÅÍ Windows XP°¡ µîÀåÇÏ´ø ½ÃÁ¡±îÁö´Â ÀÌ·¯ÇÑ ¸ÖƼ Äھ ÀϹÝÀûÀÎ PC ȯ°æÀº ¾Æ´Ï¾ú´Ù. ±× ´ç½Ã ÄÄÇ»ÅÍ¿¡´Â CPU°¡ Çϳª¶ó´Â °ÍÀÌ °ÅÀÇ °íÁ¤ÀûÀ̾ú´ø ½ÃÀýÀ̾ú´Ù. ±×·¸´Ù¸é ¾î¶»°Ô ÀÌ CPU°¡ ÇϳªÀΠȯ°æ¿¡¼ ¿©·¯ °³ÀÇ ÇÁ·Î±×·¥À» µ¿½Ã¿¡ ½ÇÇàÇÒ ¼ö ÀÖ¾ú´ø °ÍÀϱî? ¿©±â¿¡´Â ¾à°£ÀÇ ´«¼ÓÀÓÀÌ ÀÖ´Ù.
´«¼ÓÀÓÀ» ½±°Ô ÀÌÇØÇϱâ À§Çؼ ¿ì¸®°¡ °øºÎ¸¦ ÇÏ´Â °úÁ¤¿¡ ºñÀ¯¸¦ µé¾î¼ ¸ÕÀú »ìÆ캸µµ·Ï ÇÏÀÚ. ÅÖ ºó Ã¥»óÀÌ ÀÖ°í, Ã¥»ó ¾Õ ÀÇÀÚ¿¡ ¿ì¸®°¡ ¾É¾Æ ÀÖ´Â »óȲÀÌ´Ù. Ã¥»ó¿¡´Â ±¹¾î, ¿µ¾î, ¼öÇÐ ¹®Á¦ÁýÀÌ ³õ¿© ÀÖ´Ù. ÀÌ ¹®Á¦ÁýÀ» ´Ù Ǫ´Â °ÍÀÌ ¿À´Ã ¿ì¸®ÀÇ ÇÒ ÀÏÀÌ´Ù. ÀÌ ¹Ì¼ÇÀ» ´Þ¼ºÇÏ´Â ¹æ¹ý¿¡´Â Å©°Ô µÎ °¡Áö Àü·«ÀÌ Á¸ÀçÇÑ´Ù°í º¼ ¼ö ÀÖ´Ù. Çϳª´Â ±¹¾î ¹®Á¦ÁýÀ» ´Ù Ç®°í, ¿µ¾î ¹®Á¦ÁýÀ» ´Ù Ç®°í, ¼öÇÐ ¹®Á¦ÁýÀ» ´Ù Ǫ´Â ÇüÅ·Π¼øÂ÷ÀûÀ¸·Î Çϳª¾¿ ÀÛ¾÷À» ¿Ï·áÇØ ³ª°¡´Â ¹æ½ÄÀÌ°í, ´Ù¸¥ Çϳª´Â ±¹¾î, ¿µ¾î, ¼öÇÐ ¹®Á¦ÁýÀ» ¹ø°¥¾Æ °¡¸é¼ Á¶±Ý¾¿ Ç®¾î ³ª°¡´Â ¹æ½ÄÀÌ´Ù. ¸ÖƼŽºÅ·ÀÇ ºñ¹ÐÀº ¹Ù·Î µÎ ¹ø° ¹æ¹ý¿¡ ÀÖ´Ù. ¹®Á¦ÁýÀ» ¹ø°¥¾Æ °¡¸é¼ Ǫ´Â »óȲ¿¡¼ ¹®Á¦ÁýÀ» ±³Ã¼ÇÏ´Â ½Ã°£À» ´ÜÃà½ÃÅ°´Ù º¸¸é ¾î´À ¼ø°£ºÎÅÍ´Â ¸¶Ä¡ ¿ì¸®°¡ ¼¼ °³ÀÇ ¹®Á¦ÁýÀ» µ¿½Ã¿¡ Ç®°í ÀÖ´Â °Íó·³ ´À²¸Áø´Ù´Â »ç½ÇÀ» ÀÌ¿ëÇÑ °ÍÀÌ´Ù.
¿î¿µÃ¼Á¦´Â ¿©·¯ °³ÀÇ ÇÁ·Î±×·¥À» µ¿½Ã¿¡ ½ÇÇàÇϱâ À§Çؼ ¿ì¸®°¡ ¹®Á¦ÁýÀ» Ç®¾ú´ø °Í°ú µ¿ÀÏÇÑ ¹æ½ÄÀ¸·Î CPU¿¡ ÇÁ·Î±×·¥ Äڵ带 ÇÒ´çÇÑ´Ù. Ž»ö±â, °è»ê±â, ±×¸²ÆÇÀÌ ½ÇÇàµÇ¾î ÀÖ´Ù¸é Windows´Â Ž»ö±â Äڵ带 Á¶±Ý ½ÇÇàÇÏ°í °è»ê±â Äڵ带 ¶Ç Á¶±Ý ½ÇÇàÇÏ°í ÀÌ¾î¼ ±×¸²ÆÇ Äڵ带 ½ÇÇàÇÏ°í´Â ´Ù½Ã Ž»ö±â Äڵ带 ½ÇÇàÇÏ´Â ½ÄÀ¸·Î µ¿½Ã¿¡ ½ÇÇàµÈ ÇÁ·Î±×·¥ÀÇ ÄÚµåµéÀ» Àß°Ô ³ª´©¾î¼ ¹Ýº¹ÀûÀ¸·Î ½ÇÇàÇÔÀ¸·Î½á ¸¶Ä¡ ¿ì¸® ´«¿¡´Â ¿©·¯ °³ÀÇ ÇÁ·Î±×·¥ÀÌ µ¿½Ã¿¡ ½ÇÇàµÇ´Â °Íó·³ º¸À̵µ·Ï ¸¸µç´Ù.
¹®Á¦ÁýÀ» ¹ø°¥¾Æ °¡¸é¼ Ç®·Á¸é ¹®Á¦ÁýÀ» ¹Ù²Ü ¶§¿¡ ÀÚ½ÅÀÌ ¸¶Áö¸·À¸·Î Ç®¾ú´ø ¹®Á¦°¡ ¾îµðÀÎÁö¸¦ ±â·ÏÇØ µÎ¾î¾ß ÇÑ´Ù. ±×·¡¾ß ³ªÁß¿¡ ´Ù½Ã ±× ¹®Á¦ÁýÀ» Ç® ¶§¿¡ ¾îµð¼ºÎÅÍ Ç®¾î³ª°¡¾ß ÇÒÁö ±â¾ïÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ÀÌ·¸°Ô ¸¶Áö¸·À¸·Î Ç®¾ú´ø ¹®Á¦°¡ ¾î¶² °ÍÀ̾ú´ÂÁö¸¦ ±â¾ïÇÏ´Â °Í°ú ¸¶Âù°¡Áö·Î ¸ÖƼŽºÅ·¿¡¼µµ ÀÌ·¯ÇÑ °ÍµéÀÌ ÇÊ¿äÇÏ´Ù. ÀÛ¾÷À» À̾±â À§Çؼ´Â ÁßÁöÇß´ø ÀÛ¾÷À» ¾îµð¼ºÎÅÍ À̾¾ß ÇÒÁö¸¦ ¾Ë¾Æ¾ß Çϱ⠶§¹®ÀÌ´Ù. ÀÌ·¸°Ô ÀÛ¾÷À» À̾±â À§Çؼ Áß´ÜÇß´ø ½ÃÁ¡ÀÇ ±â·ÏÀ» “ÄÁÅؽºÆ®”, ÀÛ¾÷µéÀ» ÀüȯÇÏ´Â °ÍÀ» µÎ°í´Â “ÄÁÅؽºÆ® ½ºÀ§Äª”À̶ó°í Ç¥ÇöÇÑ´Ù.
¹®Á¦ÁýÀ» ¹ø°¥¾Æ °¡¸é¼ Ǭ´Ù´Â ÀÌ ¹æ¹ýÀ» Á» ´õ »ìÆ캸¸é Àç¹ÌÀÖ´Â Çö»óÀÌ ÀÖ´Ù. ¹®Á¦ÁýÀ» ³Ê¹« ¶ç¾ö¶ç¾ö ¹ø°¥¾Æ Ç® °æ¿ì¿¡´Â ¼¼ °³¸¦ µ¿½Ã¿¡ Ǭ´Ù´Â ´À³¦ÀÌ ¾ø¾îÁö°í, ¹®Á¦ÁýÀ» ÀÚÁÖ ¹ø°¥¾Æ Ç®´Ù º¸¸é ƯÁ¤ ½ÃÁ¡ ÀÌ»óºÎÅÍ´Â ¹®Á¦ÁýÀ» Ǫ´Â ½Ã°£º¸´Ù ¹®Á¦ÁýÀ» ¹Ù²Ù´Â ½Ã°£ÀÌ ´õ ¸¹¾ÆÁø´Ù´Â Á¡ÀÌ´Ù. ÀÌ´Â ½ÃºÐÇÒÀ» »ç¿ëÇÑ ¸ÖƼŽºÅ· ½Ã½ºÅÛ¿¡¼´Â ¸ðµÎ ¹ß»ýÇÏ´Â ¹®Á¦·Î ÄÁÅؽºÆ® ±³Ã¼ ºñ¿ëÀÌ °øÂ¥°¡ ¾Æ´Ï¶ó´Â Á¡À» º¸¿©ÁØ´Ù. µû¶ó¼ ¿î¿µÃ¼Á¦´Â ¸ÖƼŽºÅ·ÀÇ Ç°Áú°ú ±³Ã¼ ºñ¿ëÀ» °í·ÁÇؼ ÀÛ¾÷ ±³Ã¼ ºóµµ¸¦ ÀûÀýÇÏ°Ô °áÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.
Çù·ÂÇü vs ¼±Á¡Çü
¾Õ¼± ±¹¿µ¼ö ¹®Á¦Áý Ç®ÀÌ ¿¹¸¦ ´Ù½Ã »ý°¢ÇØ º¸ÀÚ. ¿©±â¼ ¿ì¸®°¡ ¹®Á¦ÁýÀ» ¹ø°¥¾Æ Ǭ´Ù°í »ý°¢ÇßÀ» ¶§ À̸¦ ÅëÁ¦ÇÏ´Â ¹æ½Ä ¶ÇÇÑ Å©°Ô µÎ °¡Áö ÇüÅ·Π³ª´· ¼ö ÀÖ´Ù. ¹®Á¦ÁýÀ» Ǫ´Â ´ç»çÀÚ°¡ ÀÚÀ¯·Ó°Ô ÀÏÁ¤½Ã°£ ÇÑ ¹®Á¦ÁýÀ» Ç®´Ù°¡ ´ÙÀ½ ¹®Á¦ÁýÀ» Ǫ´Â ÇüÅ·Π¹ø°¥¾Æ °¡¸é¼ Ǫ´Â ¹æ½ÄÀÌ ÀÖÀ» ¼ö ÀÖ°í, ´Ù¸¥ Çϳª´Â ¼±»ý´ÔÀÌ ÀÏÁ¤½Ã°£¸¶´Ù µé¾î¿Í¼ ´ÙÀ½ ¹®Á¦ÁýÀ» Ç®µµ·Ï Áö½ÃÇÏ´Â ¹æ¹ýÀÌ ÀÖÀ» ¼ö ÀÖ´Ù.
±×·¸´Ù¸é ÀÌ µÎ ¹æ½Ä¿¡´Â °¢°¢ ¾î¶² Àå´ÜÁ¡µéÀÌ ÀÖÀ»±î? ¿ì¼± ½º½º·Î °ü¸®ÇÏ´Â ¹æ¹ýÀ» »ý°¢ÇØ º¸ÀÚ. ÀÌ ¹æ¹ýÀÇ ÀåÁ¡Àº È¿À²¼ºÀÇ ±Ø´ëÈ¿¡ ÀÖ´Ù. ¹®Á¦¸¦ Ǫ´Â ´ç»çÀÚ°¡ ½º½º·Î ¹®Á¦ÁýÀ» ±³Ã¼Çϱ⠶§¹®¿¡ ¾ðÁ¦ ±³Ã¼ÇÏ´Â °ÍÀÌ °¡Àå À¯¸®ÇÑÁö¸¦ ¾Ë ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ´Ù¸¥ ºÎ°¡ÀûÀÎ ÀåÁ¡À¸·Î´Â ¼±»ý´ÔÀ̶ó´Â ¿ÜºÎ Á¸Àç°¡ ÇÊ¿äÇÏÁö ¾Ê´Ù´Â Á¡À» µé ¼ö ÀÖ°Ú´Ù. ÀÌ´Â ´Ù½Ã ¸»ÇÏ¸é ºñ¿ëÀÌ Àý°¨µÈ´Ù´Â ¸»ÀÌ´Ù. ÀÌ¿¡ ¹ÝÇؼ µÎ ¹ø° ¹æ¹ýÀº ¼±»ý´ÔÀ̶ó´Â Ãß°¡ ºñ¿ëÀÌ ¹ß»ýÇÏÁö¸¸ ¹®Á¦Áý ±³Ã¼°¡ ÀÏÁ¤½Ã°£¸¶´Ù ¹Ýµå½Ã ¹ß»ýÇϱ⠶§¹®¿¡ ¹®Á¦Áý ¼¼ °³¿¡ ÇÒ´çµÇ´Â ½Ã°£ÀÌ ºñ½ÁÇØ Áø´Ù. ¸ÖƼŽºÅ·ÀÇ °üÁ¡¿¡¼ º¸ÀÚ¸é ÀÏÁ¤ ¼öÁØ ÀÌ»óÀ¸·Î ¸ÖƼŽºÅ· Ç°ÁúÀ» À¯ÁöÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
ÀÌ°Ô ¹Ù·Î Çù·ÂÇü°ú ¼±Á¡Çü ¸ÖƼŽºÅ·ÀÇ Â÷ÀÌ´Ù. Çù·ÂÇü ¸ÖƼŽºÅ·À̶õ ¸ÖƼŽºÅ· ÀÛ¾÷µéÀÌ Çù·ÂÇؼ µ¿½Ã¿¡ ½ÇÇàµÇ´Â ±¸Á¶¸¦ ¸»ÇÑ´Ù. ÇÁ·Î±×·¥ ½ÇÇà Áß°£¿¡ ½º½º·Î ÄÁÅؽºÆ® ÀüȯÀ» Çصµ µÇ´Â ½ÃÁ¡À̶ó°í ÆÇ´ÜÀÌ µÈ´Ù¸é ´ÙÀ½ ÀÛ¾÷¿¡°Ô CPU¸¦ ¾çº¸ÇØÁÖ´Â ÇüÅ·Π¸ÖƼŽºÅ·ÀÌ ÁøÇàµÈ´Ù. Windows 3.1ÀÌ ÀÌ·¯ÇÑ ¹æ½ÄÀ» äÅÃÇß¾ú´Ù. ÇÏÁö¸¸ ¾Õ¼µµ ¾ð±ÞÇßµíÀÌ ÀÌ ¹æ½ÄÀÇ ´ÜÁ¡Àº ƯÁ¤ ÀÛ¾÷ÀÌ Áö³ªÄ¡°Ô ¿À·¡ CPU¸¦ µ¶Á¡ÇÒ °æ¿ì Àüü ¸ÖƼŽºÅ·ÀÇ Ç°ÁúÀÌ ¶³¾îÁú ¼ö ÀÖ´Ù´Â Á¡¿¡ ÀÖ´Ù. ´õ¿í Ä¡¸íÀûÀÎ ¹®Á¦´Â ƯÁ¤ ÀÛ¾÷ÀÇ ¹ö±×·Î ÀÎÇؼ CPU ÀÚ¿øÀ» ´Ù¸¥ ÀÛ¾÷¿¡°Ô ¾çº¸ÇÏÁö ¾ÊÀ» °æ±¸ ¿î¿µÃ¼Á¦ ÀÚü°¡ ´Ù¿îµÉ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù.
¼±Á¡Çü ¸ÖƼŽºÅ·À̶õ Çù·ÂÇü°ú´Â ¹Ý´ë·Î ÀÛ¾÷ Á¦¾î ±ÇÇÑÀ» Ä¿³ÎÀÌ °¡Áö´Â ±¸Á¶¸¦ ¸»ÇÑ´Ù. ÀÌ´Â ¸ðµç ÀÛ¾÷ÀÌ ÀÓÀÇÀÇ ½ÃÁ¡¿¡ Ä¿³Î¿¡ ÀÇÇؼ ¼±Á¡µÉ ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù. ¼±Á¡µÈ´Ù´Â ¸»Àº CPU ÀÚ¿øÀÌ Ä¿³Î¿¡°Ô·Î ´Ù½Ã ³Ñ¾î°£´Ù´Â °ÍÀÌ´Ù. ¿©±â¿¡¼± ƯÁ¤ ÀÛ¾÷ÀÌ CPU¸¦ µ¶Á¡ÇÒ ¼öµµ ¾øÀ¸¸ç, CPU¸¦ µ¶Á¡ÇÏ·Á ÇÑ´Ù°í Çصµ Ä¿³ÎÀÌ ¿øÇÏ¸é ¾ðÁ¦µçÁö CPU Á¦¾î±ÇÀ» »¯¾î¿Ã ¼ö ÀÖ´Ù. Áï, Ä¿³ÎÀÌ ¼±»ý´ÔÀÇ ¿ªÇÒÀ» ÇÑ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ÀÌ ¹æ½ÄÀÇ ÀåÁ¡Àº ¾Õ¿¡¼µµ ¼³¸íÇÑ °Í°ú °°ÀÌ ¾ÈÁ¤ÀûÀ¸·Î ¸ÖƼŽºÅ·À» ¼öÇàÇÒ ¼ö ÀÖÀ¸¸ç, ÀÛ¾÷µéÀÇ ¹ö±×·Î ½Ã½ºÅÛ´Ù¿îÀ̶ó´Â Ä¡¸íÀûÀÎ °á°ú°¡ ³ªÅ¸³ªÁø ¾Ê´Â´Ù´Â Á¡ÀÌ ÀÖ´Ù. Windows 95 ÀÌÈÄÀÇ ¸ðµç Windows ¿î¿µÃ¼Á¦´Â ÀÌ·¯ÇÑ ¼±Á¡Çü ¸ÖƼŽºÅ· ¹æ½ÄÀ¸·Î ¸ÖƼŽºÅ·À» ±¸ÇöÇÏ°í ÀÖ´Ù.
½º·¹µå
ÀüÅëÀûÀ¸·Î ¿î¿µÃ¼Á¦¿¡¼ ÀÛ¾÷À̶õ ÇÁ·Î¼¼½º¶õ °³³äÀ¸·Î Ç¥ÇöµÈ´Ù. µû¶ó¼ ¿î¿µÃ¼Á¦´Â ¾Õ¼ ¼³¸íÇÑ °Íó·³ ÀÌ·± ÇÁ·Î¼¼½º¸¦ µ¿½Ã¿¡ ¿©·¯ °³ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ¸¸µé±â À§Çؼ ÇÁ·Î¼¼½ºÀÇ Äڵ带 ¹ø°¥¾Æ °¡¸é¼ ¼öÇàÇÑ´Ù. ÀÌ·¸°Ô ¸ÖƼŽºÅ· ¿î¿µÃ¼Á¦¸¦ ¸¸µé¾î³õ°í º¸´Ï ¸¸µé¾îÁø ÇÁ·Î¼¼½ºµé Áß¿¡´Â ´Ù¸¥ ÇÁ·Î¼¼½º¿Í ´ë±Ô¸ðÀÇ ÀڷḦ °øÀ¯ÇØ¾ß ÇÏ´Â °ÍµéÀÌ ÀÖ¾ú´Ù. ÀÌ·± ÇÁ·Î¼¼½ºµéÀº ´Ü¼øÈ÷ ÀڷḦ °øÀ¯Çϱâ À§Çؼ ¿î¿µÃ¼Á¦ÀÇ IPC¶ó´Â º¹ÀâÇÏ°í ºñ½Ñ ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÏ°í ÀÖ¾ú´Ù. ¿©±â¿¡¼ ÀÌ·± Àǹ®À» Ç°Àº »ç¶÷µéÀÌ »ý°Ü³´Ù. ¿Ö ÀÌ·¸°Ô ¸ÛûÇÏ°Ô ÇÏ°í ÀÖÁö? óÀ½ºÎÅÍ ¸ðµç °ÍÀ» ÀÚµ¿À¸·Î °øÀ¯Çϵµ·Ï ÇØÁØ´Ù¸é ¾î¶³±î? ÀÌ·± »ý°¢ÀÌ ½º·¹µå¶ó´Â °³³äÀÇ Ãʱ⠹߻óÀÌ´Ù. ¸¹Àº À¯´Ð½º ¿î¿µÃ¼Á¦´Â ÀÌ °³³äÀÇ »ý°¢´ë·Î ½º·¹µå¸¦ Ư¼öÇÑ ÇüÅÂÀÇ ÇÁ·Î¼¼½º·Î ó¸®ÇÑ´Ù. ½ÇÁ¦·Î ¸®´ª½ºÀÇ °æ¿ì¿¡´Â ½º·¹µå¶ó´Â º°µµÀÇ Ä¿³Î °´Ã¼¸¦ µÎ±â º¸´Ù´Â ´Ü¼øÈ÷ µ¿ÀÏÇÑ Ä¿³Î ±¸Á¶Ã¼¸¦ ÂüÁ¶Çϴ Ư¼öÇÑ ÇÁ·Î¼¼½º·Î ±¸ÇöÇß´Ù.
ÇÏÁö¸¸ Windows´Â ÀÌ·¯ÇÑ ¹æ½ÄÀÌ ¾Æ´Ñ Á» ´Ù¸¥ ¹æ½ÄÀ¸·Î ½º·¹µå¿Í ÇÁ·Î¼¼½ºÀÇ °ü°è¸¦ Á¤¸®Çß´Ù. ÀÏ´Ü ±âÁ¸ÀÇ ½ºÄÉÁÙ¸µ ´ÜÀ§¸¦ ÇÁ·Î¼¼½º¿¡¼ ½º·¹µå·Î ¹Ù²Ù¾î ¹ö·È°í, ÇÁ·Î¼¼½º´Â ½º·¹µå°¡ ¼öÇàµÉ ¶§ ÂüÁ¶ÇÏ´Â ÄÁÅ×ÀÌ³Ê ¿ªÇÒ·Î ¸¸µé¾î¹ö·È´Ù. ÀÌ·¸°Ô ¸¸µé¾î¹ö¸®ÀÚ Windows¿¡¼´Â ½º·¹µå°¡ ¾ø´Â ÇÁ·Î¼¼½º¶õ ¾Æ¹«·± Àǹ̰¡ ¾ø¾îÁ³´Ù. ±×·¡¼ Windows¿¡¼ ¸ðµç ½º·¹µå Á¾·á¶õ ÇÁ·Î¼¼½ºÀÇ Á¾·á¸¦ ÀǹÌÇÑ´Ù.
´Ù½Ã Á¤¸®Çϸé ÀÌ·¸´Ù. Windows ȯ°æ¿¡¼ ÇÁ·Î¼¼½º¶õ ½ÇÇà ȯ°æÀ» Á¦°øÇØÁÖ±â À§ÇÑ ÄÁÅ×ÀÌ³Ê ¿ªÇÒÀ» ÇÑ´Ù. ¿©±â¿¡´Â ÁÖ¼Ò °ø°£°ú Á¢±Ù ±ÇÇÑ °°Àº °ÍµéÀÌ Æ÷ÇԵȴÙ. ÇÁ·Î¼¼½º ÀÚü·Î´Â ¼öÇà °¡´ÉÇÑ °´Ã¼°¡ ¾Æ´Ï¸ç ³»ºÎ¿¡¼ Çϳª ÀÌ»óÀÇ ½º·¹µå¸¦ ¼öÇà½Ãų ¼ö Àִ ȯ°æ¿¡ ºÒ°úÇÏ´Ù. ½º·¹µå´Â ½ºÄÉÁÙ¸µÀÇ ±âº» ´ÜÀ§À̸ç ÇϳªÀÇ ½ÇÇà È帧À» ³ªÅ¸³½´Ù. ½º·¹µå´Â ¼öÇàµÇ±â À§Çؼ´Â ÇØ´ç ½º·¹µå°¡ ¼öÇàµÉ ÇÁ·Î¼¼½º Á¤º¸°¡ ÀÖ¾î¾ß ÇÑ´Ù.
µ¿±âÈ
½º·¹µå°¡ À̾߱Ⱑ ³ª¿À¸é ±âº» ¾ÈÁÖ·Î ÇÔ²² µîÀåÇÏ´Â ¸Þ´º°¡ µ¿±âÈ ¹®Á¦´Ù. ¿Ö ±×·²±î? ±× ´äÀ» ¾Ë±â À§Çؼ´Â “µ¿±âȶõ ¹«¾ùÀΰ¡?” ¶ó´Â Áú¹®¿¡ ´ëÇÑ ´äÀ» ¸ÕÀú ã¾Æ¾ß ÇÑ´Ù. µ¿±âȶõ ¹Ù·Î Äڵ尡 ½ÇÇàµÇ´Â ¼ø¼¸¦ Á¤ÇÏ´Â ÀÏÀ» ¸»ÇÑ´Ù. ¾î¶² Äڵ带 ¸ÕÀú ½ÇÇàÇÒÁö ¾î¶² Äڵ带 ³ªÁß¿¡ ½ÇÇàÇÒÁö ¼ø¼¸¦ Á¤ÇÏ´Â ÀÏÀÌ´Ù. “ÇÁ·Î±×·¥Àº Ç×»ó ÇÁ·Î±×·¡¸Ó°¡ Á¤ÇصР¼ø¼´ë·Î ½ÇÇàµÇ´Â °Í ¾Æ´Ñ°¡¿ä?”¶ó´Â Àǹ®À» °¡Áú ¼ö ÀÖ´Ù. ¸Â´Ù. ÇÁ·Î±×·¥Àº Ç×»ó ÇÁ·Î±×·¡¸Ó°¡ Á¤ÇصР¼ø¼´ë·Î ½ÇÇàµÈ´Ù. Çϳª¸¸ ½ÇÇàµÉ ¶§¿¡´Â ¸»ÀÌ´Ù. ÇÏÁö¸¸ µ¿½Ã¿¡ ½ÇÇàµÇ±â ½ÃÀÛÇÏ¸é ¹®Á¦°¡ ´Þ¶óÁø´Ù. °³º° ½ÇÇà È帧µéÀº ±âÁ¸°ú ¸¶Âù°¡Áö·Î ¼øÂ÷ÀûÀ¸·Î ¼öÇàµÇÁö¸¸ ±× È帧µéÀÌ ¼¯À̸é ÀüÇô »ý°¢Áöµµ ¸øÇÑ ¹®Á¦¸¦ ¹ß»ý½ÃŲ´Ù. À̸¦ ¹æÁöÇϱâ À§Çؼ ¼¯¿©¼ ½ÇÇàµÇ´Â ÄÚµåµé »çÀÌ¿¡ ¼ø¼¸¦ Á¤ÇÏ´Â ÀÏÀÌ ÇÊ¿äÇØÁø °ÍÀÌ´Ù. ±×·¡¼ µ¿±âÈ ¹®Á¦¶õ Ç×»ó µ¿½Ã¼º°ú °°ÀÌ ³ª¿Ã ¼ö ¹Û¿¡ ¾ø´Ù.
µ¿½Ã¼º vs º´·Ä¼º
ºñ½ÁÇØ º¸ÀÌ´Â ÀÌ µÎ ¸»Àº Å« Â÷À̸¦ °¡Áö°í ÀÖ´Ù. ¿ì¼± µ¿½Ã¼ºÀ̶õ ¿ì¸®¿¡°Ô µ¿½Ã¿¡ ½ÇÇàµÇ´Â °Íó·³ º¸ÀÌ´Â °ÍµéÀ» ¸ðµÎ ³ªÅ¸³»´Â ¸»ÀÌ´Ù. µû¶ó¼ ´ÜÀÏ CPU »ó¿¡¼ ½ÃºÐÇÒ ±â¹ýÀ» »ç¿ëÇؼ ¿©·¯ °³ÀÇ ÇÁ·Î±×·¥À» ¼öÇàÇÏ´Â °Íµµ µ¿½Ã¼º¿¡´Â Æ÷ÇԵȴÙ. ¹Ý¸é º´·Ä¼ºÀ̶õ º¹¼öÀÇ CPU¸¦ ÅëÇؼ Äڵ尡 ÁøÂ¥ µ¿½Ã¿¡ ½ÇÇàµÇ´Â »óȲÀ» ³ªÅ¸³½´Ù. ÀÌ·± Àǹ̿¡¼ º´·Ä¼ºÀ̶õ ¹°¸®ÀûÀÎ µ¿½Ã¼ºÀ» ³ªÅ¸³½´Ù°í »ý°¢ÇÏ¸é µÇ°Ú´Ù.
<¸®½ºÆ® 1>¿¡´Â µ¿±âÈ ¹®Á¦¸¦ º¸¿©ÁÖ´Â °£´ÜÇÑ Äڵ尡 ³ª¿Í ÀÖ´Ù. PinGame ÇÔ¼ö´Â ÇÉÀ» ¼·Î Çϳª¾¿ °¡Á®°¡¸é¼ ¸¶Áö¸· ÇÉÀ» °¡Á®°¡´Â »ç¶÷ÀÌ À̱â´Â °ÔÀÓÀ» ¹¦»çÇÑ ÄÚµå´Ù. ÀÌÁ¦ ÀÌ ÇÔ¼ö°¡ ½º·¹µå·Î ¿©·¯ °³°¡ µ¿½Ã¿¡ ½ÇÇàµÈ´Ù°í °¡Á¤Çغ¸ÀÚ. ±×·¯¸é °³º° ½º·¹µå´Â ÀÌ ÇϳªÀÇ Äڵ带 ¼øÂ÷ÀûÀ¸·Î ½ÇÇàÇÏ°ÚÁö¸¸ ¿î¿µÃ¼Á¦ °üÁ¡¿¡¼ º¸ÀÚ¸é ÀÌ ÄÚµåµéÀÌ ¼¯¿©¼ µ¿½Ã¿¡ ½ÇÇàµÇ´Â ¼ÀÀÌ µÈ´Ù. ÀÌ·¸°Ô µ¿½Ã¿¡ ½ÇÇàµÇ¸é Çϳª¸¸ ½ÇÇàµÉ ¶§¿¡´Â ÀüÇô »ý°¢Áöµµ ¸øÇß´ø ¹®Á¦°¡ ¹ß»ýÇϴµ¥ ÀÌ·¸°Ô µ¿½Ã¿¡ ½ÇÇàµÇ¸é¼ ¹ß»ýÇÏ´Â ¹®Á¦¸¦ µ¿±âÈ ¹®Á¦¶ó°í ¸»ÇÑ´Ù.
¿ì¼± µ¿±âÈ ¹®Á¦¸¦ º¸´Ù È¿°úÀûÀ¸·Î ¼³¸íÇϱâ À§Çؼ °£´ÜÇÑ Ç¥Çö½ÄÀ» Á¤ÀÇÇÏÀÚ. “(¼ýÀÚ)”´Â ¼ýÀÚ¿¡ ÇØ´çÇÏ´Â ½º·¹µå·Î ÄÁÅؽºÆ®°¡ º¯°æµÆÀ½À» ³ªÅ¸³½´Ù. a, b¿Í °°Àº ±âÈ£´Â ÄÚµå »óÀÇ ÁÖ¼®¿¡ ³ªÅ¸³ª ÀÖ´Â ÁöÁ¡ÀÌ ½ÇÇàµÆÀ½À» ÀǹÌÇÑ´Ù. µû¶ó¼ “(1)ab”¶ó´Â °ÍÀº 1¹ø ½º·¹µå°¡ a, b¶ó´Â Äڵ带 ½ÇÇàÇßÀ½À» ³ªÅ¸³½´Ù. ¸¶Âù°¡Áö·Î “(1)ab(2)a”¶ó´Â °ÍÀº 1¹ø ½º·¹µå°¡ a, b¸¦ ¼öÇàÇÏ°í 2¹ø ½º·¹µå·Î ÄÁÅؽºÆ® ÀüȯµÅ¼ a¶ó´Â Äڵ尡 ½ÇÇàµÆÀ½À» ³ªÅ¸³½´Ù.
¸®½ºÆ® 1 µ¿±âÈ ¹®Á¦¸¦ °¡Áø ÄÚµå
- int pin = 2;
- void PrintWinner()
- {
- for(;;)
- { // ... a
- if(pin == 1) // ... b
- {
- --pin; // ... c
- printf("you winn"); // ... d
- break;
- }
- else
- --pin; // ... e
- }
- }
int pin = 2;void PrintWinner(){ for(;;) { // ... a if(pin == 1) // ... b { --pin; // ... c printf("you winn"); // ... d break; } else --pin; // ... e }}
ÀÚ ±×·¸´Ù¸é ¾Õ¼ Á¤ÀÇÇÑ Ç¥Çö½ÄÀ» Åä´ë·Î <¸®½ºÆ® 1>ÀÇ Äڵ忡¼ µ¿±âÈ ¹®Á¦°¡ ¹ß»ýÇÏ´Â È帧À» ã¾Æº¸µµ·Ï ÇÏÀÚ. ¹Ù·Î “(1)abea(2)ab(1)bcd(2)cd”°¡ ±×°ÍÀÌ´Ù. ¹®Á¦´Â °á±¹ “you win”À̶ó´Â ¹®ÀÚ¿ÀÌ È¸é¿¡ µÎ ¹ø Ãâ·ÂµÈ´Ù´Â °ÍÀÌ´Ù. ÀÌ·± ÄÚµåµéÀ» º¸¿©ÁÖ°í ¿©±â±îÁö ¼³¸íÇÏ¸é ´ëºÎºÐÀÇ ÇлýµéÀº <¸®½ºÆ® 1>ÀÇ Äڵ带 °íħÀ¸·Î½á ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù°í »ý°¢ÇÑ´Ù. ±×¸®°í´Â °ÅÀÇ ´ëºÎºÐ Äڵ带 <¸®½ºÆ® 2>¿Í °°ÀÌ °íÄ£´Ù.
¸®½ºÆ® 2 µ¿±âÈ ¹®Á¦¸¦ °¡Áø ÄÚµå
- int pin = 2;
- void PrintWinner()
- {
- for(;;)
- {
- if(pin <= 0)
- break;
- --pin; // … a
- if(pin == 0) // … b
- {
- print("you winn");
- break;
- }
- }
- }
int pin = 2;void PrintWinner(){ for(;;) { if(pin <= 0) break; --pin; // … a if(pin == 0) // … b { print("you winn"); break; } }}
±×·¸´Ù¸é °ú¿¬ <¸®½ºÆ® 2>ÀÇ ÄÚµå´Â ¹®Á¦°¡ ¾øÀ»±î? ¾ð¶æ º¸±â¿¡´Â ¹º°¡ Á» ´õ ¸íÈ®ÇØ º¸¿©¼ ¹®Á¦°¡ ¾ø¾î º¸ÀÌÁö¸¸ Á» ±íÀÌ »ý°¢Çغ¸¸é <¸®½ºÆ® 2>ÀÇ Äڵ嵵 ¹®Á¦°¡ »ý±â´Â È帧À» ã¾Æ³¾ ¼ö ÀÖ´Ù. “(1)a(2)abc(1)bc”°¡ ±×°ÍÀÌ´Ù. ÀÌ ÄÚµå´Â µ¿±âÈ ¹®Á¦°¡ ¾îµð¿¡¼ ºñ·ÔµÇ´ÂÁö º¸´Ù ¸íÈ®ÇÏ°Ô º¸¿©ÁØ´Ù. ¹Ù·Î °ªÀÇ º¯°æ°ú ºñ±³ »çÀÌ¿¡ ¹ß»ýÇÏ´Â ÄÁÅؽºÆ® ÀüȯÀÌ´Ù. ÀÌ ¸»Àº pinÀÇ °ª º¯°æ°ú 0°ú ºñ±³ÇÏ´Â ºÎºÐÀÌ ÇϳªÀÇ µ¢¾î¸®·Î ¹¶Ãļ ¿¬»êÀÌ µÇÁö ¾Ê°í¼´Â Àý´ë·Î ÀÌ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ¾ø´Ù´Â °É ÀǹÌÇÑ´Ù.
¿©±â±îÁö À̾߱âÇÏ¸é “if(--pin == 0)”°ú °°Àº Äڵ带 ¾²¸é µÈ´Ù°í »ý°¢ÇÏ´Â »ç¶÷µéÀÌ ÀÖ´Ù. ÇÏÁö¸¸ “if(--pin == 0)”°ú °°Àº Ç¥Çö½Äµµ C¾ð¾î »óÀ¸·Î´Â ÇÑ ÁٷΠǥ±âµÇ±â ¶§¹®¿¡ Çѹø¿¡ ½ÇÇàµÈ´Ù°í »ý°¢Çϱ⠽±Áö¸¸ ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇس½ ±â°è¾î´Â <¸®½ºÆ® 2>ÀÇ ÄÚµå¿Í ¸¶Âù°¡Áö·Î ¿©·¯ °³ÀÇ ±â°è¾î·Î ±¸¼ºµÇ¾î Àֱ⠶§¹®¿¡ ½ÇÇàÇÏ´Â »çÀÌ¿¡ ÄÁÅؽºÆ® ½ºÀ§ÄªÀÌ ¹ß»ýÇÒ ¼ö ÀÖ°í, ÃÖÁ¾ ÇÁ·Î±×·¥¿¡¼´Â µ¿ÀÏÇÑ ¹®Á¦°¡ ¹ß»ýÇÑ´Ù.
À̸¦ ÇØ°áÇϱâ À§Çؼ´Â ¾Õ¿¡¼ ¿ì¸®°¡ ³»¸° °á·Ð, °ªÀÇ º¯°æ°ú ºñ±³°¡ ÇÑ µ¢¾î¸®°¡ µÇ¾î¼ ½ÇÇàµÇµµ·Ï ¸¸µé¾îÁÙ ¾î¶² µµ±¸°¡ ÇÊ¿äÇÏ´Ù. ÀÌ·± ±â´ÉÀ» Á¦°øÇØÁÖ´Â µµ±¸°¡ ¹Ù·Î ¿î¿µÃ¼Á¦¿¡¼ Áö¿øÇØÁÖ´Â µ¿±âÈ °´Ã¼´Ù. <¸®½ºÆ® 3>¿¡´Â ÀÌ·¯ÇÑ µµ±¸ Áß ÇϳªÀÎ Å©¸®Æ¼Äà ¼½¼ÇÀ» »ç¿ëÇؼ ¹®Á¦¸¦ ÇØ°áÇÑ Äڵ尡 ³ª¿ÍÀÖ´Ù.
¸®½ºÆ® 3 Å©¸®Æ¼Äà ¼½¼ÇÀ» ÅëÇÑ µ¿±âÈ ¹®Á¦ ÇØ°á
- CRITICAL_SECTION cs;
- EnterCriticalSection(&cs); // … a
- --pin; // … b
- if(pin == 0) // … c
- {
- LeaveCriticalSection(&cs); // … d
- print("you winn"); // … e
- break;
- }
- LeaveCriticalSection(&cs); // … f
CRITICAL_SECTION cs;EnterCriticalSection(&cs); // … a--pin; // … bif(pin == 0) // … c{ LeaveCriticalSection(&cs); // … d print("you winn"); // … e break;}LeaveCriticalSection(&cs); // … f
Å©¸®Æ¼Äà ¼½¼ÇÀº ÇØ´ç °´Ã¼¸¦ ÁøÀÔÇÑ »óÅ¿¡¼ ´Ù¸¥ ½º·¹µå°¡ ´Ù½Ã ÁøÀÔÇÏÁö ¸øÇϵµ·Ï ¸¸µå´Â ±â´ÉÀ» ÇÑ´Ù. “(1)a(2)”´Â °¡´ÉÇÏÁö¸¸ “(1)a(2)a”´Â ºÒ°¡´ÉÇÏ´Ù´Â ¸»ÀÌ´Ù. “(1)a(2)(1)b(2)(1)c(2)”¿Í °°ÀÌ 1¹ø ½º·¹µå°¡ a¸¦ ¼öÇàÇÏ°í ³ª¸é 1¹ø ½º·¹µå°¡ d¸¦ ¼öÇàÇϱâ Àü±îÁö ´Ù¸¥ ½º·¹µå·ÎÀÇ ÄÁÅؽºÆ® ½ºÀ§ÄªÀº ¹ß»ýÇÒ ¼ö ÀÖÁö¸¸ ÇØ´ç ½º·¹µå°¡ a¸¦ ¼öÇà ½ÃÅ°´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù. °á±¹ ½ÇÇà È帧ÀÇ ÀÔÀå¿¡¼´Â Áß°£ Áß°£ ÀâÀ½ÀÌ ¼¯À̱ä ÇÏÁö¸¸ °á°ú·ÐÀûÀ¸·Î b¿Í c°¡ Ç×»ó Çѹø¿¡ ¼öÇàµÇ´Â °Í°ú µ¿ÀÏÇÑ È¿°ú¸¦ ³ªÅ¸³½´Ù.
±×·¸´Ù¸é ¿î¿µÃ¼Á¦´Â ¾î¶»°Ô ÀÌ·± °ÍµéÀ» ¸¸µé ¼ö ÀÖ¾úÀ»±î? ¿î¿µÃ¼Á¦°¡ ¸¸µç ÄÚµå¶ó°í ÇÏ´õ¶óµµ °á±¹ CPU »ó¿¡¼ µ¿ÀÛÇϱâ´Â ¿ì¸®°¡ ¸¸µç ÄÚµå¿Í ´Ù¸¦ ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. EnterCriticalSection ³»ºÎ¿¡¼µµ ¾ðÁ¦µçÁö ÄÁÅؽºÆ® ÀüȯÀÌ ¹ß»ýÇÒ ¼ö ÀÖÁö ¾ÊÀ»±î? ´ç¿¬ÇÑ À̾߱â´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ´Â Å©°Ô µÎ °¡Áö Á¾·ùÀÇ ÇعýÀÌ ÀÖ´Ù. Çϳª´Â ¿î¿µÃ¼Á¦ ½ºÄÉÁÙ·¯¸¦ Ư¼öÇÏ°Ô ¸¸µé¾î¼ EnterCriticalSection°ú °°Àº ÇÔ¼öÀÇ ¼öÇà µµÁß¿¡´Â Àý´ë·Î ÄÁÅؽºÆ® ÀüȯÀÌ ¹ß»ýÇÏÁö ¾Êµµ·Ï ¸¸µå´Â °ÍÀÌ´Ù. ´Ù¸¥ Çϳª´Â º¸´Ù ³·Àº ´Ü°è¿¡¼ °ªÀÇ º¯°æ°ú ºñ±³¸¦ Çѹø¿¡ ¼öÇàÇÏ´Â ¿¬»êÀ» »ç¿ëÇÏ´Â °ÍÀÌ´Ù. x86/64 °è¿ÀÇ CPU¿¡´Â ÀÌ·¯ÇÑ ¸ñÀûÀ» À§Çؼ cmpxchg¶ó´Â ¸í·É¾î¸¦ Á¦°øÇÑ´Ù. ºñ±³¿Í º¯°æÀ» Çѹø¿¡ ¼öÇàÇÏ´Â ¸í·É¾î´Ù. Windows´Â °á±¹¿¡´Â ÀÌ·¯ÇÑ ¸í·É¾î¸¦ »ç¿ëÇؼ µ¿±âÈ °´Ã¼¸¦ ±¸ÇöÇÑ´Ù. ÀÌ·± ¸Æ¶ô¿¡¼ ¿ì¸®°¡ óÀ½¿¡ ¸¸µç ÇÁ·Î±×·¥µµ cmpxchg¶ó´Â ¸í·É¾î¸¦ »ç¿ëÇϵµ·Ï ¸¸µç´Ù¸é µ¿±âÈ °´Ã¼¸¦ »ç¿ëÇÏÁö ¾Ê°íµµ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
Áö±Ý±îÁöÀÇ ³íÀÇ´Â ´ÜÀÏ CPU »ó¿¡¼ µ¿½Ã¿¡ ½ÇÇàµÇ´Â ÄÚµåµé¿¡ ´ëÇÑ °ÍÀ̾ú´Ù. ¸ÖƼÄھ µÇ¸é ¹®Á¦°¡ Á» ´õ º¹ÀâÇØÁø´Ù. ¸ÖƼÄÚ¾î¶õ CPU°¡ µÎ °³ ÀÌ»óÀÎ ½Ã½ºÅÛÀ» ¸»ÇÑ´Ù. ÀÌ·± ½Ã½ºÅÛ¿¡¼´Â ÁøÂ¥ µ¿½Ã ½ÇÇàÀÌ °¡´ÉÇØÁø´Ù. ÀÌ ¸»Àº Áö±Ý±îÁö ³íÀÇÇß´ø ¹æ½ÄÀ¸·Î´Â ¸ÖƼÄÚ¾î ȯ°æ¿¡¼ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¾Õ¼ µ¿±âÈ ¹®Á¦¸¦ ÇØ°áÇϴµ¥ ÀÏµî °ø½ÅÀ̾ú´ø cmpxchg¶ó´Â ¸í·É¾î¸¦ »ý°¢Çغ¸ÀÚ. n°³ÀÇ CPU°¡ ÀÖ´Ù°í °¡Á¤ÇÑ´Ù¸é n°³ÀÇ CPU¿¡¼ µ¿½Ã¿¡ cmpxchg°¡ ½ÇÇàµÉ ¼ö ÀÖ´Ù. °á±¹ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ´Â cmpxchg¶ó´Â ¸í·É¾î°¡ n°³ÀÇ CPU°¡ ¾Æ´Ñ Çѹø¿¡ ÇϳªÀÇ CPU¿¡¼¸¸ ½ÇÇàµÉ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁÖ´Â ¸ÞÄ¿´ÏÁòÀÌ ÇÊ¿äÇÏ´Ù. x86/64 °è¿ÀÇ CPU¿¡¼´Â lockÀ̶ó´Â Á¢µÎ¾î°¡ ÀÌ·± ¿ªÇÒÀ» ÇÑ´Ù. lock cmpxchg¸¦ Çϸé ÇØ´ç ½ÃÁ¡¿¡´Â ÇÑ ³à¼®¸¸ ¸Þ¸ð¸®¿¡ Á¢±ÙÇϵµ·Ï ¸¸µé¾îÁØ´Ù. Àç¹ÌÀÖ´Â »ç½ÇÀº µ¿½Ã¼º¿¡¼ ºñ·ÔµÈ µ¿±âÈ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ´Â °á±¹ µ¿½Ã¿¡ ½ÇÇàµÇÁö ¾Ê´Â ¹«¾ùÀΰ¡°¡ ÇÊ¿äÇÏ´Ù´Â Á¡ÀÌ´Ù.
ÄÁÅؽºÆ®, ÄÁÅؽºÆ®, ¶Ç ÄÁÅؽºÆ®
½º·¹µå À̾߱⿡´Â ÇÊ¿¬ÀûÀ¸·Î ´Ù¾çÇÑ Á¾·ùÀÇ ÄÁÅؽºÆ®¶ó´Â ¸»ÀÌ µîÀåÇÑ´Ù. Àǹ̴ ´Ù¸¥µ¥ À̸¦ Ç¥ÇöÇÏ´Â ¸»Àº ¸ðµÎ ÄÁÅؽºÆ®À̱⠶§¹®¿¡ óÀ½ Á¢ÇÏ´Â °³¹ßÀÚ´Â »ó´çÈ÷ È¥¶õ½º·¯¿ï ¼ö ÀÖ´Ù. ¿©±â¿¡¼ Àá±ñ ÀÌ·± ÄÁÅؽºÆ®¶ó´Â ¸»ÀÇ Á¤Ã¼¿¡ ´ëÇؼ ¾Ë¾Æº¸°í ³Ñ¾î°¡µµ·Ï ÇÏÀÚ. ÄÁÅؽºÆ®¸¦ ¿ì¸® ¸»·Î ¹ø¿ªÇÏ¸é ¹®¸ÆÀ̶ó´Â ¸»ÀÌ µÈ´Ù. ¹®¸ÆÀ̶õ ¹«¾ùÀΰ¡? ¿ì¸®°¡ ÀÏ»ó»ýÈ°¿¡¼ Á¢ÇÏ°Ô µÇ´Â ¹®¸ÆÀ̶ó´Â ¸»ÀÇ Àǹ̴ ´ÙÀ½°ú °°Àº °£´ÜÇÑ ´ëÈ ¼Ó¿¡¼ ½±°Ô ÆľÇÇÒ ¼ö ÀÖ´Ù.
¿µÈñ: ³Ê ¹ä ¸Ô¾ú´Ï?
ö¼ö: ÀÀ. ¸Ô¾ú¾î.
ÀϹÝÀûÀ¸·Î ±¸µÎ Ç¥ÇöÀº »óȲÀ» ÅëÇØ À¯ÃßÇÒ ¼ö ÀÖ´Â Á¤º¸´Â ´ëºÎºÐ »èÁ¦µÈ´Ù. ¿ì¸®´Â ö¼öÀÇ ´ë´ä¿¡´Â Æ÷ÇÔµÇÁö ¾Ê¾ÒÁö¸¸ »óȲÀ» ÅëÇØ ‘¸Ô¾ú¾î’¶ó´Â ¸»À» ö¼ö°¡ ¹äÀ» ¸Ô¾ú´Ù¶ó´Â »ç½Ç·Î ÀÚ¿¬½º·´°Ô È®Àå½Ãų ¼ö ÀÖ´Ù. ÀÌ·¸°Ô À¯ÃßÀÇ ±Ù°Å¸¦ Á¦°øÇÏ´Â ¸»ÀÌ ³õÀÎ »óȲÀ» ¿ì¸®´Â ¹®¸ÆÀ̶ó°í ºÎ¸¥´Ù. ÇÁ·Î±×·¡¹Ö¿¡¼ ¸»ÇÏ´Â °Í ¶ÇÇÑ ÀÌ¿Í º°¹Ý ´Ù¸£Áö ¾Ê´Ù. ÀϹÝÀûÀÎ ÇÁ·Î±×·¡¹Ö ȯ°æ¿¡¼ ¸»ÇÏ´Â ÄÁÅؽºÆ®¶ó´Â ¸»Àº ÇØ´ç Äڵ尡 ¹ÙÀεùµÇ¾î ½ÇÇàµÇ´Â ȯ°æÀ» ÀÏÄ´´Ù. ¹°·Ð ÀÌ·¸°Ô À̾߱⸦ ÇÏ´õ¶óµµ ¹ÙÀεùµÇ¾î ½ÇÇàµÇ´Â ȯ°æÀ̶ó´Â °ÍÀÌ ¹«¾ùÀÎÁö °¨ÀÌ ÀâÈ÷Áö ¾Ê´Â´Ù. À̸¦ Á» ´õ ±¸Ã¼ÀûÀ¸·Î »ìÆ캸±â À§Çؼ <¸®½ºÆ® 4>ÀÇ Äڵ带 »ìÆ캸ÀÚ.
¸®½ºÆ® 4 Äݹé ÇÔ¼ö¸¦ »ç¿ëÇÑ ÇÁ·Î±×·¥
- std::list GlobalList;
- void Callback()
- {
- GlobalList.push_back(GetTickCount());
- }
- int main()
- {
- RegisterCallback(Callback);
- for(;;)
- {
- if(!GlobalList.empty())
- {
- cout << GlobalList.front(); << endl;
- GlobalList.pop_front();
- }
- }
- return 0;
- }
std::list GlobalList;void Callback(){ GlobalList.push_back(GetTickCount());}int main(){ RegisterCallback(Callback); for(;;) { if(!GlobalList.empty()) { cout << GlobalList.front(); << endl; GlobalList.pop_front(); } } return 0;}
<¸®½ºÆ® 4>ÀÇ Äڵ忡¼ RegisterCallback ÇÔ¼ö´Â ÀÔ·ÂÀ¸·Î µé¾î°£ Äݹé ÇÔ¼ö°¡ ·£´ý ÁÖ±â·Î È£ÃâµÇµµ·Ï µî·ÏÇÏ´Â ÇÔ¼ö´Ù. ¸¸¾à RegisterCallback ÇÔ¼ö ¼³¸í¿¡ ‘ÀÔ·ÂÀ¸·Î µé¾î¿Â Äݹé ÇÔ¼ö´Â µî·ÏÇÑ ½º·¹µå ÄÁÅؽºÆ®¿¡¼ È£ÃâµÈ´Ù’¶ó´Â ¸»ÀÌ ÀÖ´Ù¸é À§ ÄÚµå´Â ¾Æ¹«·± ¹®Á¦ ¾øÀÌ µ¿ÀÛÇÑ´Ù. ÇÏÁö¸¸ ÀÌ¿Í´Â ´Ù¸£°Ô ‘ÀÔ·ÂÀ¸·Î µé¾î¿Â Äݹé ÇÔ¼ö´Â ½Ã½ºÅÛ ½º·¹µå ÄÁÅؽºÆ®¿¡¼ È£ÃâµÈ´Ù’´Â ¸»ÀÌ ÀÖ´Ù¸é À§ ÄÚµå´Â À߸ø µ¿ÀÛÇÑ´Ù. ÀÌÀ¯´Â CallbackÀÌ È£ÃâµÇ´Â ½º·¹µå¿Í mainÀÌ ½ÇÇàµÇ´Â ½º·¹µå°¡ ´Ù¸£±â ¶§¹®ÀÌ´Ù. ¼·Î ´Ù¸¥ ½º·¹µå°¡ GlobalList¸¦ µ¿½Ã¿¡ Á¢±ÙÇÔ¿¡µµ µ¿±âÈ Ã³¸®°¡ µÇ¾î ÀÖÁö ¾Ê±â ¶§¹®¿¡ ÃÖ¾ÇÀÇ °æ¿ì¿¡´Â ÇÁ·Î±×·¥ Å©·¡½Ã°¡ ¹ß»ýÇÑ´Ù. ÀÌ¿Í °°ÀÌ CallbackÀ̶ó´Â Äڵ尡 ¹ÙÀεùµÇ¾î ½ÇÇàµÇ´Â ½º·¹µå¸¦ ¿ì¸®´Â ÄÁÅؽºÆ®¶ó´Â ¸»·Î Ç¥ÇöÇÑ´Ù.
¿©±â¼ ´õºÒ¾î »ìÆ캸¾Æ¾ß ÇÒ Ç¥ÇöÀÌ Çϳª ÀÖ´Ù. ¹Ù·Î “ÀÓÀÇÀÇ ½º·¹µå ÄÁÅؽºÆ®”¶ó´Â Ç¥ÇöÀÌ´Ù. ´ëºÎºÐÀÇ Äݹé ÇÔ¼ö ¼³¸í¿¡´Â µî·ÏÇÑ Äݹé ÇÔ¼ö´Â ÀÓÀÇÀÇ ½º·¹µå ÄÁÅؽºÆ®¿¡¼ È£ÃâµÈ´Ù¶ó´Â ¸»ÀÌ Àֱ⠶§¹®ÀÌ´Ù. ¿©±â¼ “ÀÓÀÇÀÇ”¶ó´Â ¸»Àº Á¤ÇØÁöÁö ¾Ê¾ÒÀ½À» ³ªÅ¸³»´Â ¸»ÀÌ´Ù. ±×·¯´Ï “ÀÓÀÇÀÇ ½º·¹µå ÄÁÅؽºÆ®”¶ó´Â ¸»Àº ´Þ¸® Ç¥ÇöÇÏ¸é “Á¤ÇØÁöÁö ¾ÊÀº ½º·¹µå ÄÁÅؽºÆ®”°¡ µÈ´Ù. ±×·¸´Ù¸é µµ´ëü Á¤ÇØÁöÁö ¾ÊÀº ½º·¹µå ÄÁÅؽºÆ®¶ó´Â Ç¥ÇöÀÌ °³¹ßÀÚ¿¡°Ô ÇØÁÖ°í ½ÍÀº ¼Ó³»´Â ¹«¾ùÀ̾úÀ»±î? “Á¤ÇØÁöÁö ¾Ê¾ÒÀ½”ÀÌ ÇÁ·Î±×·¡¸Ó¿¡°Ô ÇØÁÖ°í ½ÍÀº ÁøÂ¥ À̾߱â´Â ÀÌ ¸»ÀÌ´Ù. “³× ¸Ú´ë·Î ƯÁ¤ ½º·¹µå ÄÁÅؽºÆ®¿¡¼ È£ÃâµÈ´Ù°í »ý°¢ÇÏÁö ¸»¾Æ¶ó. ÀÌ ÄÚµå´Â ³×°¡ »ý°¢Áöµµ ¸øÇÑ ½º·¹µå ÄÁÅؽºÆ®¿¡¼µµ È£ÃâµÉ ¼ö ÀÖ´Ù.”
“ÇØ´ç Äݹé ÇÔ¼ö´Â ÀÓÀÇÀÇ ½º·¹µå ÄÁÅؽºÆ®¿¡¼ È£ÃâµÈ´Ù”´Â ¹®ÀåÀ» º¸´Â ¼ø°£ ¿©·¯ºÐÀÌ º£½ºÆ® °³¹ßÀÚ¶ó¸é ´ÙÀ½°ú °°Àº »ý°¢À» ¹Ýµå½Ã ÇØ¾ß ÇÑ´Ù. “¾Æ, ÀÌ ÇÔ¼ö°¡ ½ÇÇàµÇ´Â ½º·¹µå´Â Á¤ÇØÁöÁö ¾Ê¾Ò±¸³ª. Äݹé ÇÔ¼ö°¡ Àü¿ª µ¥ÀÌÅÍ¿¡ Á¢±ÙÇÏ´Â °æ¿ì¿¡´Â ¹Ýµå½Ã µ¿±âÈ Ã³¸®¸¦ ÇØÁà¾ß ÇÏ°Ú±¸³ª.” ¹Ý´ë·Î “ÇØ´ç Äݹé ÇÔ¼ö´Â ÄݹéÀ» µî·ÏÇÑ ½º·¹µå¿Í °°Àº ÄÁÅؽºÆ®¿¡¼ È£ÃâµÈ´Ù”´Â ¹®ÀåÀ» º¸°Ô µÇ¸é ¿ªÀ¸·Î Äݹé°ú µî·ÏÇÑ ½º·¹µå¿¡¼¸¸ »ç¿ëÇÏ´Â °øÀ¯ µ¥ÀÌÅÍ°¡ ÀÖ´Ù¸é µ¿±âÈ Ã³¸®¸¦ »ý·«Çؼ ÃÖÀûÈ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ°Ú´Ù¶ó´Â »ý°¢À» ÇÏ´Â °ÍÀÌ Á¤¼®ÀÌ´Ù.
Áö±Ý±îÁö ƯÁ¤ ÇÔ¼ö°¡ ¼öÇàµÇ´Â ÄÁÅؽºÆ®¿¡ ´ëÇؼ ¾Ë¾Æº¸¾Ò´Ù. ÀÌ¿Í ¸¶Âù°¡Áö·Î ƯÁ¤ ½º·¹µåµµ ÇØ´ç ½º·¹µå°¡ ¼öÇàµÇ´Â ÄÁÅؽºÆ®°¡ Á¸ÀçÇÑ´Ù. ¹Ù·Î ÇÁ·Î¼¼½º´Ù. ¾Õ¼ Windows¿¡¼ ½º·¹µåÀÇ °³³äÀ» ¼³¸íÇÒ ¶§ ƯÁ¤ ÇÁ·Î¼¼½º ³»¿¡¼ ¼öÇàµÇ´Â ½ÇÇà È帧À̶ó°í Ç¥ÇöÇß´Ù. µû¶ó¼ ½º·¹µå°¡ µ¿ÀÛÇϱâ À§Çؼ´Â ¹Ýµå½Ã ¾î¶² ÇÁ·Î¼¼½º ÄÁÅؽºÆ®¿¡¼ µ¿ÀÛÇÒÁö¸¦ ¾Ë¾Æ¾ß ÇÑ´Ù´Â ¸»ÀÌ´Ù. ÀϹÝÀûÀ¸·Î ÇÁ·Î±×·¥¿¡¼ »ý¼ºÇÏ´Â ¸ðµç ½º·¹µå´Â ±× Äڵ带 ¼öÇàÇÏ´Â ½º·¹µå°¡ ÂüÁ¶ÇÏ´Â ÇÁ·Î¼¼½º ÄÁÅؽºÆ®·Î »ý¼ºµÈ´Ù. ÇÏÁö¸¸ Ä¿³Î ¸ðµå ÄÚµåµéÀÇ °æ¿ì¿¡´Â ÀÌ ÂüÁ¶ÇÏ´Â ÇÁ·Î¼¼½º ÄÁÅؽºÆ®¸¦ ÀÓÀÇÀÇ º¯°æÇÒ ¼ö ÀÖ´Ù. µû¶ó¼ Äڵ尡 È£ÃâµÇ´Â ½º·¹µå ÄÁÅؽºÆ®¿Í ¸¶Âù°¡Áö·Î ½º·¹µå°¡ ¼öÇàµÇ´Â ÇÁ·Î¼¼½º ÄÁÅؽºÆ®µµ º¯°æµÉ ¼ö ÀÖÀ½À» ¾Ë¾Æ¾ß°Ú´Ù.
Read more: http://www.jiniya.net/wp/archives/5856#ixzz349tU6WUM