´ÙÁß ¾²·¹µå¿¡ ´ëÇØ °øºÎÇØ º» ÀûÀÌ ÀÖ´Ù¸é ¸¹Àº Ã¥°ú ±â»ç¿¡¼ ´ÙÁß ¾²·¹µåÀÇ »ç¿ëÀ» µÉ ¼ö ÀÖÀ¸¸é ÀÚÁ¦Ç϶ó°í ±ÇÀåÇÑ´Ù´Â »ç½ÇÀ» ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ÀÏ´Ü ÇÁ·ÎÁ§Æ®¿¡ ´ÙÁß ¾²·¹µå¸¦ µµÀÔÇÏ¸é µ¿±âȳª Á¾·á ó¸® µîÀÇ ¹®Á¦·Î °í·ÁÇØ¾ß ÇÒ »çÇ×µéÀÌ °öÀý ÀÌ»óÀ̳ª ´Ã¾î³ª°Ô µÈ´Ù.
»ó½ÄÀûÀ¸·Î »ý°¢Çصµ ¾Ë ¼ö ÀÖµíÀÌ ÄÚµå ÇÑ ÁÙÀ» °íÄ¡´Â µ¥µµ ¸¹Àº °í¹ÎÀ» ÇØ¾ß Çϸç, ¹®Á¦ »óȲÀÌ Ç×»ó ÀçÇöµÇ´Â °ÍÀÌ ¾Æ´Ï±â ¶§¹®¿¡ µð¹ö±ë ½Ã¿¡µµ ¸¹Àº °í»ýÀ» ÇÏ°Ô µÈ´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í ´ÙÁß ¾²·¹µå¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯´Â ÇÁ·Î±×·¥ÀÇ ¼º´ÉÀ» Çâ»ó½ÃÄÑ Áֱ⠶§¹®ÀÌ´Ù. ±×·±µ¥ ¿©±â¼ ¼º´ÉÀ» Çâ»ó½ÃÄÑ Áشٴ ¸»ÀÌ ¹«¾ùÀ» ÀǹÌÇÏ´ÂÁö´Â Á»´õ »ý°¢ÇØ º¼ Çʿ䰡 ÀÖ´Ù.
¶ÇÇÑ ¾î¶»°Ô ÇØ¾ß ¼º´ÉÀÌ Çâ»óµÇ´ÂÁöµµ ¾Ë¾Æ º¼ Çʿ䰡 ÀÖ´Ù. ½ÇÁ¦·Î ´ÙÁß ¾²·¹µå¸¦ »ç¿ëÇÑ ÇÁ·ÎÁ§Æ® Áß¿¡´Â ¼º´É Çâ»óÀº º°·Î º¸ÀÌÁö ¾Ê°í, ´ÙÁß ¾²·¹µå µµÀÔÀ¸·Î ÀÎÇÑ ¹®Á¦Á¡¸¸ °í½º¶õÈ÷ ¶°¾È°í ÀÖ´Â °æ¿ì°¡ ¸¹±â ¶§¹®ÀÌ´Ù.
´ÙÁß ¾²·¹µåÀÇ µµÀÔ ½Ã±â
ÄÄÇ»ÅÍ¿¡ ¼³Ä¡µÈ MSDNÀ̳ª À¥¿¡¼ ¡®Win32 Multithreading Performance¡¯¶ó´Â Á¦¸ñÀÇ ±â»ç¸¦ ã¾Æº¸ÀÚ. ÀÌ ±â»ç´Â 1996³âµµ 1¿ù¿¡ ÀÛ¼ºµÈ ±â»çÀÌÁö¸¸ ¾ðÁ¦ ´ÙÁß ¾²·¹µå¸¦ Àû¿ëÇÏ´Â °ÍÀÌ ÁÁÀºÁö ¾ÆÁÖ ÈǸ¢ÇÏ°Ô ¼³¸íÇϰí ÀÖ´Ù. ±×·¸±â ¶§¹®¿¡ ÇÊÀÚ´Â »õ·Î¿î ¼³¸í ¹æ½Ä°ú ¿¹Á¦¸¦ ±¸»óÇÏ´Â ½Ã°£¿¡ Â÷¶ó¸® ÀÌ ±â»çÀÇ ÁÖ¿ä ³»¿ë¿¡ ÀÚ¼¼ÇÑ ¼³¸í°ú ±×¸²À» Ãß°¡ÇØ ¿©·¯ºÐÀÇ ÀÌÇØ¸¦ µ½´Â °ÍÀÌ ´õ È¿À²ÀûÀÏ °ÍÀ̶ó´Â °áÁ¤À» ³»·È´Ù. ÀÌ ´Ü¶ôÀ» ÀÐ°í ³ª¸é ¿©·¯ºÐÀº ¾î¶² »óȲ¿¡¼ ´ÙÁß ¾²·¹µå¸¦ »ç¿ëÇØ¾ß ÇÏ´ÂÁö ÆÇ´ÜÇÒ ¼ö ÀÖ´Â ´É·ÂÀ» Áö´Ï°Ô µÉ °ÍÀÌ´Ù. Å©°Ô ¼¼ °¡ÁöÀÇ ÁÖ¿ä °üÁ¡À» ±âÁØÀ¸·Î ¼³¸íÀ» ÇÏ·Á°í ÇÑ´Ù.
Àüü ÀÛ¾÷ÀÇ ¿Ï·á ½Ã°£
CPU°¡ Çϳª¸¸ Á¸ÀçÇÏ´Â ½Ã½ºÅÛ¿¡¼ ½ÇÁ¦·Î µÎ ÀÛ¾÷ÀÌ µ¿½Ã¿¡ ½ÇÇàµÇ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù. CPU°¡ ¾ÆÁÖ ÂªÀº ½Ã°£ °£°ÝÀ¸·Î µÎ ÀÛ¾÷À» ¹ø°¥¾Æ°¡¸ç ½ÇÇà½Ã۱⠶§¹®¿¡ ¿ì¸®¿¡°Ô ¸¶Ä¡ µ¿½Ã¿¡ ½ÇÇàµÇ´Â °Íó·³ ´À²¸Áö´Â °Í»ÓÀÌ´Ù. ÀÌ ¶§ ¿ì¸®°¡ °£°úÇØ¼´Â ¾ÈµÉ »ç½ÇÀº µÎ ÀÛ¾÷ »çÀ̸¦ ¿À°¡´Â °úÁ¤(context switching)¿¡¼ ¿À¹öÇìµå°¡ ¹ß»ýÇÑ´Ù´Â Á¡°ú ¾²·¹µå¸¦ »ý¼ºÇÏ´Â ÀÏ ¿ª½Ã ½Ã°£À» ¼Ò¸ðÇÏ´Â ÀÛ¾÷À̶ó´Â Á¡ÀÌ´Ù. ¿¹¸¦ µé¾î µÎ °³ÀÇ ÀÛ¾÷ A, B°¡ ÀÖ´Ù°í ÇÏÀÚ. ÀÌ °æ¿ì ´ÙÁß ¾²·¹µå¸¦ »ç¿ëÇÑ °æ¿ì¿Í ±×·¸Áö ¾ÊÀº °æ¿ìÀÇ Àüü ÀÛ¾÷ÀÇ ¿Ï·á½Ã°£Àº ´ÙÀ½°ú °°´Ù. ´ÙÁß ¾²·¹µå¸¦ »ç¿ëÇÑ °æ¿ì°¡ º¸´Ù ºñÈ¿À²ÀûÀ̶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù
¡ß ´ÙÁß ¾²·¹µå¸¦ »ç¿ëÇÑ °æ¿ìÀÇ Àüü ÀÛ¾÷ ¿Ï·á ½Ã°£
= AÀÇ ÀÛ¾÷ ½Ã°£ + BÀÇ ÀÛ¾÷ ½Ã°£ + Context Switching ¼Ò¿ä ½Ã°£ + ¾²·¹µå »ý¼º ¼Ò¿ä ½Ã°£
¡ß ´ÙÁß ¾²·¹µå¸¦ »ç¿ëÇÏÁö ¾ÊÀº °æ¿ìÀÇ Àüü ÀÛ¾÷ ¿Ï·á ½Ã°£
= AÀÇ ÀÛ¾÷ ½Ã°£ + BÀÇ ÀÛ¾÷ ½Ã°£
ÇÏÁö¸¸ ÀÌ´Â A, B°¡ ÀÛ¾÷ ½Ã°£ ³»³» ¼ø¼öÇÏ°Ô CPU¸¸ »ç¿ëÇÑ´Ù´Â °¡Á¤¿¡¼¸¸ ¼º¸³µÈ´Ù. A, BÀÇ ÀÛ¾÷ ½Ã°£ Áß¿¡ I/O ¿äûÀ» ±â´Ù¸®´Â ½Ã°£ÀÌ Æ÷ÇÔµÈ´Ù¸é ¹®Á¦°¡ ´Þ¶óÁø´Ù. ¿¹µé µé¾î AÀÇ ÁÖ¿ä ÀÛ¾÷ ³»¿ëÀÌ ¸Þ¸ð¸®ÀÇ µ¥ÀÌÅ͸¦ ƯÁ¤ ÆÄÀÏ¿¡ ±â·ÏÇÏ´Â °ÍÀ̶ó°í °¡Á¤ÇÏÀÚ. ÆÄÀÏ¿¡ ±â·ÏÇÏ´Â ÀÛ¾÷Àº Çϵåµð½ºÅ©¿Í °°Àº Çϵå¿þ¾î¿¡ ±â·ÏÀ» ¿äûÇÑ ÈÄ¿¡ Çϵå¿þ¾î¿¡¼ ¿Ï·á ÀÀ´äÀÌ µµÂøÇÒ ¶§±îÁö ±â´Ù¸®´Â ¹æ½ÄÀ¸·Î ÁøÇàµÈ´Ù. ±×·±µ¥ ÀÌ·¸°Ô Çϵå¿þ¾îÀÇ ÀÀ´äÀ» ±â´Ù¸®´Â µ¿¾È¿¡´Â CPU¸¦ »ç¿ëÇÏÁö ¾Ê±â ¶§¹®¿¡ ´Ù¸¥ ÀÛ¾÷ÀÌ CPU¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´Ù½Ã ¸»ÇØ A°¡ I/O ¿äûÀ» ±â´Ù¸®´Â µ¿¾È¿¡´Â B°¡ ÀÚ½ÅÀÇ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´Ù´Â ¸»ÀÌ´Ù. ±×·¡¼ ´ÙÁß ¾²·¹µå¸¦ »ç¿ëÇÑ °æ¿ì Àüü ÀÛ¾÷ÀÇ ¿Ï·á ½Ã°£Àº ´ÙÀ½°ú °°ÀÌ ´Ù½Ã °è»êµÉ ¼ö ÀÖ´Ù.
´ÙÁß ¾²·¹µå¸¦ »ç¿ëÇÑ °æ¿ìÀÇ Àüü ÀÛ¾÷ ¿Ï·á ½Ã°£
= AÀÇ ÀÛ¾÷ ½Ã°£ - AÀÇ I/O ¿äû ´ë±â ½Ã°£ + BÀÇ ÀÛ¾÷ ½Ã°£ + Context Switching ¼Ò¿ä ½Ã°£ + ¾²·¹µå »ý¼º ¼Ò¿ä ½Ã°£
°á·ÐÀûÀ¸·Î I/O ÀÛ¾÷Àº ´ÙÁß ¾²·¹µåÀÇ ÁÁÀº ´ë»óÀÌ µÈ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ¿î¿µÃ¼Á¦ÀÇ ¹ßÀü ¿ª»ç¸¦ º¸´õ¶óµµ ÇϳªÀÇ ½Ã½ºÅÛ¿¡ ¿©·¯ »ç¿ëÀÚ ÇÁ·Î±×·¥À» µ¿½Ã¿¡ ÀûÀçÇØ ½ÇÇàÇϱ⠽ÃÀÛÇÑ °è±âµµ ÇÑ ÇÁ·Î¼¼½º°¡ I/O ¿äûÀ» ±â´Ù¸®´Â µ¿¾È¿¡ ´Ù¸¥ ÇÁ·Î¼¼½º°¡ CPU¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â »ç½ÇÀ» ¿î¿µÃ¼Á¦ ¼³°èÀÚµéÀÌ ±ú´Þ¾Ò±â ¶§¹®ÀÌ´Ù.
Æò±Õ ó¸® ½Ã°£
¾Õ¼ CPU ¿¬»êÀÇ °æ¿ì ´ÙÁß ¾²·¹µå´Â Àüü ÀÛ¾÷ ¿Ï·á ½Ã°£À» ´ÜÃàÇÏ´Â µ¥ µµ¿òÀÌ µÇÁö ¾Ê´Â´Ù´Â Á¡À» È®ÀÎÇß´Ù. ±×·¯³ª ¿ì¸®ÀÇ °ü½É»ç¸¦ Æò±Õ ó¸® ½Ã°£À¸·Î ¿Å±â°Ô µÇ¸é CPU ¿¬»êÀÇ °æ¿ì¿¡µµ ´ÙÁß ¾²·¹µå¸¦ »ç¿ëÇØ ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ´Ù´Â Á¡À» È®ÀÎÇÒ ¼ö ÀÖ´Ù. <±×¸² 1>À» º¸¸é¼ ¼³¸íÇϵµ·Ï ÇϰڴÙ.
ÀÛ¾÷ A, B, C´Â °¢°¢ 1, 4, 3ÀÇ ÀÛ¾÷ ½Ã°£À» °®À¸¸ç CPU ¿¬»êÀÌ´Ù. ÀÌ ¶§ A, B, CÀÇ ¼ø¼´ë·Î ÀÛ¾÷À» ½ÇÇà½ÃŲ´Ù°í ÇØº¸ÀÚ. ±×·¯¸é ÀÛ¾÷ A´Â ¹Ù·Î ½ÃÀÛÇØ¼ ÀÛ¾÷ ½Ã°£ÀÎ 1¸¸ÅÀÇ ½Ã°£ÀÌ °æ°úÇÑ ÈÄ¿¡ ¿Ï·áµÉ °ÍÀÌ´Ù. ÀÛ¾÷ BÀÇ °æ¿ì´Â A°¡ ³¡³ª´Â ½Ã°£ÀÎ 1¸¸Å ±â´Ù·È´Ù°¡ ÀÛ¾÷ ½Ã°£ÀÎ 4¸¸ÅÀÇ ½Ã°£ÀÌ °æ°úÇÑ ÈÄ¿¡ ¿Ï·áµÉ °ÍÀÌ´Ù. ÀüüÀûÀ¸·Î º¼ ¶§ ÀÛ¾÷ B´Â 5¸¸ÅÀÇ ½Ã°£ÀÌ Áö³ ÈÄ¿¡ ¿Ï·áµÇ´Âµ¥ ÀÌ ½Ã°£À» ó¸® ½Ã°£(Turnaround Time)À̶ó°í ºÎ¸£µµ·Ï ÇÏÀÚ.
ó¸® ½Ã°£ = ´ë±â ½Ã°£ + ÀÛ¾÷ ½Ã°£
°°Àº ½ÄÀ¸·Î CÀÇ Ã³¸® ½Ã°£Àº 8ÀÌ µÈ´Ù. ÀÌ ±Û¿¡¼´Â ÀÌ·¯ÇÑ Ã³¸® ½Ã°£ÀÇ Æò±ÕÀ» ¡®Æò±Õ ó¸® ½Ã°£¡¯À̶ó°í ºÎ¸£µµ·Ï ÇϰڴÙ. ÀÌÁ¦ºÎÅÍ ¿ì¸®´Â ´ÙÁß ¾²·¹µå¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ¾î¶»°Ô Æò±Õ ó¸® ½Ã°£À» ÁÙÀÏ ¼ö ÀÖ´ÂÁö È®ÀνÃÄÑ ÁÙ ¿¹Á¦ Çϳª¸¦ º¸°Ô µÉ °ÍÀÌ´Ù.

