스터디/RTOS

RTOS(Real-Time Operating System) 란?

Jooyoung Lee 2025. 6. 24. 17:34
반응형
개인 목적으로 사용되는 카테고리로 해당 글 외 전부 비공개

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의 핵심 구성 요소

  1. 태스크(Task)
    • 애플리케이션 코드 단위. 우선순위와 상태(Ready, Running, Blocked) 보유
  2. 스케줄러(Scheduler)
    • 가장 높은 우선순위의 Ready 태스크에 CPU를 양보
    • Preemptive 모드: 더 높은 우선순위 태스크가 생기면 즉시 선점
  3. ISR(Interrupt Service Routine)
    • 하드웨어 인터럽트에 즉각 반응해 태스크를 깨움
  4. IPC(Queue, Semaphore, Mutex 등)
    • 태스크 간 데이터 교환과 동기화로 데드락·경쟁 조건 방지
  5. 시스템 틱(SysTick)
    • 주기적 타이머 인터럽트로 태스크 시간관리(딜레이, 타임아웃)
    • 최근엔 전력 절감을 위해 Tickless 모드도 사용

 

왜 RTOS를 쓰는가?

  • 시간 제한이 있는 작업: 모터 제어, 산업용 로봇, 차량 ECU, 의료기기
  • 멀티태스킹: bare-metal 루프는 복잡도가 급상승 → 커널이 작업 분할
  • 코드 이식성 & 생태계: 드라이버/미들웨어, POSIX 레이어, 커뮤니티 지원

RTOS 선택 시 체크리스트

  1. 하드 실시간 vs 소프트 실시간
    • 하드: 마감시간 Miss ⇒ 시스템 실패 (ABS, 항공)
    • 소프트: Miss 시 품질 저하 허용 (오디오 스트리밍)
  2. 메모리/플래시 Footprint
    • 소형 MCU(수-십 KB)인지, 애플리케이션 프로세서(MB)인지
  3. 라이선스/커뮤니티
    • 상용(VxWorks, INTEGRITY, QNX 등) vs 오픈소스(FreeRTOS, Zephyr)
  4. 안전 인증(ASIL, SIL) 필요 여부
    • 자동차/의료 분야는 ISO 26262, IEC 61508 인증 지원 확인
  5. 툴체인 & 디버깅
    • Tracealyzer, Segger SystemView 등 실시간 분석 툴 지원
반응형