RTOS?
RealTime Operation System, 애플리케이션의 수행 마감 시간을 정할 수 있는 운영체제이다. 운영체제론 시간에 다루는 Soft Realtime - Hard Realtime 과 같은 개념이 내재되어 있는 OS인 것이다.
주로 임베디드에 쓰이는 OS인 만큼, Scalability하다. 즉, 사용자가 원하는 기능을 추가하거나 제거하여 크기를 조절할 수 있다. 또한 Preemptive - 선점(우선순위가 높은 task가 리소스를 가져감)을 허용하고, Multitasking이 가능하며, Robustness, 즉 견고하다.
왜 써야 하는가
범용 PC OS를 사용하는 범용 컴퓨터, 예를 들어 Windows를 사용하는 데스크탑에서는 보통의 경우 0.1초만에 끝낼 수 있는 프로세스가 다른 프로세스에 의해 지연 실행되면 수 초에 걸려 실행될 수도 있다. 즉, 어떠한 프로세스가 특정 시간 안에 종료됨을 보장하지 않는다. 이러한 점이 우리의 일상 컴퓨터 생활에서는 그렇게 체감될 정도로 크게 불편한 점이 아니지만, 만약 특정 시스템, 예를 들어 전방 추돌 감지로 차량을 급정거 해야할 때 프로세스의 실행이 지연된다면? 불편한 수준이 아닐 것이다.
RTOS는 밀리 초 단위부터 마이크로 초 단위의 컨트롤이 가능하며, 임베디드 시스템 중에서도 엄밀한 처리가 요구되는 시스템에서 주로 사용한다. deadline이 1초인 task가 있다면, 어떠한 상황이더라도 1초안에 끝내는 것을 보장한다.
또, 메모리 단편화를 허용하지 않는다. 이는 임베디드 시스템은 재부팅 없이 몇 달, 몇 년간 실행되는 경우가 많기 때문으로, 동작 메모리 할당을 거의 사용하지 않는다.
FreeRTOS?
2003년 개발된 ANSI C 기반 RTOS로, MIT 라이센스를 가져 조건 없는 상업 목적으로 사용이 가능한 운영체제이다. 우선순위 베이스의 선점 스케줄링을 사용하고, 라운드 로빈도 함께 지원한다. 환경설정에 따라 4KB ~ 9KB 크기의 binary image를 가져, 굉장히 가볍다. 또 높은 신뢰성과 안정성을 가진다.
특이하게도, OS에서 코드의 네이밍 규칙을 정해준다. 변수명과 함수명의 접두어를 결정한다. 또 하나의 task는 하나의 thread를 의미한다. 자세한 내용은 다음 글에서 다루겠다.
'현생 > 임베디드' 카테고리의 다른 글
FreeRTOS - Interrupt (0) | 2024.08.07 |
---|---|
FreeRTOS - 임계 영역 (0) | 2024.08.06 |
FreeRTOS - Naming Rule & Task (0) | 2024.08.05 |
임베디드 개발자에게 필요한 전기 기본 상식 (0) | 2024.08.03 |
임베디드 SW 개요 (0) | 2024.08.02 |