임베디드 면접 용어 사전
RTOS

RTOS

정해진 시간 안에 응답을 보장하는 것을 목표로 하는 운영체제. 태스크·스케줄러·동기화 객체를 제공한다.

정해진 시간 안에 반드시 응답하는 것을 보장하는 운영체제(Real-Time OS).

"빠른 OS"가 아니다 — 가장 중요한 오해

일반 OS(리눅스) : 평균 처리량이 좋다. 가끔 100ms 늦어도 괜찮다

  • RTOS — : 평균은 느려도 된다. 대신 "최악에도 1ms 안에"를 보장한다

핵심은 속도가 아니라 예측 가능성(determinism) 이다. "평균 1μs지만 최악 10ms"보다 "항상 100μs"가 실시간에서는 낫다.

하드 실시간 vs 소프트 실시간

데드라인을 놓치면
하드시스템 실패. 인명·재산 피해에어백, ABS, 심박조율기, 모터 제어
펌(firm)결과가 무가치해짐영상 프레임 (늦으면 버림)
소프트품질 저하오디오 재생, UI 반응

하드 실시간에서는 "평균 99.99% 성공"이 실패다. 100%여야 한다.

무엇을 제공하나

  • 태스크 관리 — — 여러 작업을 독립적인 스레드로
  • ② 우선순위 스케줄링 — 급한 것부터 (선점형)
  • 동기화 — — 뮤텍스, 세마포어, 이벤트 플래그
  • 통신 — — 큐, 메일박스
  • 시간 관리 — — 지연, 주기 실행, 타임아웃
  • 메모리 관리 — — 고정 크기 풀

베어메탈과 무엇이 달라지나

// 베어메탈 — 슈퍼루프
while (1) {
    read_sensor();        // 10ms
    update_display();     // 50ms   ← 이게 도는 동안 센서를 못 읽는다
    handle_comm();        // 5ms
}
// 최악 응답 = 전체 루프 시간 (65ms)

// RTOS
xTaskCreate(sensor_task,  …, priority 3);   // 급한 것
xTaskCreate(comm_task,    …, priority 2);
xTaskCreate(display_task, …, priority 1);   // 느긋한 것
// 센서 태스크는 디스플레이를 중단시키고 즉시 실행된다

우선순위가 다른 작업을 섞을 때 RTOS의 가치가 나온다.

언제 도입하나 — 판단 기준

RTOS가 필요한 신호 ✅ 응답 시간 요구가 다른 작업이 여럿 섞여 있다 ✅ 슈퍼루프의 상태 머신이 감당 못 할 만큼 복잡해졌다 ✅ 여러 통신 프로토콜을 동시에 다뤄야 한다 ✅ 블로킹 대기가 많다 (RTOS면 대기 중 다른 태스크가 돈다)

베어메탈로 충분한 경우 ❌ 단순 반복 (센서 읽고 출력) ❌ RAM이 극도로 부족 (태스크마다 스택이 필요) ❌ 인증 부담 (검증할 코드가 늘어난다) ❌ 팀에 RTOS 경험이 없고 일정이 촉박

"복잡도를 감당하려고" 도입하는 것이지 "빨라지려고"가 아니다.

대표 RTOS

특징
FreeRTOS가장 널리 쓰임. MIT 라이선스. AWS가 관리
Zephyr리눅스 재단. 디바이스 트리, 드라이버 모델이 풍부
ThreadXMicrosoft. 안전 인증(SIL4) 획득
RT-Thread중국권에서 강세
μC/OS-III인증 문서가 잘 갖춰짐

도입 비용

  • RAM — : 커널 수 KB + 태스크마다 스택 (수백 B ~ 수 KB) 플래시: 커널 5~15KB

  • CPU — : 컨텍스트 스위칭 오버헤드, 틱 인터럽트 복잡도: 경쟁 조건, 데드락, 우선순위 역전이라는 새 문제군

RTOS는 새로운 문제를 가져온다. 베어메탈에서는 없던 데드락·우선순위 역전·스택 오버플로를 다뤄야 한다.

스케줄링 방식

  • 선점형 우선순위 — : 높은 우선순위가 준비되면 즉시 전환 ← RTOS의 기본
  • 협조형(cooperative) : 태스크가 자발적으로 양보할 때만 전환
  • 라운드 로빈 — : 같은 우선순위끼리 시간 분할

FreeRTOS는 configUSE_PREEMPTION으로 선택하며, 같은 우선순위 태스크 간에는 configUSE_TIME_SLICING으로 라운드 로빈을 켠다.

면접 답변 골격

"RTOS는 빠른 OS가 아니라 최악 응답 시간을 보장하는 OS입니다. 응답 요구가 다른 작업이 섞여 슈퍼루프로는 급한 일을 제때 못 하게 될 때 도입합니다. 대신 경쟁 조건·우선순위 역전 같은 새 문제와 RAM 비용이 생기므로, 단순한 시스템에는 베어메탈이 낫습니다."

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — RTOS — 스케줄링·뮤텍스/세마포어·우선순위 역전·데드락·스택