[2025~] Embedded/Free RTOS

[Free RTOS_018] RTOS의 특징

heylo 2025. 3. 7. 14:02


RTOS의 특징
Hard Realtime
Scalability
Preemptive
Multitasking
Deterministic (예측가능)
Portability
Robustness

 

 

[질문]
이미 RTOS 없이도 실시간으로 잘 작동하고 있는 시스템을
RTOS 시스템으로 변경할 필요가 있을까요?

실시간성을 잘 유지하고 있는 소프트웨어인데

RTOS를 새로 도입하면서 실시간을 하는 것은 맞지 않습니다.

 


기본적으로 RTOS 를 쓸 때는

멀티태스킹이라고 하는 것을 전제하고 있는 것입니다.

 

멀티태스킹을 하면서도 실시간을 원할 때 쓰는 것입니다.

 

 


그렇기 때문에 우리가 RTOS 사용하는 이유는 크게 두 가지가 있는데

하드 리얼타임을 필요로 하는 애플리케이션과 

하드 리얼 타임은 필요하지 않는 애플리케이션 두가지로 분류됩니다.

 

실시간 OS 라고 하는 이 단어 때문에 오해가 많습니다.

모든 임베디드 시스템은 실시간 시스템이니까요.

 

 

 

RTOS 의 주요 특징 중에 하나가

바로 하드 리얼 타임 입니다.

 

 

 

 

 

항공기 사진입니다.

항공기는 특성상 탈출구가 없죠.
그러다 보니까 재난적인 상황이 굉장히 취약합니다.


그래서 하드 리얼 타임의 목표는

예측한 시간, 약속된 시간에 정확하게 작동하도록 하는 것입니다.


그냥 지킬 때도 있고 안 지킬 때도 있고 있다면

하드 리얼타임이라고 부를 수 없습니다.


***
스케일러블리티(scalability) 라고 하는게 

또 하나의 RTOS의 특징입니다.

 

RTOS 자체가 그 바이너리 파일 기준으로

수십 킬로바이트에서 수백 킬로바이트입니다.

 

RTOS 하나의 프로그램의 크기가

통상 수십 킬로바이트에서 수백 킬로바이트에 달하는데

이렇게 사이즈가 정해져 있지 않은 이유는

기능을 많이 추가하면 사이즈는 커지고

기능을 최적화 시키면 작게 만들 수가 있습니다. 

이것이 스케일러빌리티(scalability)입니다.

 

 


세번째는 선정 가능하다는 것입니다.


네번째는 멀티태스킹이 된다는 것이고,

 

 

그 다음 특징이 예측 가능한 시스템이라는 것입니다.

예측 가능하다 .

이게 아마도 가장 중요한 특징이 아닐까 합니다.


많은 개발자들이 자기가 만든 S/W가

로버스트니스(robustness)하기를 원합니다.
어쩔 땐 동작하고 어쩔 땐 동작하지 않고

혹은 전혀 동작하지 않고 하는 것을 싫어합니다.

 

 

***
RTOS와 항상 비교되는 OS가 있습니다.
Linux 와 Windows입니다.

 

RTOS는 임베디드 시스템용 운영체제 입니다.
그래서 Linux하고 윈도우즈와는 다릅니다.


그 중 Linux는 RTOS 의 가장 큰 경쟁자입니다.


예전 1900년대에는 임베디드 운영체제의 선택지가

RTOS밖에는 없었습니다.

 

 

그런데 지금이 와서는

리눅스라고 하는 이 훌륭한 운영체제로 많이 대체됐습니다.

RTOS가 차지할 자리를 리눅스가 많이 가져갔죠.

 


그래서 지금도 임베디드 시스템에서

가장 많이 쓰는 운영체제가 어떤 거냐고 조사해보면 

항상 리눅스가 거의 20여 년 가까이 항상 상위 랭크입니다.

 

기존 1900년대의 임베디드 시스템에는

무조건 RTOS밖에 없었거든요.

그런데 지금 와서는 많은 부분

리눅스 운영체제가 그 자리를 차지하고 있습니다.

 

 


대표적인 예로, 스마트폰 이전에 피처폰이라고 해서 폴더폰입니다.

그때의 스마트폰 이전 세대의 전화기를 보면

전부 다 RTOS가 들어가 있었지만

지금와서 보면 전부 다 안드로이드나 iOS 입니다.

그만큼 대체가 많이 된 것이죠.

 

 

 

 

또한 드론 같은 것도 보면 

드론도 예전에 RTOS에 썼습니다만 

요즘은 리눅스 쓴 것도 찾아볼 수 있습니다. 

 

RTOS도 중요한 임베디드 시스템용 OS가 될 수 있지만

상당부분을 리눅스가 가져가고 있습니다.