Study/임베디드 | Embedded System

[임베디드시스템] 05. RTOS (Real-Time Operating System)

도엔 2025. 5. 19. 14:16
728x90

1. RTOS란?

  • RTOS (Real-Time Operating System)는 특정 시간 내에 작업을 정확하게 수행해야 하는 임베디드 시스템을 위한 운영체제
  • 주어진 시간 내에 작업을 완료하는 것을 보장하는 실시간성
  • 일반적인 운영체제(예: Windows, Linux)와는 달리 응답 시간이 매우 중요하다.

-

2. 일반 운영체제와의 차이점

특성 일반 OS (Linux, Windows) RTOS (FreeRTOS, RTEMS)

목적 다목적, 범용 실시간, 특정 작업
응답 시간 비결정적 (Best Effort) 결정적 (Deterministic)
우선순위 상대적 절대적
메모리 관리 가상 메모리, 페이징 물리적 메모리, 고정 크기
인터럽트 처리 상대적으로 느림 빠르고 효율적
스케줄링 일반적으로 비실시간 (Round-Robin, Time Sharing) 실시간 (Preemptive, Cooperative)

-

3. RTOS의 핵심 기능

  1. Deterministic Response (결정론적 응답)
    • 모든 작업은 예측 가능한 시간 안에 완료되어야 한다.
    • 응답 시간이 일정하게 유지되어야 하므로 지연(Jitter)이 적어야 함
  2. Task Scheduling (태스크 스케줄링)
    • Preemptive Scheduling: 우선순위가 높은 작업이 낮은 작업을 중단하고 실행할 수 있음
    • Cooperative Scheduling: 각 작업이 스스로 CPU를 반환할 때까지 실행됨
  3. Interrupt Handling (인터럽트 처리)
    • 하드웨어 이벤트에 대한 빠르고 효율적인 응답을 위해 최적화된 인터럽트 관리가 필요
  4. Memory Management (메모리 관리)
    • 일반적으로 Heap이나 Stack 같은 고정된 메모리 영역을 사용
    • 메모리 누수와 할당 지연을 최소화하는 구조
  5. Inter-Task Communication (태스크 간 통신)
    • 세마포어(Semaphore), 뮤텍스(Mutex), 큐(Queue), 메일박스(Mailbox) 등을 통해 태스크 간 데이터를 주고받을 수 있음.

-

4. RTOS의 구조

  • Kernel (커널): RTOS의 핵심, 태스크 관리, 메모리 관리, 스케줄링 담당
  • Task (태스크): 실제 사용자 프로그램, 각각의 독립적인 실행 흐름
  • ISR (Interrupt Service Routine): 하드웨어 인터럽트를 처리하는 루틴
  • IPC (Inter-Process Communication): 태스크 간의 통신 방법

-

5. RTOS 스케줄링 알고리즘

  1. Fixed Priority Scheduling (고정 우선순위 스케줄링)
    • 각 태스크에 고정된 우선순위를 부여하여 높은 우선순위의 작업을 먼저 처리
    • 예시: Rate Monotonic Scheduling (RMS), Deadline Monotonic Scheduling (DMS)
  2. Earliest Deadline First (EDF)
    • 가장 빠른 데드라인을 가진 태스크를 먼저 스케줄링
    • 동적인 스케줄링 알고리즘으로, 시스템 부하에 따라 우선순위가 변할 수 있다.
  3. Round-Robin (RR)
    • 각 태스크가 같은 시간 간격으로 CPU를 사용
    • 선점형(preemptive) 또는 비선점형(non-preemptive) 방식으로 구현 가능

-

6. RTOS의 장단점

장점

  • 짧고 예측 가능한 응답 시간
  • 높은 안정성과 신뢰성
  • 실시간 이벤트 처리가 용이
  • 메모리와 CPU 자원의 효율적인 관리

단점

  • 복잡한 설계와 개발 비용
  • 자원 제한이 많은 시스템에서의 최적화 필요
  • 다중 작업이 복잡한 경우 스케줄링 관리의 어려움

-

7. 대표적인 RTOS 예시

  • FreeRTOS: 가볍고 오픈소스, IoT와 소형 기기에 널리 사용
  • RTEMS: 위성, 로봇, 항공 우주 시스템에서 사용
  • VxWorks: 산업 자동화, 국방, 항공 우주에서 사용
  • ThreadX: IoT, 임베디드 기기에서 널리 사용

-

8. RTOS와 임베디드 시스템의 관계

  • 임베디드 시스템의 성능, 전력 효율성, 안정성을 크게 좌우하는 중요한 요소
  • 실시간 제어가 필요한 시스템 (예: 자동차, 의료 기기, 로봇)에 필수적
  • 딥러닝, 컴퓨터 비전과 같은 복잡한 작업도 RTOS 위에서 최적화하여 구현 가능
728x90
반응형