반응형
개인 목적으로 사용되는 카테고리로 해당 글 외 전부 비공개
RTOS란?
RTOS(Real-Time Operating System) 는 “정해진 시간 안에 반드시” 작업을 끝내야 하는 시스템에 특화된 운영체제입니다.
여기서 Real-Time 은 “빠르다” 가 아니라 예측 가능하다(Deterministic) 는 뜻이 핵심입니다.
주 목적 | 최대 처리량, 사용자 편의 | 정해진 시간 내 작업 완료 |
스케줄링 | 우선순위 + 공평성(Time-sharing) | 우선순위 기반 + 선점(Preemptive) |
응답 지연 | ms~초 단위도 허용 | μs~ms, 지터(Jitter) 최소화 |
메모리 관리 | 가상 메모리, 페이지 교체 | 고정/정적 할당 선호 |
예시 | Ubuntu, Windows 11 | FreeRTOS, Zephyr, VxWorks, RT-Thread |
RTOS의 핵심 구성 요소
- 태스크(Task)
- 애플리케이션 코드 단위. 우선순위와 상태(Ready, Running, Blocked) 보유
- 스케줄러(Scheduler)
- 가장 높은 우선순위의 Ready 태스크에 CPU를 양보
- Preemptive 모드: 더 높은 우선순위 태스크가 생기면 즉시 선점
- ISR(Interrupt Service Routine)
- 하드웨어 인터럽트에 즉각 반응해 태스크를 깨움
- IPC(Queue, Semaphore, Mutex 등)
- 태스크 간 데이터 교환과 동기화로 데드락·경쟁 조건 방지
- 시스템 틱(SysTick)
- 주기적 타이머 인터럽트로 태스크 시간관리(딜레이, 타임아웃)
- 최근엔 전력 절감을 위해 Tickless 모드도 사용
왜 RTOS를 쓰는가?
- 시간 제한이 있는 작업: 모터 제어, 산업용 로봇, 차량 ECU, 의료기기
- 멀티태스킹: bare-metal 루프는 복잡도가 급상승 → 커널이 작업 분할
- 코드 이식성 & 생태계: 드라이버/미들웨어, POSIX 레이어, 커뮤니티 지원
RTOS 선택 시 체크리스트
- 하드 실시간 vs 소프트 실시간
- 하드: 마감시간 Miss ⇒ 시스템 실패 (ABS, 항공)
- 소프트: Miss 시 품질 저하 허용 (오디오 스트리밍)
- 메모리/플래시 Footprint
- 소형 MCU(수-십 KB)인지, 애플리케이션 프로세서(MB)인지
- 라이선스/커뮤니티
- 상용(VxWorks, INTEGRITY, QNX 등) vs 오픈소스(FreeRTOS, Zephyr)
- 안전 인증(ASIL, SIL) 필요 여부
- 자동차/의료 분야는 ISO 26262, IEC 61508 인증 지원 확인
- 툴체인 & 디버깅
- Tracealyzer, Segger SystemView 등 실시간 분석 툴 지원
반응형