292 Journal of Korea Robotics Society (2012) 7(4):292-298 http://dx.doi.org/10.7746/jkros.2012.7.4.292 ISSN: 1975-6291 / eissn: 2287-3961 실시간임베디드리눅스에서다양한주기적타스크의실시간메커니즘성능분석 On Benchmarking of Real-time Mechanisms in Various Periodic Tasks for Real-time Embedded Linux 고재환 1, 최병욱 Koh Jae-Hwan 1, Choi Byoung-Wook Abstract It is a real-time system that the system correctness depends not only on the correctness of the logical result of the computation but also on the result delivery time. Real-time Operating System (RTOS) is a software that manages the time of a microprocessor to ensure that the most important code runs first so that it is a good building block to design the real-time system. The real-time performance is achieved by using real-time mechanisms through data communication and synchronization of inter-task communication (ITC) between tasks. Therefore, test on the response time of real-time mechanisms is a good measure to predict the performance of real-time systems. This paper aims to analysis the response characteristics of real-time mechanisms in kernel space for real-time embedded Linux: RTAI and Xenomai. The performance evaluations of real-time mechanism depending on the changes of task periods are conducted. Test metrics are jitter of periodic tasks and response time of real-time mechanisms including semaphore, real-time FIFO, Mailbox and Message queue. The periodicity of tasks is relatively consistent for Xenomai but RTAI reveals smaller jitter as an average result. As for real-time mechanisms, semaphore and message transfer mechanism of Xenomai has a superior response to estimate deterministic real-time task execution. But real-time FIFO in RTAI shows faster response. The results are promising to estimate deterministic real-time task execution in implementing real-time systems using real-time embedded Linux. Keywords: Real-time embedded linux, IPC, Xenomai, RTAI, Real-time mechanism CopyrightcKROS 1. 서론 1) 실시간시스템은시스템의정확성과함께외부입력에대하여원하는시간적제한내에반응을위한출력을만들어내야하는시스템이다. 즉예측되지않는외부자극에대하여시간적으로예측가능한출력을만들어내야한다. 임베디드시스템은마이크로프로세서를이용하여특정한목적의하드웨어를제어하는시 Received : Aug. 10. 2012; Reviewed : Oct. 8. 2012; Accepted : Nov. 8. 2012 This study was financially supported by Seoul National University of Science and Technology Corresponding author: Electrical and Information Engineering, Seoul National Univ. of Science and Technology, Gongneung-Dong, Nowon-Gu, Seoul, Korea (bwchoi@seoultech.ac.kr) 1 Electrical Engineering, Seoul National Univ. of Science and Technology (go3167@gmail.com) 스템으로다양한분야에서활용되고있다. 실시간시스템은시간적관점에서의정의이고, 임베디드시스템은구현의관점에서정의이다. 최근에와서대부분의실시간시스템은임베디드시스템으로구현되고있으며, 이러한이유로임베디드시스템의운영체제로서시간적제약을만족하여야하는시스템을구현하기위하여실시간운영체제인 RTOS(Real-Time Operating System) 가이용되고있다. 일반적으로임베디드시스템에사용되는범용운영체제는실시간시스템이요구하는성능을보장하지못하여제어에어려움을겪게된다. 따라서실시간시스템이요구하는비동기적인반응에대하여미리정해진시간에예측가능한방법으로신뢰성있는출력을보장하기위해 RTOS를사용한다. 실시간운영체제는임
실시간임베디드리눅스에서다양한주기적타스크의실시간메커니즘성능분석 293 베디드운영체제중에서시간을제어할수있는기능이포함된운영체제로상용 RTOS와오픈소스로진행중인실시간임베디드리눅스로구분지을수있다 [1-4]. 상용 RTOS는검증된성능, 체계화된개발환경그리고체계적인기술지원등의장점이있지만특정운영체제로의기술종속이될수있으며고가의초기개발비용및개발의유연성이떨어진다는단점을갖는다 [5]. 이에비하여오픈소스로개발된운영체제는다양한하드웨어지원과함께성능도우수하여많은시스템에적용되고있다 [6-9]. 이러한 RTOS를이용한실시간시스템은다중타스크로구현되며실시간메커니즘을이용하여타스크간통신과동기화그리고자원관리가이루어진다 [10]. 따라서실시간시스템의성능은실시간메커니즘의시간적성능으로나타낼수있기때문에시스템의성능을보장하기위하여실시간메커니즘의시간적성능분석은매우중요한연구분야이다. 상용 RTOS는실시간메커니즘의시간적성능분석이체계적으로이루어지고있지만오픈소스인실시간임베디드리눅스는이와같은성능분석이미비한실정이다. 현재실시간임베디드리눅스의성능분석에대한연구로시스템의제어성능과인터럽트처리에대한지연의관점에서진행된연구가발표되었고, 또한선행연구로써오픈소스프로젝트인 RTAI와 Xenomai를이용하여동일주기타스크에서의실시간메커니즘에대하여시간적성능분석을수행하였다 [11-13]. 본논문에서는선행연구결과를바탕으로타스크의주기가변화할경우에실시간메커니즘의시간적성능을분석한다. 대부분의실시간시스템에서사용되는실시간타스크가주기적인특성을갖는다는점에서다양한주기에서의실시간메커니즘의성능변화에대한연구가필요하다. 본연구는실시간시스템을구현하기위해다양한주기의실시간타스크를구현하여야한다는점에서처음시도되는매우유용한결과이다. 추후, 결과에따른오픈소스분석을수행한다면최적의실시간메커니즘을가지는실시간임베디드리눅스구현이가능할것으로기대된다. 본논문의구성은다음과같다. 먼저 2장에서본논문에서구현한실시간임베디드리눅스의실험환경및방법을간략하게서술하고, 3장에서는실시간시스템의기본이되는실시간타스크의주기성을분석하며, 4장에서는실시간메커니즘의시간적성능이타스크의 주기에따라어떻게변화되는지를살펴본다. 그리고 5 장에서결론을맺는다. 2. 실시간임베디드리눅스구현 RTAI와 Xenomai는실시간운영체제가아닌실시간타스크를위한인터페이스다. 따라서 RTAI나 Xenomai를사용하기위해서는운영체제가필요하다. 본논문에서는호환성검토와실험을통하여아래와같은개발환경에서최신리눅스커널을활용하여 RTAI와 Xenomai를구현하였다. 자세한구현과정은선행연구에서다뤘다 [13]. Ubuntu 10.04 LTS Intel Core2 Duo CPU E8400 @ 3.00GHz Linux Kernel 2.6.32.11 gcc-4.4.3 본실험은커널공간에서프로그램을작성하였고, 실험의용이성을위하여모듈구조를이용하여구현하였다. 그리고모든성능분석은커널메시지함수를이용하여수행후확인하는절차를거쳤다. 따라서데이터처리에따른지연시간을배제하였다. 또한스케줄링에의한지연을방지하기위하여항상하나의모듈을커널에구동하여실험하였다. 그러나이와같이진행하여도리눅스에기본적으로동작하는프로세스가존재하기때문에성능의비교를파악할수있도록 50 번의실험을반복하였다. 실시간메커니즘들의수행시간측정은각각 RTOS들이제공해주는 API를이용하여시간을측정하였다. 3. 주기적타스크의주기성연구본논문에서는대표적인실시간임베디드리눅스인 RTAI와 Xenomai를 IPC(Inter Process Communication) 관점에서시간적성능분석한다. 성능분석은실시간시스템구현의기본이되는실시간타스크의주기성을분석하고, 실시간메커니즘으로타스크간동기화와통신에가장많이사용되는세마포어 (Semaphore), 실시간 FIFO(First-In First Out), 메일박스 (Mailbox) 및메시지큐 (Message Queue) 의시간적성능을분석한다. 본논문에서수행한실시간메커니즘의시간적성능분석
294 로봇학회논문지제 7 권제 4 호 (2012. 12) 은상용 RTOS 및최근에개발된 uc/os-iii의성능분석방식과동일한방식으로수행되었다 [14]. 실시간시스템은다양한주기로구현되며일반적인 RTOS의경우 10[ms] 를기본으로하여이에정수배의주기로실시간타스크를구현한다. 따라서본논문에서는타스크의주기에따른실시간메커니즘의성능차이를보기위해타스크의주기를 10[ms], 30[ms], 50[ms] 로변경하며실시간메커니즘의응답시간을측정하였다. 타스크의주기가변경되어도실험구조는동일하다. Fig. 1은전체실험구조를간략화하여그림으로나타낸것이다. Fig. 2는 Periodic Task의실험구조를의사코드로표현하였다. 타스크가처음실행되면원하는주기를설정하고타스크가주기적으로실행되게만든다. 그다음각각의실시간임베디드리눅스가제공하는 API를이용하여타스크가처음설정한주기에정확히실행되는지보기위해시간을측정한다. 각각의주기에대한실험결과는 Fig. 3~5와같다. Fig. 3~5에나타난결과는각각의주기에서실제타스크의주기성의오차에대한결과이다. 결과는 [ns] 로나타내었다. 50[ms] 주기에서 Xenomai는평균적으로 ±8269[ns] 의오차가났고, RTAI의경우 ±15878[ns] 의 Fig. 3. Experimental result of task of period 10ms Fig. 4. Experimental result of task of period 30ms Fig. 5. Experimental result of task of period 50ms Fig. 1. Task diagram of testing real-time performance Fig. 2. Pseudocode for testing periodic task 오차가발생하였다. 30[ms] 주기에서는 RTAI와 Xenomai의오차의평균이비슷하게나타났고 10[ms] 주기에서는 50[ms] 와는달리 RTAI가 Xenomai에비해오차의평균값이 2배가까이줄어드는모습을볼수있다. 즉타스크의주기가짧을수록 RTAI가 Xenomai 에비해정확한시간에타스크가실행되었고주기가길수록 Xenomai가 RTAI에비해정확한시간에타스크가실행되었다. 또한 RTAI의경우타스크의주기가감소할수록오차가현저하게줄어드는모습을볼수있다.
실시간임베디드리눅스에서다양한주기적타스크의실시간메커니즘성능분석 295 4. 주기성에따른실시간메커니즘성능분석 4.1 세마포어 (Semaphore) Fig. 6은세마포어의시간적성능분석을위한의사코드이다. Task1이세마포어를양도한시점부터 Task2가세마포어를획득한시점까지걸린시간을측정하였다. 즉, Task1이세마포어를양도하고 Task2로 Context Switch가일어나고 Task2가세마포어를획득하기까지걸린시간을측정하여결과를 Fig. 7~9에나타내었다. 실험결과를살펴보면 Xenomai가세마포어를양도하고다른타스크가이를획득하는데걸리는시간이 Fig. 6. Pseudocode for testing semaphore Fig. 7. Result of semaphore of period 10ms Fig. 9. Result of semaphore of period 50ms 모든주기에서 RTAI보다짧게소요되는모습을볼수있다. 또한 RTAI의경우주기가짧을수록 Fig. 6의과정을수행하는데걸리는시간이감소하였다. 실시간시스템을구현할경우 Xenomai의 Semaphore를이용할경우모든주기에서 RTAI보다우수한시간적응답특성을얻을수있다. 4.2 실시간 FIFO Fig. 10은커널공간의 Task1이실시간 FIFO를통하여사용자공간의타스크로데이터를전달하고다시사용자공간에서커널공간의타스크로데이터를전달하는구조를의사코드로나타내었다. 실험은위의일련의과정을수행하는데걸린시간을측정하였다. FIFO 는읽기와쓰기를모두지원하는모드로사용이불가능하여양방향자료전송을위해두개의 FIFO를사용하였다. Xenomai의경우 FIFO가메시지파이프 (Message Pipe) 로정의되어있다. 실험결과는 Fig. 11~13과같다. 실험결과를보면타스크의주기가짧아질수록 RTAI와 Xenomai 모두수행시간이감소하였다. 또한모든주기에서 RTAI가제공하는실시간 FIFO가 Fig. 8. Result of semaphore of period 30ms Fig. 10. Pseudocode for testing real-time FIFO
296 로봇학회논문지제 7 권제 4 호 (2012. 12) Fig. 11. Result of FIFO of period 10ms Fig. 12. Result of FIFO of period 30ms Fig. 14. Pseudocode for testing Mailbox and Message queue 에사용되는실시간메커니즘의성능을분석하였다. 실험은 Fig. 14에나타낸의사코드와같은구조로 Task1이 Task2에메시지를전달하고, 다시 Task2로부터메시지를받는데까지소요된시간을측정하였다. 또한주기를변경하며주기에따른시간적성능차이를분석하였다. 실험결과는 Fig. 15~17과같다. 실험결과는 Fig. 15~17에서볼수있듯이 RTAI에서제공하는실시간메커니즘인메일박스에비해 Xenomai의메시지큐가데이터전송에우수한시간적반응특성을나타내었고, 타스크의주기에따른수행 Fig. 13. Result of FIFO of period 50ms Xenomai에서제공하는메시지파이프에비해모든주기에서짧은응답시간특성을나타내었고, 더낮은최악의응답시간을보장하고있다. 4.3 메일박스와메시지큐데이터전송에사용되는메일박스와메시지큐의경우 RTAI는메일박스, Xenomai는메시지큐만 API를제공하고있다. 따라서본논문에서는성능분석을 RTAI에서는메일박스로그리고 Xenomai에서는메시지큐를이용하여 Fig. 14와같은구조의데이터전송 Fig. 15. Result of Mailbox and Message queue of period 10ms Fig. 16. Result of Mailbox and Message queue of period 30ms
실시간임베디드리눅스에서다양한주기적타스크의실시간메커니즘성능분석 297 구현할수있을것으로기대된다. 참고문헌 Fig. 17. Result of Mailbox and Message queue of period 50ms 시간의차이는거의나타나지않았다. 다만 RTAI의메일박스의경우타스크의주기가감소할수록 Fig. 14 와같은과정을수행하는시간이감소하였다. 일반적으로메일박스의경우 1:1 타스크구조간데이터전달에사용되는메커니즘이고, 메시지큐는 N:1의타스크구조에서사용되는메커니즘이므로직접적인비교는어려우나이러한실시간메커니즘의시간적성능분석은실시간시스템구현에매우유용한정보이다. 5. 결론실험결과를요약하면타스크의주기성은주기에따라 RTAI와 Xenomai가성능차이를보였으며, 실시간메커니즘의경우 FIFO는 RTAI가세마포어및메시지전달메커니즘은 Xenomai가모든주기에서우수한시간적응답특성을나타내었다. 본논문에서는선행연구결과를바탕으로타스크의주기에따라데이터전송및동기화에사용되는실시간메커니즘을다양한주기적타스크에대하여시간적성능을분석하였다. 본연구의결과는실시간시스템의타스크가주기적타스크로구현되며그안에서실시간메커니즘을사용한다는관점에서실시간시스템의성능을예측하는가장기초적인자료를제공하고있어서매우유용한정보이다. 또한실시간임베디드리눅스의경우사용을위한노력에집중되고성능분석에대한연구가없었다는점에서매우귀중한결과이다. 향후오픈소스로구현된실시간시스템의메커니즘분석을통하여앞선실험결과에대한원인을정확히파악하고자한다. 또한최적의실시간메커니즘을구현한다면우수한성능의실시간임베디드리눅스를 [1] Tim Bird, Comparing two approaches to real-time Linux, www.linuxdevices.com, 2002 [2] Ismael Ripoll, RTLinux versus RTAI, www.linuxdevices.com, 2002 [3] Kevin Dankwardt, Comparing real-time Linux alternatives, www.linuxdevices.com, 2000 [4] W. S. Liu, Real-Time System, Prentice Hall, 2000 [5] D.Abbout, "Linux for Embedded and Real-time Applications", Elsevier, 2006 [6] M.D. Marieska, A.I. Kistijantoro, and M. Subair, Analysis and Benchmarking Performance of Real Time Patch Linux and Xenomai in Serving a Real Time Application, Proc. of International Conf. on Electrical Engineering and Informatics, pp.1-6, 2011 [7] P. Kadionik, B. Le Gal, H. Levi, Ben Atitallah, A. Performances analysis and evaluation of Xenomai with a H.264/AVC decoder, Proc. of International Conf. on Microeletronics, pp.1-4, 2011 [8] G. Zhang, L. Chen, and A. Yao, Study and Comparison of the RTHAL-based and ADEOS-based RTAI Real-time Solutions for Linux, Proc. of International Multi-Symposium on Computer and Computational Sciences, pp.771-775, 2006 [9] M. Liu, D. Liu, Y. Wang, M. Wang, and Z. Shao, On Improving Real-Time Interrupt Latencies of Hybrid Operating Systems with Two-Level Hardware Interrupts, IEEE Trans. on Computers, Vol.60, No.7, pp.978-991, 2001 [10] Choi, B.W, A Review and Outlook of Robotics Software Framework, J. of Korean Robotic Society, Vol5, No2, pp169-176, 2010 [11] A.Barbalace, A. Lunchetta, G Manduchi, M.Moro, A. Soppelsa and C. Taliercio, "Performance Comparison of VxWorks, Linux, RTAI and XENOMAI in a Hard Real-time Application,"
298 로봇학회논문지제 7 권제 4 호 (2012. 12) Proc. of Real-Time Conference 2007 15th IEEE-NPSS, pp.1-5, May 2007. [12] M. Franke, "A Quantitative Comparison of Realtime Linux Solutions," Chemnitz University of Technology, 2007. [13] Koh, J.H, Choi, B.W, "Performance Evaluation of Real-time Mechanisms for Real-time Embedded Linux", J. of Institute of Control, Robotics and Systems, Vol18, No.4, pp. 337-342, 2012. [14] uc/os-iii, http://micrium.com 고재환 2011 서울과학기술대학교전기공학과 ( 공학사 ) 2001~ 현재서울과학기술대학교전기공학과석사과정관심분야 : 실시간운영체제, 임베디드리눅스, 지능형서비스로봇. 최병욱 1986 한국항공대학교항공전자공학과 ( 공학사 ) 1988 한국과학기술원전기및전자공학과 ( 공학석사 ) 1992 한국과학기술원전기및전자 ( 공학박사 ) 1988~2000 LG산전주식회사엘리베이터연구실장및임베디드시스템연구팀장 2000~2005 선문대학교제어계측공학과부교수 2007~2008 Nanyang Technological University, Senior Fellow 2005~ 현재서울과학기술대학교전기정보공학과교수관심분야 : 임베디드시스템, 임베디드리눅스, 실시간운영체제, 지능형로봇응용, 소프트웨어플랫폼