로봇기술및동향 네트워크로봇을위한임베디드시스템운영체제 선문대학교최병욱 1. 서론과학기술부의 2025년을향한과학기술발전장기비전에의하면메카트로닉스 (Mechatronics) 는기구나기계요소등의기계기술에전자회로나제어기법등의전자기술을혼합하여고성능시스템을구현하는것으로서, 통신, 네트워크, 인공지능등을더한메카트로닉스의중요성을예측하고있다. 메카트로닉스기술은제한된자원의효율적사용과물품생산설비의자동화등을통하여인간이좀더창의적일에매진하게하며, 극미세전자기계시스템이나로봇시스템을통하여인간의활동영역을확대시켜주는등을창출할수있는최첨단기술로인식되고있으며, 산업경쟁력확보를위한미래필수메카트로닉스및시스템기술을예시하고있는데특히지능형첨단로봇개발을지적하고있다 [1]. 지능형첨단로봇은이동및작업핵심기술, 인공지능기반의차세대로봇제어장치, 센서및원격제어기술, 인간로봇상호감성교환기술등의핵심기술을바탕으로하고있다. 이를통해위험공간과원거리에서정보수집및작업수행능력을보유한원격제어인간형로봇 (tele-controlled Humanoid), 의료극한작업용로봇, 개인용휴먼로봇등을의미하며다양하게형성될미래의서비스로봇산업에대비하여야한다고전망하고있다. 이와같은국가적발전전망은참여정부에들어서마침내지능형서비스로봇이 9대 IT산업신성장동력으로선정됨으로써실현이가시화되고있다. 지능형서비스로봇의개념은다음과같다 [2]. - 인간과서로상호작용 ( 대화, 접촉, 조작등 ) 을하면서인간의명령과감정을이해하고, 이에따라반응하고자신의감성을표현할수있는인간지향적로봇 - 환경의인식, 정보의획득, 지능적판단, 자율적인행동등의인공지능기술을이용하여정보통신기술을바탕으로인간에게다양한형태의서비스를제공하는로봇 - 인간과현실공간을공유하고상호작용하면서인간기능을수행하는기술융합 (Fusion) 시스템으로, 환경정보를자율적으로처리하면서사회경제적역할을수행하는로봇또한지능형서비스로봇산업을위한 URC (Ubiquitous Robotic Companion) 로봇을정의하였는데 언제어디서나나와함께하며나에게필요한서비스를제공하는로봇 으로서기존로봇개념에네트워크를부가한개념을도입함으로써다양한고도의기능이나서비스제공을목적으로하고있다. 그리고이동성 (Mobility) 과인간과의상호인터페이스가향상된로봇을의미한다. 따라서 URC의범위에는, 네트워크인프라에연결되어있고 Intelligence를갖추고있어야하되 Mobility 측면에서기구적이동 (Hardware mobility) 뿐아니라 Software 전이 (Software Mobility) 까지도포함하는것을고려하고있다. 따라서, 로봇과네트워크가결합된 URC는각각이지니는제약성을극복, 로봇산업의성장을도모할수있는새로운가 네트워크로봇을위한임베디드시스템운영체제 53
능성을제시할것으로기대하고있다. 이상에서살펴본바와같이지능형서비스로봇은기존의산업용로봇과는기술적요구사항이많이다름을알수있다. 가장중요한기능상의차이는소프트웨어전이가이루어지고네트워크결합에의하여지능적인서비스를제공한다는점이다. 따라서본논문에서는이와같은관점에서필요한기능인임베디드시스템에서소프트웨어의특징을먼저관찰한다. 그런다음에임베디드소프트웨어에서가장중요한역할을수행하고있는임베디드운영체제의특징과시장동향그리고기술동향을파악한다. 또한제어장치로서활용을위한실시간운영체제의특징도살펴보는데최근에많은관심을받고있는실시간임베디드리눅스에대한기술동향과특징에대하여서도살펴보기로하겠다. 마지막으로본논문을통하여실제로봇에사용되고있는임베디드운영체제의적용사례를고찰함으로써네트워크로봇에서임베디드운영체제의의미와역할에대하여기술하도록하겠다. 2. 임베디드시스템및실시간시스템 2.1 시스템정의에의한비교일반적으로시스템이라함은 [ 그림 1] 과같이알려지지아니한블랙박스로들어가는입력의조합과밖으로나오는출력의조합으로구성되어있는것을말한다. 즉, 입력의조합과출력의조합이존재하며, 알려지지않은시스템에대하여입력과출력의형태로써시스템을모델링함으로써대상을제어하게된다. 입출 System 력력 [ 그림 1] 시스템정의그러면먼저임베디드시스템과실시간시스템의정의를구분하여보자. [ 그림 1] 과같은시스템에서입력이인가되어시스템에서반응을거쳐서관련된 출력이나오는데걸리는시간을응답시간이라고한다. 이러한응답시간을가지고시스템에관련된정의를하는것이바로실시간시스템이라는용어이다. 실시간시스템은응답의정확도와신뢰성, 그리고지정된시간안에필요한작업을수행하여야하는시스템이다. 즉, 어떠한제어응답이시간을초과한후에는아무런의미가없는미사일제어장치나비행기의항법장치등을예로들수있다. 실시간운영체제는이러한실시간시스템을위하여시간을제어하는소프트웨어가포함된운영체제를의미한다. 그러나대부분의임베디드시스템에서이와같은실시간적인요소를필요로하는것은아니다 [3]. 실시간시스템은시간이시스템에미치는영향을가지고 Hard Real-time System 과 Soft Real-time System 으로구분지을수있다. 앞서언급한실시간시스템과같은전통적인제어장치들이나군사용장비들은 Hard Real-time System 에속하며, 휴대폰, PDA 등과같은정보화기기와정보가전등에사용되는임베디드시스템은 Soft Real- time System 에속한다. 이는원하는응답시간에만족하지못하더라도치명적인결함을가져오지않는시스템을의미한다. 따라서이러한두가지시스템에서사용되어지는운영체제와응용프로그램역시그특징을달리하고있기때문에, 개발자는시스템의특징과목적에따라시스템을개발하여야한다. 그러면임베디드시스템 (Embedded System) 이란무엇인가. 보통내장형시스템이란용어로도사용되고있으며, 정의를보면 those used to control specialized hardware in which the computer system is installed 로되어있다. 즉, 특별한목적으로설계된하드웨어를제어하기위한시스템으로그내부에컴퓨터가내장된시스템으로특별히시간에대한언급이없다. 다시말하면임베디드시스템이란용어는시간과무관한사용목적에따른용어임을알수있다. 특별한하드웨어를제어하는시스템으로, 다른시스템에의존하지않고내부에마이크로프로세서가있어특정작업과기능만을수행하도록설계되어있는시스템을의미하는 54 로봇과인간제 1 권제 1 호
용어이다. 2.2 임베디드시스템발전방향컴퓨터하드웨어는 3년에 4배의속도로그집적도가증가한다는무어의법칙에따라발전하고있다. 이러한결과로매우집적화된소형의마이크로프로세서가예전의중형컴퓨터의역할을수행할수있게되었다. 따라서집적화된마이크로프로세서를이용하여간단하고, 제한된기능만을수행하는것은기능의낭비를의미하게되었고사용자는점점더복잡한고도의기능을요구하게되었다. 이러한기술적, 사용자환경의변화에따라과거의임베디드시스템들이제한된임무만을전문적으로수행하는것이대부분이었다고한다면, 최근의임베디드시스템들은제한된임무를보다효율적이고유연성있는기능들을가질수있도록설계되고있다. 이러한유연성은내부소프트웨어를갱신하고데이터를저장할수있도록함으로써가능하다. 예를들어휴대폰의경우, 단순전화의기능을넘어서서사용자의개인정보를입력한다든지, 일정관리, 인터넷이용등이동형컴퓨터 (Mobile Computer) 의수준으로발전하고있다. 따라서기술이발전함에따라임베디드시스템도전문성과범용성이결합된다양한기능을수행하는제어장치로변화하고있다고생각할수있겠다. 초기의임베디드시스템은그구성이매우단순하였다. 16bit 이하의마이크로프로세서가일반화되고어셈블리언어를이용하여순차적으로동작하는응용소프트웨어정도의사용만으로도훌륭히여러가지제품에적용될수있었다. 그러나하드웨어의고집적화와저가화그리고고객요구사항의증가는 32bit 이상의계산능력이강화된마이크로프로세서의사용을요구하고있다. 또한복잡한기능을구현하고빠른시장출시를위한제품개발시간의단축을위하여네트워킹기능과멀티태스킹기능등의지원을위해, 운영체제를기반으로하는임베디드시스템구성이일반화되었다. 이와같은고기능의하드웨어와운영 체제가가능하게된또다른이유는메모리의용량증가와가격하락을들수있다. 예전의임베디드시스템은운영체제를사용할경우구성가능한메모리의크기를고려하여사용가능한운영체제를선정하여야했으며, 메모리의증대에따른비용을감당하여야했다. 그러나최근의임베디드시스템은응용분야가다양해지고정보화기능의요구로인하여이와같은운영체제는필수로사용하게되었다. 최근조사에의하면 60% 정도의임베디드시스템이이러한운영체제를기반으로하고있는것으로밝혀졌다. 결론적으로임베디드시스템은정보화시대에서모바일컴퓨팅을위한기본기술이되고있으며, 현대사회에서는산업제어장치로부터네트워크장비에이르는모든분야에서활용되는범용화된기술이되고있다. 또한임베디드시스템개발에서하드웨어에의존적인소프트웨어의개발의비중이점점감소하고있다. 이러한이유중의하나는사용가능한운영체제의일반화를들수있다. 즉, 예전의개발자는개발하고자하는임베디드시스템의마이크로프로세서에관련된모든하드웨어프로그램기술을습득하고레지스터프로그램을직접구현하였으나, 이제는적합한운영체제를포팅함으로써하드웨어관련된제품개발보다는자신만의응용프로그램의개발에집중하여제품의부가가치를증대하는곳에더많은비중을두게되었다 [3]. 2.3 임베디드시스템적용분야임베디드시스템의응용분야는엘리베이터시스템과교통관제시스템과같은교통분야, 의료장비와공장제어등의산업분야, TV, 냉장고, 세탁기, 전자레인지같은가전제품분야뿐아니라휴대용전화기, PDA, 네트워크장비등과같이정보산업영역, 더나아가자동차, 우주항공, 군사분야에이르기까지실로방대하다. 또한점차적으로정보화, 디지털화, 네트워크화사회가됨에따라우리생활과밀접하게연관되어있다. 네트워크로봇을위한임베디드시스템운영체제 55
본논문에서주제로삶고있는지능형서비스로봇분야도임베디드시스템을이용한기술집약형제품이다. 즉, 인간을닮은휴마노이드로봇, 가정의가사를대신하는청소로봇, 장애인을보조하고윤락한생활을위한장애인보조로봇등이임베디드시스템을기본으로하여개발되고있다. 또한서론에서언급한 URC 로봇의경우를살펴보자. URC 로봇은 IT 기반지능형서비스로봇으로서인간과상호작용을통하여인간의명령및감정을이해하고반응하며정보통신기술을바탕으로인간에게다양한서비스를제공하는로봇이다. 이러한로봇의기능을만족하기위하여서는인간과같이다수의임베디드시스템이유기적인협업을하며, 네트워킹된다른정보화수단과통신을통하여서비스를제공받음으로써가능하다. 따라서지능형서비스로봇개발에있어서가장중요한기술중의하나는마이크로프로세서를이용하고인공지능등의알고리즘을내장한임베디드시스템기술이다. 결론적으로임베디드시스템은유비쿼터스컴퓨팅시대의핵심솔루션으로서 Gartner 그룹에서도 21세기 IT 기술의핵심은임베디드시스템임을지적하고있다. 또한 Mark Weiser의 21세기의컴퓨터 에서도유비쿼터스기술을다음과같이정의하고있다. The most profound technologies are those that disappear. They weave themselves into the fabric of every life until they are indistinguishable from it. 이러한정의에서도임베디드시스템이유비쿼터스컴퓨팅시대에핵심기술로활용되고있음을알수있다. 3. 임베디드시스템소프트웨어임베디드소프트웨어는지능형서비스로봇, Post PC 등다양한임베디드시스템에내장되어제어, 멀티미디어, 인터넷, 게임, 인공지능등다양한기능을제공해주는핵심소프트웨어로응용프로그램을동작시키기위한운영체제, 미들웨어, 응용소프트웨어와소프트웨어개발도구등으로구성된다 [4]. 임베디드소프트웨어는모든장치에내장되어동작하여야하므로크기가작고, 실시간지원과고신뢰성을제공하며, 통신및멀티미디어처리기능이지원되어야하는특성을갖고있다. 그리고임베디드소프트웨어는그자체로도상품의가치를갖지만, 중간재성격이더강한원천소프트웨어로최종제품의부가가치를극대화시키는역할을하는소프트웨어이다. 따라서미국, 유럽, 일본등선진국에서는미래정보통신산업의가장중요한핵심기술로규정하고범국가적인차원에서군사, 통신, 항공우주, 정보기기등핵심분야의임베디드소프트웨어개발에대규모투자를하고있으며, 국내정부에서도 임베디드 SW 기술센터 를설립하고임베디드소프트웨어산업협의회를발족하였으며, Embedded Everywhere 국가구현 " 이라는목표를가지고 2007년에는임베디드소프트웨어생산 12조 9,000억원, 수출 47억달러목표를달성하여세계임베디드소프트웨어시장의약 6.7% 를점유할계획을가지고있다 [5,6]. 임베디드시스템소프트웨어는특징상일반소프트웨어와는다른요구를가지고있는데특히아래와같은기능을필요로한다 [4,7]. - 실시간처리지원 : 임베디드소프트웨어가실행되는시스템의용도에따라실시간처리가지원되지않으면큰손실이나위험을초래할수있는비행제어시스템및항법시스템등에서실시간처리를지원하여야함 - 고신뢰성 : 원자력발전, 항공기및미사일제어등과같은소프트웨어의오동작등으로심각한결과를초래할수있는임베디드시스템에서는고도의신뢰성이요구됨 - 최적화기술지원 : 임베디드시스템은크기, 가격및발열등을이유로제한된하드웨어자원으로구성됨에따라임베디드소프트웨어는경량화, 저전력지원, 자원의효율적관리등의하드웨어에최적화하는기술을지원하여야함 - 특정시스템전용 : 범용데스크톱또는서버에서실행되는패키지소프트웨어와달리특정시스템 56 로봇과인간제 1 권제 1 호
에서의실행을목적으로개발됨 - 네트워크및멀티미디어처리기능지원 : 임베디드시스템들이단독형시스템뿐만아니라유무선네트워크를통해연결될수있어야하고, 멀티미디어정보를처리하는기술이필요한디지털 TV, PDA 및스마트폰등과같은임베디드시스템을지원해야함 - 다양한솔루션과개발도구필요 : 다양한기종과규격의마이크로프로세서에최적화된별도의솔루션이동시에제공되어야하며, 고난도의임베디드 S/W 애플리케이션을빠르고안정되게개발하기위해사용하기쉬운개발도구가필요함 - 하드웨어결합기술필요 : 탑재될임베디드시스템의기능에따라소프트웨어의기능이결정되며임베디드소프트웨어의개발은풍부한하드웨어지식과시스템소프트웨어개발경험을요구함이상과같은복잡한요구사항을만족하기위하여개발자가필요한기능을모두구현한다는것은기술의발전속도나필요기술의난이도면에서도불가능하게된다. 따라서많은개발자들은임베디드시스템운영체제를이용하여이와같은복잡한기능을만족하는임베디드시스템을구현하고자하는것이다. 4. 임베디드시스템운영체제 4.1 특징임베디드시스템소프트웨어에서보듯이임베디드운영체제는타겟인하드웨어에실장되어동작하는소프트웨어로서대부분의시스템에사용되는기반소프트웨어이다. 그러면운영체제가왜기반소프트웨어가되었을까. 응용제품을분석하여보았듯이임베디드시스템이소형의마이크로프로세서를이용한기기의수준에서이제는정보화시대의첨병으로서예전에대형컴퓨터에서조차수행하지못했던여러가지복잡한일들을수행하고있다. 이와같이프로그램이복잡화되고서비스가다양화됨에따라프로그램을보 다효율적으로관리하는운영체제가필요하게되었다. 또한범용의운영체제를이용함으로써확장성과빠른개발속도를보장할수있기때문에최근에는대부분의시스템개발에임베디드운영체제가사용되어진다. 임베디드시스템운영체제의또다른관점은임베디드시스템개발에필요한도구로써의소프트웨어로인식하는것이다. 예를들어정보통신시대의주역인휴대용정보단말기경우여러가지응용프로그램을갖고있으며응용범위가확장되어단순기능에서만족하지못하고보다많은응용프로그램및네트워크프로토콜등이필요하게된다. 이러한모든기능이나제한된메모리의관리등의제품에직접적인응용프로그램이아닌부분에개발력과시간을소비하여서는시장에서의제품선점을위한시기를놓치는경우가발생한다. 따라서보다적시에임베디드시스템을개발하기위한기반기술로써운영체제가사용되고있다. 무어의법칙에의하여고기능화와저가격화를동시에수행하고있는하드웨어의발전기술이운영체제의사용을요구하고있다. 즉, 하드웨어가발전함에따라소프트웨어의복잡성이증대하고이에적절히대응하기위하여서는운영체제의사용이요구되는것이다. 일반적으로임베디드시스템에사용되어지는운영체제를임베디드운영체제라고한다면그특징을다음과같이정의할수있다. - 범용운영체제에비해비교적작은크기 - 컴포넌트방식의구성으로타겟시스템에따라손쉽게구성을달리할수있는컴포넌트기반운영체제 - 빠른부팅, 저전력지원, 비디스크방식의운용 - 다양한또는저가의프로세서에대한지원 - 간결한구조에의한빠른응답 - 메모리기반의파일또는데이터베이스시스템 4.2 실시간운영체제실시간운영체제는임베디드시스템에서하드웨어 네트워크로봇을위한임베디드시스템운영체제 57
구동에서부터실시간성을보장하면서응용프로그램과의연동을지원하며, 특히상용화된제품의경우개발환경을통합하여지원하여, 최근의임베디드시스템에서는필수적인임베디드소프트웨어이다. 또한임베디드소프트웨어시장에서가장중요한부분을차지하고있다. 그림은 Gartner 시장조사로임베디드소프트웨어시장에서 RTOS(33%), IDE(16%), Design Tool(16%) 의시장분포를나타내고있다. - Real-time (software) (IEEE 610.12-1990) Pertaining a system or mode of operation in which computation is performed during the actual time that an external process occurs, in order that the computation results may be used to control, monitor, or respond in a timely manner to the external process - Martin Timmerman A real-time system responds in a (timely) predictable way to unpredictable external stimuli arrivals [ 그림 2] 임베디드소프트웨어시장실시간운영체제는실시간시스템을이루기위한 good building block 으로결국은실시간시스템의특징을이해하여야하겠다. 따라서본논문에서간단히정의를소개하도록한다 [8]. - DIN44300 The Real-time operating mode is the operating mode of a computer system in which the programs for the processing of data arriving from the outside are permanently ready, so that their results will be available within predetermined periods of time - Koymans, Kuiper, Zijlstra A Real-Time System is an interactional System that maintains an on-going relationship with an asynchronous environment, i.e. an environment that progresses irrespective of the RTS, in an uncooperative manner 이상의정의에서보듯이실시간시스템은시스템의계산이논리적으로정확하여함은물론이고주어진시간내에결과가나와야하는시스템으로현재네트워크형로봇의경우에도많은경우에이와같은요구사항을가지고있다. 따라서이와같은실시간시스템을구현함에있어서실시간운영체제는필수적이며그기능의이해또한네트워크로봇을구현함에있어필수적이다. 실시간시스템운영체제는실시간시스템구성을위하여타스크관리, 인터럽트서비스, 타스크간통신및동기화, 그리고메모리관리등에서기존의운영체제와는다른특징을갖는다 [4, 9, 10]. 4.2.1 Task management 및 scheduling 타스크 ( 프로세스또는쓰레드 ) 관리는운영체제의주요한임무이다. 실시간운영체제와같이다중타스크가동시에활성화될때운영체제는가용한자원을타스크간에분배를하여야하는데, 타스크간에 CPU 를어떻게분배하는가하는문제가스케쥴링이다. 따라서, 스케쥴링알고리즘은간단성과최적성에서선택이이루어지며, 실시간운영체제는보통간단한스케쥴링알고리즘을선호하는데고정우선순위스케쥴링, 최근접데드라인 (Earliest Deadline First), 및 Rate-monotonic Scheduling 을사용하고있다. 멀티태스킹에대한지원은프로세스기반과태스크기반으로나뉘며프로세스기반에서각프로세스는 58 로봇과인간제 1 권제 1 호
서로다른주소공간에서실행되므로안정적이지만크기가커서시스템자원을많이사용하는단점이있고태스크기반에서는한시스템안에있는모든태스크들이같은주소공간에서실행되므로서로나쁜영향을미칠수있지만태스크의크기가작아서시스템자원이적어도되는장점이있다. 마켓리더인 VxWorks의경우태스크기반멀티태스킹을지원하고임베디드리눅스계열의운영체제와 WinCE 와같은경우는프로세스기반멀티태스킹을지원하는게보통이나, VxWorks 도별도의패키지를설치하면프로세스기반멀티태스킹을지원하고임베디드리눅스나 WinCE 는쓰레드를지원함으로써서로의장점을흡수하고있다. 실시간스케줄링과함께실시간서비스의보장성과예측성을높이려면실시간동기화메카니즘, 실시간자원관리등의기술이동반되어야하며이러한멀티태스킹하에시간조건에의한실시간스케줄링기술, 실시간동기화기술, 실시간자원관리기술등을실시간멀티태스킹지원기술이라한다. 4.2.2 인터럽트서비스운영체제는예측가능하고최대지연시간이보장되는타스크의스케줄과함께타이머, 모터, 센서, 통신장치, 디스크등주변하드웨어의서비스를보장하여야한다. 따사서비동기적요구를운영체제가서비스를지원하여야하며대부분의경우인터럽트로처리되고있다. - 하드웨어인터럽트운영체제에게필요한서비스요청을위하여주변기기에서프로세서에게인터럽트를요구하며, 운영체제의간여없이초기에정해진방식에따라서작업을처리하는인터럽트처리방식이다. - 소프트웨어인터럽트하드웨어인터럽트의효과를소프트웨어적으로처리하는명령어로프로세서에게미리정해진주소로이동하여원하는처리를수행하게지시하는방식이다. 4.2.3 통신및동기화운영체제의세번째중요한임무는 IPC(Inter-Process Communication) 로서타스크간의정보를주고받고, 타스크간의행위를동기화하기위하여운영체제에서제공되는서비스를총칭하고있다. 이와같은통신및동기화메커니즘은다양하게존재하여야하며, 특히모든메커니즘은예측가능한시스템응답시간을보장하여야한다. 이러한요구가만족되지아니하면, 앞선실시간시스템의정의에의한예측가능한응답이불가능해지며, 실시간성이파괴될가능성이존재한다. 따라서, 운영체제는 IPC 서비스에대하여예측가능하고주어진시간 (Deterministic Way) 내에처리가가능하여야한다. 4.2.4 메모리관리메모리관리는운영체제에서네번째로중요한임무이며, MMU(Memory Management Unit) 가없는경우가상메모리 (Virtual Memory, VM) 지원이없으므로, 자원의관리및태스크들간혹은커널과사용자간의메모리영역보호 (Protection) 기능이중요하다. 임베디드메모리관리기술은이러한다양한메모리관련요구에대해최적의관리환경을지원하는기술이며, 운영체제의아키텍처구조에따라서커널영역과사용자영역에서메모리관리기술이필요하게된다. 운영체제는타스크가요구하는메모리의할당 (Memory Allocation), 각타스크가사용하는공간과실제메모리의주소공간연결 (Memory Mapping), 그리고타스크가부적절한메모리공간의접근시의처리및보호 (Memory protection) 가필요하다 [11]. 5. 임베디드시스템개발자동향 5.1 운영체제선정기준앞서임베디드시스템운영체제가복잡한하드웨어의효과적관리, 이미개발된라이브러리와드라이버 네트워크로봇을위한임베디드시스템운영체제 59
등을이용한빠른개발, 새로운기술의수용및실시간시스템의기능구현과같은목적에반드시필요하다는점을지적하였다. 그럼에도불구하고개발자들은아직도임베디드운영체제의사용에거부감을보이는이유는무엇일까. 일본에서는 1984년이후 TRON(The Real-time Operating system Nucleus) 협회를통해미래사회건설실현에필요한모든임베디드소프트웨어, 도구, 응용기기및생활환경을구성하는임베디드시스템의표준화를수행하여동경에 TRON 인텔리전트도시건설을위한주택파일럿하우스를개관하고인간중심의생활공간모델제시하고있다 [12]. 이협회에서개발자들에대한실시간운영체제사용의어려운점을조사하였는데 [ 그림 3] 과같이기술자부족과개발환경및도구부족이주요한요인으로지적되고있다. 이와같은문제는현재시점에서도동일한요인으로작용하고있다. 개발자에게필요한자료의풍부함등이실시간성과같은기술적인성능에우선함을알수있다. 이와같은이유는앞선 [ 그림 3] 의결과와같은이유이다. 즉아직까지실시간운영체제와같은임베디드운영체제는많은개발자에게생소한기술이며, 접근하기에어려운기술이다. 따라서개발의용이성을가장중요한선정기준으로생각하고있는것이다. [ 그림 4] 운영체제선정기준 그러면국내개발자들은어떠한선정기준을가지고임베디드운영체제를사용하는지조사한결과를 [ 그림 5] 에나타내었다 [14]. [ 그림 3] 실시간운영체제사용상의문제점 그러면개발자들입장에서운영체제선정기준은무엇일까. 미주의개발자들의동향그리고국내개발자들의동향을비교해보기로하자. 먼저 [ 그림 4] 는임베디드리눅스포탈사이트에서조사된운영체제선정기준이다 [13]. 그림에서보듯이미주의개발자들은운영체제를선정함에있어서개발의용이성이라는측면을가장중요시하고있다. 즉개발도구와디바이스드라이버및 [ 그림 5] 운영체제선정기준개발자는선정기준으로개발의용이성을들고있으며, 이는운영체제가 Good Building Block으로활용되고있음을보이고있다. 따라서임베디드운영체제는이제임베디드시스템개발에있어서최소한의도 60 로봇과인간제 1 권제 1 호
구로써인식되고있는것이다. 이상과같은개발자들의선정기준과함께논리적인판단기준이필요한데 Greg Hawley가 1999년에임베디드시스템즈프로그래밍 (www.embedded.com) 잡지에기고한실시간운영체계체크리스트로서보고서에논의된기술적인배경과함께이러한리스트를이용함으로써효율적으로임베디드운영체계의선정을수행할수있는가이드를소개하도록한다 [15]. - 언어및마이크로프로세서지원여부 : 개발과제에서어떤운영체계를사용할것인가의첫번째과정은사용하고자하는언어와마이크로프로세서를지원하는가의여부 - 도구호환성 : 운영체계를선정할경우사용하고자하는운영체계와현재구현되고또는구매하고자하는도구와호환성인데 ICE (In-Circuit Emulator), 교차개발을위한컴파일러, 어셈블러링커와소스레벨의디버거와의호환성 - 서비스 : 운영체계의메모리관리, 프로세스관리, 파일관리등의기본적인기능이외에도여러가지서비스를제공하며, 운영체계가개발단계에서사용하고자하는메커니즘 ( 큐, 타이머, 세마포어등 ) 을얼마나지원하고있는가하는점 - 메모리풋프린트 : 임베디드운영체계는제한된자원에서동작함으로메모리풋프린트가매우중요하다. 통상적으로스케일러블한구조를가지고있어야하며필요한서비스외에는구성에서제외가능한구조를가져야하며, 또한메모리의구성에따른실장이자유로워야한다. 즉 RAM 및 ROM으로실장가능하여운영체계의역할을수행 - 성능 : 선택한운영체계가개발하고자하는시스템의성능을만족하는가하는점이며, 여러운영체계의벤치마킹과함께하드웨어의구성에서도고려되어야함 - 소프트웨어구성 : 원하는소프트웨어서비스가제공되는여부인데, 프로토콜스택이나, 통신서비스또는실시간데이터베이스, 그리고웹서버, 가상메모리구조, 그래픽지원여부등이중요한기준 이됨. 또한이러한기능을사용하는데어떠한비용및기간이필요한가도중요한기준이됨 - 디바이스드라이버 : 개발하는시스템에통상적인하드웨어구성이외의것이사용될경우디바이스드라이버의지원여부를체크 - 디버깅도구 : 최근의운영체계는통합개발환경을가지고있는데개발하는환경을지원하는소스레벨의디버거의지원여부 - 표준화호환성 : 응용프로그램이요구하는표준화를만족하고신뢰도를만족하는가여부 - 기술지원 : 통상적인기술지원은구매시의무상과유상으로구분되며또한기술적인지원의기술적심화도가중요한개발과정의도구가되는데, 교육및현장지원여부도고려대상임 - 소스제공여부 : 원하는개발과제에따라소스지원여부를체크하여야함 - 라이선싱비용 : 사용하는운영체계와관련된비용을체크하여야함즉개발과정을위한개발플랫폼라이선스와별도로실장된하드웨어마다에런타임라이선싱비용을요구하는운영체계가있음 - 명성 : 충분히현장검증된명성을가진운영체계인가하는점 - 서비스 : 운영체계가개발자에게필요한도구를제공하여야함. 즉 API가충분하여다양한형태의세마포어지원, 타이머, 메일박스, 큐, 버퍼관리자, 메모리관리자, 이벤트및그외의여러가지 ITC(Inter-Task Communication) 등다양한서비스를제공하여야함 5.2 운영체제선호도개발자들의운영체제선정기준과논리적관점에서의체크리스트를앞장에서살펴보았는데개발자들의현재운영체제사용현황및선호도에대한동향을살펴보기로하자. 그림은최근에조사된국내임베디드운영체제사 네트워크로봇을위한임베디드시스템운영체제 61
용실태이다. 국내개발자들은임베디드리눅스를가장선호하며, 상용화된제품으로는 Windows CE와 VxWorks를가장많이사용하고있는것으로조사되었다. 또한 74% 의개발자가운영체제가안정적이고경쟁력이있다면국내에서개발된운영체제를사용할용의가있음을밝히고있다. 따라서국내에서도일본과같은유비쿼터스컴퓨팅시대에적합한운영체제의개발과사용영역별도세분화된임베디드운영체제의개발과정책적확산이필요한시점이다. [ 그림 6] 국내임베디드운영체제사용실태또한미주개발자의경우도임베디드운영체제를산업용제어장치, 정보기기, 네트워크장비에사용하고있으며, 향후 24개월내의제품개발에서사용예정인운영체제로 Linux를선호하고있다고한다 [13]. 서가장많은사용자를확보하고있는 VxWorks 그리고윈도우의개발자를임베디드환경으로끌어들인 Windows CE로대표되는임베디드윈도우제품군이다. 이상과같은결과를통하여 6장에서는실시간임베디드리눅스의특징과함께실시간운영체제의특징을살펴보기로하겠다. 6. 실시간임베디드리눅스일반적인임베디드리눅스와관련된기술자료는많은곳에서출간이되었기때문에본논문에서는실시간임베디드리눅스를중심으로주요한이슈를설명하도록하겠다. 일반적으로현재상용화된리눅스를이용하여임베디드시스템으로포팅된임베디드리눅스를이용하는경우실시간성능을보장하기위하여서는다음과같은문제점이존재한다 [16-18]. - 매우긴블록킹시간 - 비선점형리눅스커널의이벤트구조 - 소모적이고배분적인스케쥴링방법이와같은문제를해결하기위하여실시간임베디드리눅스를구현하는방법은일반적으로두가지접근방법으로진행되고있다. - 리눅스커널의선점성 (Linux Kernel Preemption) 을개선하는방법 - 두개의커널접근방법 (Dual Kernel Approach) 6.1 Dual Kernel 접근방법 [ 그림 7] 향후사용할운영체제이상과같은동향분석을통하여볼때현재임베디드운영체제는크게보아서세가지주류를이루고있다. 오픈소스를지향하는리눅스를임베디드시스템에적용하는임베디드리눅스, 실시간운영체제에 그림은두개의커널접근방법을나타낸다. 새로운 Real-Time Micro Kernel이존재하고이위에실시간타스크와표준리눅스커널이존재하고있다. 즉표준리눅스커널은가장낮은우선순위를갖는타스크로사용되어진다. 이와같은접근방법을가진대표적인실시간임베디드리눅스는 RTLinux이며, RTLinux 의단점과다양한서비스를보강하여오픈프로젝트형태로진행되는 RTAI가있다. 62 로봇과인간제 1 권제 1 호
그리고같은구조에서는실시간타스크의수행후에리눅스커널에서동작하는리눅스프로세스가실행되어진다. 이와같은실시간임베디드리눅스의장점을정리하여보면다음과같다. 방법을채택하고있다. 이와같은이유는현재실시간임베디드리눅스업체가대부분기존의실시간운영체제업체였다는점에서어찌보면당연한결과일지도모른다. 그림은선점형리눅스커널을이용하여완전선점형의실시간임베디드리눅스를구현한구조를나타낸다. [ 그림 8] Dual Kernel 구조 - 매우낮은인터럽트레이턴시및컨텍스트스위칭시간 (5-10 msecs) - 표준리눅스커널이마이크로커널에의하여가장낮은우선순위의타스크로동작 - 인터럽트와하드웨어추상영역이존재 - 안정적이며, 예측가능한스케쥴링 (Deterministic Scheduling) 이에반하여단점도존재하는데다음과같은단점이존재한다. - 모든실시간성이커널모드에서구현되어야함 - 실시간응용프로그램개발방법의어려움 - 리눅스커널과디바이스드라이버의상호동작에대한지식이필요 - 메모리보호가안됨 - 실시간응용프로그램에의하여커널손상이가능함 - 디버깅이어려우며개발도구가부족함 - 표준리눅스시스템함수는선점형이아니며예측불가능함 6.2 선점성개선방법대부분의상용화된실시간임베디드리눅스가이 [ 그림 9] 선점형리눅스커널그림과같은구조에서는응용프로그램이사용자영역에존재하기때문에다음과같은많은장점이존재한다. - 실시간응용프로그램개발이용이함 - 메모리보호가가능함 - 시간응용프로그램에의한커널손상이불가능함 - TCP/IP, file I/O, X-Windows와같은모든시스템함수사용이가능함 - 실시간함수에대하여 POSIX pthread 구현이가능함 - 디버깅을위한도구가존재함 - 마이크로초와같은낮은레이턴시요구에는부적합함그러나장점과달리리눅스커널의선점성을개선함에따라여러가지문제점을내포하게되는데주요한단점은다음과같다. - 최악의경우에대한인터럽트지연시간이알려져있지않음 - 커널에대한소스코드변경이이루어짐 - 새로운커널이발표될때마다매우심도깊은테 네트워크로봇을위한임베디드시스템운영체제 63
스트가필요함 - 선점형분석이모든디바이스드라이버와커널모드에대하여필요함 - 전체적성능이저감됨이상과같이실시간임베디드리눅스는상용화된운영체제와오픈소스프로젝트에의하여운영되는운영체제로구별되는데주요한기능을도표와같이정리할수있다. 각항목별성능지수는참고문헌을참조하기바란다 [16]. 지원하여동시에하나이상의작업이가능하게하며, 응용프로그램은우선순위와자신의스택을가지고있는타스크의조합으로이루어지게하는것이다. 또한응용프로그램의개발에필요한시간지연 (Time delays), 세마포어 (Semaphore), 타스크통신및동기 (Intertask Communication and Synchronization) 등의서비스를제공하는것이다. 7.1 선점성 (Preemption) [ 표 1] 실시간리눅스비교표현재실시간임베디드리눅스와관련한오픈소스프로젝트는다양하게존재하며, 개발자가원하는하드웨어도포팅되었는가하는점과앞선운영체제에선정기준에서언급한기준들을만족하고있는가하는점이실제개발시사용가능한가하는데대한해답이될것이다. 7. 실시간운영체제개요본논문에서사용한실시간시스템개념을조금더이해하기위하여실시간운영체제의주요한개념을소개하도록한다. 실시간운영체제란마이크로프로세서의시간을관리하는소프트웨어로서가장중요한코드가가장먼저동작하게지원하는것이다. 또한다중타스크를 일반적으로실시간운영체제는 CPU에실행되는타스크와실행준비가이루어진타스크간의실행방법에따라선점성커널과비선점성커널로구분이가능한다 [9]. 일반적으로비선점성커널은다음과같은특징을갖는것이다. - 각타스크가 CPU를해제하여야함 - 낮은인터럽트지연 (Latency) - 인터럽트서비스루틴 (ISR) 은항상인터럽트가걸렸던타스크로리턴함 - 서비스시간이비결정적 (Non-deterministic) 으로예측불가능함이에반하여선점성커널은타스크가 CPU를해제하지않더라도다음과같은특징을갖는것이다. - 가장높은우선순위의타스크가 CPU를점유함 - 인터럽트서비스루틴은리턴시가장우선순위가높은타스크로리턴함 - 실시간이벤트에잘적응함 - 서비스가결정적이어서예측가능함 - 비교적긴인터럽트지연이발생함 - 사용하기가복잡함이상과같은비교에서보듯이최근에실시간운영제는대부분선정성커널의특징을가지며선점성에대한타스크실행예를 [ 그림 10] 에나타내었다. 그림과같이더높은우선순위의타스크가실행가능한상태에도달하면낮은우선순위의타스크는실행순서가뒤로밀리게된다. 따라서개발자는원하 64 로봇과인간제 1 권제 1 호
는작업의실시간성을보장할수있는것이다. [ 그림 10] 선점형커널의타스크동작 7.2 타스크 (Task) 실시간운영체제에서의타스크는 CPU를혼자만사용한다고생각하는하나의프로그램이다. 따라서타스크는자신의스택 (stack) 을가지며중요성에따른우선순위를부여받으며, 구조는다음과같이무한루프의형태를가진다. - 새로운타스크의 TCB(Task Control Block) 으로부터스택주소를가져옴 - 더중요한타스크의컨텍스트를 CPU Registers로저장함이와같은컨텍스트스위치는어느순간에이루어지는가. 일반적으로다음과같은경우가타스크간의작업변경이이루어지는순간이다. - 타스크가더이상실행이불가능함경우 타이머가동작하기를기다리는시간 이벤트가발생하기를기다리는시간 메시지를기다리는시간 - 더높은우선순위의타스크가현재타스크나 ISR 에의하여실행가능한상태가된경우 7.4 스케쥴링 (scheduling) void Task(void *arg) { Do something with arg /* Optional */ while (1) { Do something useful; Invoke a service provided by the kernel; } } 7.3 컨텍스트스위치 (Context Switch) 이벤트에따라커널이타스크를스위칭하는것을컨텍스스위치라고한다. 일반적으로컨텍스트 (Context) 는타스크의현재상태로다음과같은것이다. - CPU 레지스터 - 실수연산레지스터 - 메모리관리레지스터 - 타스크가다시재가동되기위하여필요한정보컨텍스스위치에서는다음과같은작업이이루어진다. - 현재동작하는타스크의 CPU Registers의내용을스택에저장함 실행가능한더높은우선순위의타스크가있는가를결정하는것을스케쥴링이라한다. 스케쥴링이동작하는순간은일반적으로클럭틱에의하여동작하지만타스크의실행이지연된느시스템함수를호출하는다음과같은경우에동작한다. - 타스크가타이머가동작하기를기다리기로결정한때 - 타스크가메시지나시그널을다른타스크로보낼때 - ISR에서메시지나시그널을타스크로보낼때이와같은동작순간에스케쥴링이동작하면결과적으로실행가능한우선순위가더높은타스크가있는경우는컨텍스트스위치가이루어지며, 이터럽트의경우는인터럽트가걸렸던타스크나더높은타스크로되돌아간다. 7.5 타스크우선순위 (Task Priority) 실시간시스템을구현함에있어서타스크는주어진우선순위에의하여동작의선점성이이루어진다. 따라서타스크의작성과함께주요한작업이타스크에 네트워크로봇을위한임베디드시스템운영체제 65
우선순위를부여하는것이다. 그러나타스크의우선순위결정은그리단순하지는않으며, 작업의성격에맞추어결정하여야한다. 그러나한가지주요한사항은실시간시스템이라고하여도모든타스크가실시간을필요로하지않는다는점이다. 다음은타스크선정을위한일반적인기준이다. 다음과같은작업은통상낮은우선순위를갖는다. - 키보드스캐닝 - 오퍼레이터연결 - 디스플레이표시이에반하여다음과같은작업은높은우선순위를가지며실시간성이보장되어야한다. - 제어루프 - 통신 - 에러처리 - 아나로그, 디지털등 I/O 처리 7.5 우선순위역전 (Priority Inversion) 우선순위에기반한선점형커널에있어서낮은우선순위의타스크로인하여높은우선순위의타스크가실행되지못하는현상을우선순위역전이라고한다. 그림과같이높은우선순위의타스크가낮은우선순위의타스크가점유한세마포어획득을위하여지연되는동안중간우선순위의타스크가실행되어높은우선순위타스크의실행이지연된다. 이와같은현상은실시간성을보장하기위하여구현된시스템에서치명적인에러를가져오며, 많은상용실시간운영체제에서는우선순위역전을방지하는메카니즘을제공하며우선순위상속 (Priority Inheritance) 방법을사용하고있다. 우선순위상속이라함은낮은우선순위에타스크가높은우선순위의타스크의실행을세마포어등의이유로지연시킬경우낮은우선순위타스크는지연되는높은우선순위타스크의우선순위를상속하여높은우선순위타스크의실행지연을방지하는방법이다. 8. 로봇의임베디드운영체제적용사례로봇기능에있어서임베디드시스템의적용은기능의복잡성과지능화그리고분산화가이루어지면서자연스러운현상으로파악되고있다 [19]. [ 그림 12] 는 SBC를이용하고 Linux, Kernel Version 2.4.19를이용하여다양한통신방식을지원하는자율주행로봇 Smart Robots SR4(www.smartrobots.com) 이다. 또한우측의그림은 ActiveRobot사 (www.activrobots. com) 에서레이저를이용하여주행하며리눅스를운영체제로사용한간호보조용이동로봇 PatrolBot을나타내었다. Priority Inversion Task 1 (H) 1 2 3 4 5 6 Task 2 (M) Task 3 (L) [ 그림 12] 리눅스를이용한이동로봇 Task 3 Get Semaphore Task 3 Resumes Task 1 Preempts Task 3 Task 1 Tries to get Semaphore Task 3 Releases the Semaphore Task 2 Preempts Task 3 [ 그림 11] 우선순위역전 휴마노이드로봇에서도임베디드운영체제를이용한개발결과를나타내고있는데, 먼저실시간임베디드리눅스인 RTLinux를이용하여실시간서보를 66 로봇과인간제 1 권제 1 호
이용한보행시자세보정기능을갖춘 Isamu Humanoid Robot(www.jsk.t.u-tokyo.ac.jp) 을나타내었다. 그리고우측에는마찬가지로 RTLinux를이용하여후지쯔에서개발한휴마노이드로봇 HOAP-1을나타내었다. [ 그림 13] RTLinux 를이용한휴마노이드로봇실시간운영체제인 VxWorks를이용한예제는가장많이소개되는혼다의아시모 (asimo.honda.com) 이다. 또한우주탐사의신기원을이룩한 JPL/Pathfinder (www.jpl.nasa.gov) 이다. 두개의적용사례를 [ 그림 14] 에나타내었다. 발전으로유비쿼터스컴퓨팅시대에도래하고있음을지적하고있다. 본논문에서는언제어디서나컴퓨터와지능화된서비스를제공받을수있는네트워크로봇즉 URC를구축함에있어서임베디드운영체제의역할은무엇일까하는점에서기술하였다. 변화되는기술적요구사항과복잡화된자원의효율적관리그리고개발자들의신뢰성있는소프트웨어개발을위한체계화된개발환경의구축은모든임베디드시스템개발에있어서필수적인사항이다. 이와같은요구사항은마이크로프로세서를이용하여분산화된지능을요구하는네트워크로봇에있어서는더욱필요한기술이다. 로봇이산업현장에서조립을도와주던시대에서사람과친숙하게원하는서비스를제공하기위하여서는소프트웨어의지능화와함께이동성이보장되어야하며, 이와같은기능은하드웨어를체계적으로관리하고상위응용프로그램을연동하여주는운영체제의도움없이는개발이불가능하다. 따라서본논문에서는임베디드운영체제의동향과함께로봇에서요구되는실시간성과관련된개념적인주제를다루었으며, 많은개발자에게도움이되리라생각한다. 참고문헌 [ 그림 14] VxWorks 적용사례이외에도임베디드운영체제를로봇에적용한사례는많이소개되고있다 [13]. 9. 결론많은논문에서 21세기정보통신의발전과인터넷의 [1] 과학기술부 (1999) 2025 년을향한과학기술발전장기비전. [2] 정보통신부정보통신연구진흥원 (2003) 지능형서비스로봇기술개발전략보고서. [3] 최병욱 (2003) 임베디드리눅스실습및활용, 홍릉과학출판사. [4] ETRI (2002) 임베디드소프트웨어산업육성기획연구. [5] 정보통신정책연구원 (2003) Broadband IT Korea 정책의전개. [6] 민원기 (2003) 임베디드 S/W 산업육성정책방향. [7] 정보통신연구진흥원 (2002) 임베디드소프트웨어기술동향및산업발전전망. 네트워크로봇을위한임베디드시스템운영체제 67
[8] 최병욱 (2001) RTOS 개론, 삼성첨단연수소. [9] Jean J. Labrosse (2002) MicroC/OS-II, CMP Books. [10] Jane W.S. Liu (2000) Real-time Systems, Prentice Hall. [11] 다니엘보에이지음, 이호외번역 (2003) 리눅스커널의이해, 한빛미디어. [12] TRON project (2004) http://www.tron.org. [13] http://www.linuxdevices.com. [14] Real-Time Embedded World (2004) 국내 Embedded OS 활용실태. [15] 최병욱 (2004) 실시간운영체제선정기준, Real- Time Embedded World. [16] Tim Bird (2002) Comparing two approaches to realtime Linux, www.linuxdevices.com. [17] Ismael Ripoll (2002) RTLinux versus RTAI, www. linuxdevices.com. [18] Kevin Dankwardt (2002) Comparing real-time Linux alternatives, www.linuxdevices.com,. [19] 유범재 (2004) 지능형로봇을위한임베디드시스템고찰, Real-Time Embedded World. 최병욱 1986 한국항공대학교전자공학과 ( 공학사 ) 1988 한국과학기술원전기및전자공학과 ( 공학석사 ) 1992 한국과학기술원전기및전자공학과 ( 공학박사 ) 1992~2000 LG 산전연구소책임연구원 ( 엘리베이터연구실, 임베디드시스템연구팀 ) 2001~2003 임베디드웹대표이사 2000~ 현재선문대학교제어계측공학과부교수관심분야 : 임베디드시스템, 실시간시스템, 지능형로봇, 소프트웨어엔지니어링 68 로봇과인간제 1 권제 1 호