[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밖에는 없었습니다.