[ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): yhchung (Á¤ ¿µÈ£) ³¯ Â¥ (Date): 2001³â 2¿ù 15ÀÏ ¸ñ¿äÀÏ ¿ÀÀü 03½Ã 25ºÐ 50ÃÊ Á¦ ¸ñ(Title): scheduling at multi-thread programming RTOS ȯ°æ¿¡¼­ multi-tasking programming ÇÏ´Â °Ç ¾ÆÁÖ Àͼ÷ÇÏÁö¸¸ PC¿¡¼­´Â óÀ½ÀÔ´Ï´Ù. main ÇÔ¼ö¿¡¼­ º°µµÀÇ thread¸¦ ¸¸µé°í ÀÚµ¿À¸·Î run Çϵµ·Ï ÇÑÈÄ main¿¡¼­ »ý¼º½ÃÅ°´Â data ¾î´À Á¤µµ·Î consumeÇÏ´ÂÁö º¸°í Àִµ¥, main°ú º°µµÀÇ thread °£ÀÇ schedulingÀÌ ¾î¶»°Ô µÇ´ÂÁö ±Ã±ÝÇϳ׿ä. ±×³É round-robin ¹æ½ÄÀ¸·Î ¾²´ÂÁö.. ±×¸®°í °øÀ¯µÈ data ¸¦ º¸È£Çϱâ À§ÇÑ critical sectionÀ̳ª semaphore°°Àº°Ô ÀÖ´ÂÁö ¸ð¸£°ÚÀ¾´Ï´Ù. °£´ÜÇÏ°Ô ¼³¸íÇØ ÁÖ ½Ç ¼ö ÀÖÀ»±î¿ä? -Á¤ ¿µÈ£ [ CnUnix ] in KIDS ±Û ¾´ ÀÌ(By): terzeron (the cowboy) ³¯ Â¥ (Date): 2001³â 2¿ù 15ÀÏ ¸ñ¿äÀÏ ¿ÀÀü 10½Ã 23ºÐ 06ÃÊ Á¦ ¸ñ(Title): Re: scheduling at multi-thread programmin °£´ÜÇÏ°Ô... ±âº»ÀûÀ¸·Î win32 lib¿¡¼­ thread´Â priority¿¡ ±â¹ÝÇÑ schedulingÀ» ÇÏ´Â °ÍÀ¸·Î ¾Ë°í ÀÖ½À´Ï´Ù. µ¿½Ã¿¡ ¼öÇàµÇ´Â thread´Â ´ç¿¬È÷ µ¿±âÈ­µÇÁö ¾ÊÀ¸¸é °øÀ¯ÇÏ´Â ÀÚ·á(global var, static var)¸¦ overwriteÇÒ °¡´É¼ºÀÌ »ó´çÈ÷ ³ô½À´Ï´Ù. ±×·¡¼­ ¾Æ½Ã´Ù½ÃÇÇ thread°¡ °øÀ¯ ÀÚ·á¿¡ ´ëÇÑ Á¢±ÙÀ» µ¿±âÈ­(synchronize) Çϱâ À§Çؼ­ Á¦°øµÇ´Â °ÍµéÀÌ Àִµ¥, win32¿¡¼­´Â synchronization object ¶ó°í ĪÇÕ´Ï´Ù. win32¿¡¼­ Á¦°øµÇ´Â object¿¡´Â semaphore, mutex(mutual exclusion), event, waitable timer, critical section µîÀÌ ÀÖ½À´Ï´Ù. ÀÌ·± object´Â create, openµîÀÇ °úÁ¤À» °ÅÃļ­ »ý¼ºÀÌ µÇ°í wait °úÁ¤À» °ÅÃÄ µ¿±âÈ­¸¦ ½ÃÅ°°í, release¸¦ ÅëÇؼ­ Á¦°Å°¡ µË´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº MSDN libraryÀÇ Platform SDK-Base Services-DLLs, Processes, and Threads¸¦ Âü°íÇÏ½Ã¸é µË´Ï´Ù. ¶Ç´Â »öÀÎÀ» ÀÌ¿ëÇÏ¿© createsemaphore¸¦ °Ë»öÇϽŠ´ÙÀ½¿¡ À§Ä¡º¸±â ¹öÆ°À» ´­·¯ °ü·Ã ¹®¼­¸¦ Àо¼Åµµ µÇ°Ú±¸¿ä.