Windows 또는 macOS 등이 설치되어있는 PC를 사용하는 사람들 중에는, PC가 명령을 실행 중임을 나타내는 아이콘이 좀처럼 움직이지 않는다는 경험을 한 적이있는 사람도 있을 것. 가정에있는 일반 PC라면 사용자가 좌절하기만 하면 되지만, 우주에있는 인공위성의 경우는 한 순간도 처리가 늦어지면 행성에 추락 해 불덩어리가 되거나 궤도가 어긋나 우주의 저편에 날아가 버리기도한다.
그런 극한 상황에서 동작하는 실시간 운영체제(RTOS)에 대해, IT계 뉴스 사이트 Ars Technica가 알기쉽게 설명하고있다.
Ars Technica에 기사를 기고 한 과학 기술 라이터 인 Jacek Krywko 씨에 따르면, 우주에서 작동하는 인공 위성이나 우주 탐사선은 일반 PC의 OS와는 전혀 다른 계산 과정을 가진 RTOS가 탑재되어 있다는 것.
예를 들어, 일반적인 PC의 OS에 어떤 계산을 시킨 경우, OS는 계산을 수행하고 적절하게 처리가능 한 경우에, "작업이 제대로 수행되었다"라고 간주하고 처리하는데 걸린 시간을 걱정하지 않는다. 그러나 일각을 다투는 사태에 직면 할 수도있는 인공위성의 RTOS는, 엄격하게 지정된 시간 설정을 가지고있으며, 그 시간 내에 처리가 완료하지 못하면 작업을 실패로 간주한다.
왜냐하면, 우주에서 조금이라도 처리가 늦어지면 이미 너무 늦어버리는 경우가 적지않기 때문에, 언제까지나 같은 작업을 수행해도 의미가 없기 때문이다.
RTOS가 작업에 설정하는 시간은, 예를 들면 "센서에서 데이터를 업로드하는 데 3단위", "엔진을 시동하는데 4단위"라는 식으로 분할 된 단위로 표시되고, 각 작업에는 우선 순위가 붙여져 있다. 이러한 구조를 통해 소프트웨어 개발자는 상정 된 시나리오 중 어떤 작업이 실행되고, 거기에 얼마나 많은 시간이 걸리는지를 파악하고, 우주에서 작동하는 소프트웨어를 만들고있다.
Krywko 씨는, 실제로 우주 임무에 사용되는 RTOS로, 미국 항공 우주국(NASA)과 유럽 우주국(ESA)등의 우주 기관이 사용하고있는 RTOS를 3가지 소개하고있다.
■ 1.VxWorks
VxWorks는, 미국의 소프트웨어 업체 인 WinRiver가 개발 한 RTOS로, 1996년에 발사 된 화성 탐사선 마스 패스파인더와 2003년에 발사 된 화성 탐사선 로버 등에 채용되고있다.
이러한 우주 탐사선에 탑재 된 VxWorks의 작업은, 작업이 시작된 "준비 완료", 보다 우선 순위가 높은 작업을 수행하는 동안 "차단", 별도의 데이터의 도착을 기다리고있는 "지연 중", 어떤 이유로 정지중인 "일시 정지"라는 4가지 상태로 처리된다. 또한 VxWorks는 여러 작업을 동기화하거나 연동 시키거나하는 바이너리 세마포어와 작업이 독점적으로 자원을 사용할 수 있도록하는 뮤텍스라고하는 구조도 갖추고있다.
이 고유 한 사양을 바탕으로, VxWorks는 화성 미션 등 다양한 성과를 거두었지만, VxWorks가가진 "우선 순위가 역전된다"등의 문제는 종종 NASA의 지상 관제팀을 괴롭히고 있다고한다.
■ 2.RTEMS
WindRiver가 개발 한 VxWorks와 달리 RTEMS는 오픈 소스 프로젝트에 의해 개발 된 RTOS이다. RTEMS는, 원래는 미군이 우주 탐사선이 아니라 미사일을 제어하기 위해 개발을 시작한 소프트웨어였지만, 오류에 대한 책임이 불명확하다는 등 오픈 소스 특유의 문제나 미사일의 제어를 하려면 동작이 너무 느린 난점을 안고있었다.
그래서 미군은, 정부 주도의 개수에 따라, 다양한 프로세서 제품군에서 작동하는 빠른 시스템 인 Real-Time Executive for Missile Systems(RTEMS)를 개발했다. 이렇게 태어난 RTEMS는 그 후, 미사일 제어 이외의 폭넓은 분야에서 활약 할 수있다는 것을 발견하고, Real-Time Executive for Multiprocessor Systems (RTEMS)라고 이름을 바꿔 출시되었다.
RTEMS가 가진, "새로운 프로세서에 쉽게 이식 할 수있다", "고도로 사용자 정의"라는 특징에 주목 한 ESA는 유럽에서 여러 우주 임무에 RTEMS를 채용하고 있다는 것이다.
■ 3.SpaceChain OS
SpaceChain OS는 "Sylix OS"와 "블록 체인 기술"이라는 두 가지 주요 구성 요소로 구성된 RTOS이다. 중국에서 개발 된 Sylix OS는 RTEMS와 마찬가지로 미사일의 OS로 개발이 시작된 시스템으로, 안정적이고 낭비가 없기 때문에 보수가 용이하다는 특징을 가지고있다. Sylix OS가 얼마나 낭비가 없는가하면, Linux 커널에 비해 소스 코드의 행수가 5분의 1밖에 되지 않는다라는 것.
SpaceChain OS의 가장 큰 특징은, 두 번째 구성 요소 인 "블록 체인 기술"을 통해 크라우드 펀딩으로 자금을 조달 할 수있다는 점에 있다.
이에대해 Krywko 씨는 "SpaceChain OS"의 Sylix 부분은, RTEMS나 VxWorks와 마찬가지로 우주선의 하드웨어를 움직이는 역할을 하고있지만, 블록 체인 부분은 여러 이해 관계자가 우주선 자원을 공유하는 것이다. 이를 통해 기업과 개인이 SpaceChain OS를 탑재 한 인공위성에 투자 할 수 있으므로, 크라우드 펀딩에 의한 인공위성 발사도 실행 할 수 있습니다"라고 말한다.