RTOS 개발환경
RTOS는 시스템에서 발생하는 어떤 이벤트나 수행할 작업들을 가능한 실시간적으로 처리하는 것을 목표로 만들어진 경량한 O/S를 지칭한다.
RTOS는 Linux와 함께 임베디드 시스템의 핵심으로 자리잡고 있으며, 개발자들은 RTOS에서 제공하는 기본구조 위에서 어플리케이션을 개발하면 되겠다.
⊕ 설명의 단순함을 위해, RTOS 관련 이하 모든 내용은 단일 프로세스에 다중 쓰레드 방식을 가정하여 설명하는 것임을 유의하자.
1. 순차 프로그램 vs. RTOS에서 프로그램의 흐름
RTOS는 그 목표가 그렇듯이 순차 프로그래밍에서 구현하기가 힘든 실시간적 이벤트 처리에 매우 적합하도록 설계되어져 있다.
이는 두 방식간의 SW 흐름이 다르다는 것을 의미한다. 아래 그림을 통해 두 방식간의 차이를 이해해 보자.
———————- 그림 삽입 예정 ————————-
2. RTOS의 Kernel의 서비스
멀티쓰레드로 구조된 어플리케이션이 안정적으로 운행되고 각종 이벤트들이 실시간적으로 처리되기 위해서는,
전체 시스템의 근간이 되는 RTOS의 핵심(커널)이 다음과 같은 서비스를 열씨미 제공해 주고 있기 때문이다.
♦ Thread Scheduling → scheduling interval=1~10ms (STM32기준 참고용, 실질적으로 경우마다 다름)
♦ Context Switching → switching time=5~50us (STM32기준 참고용, 실질적으로 경우마다 다름)
♦ ISR Management
♦ Resource Management
3. RTOS 사용의 장점
RTOS는 Linux와 같은 시스템에 비해 Resource가 비교적 적은 MCU에 적용할 수 도 있으며,
순차 프로그랭밍 방식과 다르 게 어플리케이션을 바로 구현할 수 있도록 밑바닥이 아예 준비된 시스템이라고 볼 수 있다.
♦ 순차 프로그램밍 방식으로 개발할때 요구 되었던 반복적인 코딩 작업에 대한 많은 노고를 경감할 수 있을 뿐만 아니라,
♦ 어플리케이션의 개발, 수정, 재사용성, 유지보수를 용이하게 할 수 있으며,
♦ 짧은 시간에 시스템의 신뢰성를 확보, 즉 시스템의 완성도를 높일 수 있다는 장점이 있다.