• Àüü
  • ÀüÀÚ/Àü±â
  • Åë½Å
  • ÄÄÇ»ÅÍ
´Ý±â

»çÀÌÆ®¸Ê

Loading..

Please wait....

±¹³» ³í¹®Áö

Ȩ Ȩ > ¿¬±¸¹®Çå > ±¹³» ³í¹®Áö > Çѱ¹Á¤º¸°úÇÐȸ ³í¹®Áö > Á¤º¸°úÇÐȸ ³í¹®Áö A : ½Ã½ºÅÛ ¹× ÀÌ·Ð

Á¤º¸°úÇÐȸ ³í¹®Áö A : ½Ã½ºÅÛ ¹× ÀÌ·Ð

Current Result Document : 10 / 10

ÇѱÛÁ¦¸ñ(Korean Title) ½Ç½Ã°£ ½Ã½ºÅÛÀ» À§ÇÑ ¼±Á¡Çü »ç¿ëÀÚ ·¹º§ ¾²·¹µåÀÇ ¼³°è
¿µ¹®Á¦¸ñ(English Title) Designing Preemptive User-Level Threads for Real-Time Systems
ÀúÀÚ(Author) ¼­¾ç¹Î   ¹ÚÁ¤±Ù   È«¼º¼ö   Yangmin Seo   Jungkeun Park   Seongsoo Hong  
¿ø¹®¼ö·Ïó(Citation) VOL 26 NO. 09 PP. 1096 ~ 1111 (1999. 09)
Çѱ۳»¿ë
(Korean Abstract)
³»À堽ǽ𣠽ýºÅÛ¿¡¼­´Â ³ôÀº ¿ì¼±¼øÀ§ÀÇ ºñµ¿±â À̺¥Æ®µéÀ» ½ÃÀÇÀûÀýÇϰԠó¸®Çϱâ À§ÇØ ³·Àº ºñ¿ëÀ» °®´Â ¼±Á¡¿¡ ±âÃÊÇÑ ´ÙÁß ¾²·¹µùÀ» Áö¿øÇؾ߸¸ ÇÑ´Ù. ÀϹÝÀûÀ¸·Î À¯Àú ·¹º§ ¾²·¹µå´Â Ä¿³Î ¾²·¹µå¿¡ ºñÇÏ¿© ³·Àº ºñ¿ëÀ¸·Î ÈξÀ À¯¿¬ÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù. ¹Ý¸é, ½Ç½Ã°£ ½Ã½ºÅÛ¿¡¼­´Â Ä¿³Î ¾²·¹µå°¡ ´Ü¼øÇÑ ¾²·¹µå ½ºÄÉÁ층°ú ½Ã±×³Î Ã³¸®¸¦ ÇÒ ¼ö Àֱ⠶§¹®¿¡ À¯Àú ¾²·¹µå¿¡ ºñÇØ ÈξÀ ¼±È£µÇ¾î ¿Ô´Ù. º» ³í¹®¿¡¼­´Â ³»À堽ǽ𣠽ýºÅÛ¿¡ ÀûÇÕÇÑ »õ·Î¿î °³³äÀÇ À¯Àú ·¹º§ ´ÙÁß ¾²·¹µù ±â¹ýÀ» Á¦¾ÈÇÑ´Ù. ÀÌ ±â¹ýÀº °¡»ó ¾²·¹µå(virtual thread)¿Í ½ºÄÉÁ층 À̺¥Æ® ¾÷ÄÝ(scheduling event upcall) ¹æ½ÄÀ¸·Î ±¸¼ºµÈ´Ù. °¡»ó ¾²·¹µå´Â À¯Àú ¾²·¹µåÀÇ Ä¿³Î ·¹º§ÀǠüÇö(incarnation)À¸·Î À¯Àú ¾²·¹µå°¡ Ä¿³Î¿¡¼­ ¼öÇàÇϱâ À§ÇѠȯ°æÀ» Á¦°øÇÑ´Ù. ÀÌ°ÍÀº °¡»ó ¾²·¹µå´Â ½ºÄÉÁ층 µÇÁö ¾Ê´Â ¼öµ¿ÀûÀΠ°´Ã¼À̸ç, ½ºÄÉÁ층Àº ÇÊ¿äÇÒ ¶§¸¶´Ù ¿¬°áµÇ´Â À¯Àú ¾²·¹µå¿¡ ÀÇÇØ ÀÌ·ç¾îÁüÀ» ÀǹÌÇÑ´Ù. ½ºÄÉÁ층 À̺¥Æ® ¾÷ÄÝÀº ¾²·¹µå°¡ Ä¿³Î¿¡¼­ ºí·ÏÇϰųª Å¸À̸ÓÀÇ ¸¸±âµÉ ¶§¿Í °°ÀÌ Ä¿³Î¿¡¼­ ¹ß»ýÇϴ À̺¥Æ®µéÀ» À¯Àú ÇÁ·Î¼¼½º¿¡°Ô È¿À²ÀûÀ¸·Î Àü´ÞÇϱâ À§ÇØ °³¹ßµÈ ±â¹ýÀÌ´Ù. ÀÌ ±â¹ý¿¡¼­´Â Àá±Ý(lock)¾øÀÌ Á¢±ÙÇÒ ¼ö Àִ Ŀ³Î/À¯Àú °øÀ¯ Å¥¸¦ »ç¿ëÇÏ¿© Ä¿³Î¿¡¼­ ¹ß»ýÇÑ À̺¥Æ®µéÀ» À¯Àú¿¡°Ô Àü´ÞÇÑ´Ù. ±× °á°ú ¼ø°£ÀûÀΠ°úºÎÇÏ »óÅ¿¡¼­µµ À̺¥Æ®¸¦ ¼Ò½ÇÇÏ°í ¾Ê°í ¾ÈÀüÇÏ°Ô À¯Àú¿¡°Ô Àü´ÞÇÒ ¼ö ÀÖ´Ù.
º» ³í¹®¿¡¼­ Á¦¾ÈµÈ ±â¹ýµéÀº À¯Àú ·¹º§ ÀÎÅÍ·´Æ®, ½Ç½Ã°£ ¾²·¹µå ÀÎÅÍÆäÀ̽º¿Í °°Àº ½Ç½Ã°£ ½Ã½ºÅÛÀ» À§ÇÑ ±â¹ýµé°ú ÇÔ²² ¼­¿ï´ëÇб³¿¡¼­ °³¹ßÇÑ Arx ½Ç½Ã°£ ¿î¿µÃ¼°è¿¡ ¼º°øÀûÀ¸·Î ±¸ÇöµÇ¾ú´Ù. º» ³í¹®ÀÇ ½ÇÇè °á°ú¸¦ ÅëÇؼ­ ¾Ë ¼ö ÀÖµíÀÌ, ¿ì¸®ÀÇ À¯Àú ·¹º§ ¾²·¹µå ±â¹ýÀº À¯Àú ·¹º§ ¾²·¹µå°¡ °®´Â º»·¡ÀÇ ÀåÁ¡À» À¯ÁöÇϸ鼭µµ Solaris³ª Windows¿Í °°Àº »ó¾÷¿ë ¿î¿µÃ¼Á¦°¡ Á¦°øÇϴ Ŀ³Î ¾²·¹µå¿¡ ºñÇØ ³ôÀº ¼º´ÉÀ» Á¦°øÇÑ´Ù.
¿µ¹®³»¿ë
(English Abstract)
In real-time systems, it becomes imperative to support preemptive multithreading at a low cost in order to timely respond to high priority asynchronous events. Although user-level threads provide more flexible abstraction with lower overhead than kernel-level threads, kernel-level threads are more favored in real-time systems due to their simpler thread scheduling and signal handling. In this paper, we present a new user-level multithreading scheme suitable for real-time systems. It consists of virtual threads and a new scheduling event upcall mechanism. A virtual thread is a kernel-level incarnation of a user-level thread that provides for a kernel-level execution environment. It is a passive entity which is temporarily bound to a user-level thread, when necessary. The scheduling event upcall mechanism enables the kernel to notify user processes of kernel events such as thread blocking and timer expiration. For our upcall scheme, we have eliminated unpredictable and nondeterministic components from traditional upcall schemes such as scheduler activations and signals. Our scheme makes use of a lock-free event queue which allows both the kernel and user processes to avoid costly synchronization operations without losing any events even in a transient overload. We have fully implemented the proposed schemes along with several other real-time system supports such as user-level interrupts, user-level timers, and real-time thread interfaces in the Arx real-time operating system that we have developed at Seoul National University. Our experimental results show that these schemes outperform kernel threads that can be found in commercial operating systems such as Solaris and Windows 98, without compromising the benefits of user-level threads.
Å°¿öµå(Keyword)
ÆÄÀÏ÷ºÎ PDF ´Ù¿î·Îµå