Internet °ü·Ã ÀÚ·á |
---|
Á¦¸ñ | [Java] ¾²·¹µå #3 1998/12/03 (17:33) |
À̸§ | ±èÈ¿¿ø |
¹øÈ£ | 58 |
Á¶È¸ | 540 |
º»¹® |
¾È³çÇϼ¼¿ä ÀáÅÊÀÌÀÔ´Ï´Ù. ¿äÁò Çб³¿¡¼ ÇÑÂü ¿î¿µÃ¼Á¦¸¦ °øºÎÇÏ°í Àִµ¥, ÀÌ°Í ¸øµû¸é Á¹¾÷¸øÇϰŵé¶û¿ä.. Áøµµ°¡ ¾²·¹µå, ÇÁ·Î¼¼½ºµîÀ» ¹è¿ì´Â °÷Àε¥, ¸¶Ä§ ¾²·¹µå°¡ ºñ±³Àû Àß ¼³¸íµÇ¾î ÀÖ¾î ±³¼ö´ÔÀÌ Á¤¸®ÇØÁֽŠ³ëÆ®¸¦ Áß½ÉÀ¸·Î Àç ÆíÁýÇؼ ¿Ã¸³´Ï´Ù. ¹°·Ð ÀÌ ³»¿ëÀº ÀÚ¹ÙÀÇ ¾²·¹µå¿Í ´Ù¸¦ ¼öµµ ÀÖÁö¸¸, ¿Ö ÀÚ¹Ù¿¡¼ ¾²·¹µå¸¦ »ç¿ëÇÏ´ÂÁö¿¡ ´ëÇØ ÀÌÇØÇÒ ¼ö ÀÖ´Â ÁÁÀº ±âȸ°¡ µÉ °ÍÀ̶ó »ý°¢ÇÕ´Ï´Ù. ±³Àç´Â Operating System Concept - Silberschatz Galvin (4ÆÇ) ÃâÆÇ»ç´Â Addison Wesley °í¿ä, ¾Õ Ç¥Áö¿¡ °ø·æ ±×¸²ÀÌ ÀÖÀ½ ¡¡ ÇÁ·Î¼¼½º¿Í ¾²·¹µå ¡¡ ¡á £±. ÇÁ·Î¼¼½º¶õ ¹«¾ùÀΰ¡ ? ÇÁ·Î¼¼½º¶õ ? ¢± ¼öÇàÁßÀÎ ÇÑ ÇÁ·Î±×·¥ ¢± ÇÑ ÇÁ·Î¼¼½ºÀÇ ¼öÇàÀº ¼øÂ÷ÀûÀ¸·Î ÁøÇàµÊ ¢± Áï ¾î¶² ½ÃÁ¡¿¡µµ ÇÁ·Î¼¼½ºÀÇ ÇÑ ÀνºÆ®·°¼Ç¸¸ÀÌ ¼öÇàµÉ ¼ö ÀÖÀ½ ÇÁ·Î±×·¥°ú ÇÁ·Î¼¼½ºÀÇ Â÷ÀÌ ¢± ÇÁ·Î±×·¥ : Passive Entry (Static) ¢± ÇÁ·Î¼¼½º : Active Ebtry (Dynamic) : ÇÁ·Î±×·¥ + ·¹Áö½ºÅÍ + ÇÁ·Î±×·¥ Ä«¿îÅÍ + ÀÚ¿ø(Resource) ÇÁ·Î¼¼½ºÀÇ ±¸¼º¿ä¼Ò ¢± Code(TEXT) : ¿ì¸®°¡ »ý°¢ÇÏ´Â ¼Ò½ºÄڵ尡 ¾Æ´Ï¶ó ½ÇÇàÄÚµå ¢± ÇÁ·Î±×·¥ Ä«¿îÅÍ ¢± ·¹Áö½ºÅÍ ¢± µ¥ÀÌŸ ¢± ½ºÅà ¢± µ¥ÀÌŸ ¼½¼Ç(Àü¿ªº¯¼ö) : À¯´Ð½º¿¡¼´Â À̹ÌÁö(image)¶ó°í ºÎ¸§ ¢± ÇÁ·Î¼¼½º´Â ÇÁ·Î±×·¥ÀÇ À̹ÌÁö ¼öÇàÀ» À§ÇØ ÇÊ¿äÇÑ ÀÚ¿ø (¸Þ¸ð¸®, CPU, PCB)µîÀÌ ÇÒ´çµÇ¾î »ý±è ÇÁ·Î¼¼½ºÀÇ »óÅ ¢± New ¢± Ready (´Ù¼ö) ¢± Running (1°³) ¢± Waiting (´Ù¼ö) ¢± Terminate ¦£¦¡¦¡¦¡¦¤ ¨èCpu Scheduler ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ New ¦¢ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ Terminate ¦¢ ¦¦¦¡¦¨¦¡¦¥ ¦£¦¡¦ª¦¡¦¤ ¦£¦¡¦¡¦ª¦¡¦¡¦¤ ¦¦¦¡¦¡¦¨¦¡¦¡¦¡¦¥ ¦¦¦¡¦¡¦¡¦¡¦¡¦© Ready¦¢ ¦¢ Running ¦§¦¡¦¡¦¡¦¡¦¥ ¨çJob Scheduler¦¦¦¨¦¡¦¨¦¥ ¦¦¦¨¦¡¦¨¦¡¦¡¦¥ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¥ ¦¢¨ê ¦¢ ¨éInterrupt ¦¢I/O or Event ¦¢¦£¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ Wait ¦¦¦© Waiting ¦§¦¡¦¥ ¦¦¦¡¦¡¦¡¦¡¦¡¦¥ ¨ç Job Scheduler : »õ·Î¿î Process°¡ »ý±â¸é(new) ÀÌ ½ºÄÉÁì·¯°¡ ÀûÀýÇÏ°Ô Ready Queue¿¡ Áý¾î ³Ö¾î ÁØ´Ù ¨è Cpu Scheduler : Ready Queue¿¡ µé¾î ÀÖ´Â ProcessÁß¿¡ ´ÙÀ½¹ø¿¡ ¼öÇàµÉ Process¸¦ °ñ¶ó Running.(¼±Åà ¹æ¹ýÀº ¿©·¯°¡Áö°¡ ÀÖÀ½) ¨é Interrupt : RunningÁß¿¡ ³Ê¹« ¸¹ÀÌ ¼öÇàµÈ´Ù°Å³ª Çϸé Interrupt¸¦ °É¾î Ready Queue·Î »óŸ¦ ¹Ù²Ù°Ô ÇÑ´Ù. ¨ê I/O or Event Wait : ÆÄÀÏ ÀÔÃâ·Âµî·Î ÀÎÇØ ´ë±â ½Ã°£ÀÌ ±æ¾îÁö¸é Waiting »óÅ·Π³Ñ°Ü¹ö¸®°í, CPU·Î ÇÏ¿©±Ý ´Ù¸¥ ÀÏÀ» ÇÏ°Ô ÇÑ´Ù. ÀÌ·¸°Ô ÇÁ·Î¼¼½º¸¦ °ü¸®ÇÏ´Â °ÍÀº CPUÂ÷¿ø¿¡¼ ³î°í ÀÖ´Â ½Ã°£(¨êÀÇ °æ¿ì)À» ÃÖ¼ÒÈÇÏ°í, ÀüüÀûÀ¸·Î ÇÁ·Î¼¼½ºµé°£¿¡ ½Ã°£ºÐ¹è¸¦ °øÆòÇÏ°Ô ÇÒ·Á°í(¨é) Çϱ⠶§¹®ÀÌ´Ù. ¹¹ ´Ù¸¥ ÀÌÀ¯µéµµ ¸¹ÀÌ ÀÖ±ä ÇÏÁö¸¸... ±×¸®°í ¸ÖƼ ÇÁ·Î¼¼½Ì¿¡¼. ¡Û ÇÁ·Î¼¼½º Á¦¾î ºí·°(Process Control Block, PCB) Á¤ÀÇ : ÇÑ ÇÁ·Î¼¼½º¿¡ °ü·ÃµÈ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â µ¥ÀÌŸ ºí·ÏÀ̳ª ·¹ÄÚµå ¢± ÇÁ·Î¼¼½º »óÅ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¨¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ Æ÷ÀÎÅÍ ¦¢ÇÁ·Î±×·¥Ä«¿îÅͦ¢ ¢± ÇÁ·Î±×·¥ Ä«¿îÅÍ ¦§¦¡¦¡¦¡¦¡¦¡¦¡¦ª¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦© : ´ÙÀ½¿¡ ¼öÇàÇÒ ÀνºÆ®·°¼Ç ÁÖ¼Ò ¦¢ ÇÁ·Î¼¼½º ¹øÈ£ ¦¢ ¦§¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦© ¢± CPU ·¹Áö½ºÅÍµé ¦¢ ÇÁ·Î¼¼½º »óÅ ¦¢ ¦§¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦© ¢± CPU ½ºÄÉÁ층 Á¤º¸ ¦¢ CPU ·¹Áö½ºÅÍµé ¦¢ ¦§¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦© ¢± ¸Þ¸ð¸® °ü¸® Á¤º¸ ¦¢ CPU ½ºÄÉÁÙ·¯µé ¦¢ ¦§¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦© ¢± ȸ°è Á¤º¸ ¦¢ ȸ°è Á¤º¸ ¦¢ : CPU»ç¿ë·®, ÇÁ·Î¼¼½º ¹øÈ£ ¦§¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦© ¦¢ I/O »óÅ Á¤º¸ ¦¢ ¢± I/O »óÅ Á¤º¸ ¦§¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦© : I/O ¿äûµé, I/O ÀåÄ¡µé ¦¢ Swapping »óÅ Á¤º¸ ¦¢ Open File ¸®½ºÆ® ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ PCB ±×¸² ½ºÄÉÁ층°ú Context Switching ¿î¿µ üÁ¦´Â ÇÁ·Î¼¼½º»Ó¸¸ ¾Æ´Ï¶ó I/O, DeviceµîÀÇ Å¥¿¡¼ ÇÁ·Î¼¼½ºµéÀ» ¼±ÅÃÇؼ Running ½ÃÄÑÁà¾ß ÇÔ. ¿©±â¼ ¼±ÅÃÇÏ´Â °ÍÀÌ ¹Ù·Î ½ºÄÉÁÙ¸µÀÌ°í ¼±ÅÃµÈ ÇÁ·Î¼¼½º¿Í ·±´×ÁßÀÎ ÇÁ·Î¼¼½º°£À» ¹Ù²Ù¾î ÁÖ´Â °ÍÀÌ Context SwitchingÀÌ´Ù. ½ÇÁ¦ Context SwitchingÀÌ ÀϾ ¶§ »ç¿ëÇÏ´Â °ÍÀÌ PCB¸¦ ÀÌ¿ë ±×¸²À¸·Î µÎ°³ÀÇ ÇÁ·Î¼¼½º°£¿¡ ½ºÀ§ÄªÀ» »ìÆ캸¸é ´ÙÀ½°ú °°´Ù. ¦¬¦¬ ½ÇÇà(Running) ¦¡¦¡ ´ë±â(Idle) Swithcing ÇÁ·Î¼¼½º P0 ÇÁ·Î¼¼½º P1 ¦ ¦¢ ¦P0 ½ÇÇà ¦¢ ¦ Idle ¦¢ ¡á p1 ¦¢ ¦¢ ¡¡ ¦¢ ¦¢ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ¦¢ ¦¢Save state into PCB0 ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¦¢ ¦¢ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ¦¢ ¦¢ Load state from PCB1 ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¦¢ ¦¢ ¦¬¦´ ¦¢ ¦ ¦¢ P1 ½ÇÇà ¦ ¦¢ Idle P0 ¦ ¦¢ ¦ ¦¢ ¦ ¦¢ ¦´ ¦¢ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ ¦¢ ¦¢ Save state from PCB1 ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ Idle ¦¢ ¦¢ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ p1 ¦¢ ¦¢ ¦¢ Load state from PCB0 ¦¢ ¦¢ ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¦¢ ¦¢ ¡¡ ¦¢ ¡á ¦¢ ¦ ¦¢ ¦ P0 ½ÇÇà ¦¢ ¦ ¦¢ ±×¸² Context ½ºÀ§ÄªÀÌ ¹ß»ýÇÒ¶§ À§ÀÇ ±×¸²¿¡¼ º¸À̵íÀÌ Context SwitchingÀÌ ¹ß»ýÇÒ ¶§ °¢ ÇÁ·Î¼¼½ºµéÀÇ ÇöÀç »óŵéÀ» ±â·ÏÇÑ PCB¸¦ ±â·ÏÇÏ°í ·ÎµåÇØ¿Í¾ß ÇÑ´Ù. À̶§ ¹ß»ýÇÏ´Â ¸ð½ÀÀ» ±×¸²À¸·Î »ìÆ캸¾ÒµíÀÌ ÇÁ·Î¼¼½º°¡ ³¶ºñµÇ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.(¹°·Ð ±×¸²À̶ó »ó´çÈ÷ Å©°Ô °úÀåµÇ¾î ÀÖ´Ù) ¿©±â¼ À¯½ÉÈ÷ »ìÆì º¸¾Æ¾ß ÇÒ °ÍÀº ÇÁ·Î¼¼½º°¡ ¼öÇàµÇ±â À§Çؼ ¸¹Àº ÀÚ¿øµéÀ» °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ±×·¡¼ ÀÌÁ¦ Thread¶ó´Â °³³äÀÌ µîÀåÇÏ°Ô µÈ´Ù. £². ¾²·¹µå¶õ ¹«¾ùÀΰ¡ ? ¾²·¹µå¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯. ¢± ÇÁ·Î¼¼½º¸¦ °øµ¿À¸·Î ¾µ ¼ö ÀÖ°Ô ÇÑ´Ù. ¢± ÇÁ·Î¼¼½º Context SwitchingÀ» ÇÒ¶§ ½Ã°£ÀÌ ¸¹ÀÌ °É¸°´Ù. ¾²·¹µå ¢± LightWeight Process(LWP)¶ó°í ÇÔ. ¢± CPU ÀÌ¿ëÀÇ ±âº»´ÜÀ§ ¢± ±¸¼º¿ä¼Ò ÇÁ·Î±×·¥ Ä«¿îÅÍ ·¹Áö½ºÅÍ ¼Â ½ºÅà °ø°£(Stack Space) ¢± ¿¬°üµÈ ¾²·¹µåµéÀÌ ¸Þ¸ð¸®¿Í ÈÀÏÀ» °øÀ¯ÇÔÀ¸·Î½á Reduced State¸¦ °®´Â LWP ÇÁ·Î¼¼½º ¢± ¾²·¹µå - based ½Ã½ºÅÛ¿¡¼´Â ¾²·¹µå°¡ ½ºÄÉÁ층 ´ÜÀ§ ¢± °¢ ¾²·¹µå´Â ÇÑ ÇÁ·Î¼¼½º¿¡¸¸ ¼ÓÇÔ ¢± ÇÁ·Î¼¼½º ÀÌ¿ÜÀÇ ¸ðµç ÀÚ¿øÀ» enclosing ÇÁ·Î¼¼½º°¡ °ü¸® °ü·ÃµÈ thread°£ÀÇ switchingÀº ºü¸£°í È¿À²ÀûÀÓ. ¢± ¾²·¹µåµµ ÀÚ½Ä ¾²·¹µå¸¦ °¡Áú ¼ö ÀÖÀ½ ¢± ÇÑ ¾²·¹µå°¡ ºí·Ï(Block)µÇ¾úÀ»¶§, µ¿ÀÏ ÇÁ·Î¼¼½º³»ÀÇ ´Ù¸¥ ¾²·¹µå ¼öÇà°¡´É ¢± ÇÑ ÇÁ·Î¼¼½º³»ÀÇ ThreadµéÀº »óÀÌÇÑ ÇÁ·Î¼¼½ºµé¸¸Å µ¶¸³ÀûÀÌÁö ¾ÊÀ½ ¢± ¾²·¹µåµé°£ÀÇ º¸È£°¡ ¾ø´Â ÀÌÀ¯(Protection ÇÒ ¼ö ¾ø´Ù) - ºÒ°¡´É(µ¿ÀÏÇÑ ÁÖ¼Ò °ø°£À» °¡Áö¹Ç·Î µ¿ÀÏÇÑ Àü¿ª º¯¼ö¸¦ °øÀ¯) - ºÒÇÊ¿ä. - (÷ºÎ) µ¿±âÈ(Synchronized)¸¦ ÀÌ¿ëÇÏ¸é µÊ : ÀÚ¹Ù¿¡¼ ¢± ÇÑ ÀÀ¿ë³»¿¡¼ Concurrency¸¦ ³ôÀ̴µ¥ È¿°úÀûÀÌ´Ù. ¢± ºñ±³Àû ÃÖ±Ù¿¡ °³¹ßµÈ ¿î¿µÃ¼Á¦ °³³ä ¿¹) Sun's Unix, Mach, OS/2, Windosw95(?) À½³Ä ´ëÃæ Á¤¸®¸¦ ÇØ º¸¾Ò´Âµ¥, ¾ÆÁ÷µµ °³³äÀÌ Àúµµ Àß ¾È ÀâÈ÷´Â ±º¿ä. ÀÚ¼¼ÇÑ ¼³¸íÀ» ¸øµå¸®´Â °ÍÀ» ÀÌÇØÇØÁֽñ⠹ٶø´Ï´Ù. ±×¸®°í http://www.sun.com/¿¡ °¡¼Å¼ ÀÚü °Ë»ö¿£ÁøÀ¸·Î Thread¸¦ °Ë»öÇÏ½Ã¸é ¼Ö¶ó¸®½º¿ë ¾²·¹µå¿¡ °üÇÑ ÀÚ·á°¡ ¸¹ÀÌ ³ª¿É´Ï´Ù. ¿¹Àü¿¡ Àú´Â ±×°Ô ÀÚ¹Ù¶û »ó°ü¾ø´Ù°í Çؼ ±×³É ¹ö·È´Âµ¥.. ÈæÈæ ±Ùµ¥ °Å±â¼ºÎÅÍ °³³äÀ» ºô·Á¿Â °Í °°¾Æ¿ä... °ü½ÉÀÖ´Â ºÐµéÀº Çѹøµé ã¾Æ°¡¼ Á÷Á¢ º¸½Ã¸é ±×¸²µµ ÀÖ°í ÁÁ½À´Ï´Ù. ½Å¼¼´ë ¾ð¾î ÀÚ¹Ù Àü¹®°¡¸¦ ²Þ²Ù´Â ÀáÅÊÀÌ 3Àιæ, ½ÅÁ¤È£, Á¦°¥¿µ, Á¶±¹ |