실시간 시스템은 "빠른 시스템"이 아니라 "정해진 시간 안에 반드시 응답하는 시스템"입니다. 에어백, 항공기 제어, 산업 로봇 등 마감 시간(deadline)을 놓치면 안 되는 시스템에서 사용됩니다.


실시간 시스템이란

주어진 시간 제약(deadline) 안에 연산을 완료하는 것이 보장 되는 시스템입니다.

중요한 것은 평균 응답 시간이 아니라 최악의 응답 시간(WCET, Worst Case Execution Time) 입니다.


Hard Real-Time vs Soft Real-Time

항목Hard Real-TimeSoft Real-Time
데드라인 위반시스템 실패 (치명적)성능 저하 (허용)
예시에어백, ABS, 항공기 제어, 의료기기비디오 스트리밍, 게임, VoIP
보장 수준100% 데드라인 충족통계적으로 대부분 충족
OS 예시VxWorks, QNX, FreeRTOS일반 Linux (PREEMPT_RT 패치)
PLAINTEXT
Hard: 에어백이 100ms 안에 터져야 함 → 101ms에 터지면 의미 없음
Soft: 영상이 33ms마다 프레임을 보여야 함 → 가끔 넘기면 끊기지만 치명적이지 않음

RTOS의 특징

일반 OS와 RTOS의 차이:

항목일반 OS (Linux, Windows)RTOS
목표처리량(throughput) 최대화응답 시간 보장
스케줄링공정성 (CFS 등)우선순위 기반 선점형
인터럽트 지연가변적최소, 예측 가능
커널 선점제한적완전 선점 가능
메모리 관리가상 메모리 (페이지 폴트 지연)고정 메모리 할당

실시간 스케줄링 알고리즘

Rate Monotonic Scheduling (RMS)

주기가 짧은 태스크에 높은 우선순위 를 부여합니다. 정적 우선순위 방식입니다.

PLAINTEXT
태스크 A: 주기 = 20ms, 실행 시간 = 5ms → 우선순위 높음
태스크 B: 주기 = 50ms, 실행 시간 = 10ms → 우선순위 낮음
태스크 C: 주기 = 100ms, 실행 시간 = 20ms → 우선순위 가장 낮음

타임라인:
0    5   10   15   20   25   30
|AAA||BBB|BBBBB|CC|AAA||BBB|...
A실행  B실행        C실행 A다시

스케줄링 가능 조건 (Liu & Layland 정리):

PLAINTEXT
CPU 활용률 ≤ n(2^(1/n) - 1)

n=2: 약 82.8%
n=3: 약 78.0%
n→∞: 약 69.3% (ln2)

이 조건을 만족하면 RMS로 모든 데드라인을 지킬 수 있습니다.

Earliest Deadline First (EDF)

데드라인이 가장 가까운 태스크를 우선 실행 합니다. 동적 우선순위 방식입니다.

PLAINTEXT
현재 시간: 10ms
태스크 A: 데드라인 = 25ms → 우선순위 중간
태스크 B: 데드라인 = 15ms → 우선순위 높음 (가장 급함)
태스크 C: 데드라인 = 50ms → 우선순위 낮음

→ B를 먼저 실행
  • 이론적으로 최적: CPU 활용률 100%까지 스케줄링 가능
  • RMS보다 활용률이 높지만 구현이 복잡 (우선순위가 계속 변경)

RMS vs EDF 비교

항목RMSEDF
우선순위정적 (주기 기반)동적 (데드라인 기반)
최대 CPU 활용률~69% (n→∞)100%
구현 복잡도낮음높음
과부하 시 동작예측 가능 (저우선순위만 실패)도미노 효과 가능

리눅스의 실시간 지원

리눅스는 범용 OS이지만 PREEMPT_RT 패치 로 Soft Real-Time 수준을 지원합니다.

BASH
# 실시간 스케줄링 정책 확인
chrt -m

# 프로세스에 실시간 우선순위 부여
chrt -f 99 ./my_realtime_app  # SCHED_FIFO, 우선순위 99
chrt -r 50 ./my_realtime_app  # SCHED_RR, 우선순위 50

리눅스 스케줄링 정책:

  • SCHED_FIFO: 선점형 FIFO — 같은 우선순위 내에서 FIFO
  • SCHED_RR: 라운드 로빈 — 같은 우선순위 내에서 타임 슬라이스
  • SCHED_DEADLINE: EDF 기반 — 리눅스 3.14부터

핵심 포인트

  • Hard vs Soft: "시간을 놓치면 어떻게 되느냐"가 구분 기준
  • RMS는 최적인가: 정적 우선순위 중에서는 최적이지만, EDF(동적)가 이론적으로 더 우수
  • 리눅스가 RTOS가 아닌 이유: 커널 내부에 비선점 구간이 있고, 페이지 폴트 등 예측 불가능한 지연이 존재

정리

실시간 OS는 "빠름"이 아니라 "예측 가능함"이 핵심입니다. 실제로는 Hard/Soft의 차이, RMS와 EDF의 비교, 리눅스의 실시간 한계를 설명할 수 있으면 충분합니다.

댓글 로딩 중...