<±×¸² 2> Æò±Õ ó¸® ½Ã°£ÀÇ °¨¼Ò ¿¹
ÀÌ·± Á¾·ùÀÇ ¹®Çå¿¡¼ ÀÚÁÖ µîÀåÇÏ´Â ½´ÆÛ¸¶ÄÏ¿¡¼ÀÇ °è»ê ¿¹¸¦ µé¾îº¸ÀÚ. ½´ÆÛ¸¶ÄÏ¿¡¼ ¿©·¯ ¼Õ´ÔµéÀÌ ÀÚ½ÅÀÌ ÇÊ¿äÇÑ ¹°°ÇÀ» °í¸¥ ÈÄ¿¡ °è»êÀ» ÇÏ·Á°í ÇÑ´Ù. ±×¸®°í Á¡¿øÀº µü ÇÑ ¸í¹Û¿¡ ¾ø´Ù. ÇÑ ¸íÀÇ Á¡¿øÀÌ ¿©·¯ ¼Õ´ÔÀÇ ¹°Ç°À» °è»êÇÏ´Â ¹æ¹ýÀ¸·Î Å©°Ô µÎ °¡Áö¸¦ »ý°¢ÇØ º¼ ¼ö ÀÖ´Ù. Çϳª´Â »ç¶÷µéÀ» ÇÑ ÁÙ·Î ¼¼¿ì°í Â÷·Ê·Î °è»êÀ» ÇØÁÖ°í, ´Ù¸¥ Çϳª´Â ¿©·¯ °³ÀÇ °è»ê´ë¿¡ »ç¶÷µéÀ» ¿©·¯ ÁÙ·Î ¼¼¿ì°í ÇÑ ¹ø¿¡ ÇÑ °è»ê´ë¾¿ µ¹¾Æ°¡¸é¼ Â÷·Ê·Î °è»êÀ» ÇØÁÖ´Â ¹æ¹ýÀÌ´Ù. ±×¸²À» Á»´õ ¼³¸íÇϸé ÀÌ·¸´Ù.