º»¹®/³»¿ë
Contents
1. ÇÁ·Î¼¼¼ ¾Ë°í¸®Áòº° ºÐ·ù
2. ÆäÀÌÁö ±³Ã¼ ¾Ë°í¸®Áò
3. µð½ºÅ© ½ºÄÉÁ층 ¾Ë°í¸®Áò
4. Âü°í¹®Çå
1. ÇÁ·Î¼¼¼ ¾Ë°í¸®Áòº° ºÐ·ù
¡á ¾Ë°í¸®ÁòÀ̶õ?
¾Ë°í¸®ÁòÀ̶õ ¾î¶°ÇÑ ÁÖ¾îÁø ¹®Á¦¸¦ Ç®±â À§ÇÑ ÀýÂ÷³ª ¹æ¹ýÀ» ¸»Çϴµ¥ ÄÄÇ»ÅÍ ÇÁ·Î±×·¥À» ±â¼úÇÔ¿¡ ÀÖ¾î ½ÇÇà¸í·É¾îµéÀÇ ¼ø¼¸¦ ÀǹÌÇÏ¸ç ¾Æ¶øÀÇ ¼öÇÐÀÚÀÎ ¾Ë°í¸®Áî¹Ì(Al-Khowarizmi)ÀÇ À̸§¿¡¼ À¯·¡µÇ¾ú´Ù. ¾Ë°í¸®Áò¿¡¼ °¡Àå Áß¿äÇÑ °ÍÀº È¿À²¼ºÀ̶ó°í ÇÒ ¼ö Àִµ¥ µ¿ÀÏÇÑ ¹®Á¦¸¦ Ǫ´Â µ¥ ÀÖ¾î °á°ú´Â °°¾Æµµ ÇØ°á¹æ¹ý¿¡ µû¶ó ½ÇÇà¼Óµµ³ª ¿ÀÂ÷¡¤¿À·ù µî¿¡ Â÷À̰¡ ÀÖÀ» ¼ö Àֱ⠶§¹®ÀÌ´Ù. ¶ÇÇÑ, ¾Ë°í¸®ÁòÀº ¸íÈ®ÇØ¾ß Çϴµ¥ À̸¦ À§ÇØ ÇÁ·Î±×·¡¸ÓµéÀº ÁÖ·Î ¼ø¼µµ³ª ÀÇ»çÄÚµå(pseudocode) µîÀ» ÀÌ¿ëÇϰí ÀÖ´Ù.CPU ¾Ë°í¸®Áòº° ºÐ·ù´Â ´ÙÀ½°ú °°´Ù.
(1) FIFO (First In First Out) ½ºÄÉÁÙ¸µ- ºñ¼±Á¡ ¹æ½Ä
¼±ÀÔ ¼±Ãâ(First In First Out, ÁÙ¿©¼ FIFO)Àº ½Ã°£°ú ¿ì¼± ¼øÀ§¿Í °ü·ÃµÈ µ¥ÀÌÅ͸¦ Á¤¸®Çϰí ÀÌ¿ëÇÏ´Â ¹æ½ÄÀ» ÁÙ¿© ¸»ÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ Ç¥ÇöÀº ¼±ÀÔ¼±Ã³¸® ÇàÀ§¿¡ µû¶ó ¼ø¼´ë·Î ó¸®ÇÔÀ¸·Î½á ±â¼úÀ» ó¸®Çϰųª ¼ö¿ä Ãæµ¹À»¡¦(»ý·«)
¨ç °¡Àå °£´ÜÇÑ ½ºÄÉÁÙ¸µ ±â¹ýÀ¸·Î ÇÁ·Î¼¼½ºµéÀÌ Áغñ Å¥ (ready queue)¿¡ µé¾î¿Â ¼ø¼´ë·Î µð½ºÆÐÄ¡ µÈ´Ù.
¨è À϶õ ÇÑ ÇÁ·Î¼¼½º°¡ ÇÁ·Î¼¼¼¸¦ ÇÒ´ç ¹ÞÀ¸¸é ±× ÇÁ·Î¼¼½º°¡ ³¡³¯ ¶§ ±îÁö °è¼Ó ¼öÇàÀ» ÇÑ ´Ù. °á±¹ FIFO ½ºÄÉÁÙ¸µÀº ºñ¼±Á¡(Nonpreemptive) ±â¹ýÀÓÀ» ¾Ë ¼ö ÀÖ´Ù.
¨é FIFO ±â¹ýÀº Â÷·Ê´ë·Î 󸮵DZ⠶§¹®¿¡ ¿¹ÃøÀÌ °¡´ÉÇÏ´Ù.
¨ê FIFO ±â¹ýÀº °£´ÜÇÑ ¹Ý¸é ªÀº ÀÛ¾÷ÀÌ ±ä ÀÛ¾÷ µÚ¿¡¼ ¿À·¡ ±â´Ù¸®°Ô ÇÒ ¼ö µµ ÀÖ°í Áß¿ä ÇÑ ÀÛ¾÷À» Áß¿äÇÏÁö ¾Ê´Â ÀÛ¾÷ÀÌ Áß¿äÇÑ ÀÛ¾÷À» ±â´Ù¸®°Ô ÇÒ ¼öµµ ÀÖ¾î ´ëÈ½Ä Ã³¸®¿¡´Â ºÎÀûÇÕÇÏ´Ù.
¨ç »ý¼ºµÇ´Â °¢ ÇÁ·Î¼¼½º¿¡ ¿ì¼±¼øÀ§¸¦ ºÎ¿©ÇÏ¿© ¿ì¼±¼øÀ§°¡ ³ôÀº ÇÁ·Î¼¼½º¸¦ ¸ÕÀú ó¸® Çϵµ ·Ï ÇÏ´Â ¹æ½ÄÀ¸·Î Àϰýó¸® ½Ã½ºÅÛ¿¡¼ »ç¿ëµÈ´Ù.
¨è ½Ã½ºÅÛ ÀÛ¾÷, ´ëÈÇü ÀÛ¾÷ µîÀº ³ôÀº ¿ì¼±¼øÀ§¸¦ ÇÒ´ç ¹ÞÀ¸¸ç CPU »ç¿ë½Ã°£ÀÌ Àû°í ÀÔÃâ ·ÂÀÌ ¸¹Àº ÀÛ¾÷µµ ³ôÀº ¿ì¼±¼øÀ§¸¦ ¹Þ´Â´Ù.
¨ç RR¹æ½ÄÀº ÇÁ·Î¼¼½ºµéÀ» FIFO¹æ½ÄÀ¸·Î µð½ºÆÐÄ¡ÇÏ¿© ÀÏÁ¤ÇÑ ½Ã°£ (time slice¶Ç´Â time quantum) µ¿¾È¸¸ µ¹¾Æ°¡¸ç ¼öÇàÇÏ´Â ±â¹ýÀÌ´Ù. ÇÒ´ç½Ã°£Àº º¸Åë 10¿¡¼ 100ms·Î ÁÖ¾îÁø ´Ù.
¨è ¸¸¾à ÇÁ·Î¼¼½º°¡ ÇÒ´çµÈ ½Ã°£ ³»¿¡ ÀÛ¾÷À» ó¸®ÇÏÁö ¸øÇϸé Áغñ Å¥ÀÇ ¸¶Áö¸·À¸·Î °¡°Ô µÇ °í Áغñ ÁßÀÎ ´ÙÀ½ ÇÁ·Î¼¼½º¿¡°Ô ÇÁ·Î¼¼½º¸¦ ÇÒ´çÇÑ´Ù. ±×¸®°í ¼öÇà ÁßÀÌ´ø ÀÛ¾÷Àº ´Ù½Ã Â÷·Ê°¡ ¿Ã ¶§±îÁö ´ë±âÇÏ°Ô µÈ´Ù.
¨é RR ¹æ½ÄÀº ¼±Á¡¹æ½ÄÀ¸·Î ½ÃºÐÇÒ ½Ã½ºÅÛ¿¡¼ »ç¿ëÀÚ¿¡°Ô ºü¸¥ ¹ÝÀÀ½Ã°£À» º¸ÀåÇØÁÖ³ª (Time slice) °áÁ¤ÀÌ ¾î·Æ´Ù. Áï, ³Ê¹« Å©±â°¡ Å©¸é FIFO ¹æ¹ý°ú °°Àº ´ÜÁ¡ÀÌ »ý±â°í ³Ê¹« ÀÛÀ¸¸é ¹®¸Æ ±³È¯¿¡ ¸¹Àº ½Ã°£À» ³¶ºñÇÑ´Ù.
¨ê º¸Åë ÀÔÃâ·ÂÀÌ ¸¹Àº ÀÔÃâ·Â Bound ÀÛ¾÷Àº ½Ã°£À» ÀÛ°Ô(100ms) ÁÖ°í °è»êÀ» ¸¹ÀÌ ÇÏ´Â CPU bound ÀÛ¾÷Àº Å©°Ô(300ms) ÁØ´Ù
¨ë