Á¤º¸°úÇÐȸ ³í¹®Áö 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 ´Ù¿î·Îµå
|