운영 체제 | ||||||
{{{#!wiki style="word-break: keep-all; margin: -16px -11px" | UNIX | Linux | Windows | |||
DOS |
|
|||||
기타 |
RTOS ·
Fuchsia · |
}}} | ||||
취소선 처리된 배포판은 개발 중단된 배포판. |
1. 개요
실시간 운영 체제 또는 RTOS(real-time operating system)는 실시간 컴퓨팅[1]을 보장하는 운영체제를 말한다.RTOS가 들어가는 기기는 대부분 임베디드 시스템인데, 이들은 보통 일반 PC보다 성능이 낮은 것들이 들어간다. Real-time인데 왜 성능이 낮은 걸 쓰느냐고 할 수 있는데, Real-time과 High performance는 다른 개념이다. 만약 1초마다 끝마쳐야 하는 작업이 있다고 하면, 일반적인 PC OS를 쓰는 고성능 컴퓨터는 보통의 경우 0.1초만에 끝낼 수는 있지만 다른 프로세스에 의해서 막히면 2초, 심하면 10초도 걸릴 수 있다. PC OS를 쓰다보면 알겠지만 평소보다 느려질 때가 분명히 있다. 하지만 RTOS를 탑재한 기기는 평균 약 0.8초가 걸리더라도 어떠한 상황에서도 1초 내에 끝내는 것을 보장한다. 이해의 편의를 위해 여기서는 초 단위를 예로 들었지만, RTOS는 대체로 수 밀리초(1000분의 1초), 심지어는 마이크로초(100만 분의 1초)단위로 컨트롤하기 위해 쓰인다. 리눅스나 윈도우에선 밀리초 단위로 정교하게 프로그래밍하기 매우 힘들다.
또한 RTOS를 쓰는 임베디드 기기가 특정 작업만 하도록 설계되었고, 일반 PC처럼 프로그램을 이것저것 설치해서 쓰는 것이 아니어서, 원하는 작업에 대한 성능만 갖추면 되지 굳이 비싸고 크기가 큰 고성능의 칩셋을 쓸 필요가 없다.
이러한 특성 때문에 엄밀한 처리가 요구되는 시스템에서 주로 사용한다. 대개 데스크톱 PC 환경에서는 실행 시간이 몇 초 정도 느려져도 별 문제가 없지만, 항공 제어, 전동기 제어, 생산 관리나 병원 등 특정한 시스템에서는 단 1, 2초의 지연이 처참한 결과를 불러올 수 있기 때문이다.
시스템의 시간 관리 부분에 많은 비중을 투자하여, 응용 프로그램의 처리 요청을 정해진 시간 내에 끝마칠 수 있는 성능에 비중을 두고 있다. 선점형 멀티 태스킹을 지원하고 각 프로세스의 실행 순서를 정의하는데 많은 비중을 투자한다.
또 재부팅을 수시로 할 수 있는 데스크톱 시스템과는 달리, 임베디드 시스템은 몇 달에서 길게는 몇 년간 재부팅 없이 실행되는 경우가 흔히 있다. 이 때문에 동적 메모리 할당을 최적화하여 메모리 단편화(memory fragmentation)를 허용하지 않는다. 즉, C에서의 malloc() 같은 함수를 거의 쓰지 않는다는 이야기다.
삼성의 바다가 실시간 운영 체제인 Nucleus RTOS의 커널을 사용했다.
2. 목록
- 국방/항공용 실시간 운영 체제 NEOS: MDS테크가 개발했으며 T-50계열 항공기의 임무 컴퓨터에 탑재되었다.
-
BeOS - ChorusOS
- CsLEOS
- eCos
- ChibiOS
- FreeRTOS 웹 사이트
- ITRON
- LynxOS
- MicroC/OS-II
-
Nucleus RTOS: 삼성이 스마트폰용 운영 체제 바다에서 사용함. 바다의 경우 리눅스 커널을 사용하는 경우도 있음. - OS-9
- OSE
- OSEK/VDX
- pSOS
- QNX: 블랙베리에서 인수하여 QNX 기반으로 블랙베리 10 운영 체제를 만들었다. CANDU도 이걸로 돌린다.
- RMX
- RSX-11
- RT-11
- RTKit: 애플에서 만든 RTOS. 코프로세서마다 다 박혀 있다고...
- RTOS-UH
- ThreadX
- VRTX
- Velos
- VxWorks
-
윈도 CE - RTLinux: 리눅스 재단에서 관리하는 PREEMPT_RT 패치와는 별개이다.
- RTAI
- Xenomai
- Zephyr
3. 관련 문서
[1]
시간 내에 원하는 작업을 처리하는 것.