실시간 운영체제의 시간 보장과 우선순위 반전 대응
RTOS의 결정론적 동작과 Hard·Soft·Firm Real-Time 구분, 스케줄링 방식, 우선순위 반전 대응 프로토콜을 정리한다.
2026-08-14 · 최초 발행 2026-01-16
시간을 보장해야 하는 운영체제
실시간 운영체제(RTOS, Real-Time Operating System)는 정해진 시간 안에 작업을 끝내는 것을 보장하도록 설계된 특수 목적 운영체제다. 일반적인 운영체제가 처리량, 공정성, 자원 활용을 중심에 둔다면 RTOS는 작업이 언제 완료되는지와 최악의 상황에서도 그 시간을 예측할 수 있는지를 우선한다.
이 차이는 임베디드 시스템, 산업 제어, 자동차 전자 제어처럼 늦은 응답 자체가 문제가 되는 환경에서 특히 중요하다. RTOS는 낮은 인터럽트 지연, 우선순위 기반 스케줄링, 짧은 컨텍스트 스위칭 시간으로 데드라인 준수를 뒷받침한다.
GPOS(General Purpose OS)는 평균 성능을 높이고 여러 작업에 자원을 공정하게 배분하는 데 적합하다. 반면 RTOS는 시간 제약, 결정론, 예측 가능성을 먼저 고려한다. RTOS는 작고 빠른 구성을 지향하며, GPOS는 더 다양한 기능을 제공한다.
데드라인을 놓쳤을 때의 의미
Hard Real-Time 시스템에서는 데드라인 초과를 시스템 실패로 본다. 항공기 제어, 의료 기기, 원자로 제어처럼 절대적인 시간 제약을 지켜야 하며, WCET(Worst-Case Execution Time) 분석과 엄격한 스케줄링 알고리즘이 필요하다.
Soft Real-Time 시스템은 데드라인을 넘기면 성능이나 QoS가 떨어질 수 있지만 치명적 실패로 이어지지는 않는다. 비디오 스트리밍, 온라인 게임, VoIP가 여기에 해당한다. 대부분의 데드라인을 지키는 것이 목표이며 평균 응답 시간과 유연한 스케줄링도 함께 고려할 수 있다.
Firm Real-Time은 두 유형의 중간에 놓인다. 데드라인 초과가 가끔 허용되더라도, 기한을 놓친 작업 결과는 더는 가치가 없다. 센서 데이터 수집과 주식 거래 시스템이 이런 성격의 예다.
작업 특성에 따라 달라지는 스케줄링
Rate Monotonic Scheduling(RMS)은 주기가 짧은 작업에 더 높은 우선순위를 부여하는 정적 우선순위 방식이다. 주기적 작업에 적합하며 CPU 이용률 69% 이하에서 스케줄 가능성을 보장한다.
Earliest Deadline First(EDF)는 데드라인이 가장 가까운 작업을 우선 실행한다. 우선순위가 동적으로 바뀌고 비주기적 작업도 처리할 수 있으며, CPU 이용률 100%까지 이론적으로 스케줄 가능하다. 대신 RMS보다 오버헤드가 높다.
Least Laxity First(LLF)는 Laxity = Deadline - 남은 실행 시간으로 계산한 여유 시간이 가장 적은 작업을 먼저 실행한다. 우선순위가 매우 자주 바뀌어 컨텍스트 스위칭 오버헤드가 크며, 이론적으로는 최적이지만 실용성은 낮다.
공유 자원이 높은 우선순위 작업을 막는 경우
우선순위 반전은 낮은 우선순위 작업이 자원을 점유한 상태에서 높은 우선순위 작업이 그 자원을 기다리고, 중간 우선순위 작업이 낮은 우선순위 작업을 선점하면서 발생한다. 결과적으로 높은 우선순위 작업이 중간 우선순위 작업보다 늦게 실행될 수 있다. Mars Pathfinder 사고가 유명한 사례다.
이 상태는 높은 우선순위 작업의 데드라인을 위협하고, 응답 시간 예측을 어렵게 만든다. 시스템 안정성이 떨어지며 최악의 경우 시스템 정지로 이어질 수 있다.
Priority Inheritance Protocol(PIP)은 자원을 점유한 낮은 우선순위 작업이 요청한 작업의 우선순위를 상속하도록 한다. 자원을 빠르게 해제하게 만들어 중간 우선순위 작업의 방해를 막는다. 구현은 비교적 간단하지만 체인 블로킹 문제가 생길 수 있다.
Priority Ceiling Protocol(PCP)은 각 자원에 그 자원을 사용하는 작업 중 최고 우선순위인 Ceiling을 설정한다. 작업이 자원을 획득하면 Ceiling까지 우선순위를 높여 데드락을 방지하고 블로킹 시간을 최소화한다.
Immediate Priority Ceiling Protocol(IPCP)은 자원을 얻는 즉시 Ceiling 우선순위로 올린다. PCP보다 구현이 간단하고 체인 블로킹을 완전히 제거하지만, 필요하지 않은 우선순위 상승이 발생할 수 있다.
선점 비활성화도 선택지다. 임계 구역에 들어갈 때 선점을 막는 방식으로 간단하고 빠르지만, 임계 구역이 짧을 때만 사용할 수 있다. 높은 우선순위 작업의 응답 시간이 지연될 수 있어 RTOS에서는 제한적으로 사용한다.
시간 예측 가능성을 만드는 RTOS 기능
인터럽트 처리에서는 빠른 인터럽트 서비스 루틴(ISR), 인터럽트 우선순위 관리, 인터럽트 중첩, 지연 인터럽트 처리(Bottom Half)가 필요하다.
메모리 관리는 정적 할당과 메모리 풀(Pool)을 선호한다. 동적 할당을 최소화해 단편화를 막고, 예측 가능한 할당 시간과 결정론적 동작을 확보하기 위한 선택이다. RTOS는 MMU 없이도 동작할 수 있다.
타이머는 고정밀 시간을 제공하고 주기적 타이머와 원샷 타이머를 지원한다. 지터를 최소화하고 시간 동기화 메커니즘을 갖추는 일도 시간 제약을 다루는 시스템에서는 중요하다.
작업 간 동기화와 통신에는 세마포어, 뮤텍스, 이벤트 플래그, 메시지 큐, 메일박스를 사용한다. 우선순위 반전 방지 메커니즘과 무한 대기를 막는 타임아웃 지원도 함께 고려한다.
RTOS가 쓰이는 제어 환경
RTOS는 마이크로컨트롤러 기반 제어 시스템, IoT 디바이스, 스마트 센서, 웨어러블 기기에 활용된다. 산업 자동화에서는 PLC(Programmable Logic Controller), 로봇 제어 시스템, 공정 자동화, 모터 제어에 쓰인다.
자동차 전자 제어에서는 엔진 제어 유닛(ECU), ABS·ESC 제어, ADAS(Advanced Driver Assistance Systems), 인포테인먼트 시스템이 대상이다. 항공우주 분야에서는 비행 제어 시스템, 항법 장치, 위성 제어, 드론 제어에 적용된다.
선택 가능한 RTOS
FreeRTOS는 오픈소스이자 무료 RTOS로, 약 9KB의 작은 풋프린트와 다양한 아키텍처 지원, 활발한 커뮤니티를 특징으로 한다.
VxWorks는 상용 RTOS 시장 점유율 1위이며 항공우주와 국방 분야에서 널리 사용된다. POSIX 호환성과 강력한 디버깅 도구를 제공한다.
QNX는 마이크로커널 기반 RTOS다. POSIX를 준수하고 자동차 인포테인먼트에 널리 사용되며, 높은 안정성과 보안을 내세운다.
RTOS 설계에서 핵심은 단순히 작업을 빠르게 처리하는 데 있지 않다. 어떤 작업이 언제까지 끝나야 하는지 정의하고, 그 요구에 맞는 스케줄링과 동기화 메커니즘을 선택하는 데 있다.