프로세스의 스케줄링

운영체제는 여러 프로세스 또는 스레드가 CPU를 사용할 수 있도록 실행 순서를 결정한다.
이 과정을 스케줄링이라고 한다.

일반 OS와 리얼타임 OS의 가장 큰 차이는 단순한 실행 속도가 아니라,
정해진 시간 안에 작업을 처리할 수 있는 예측 가능성에 있다. (응답성이라고도 함)


일반 OS와 RTOS의 차이

일반 OS는 범용적인 사용을 목적으로 설계된다.
사용자는 웹 브라우저, 게임, 문서 작업, 백그라운드 서비스 등 다양한 프로그램을 동시에 실행한다.

따라서 일반 OS의 스케줄러는 특정 작업 하나의 데드라인을 보장하기보다,
전체 시스템의 처리량, 공정성, 사용자 체감 반응성 등을 고려해 CPU 시간을 분배한다.

반면 RTOS는 특정 작업이 정해진 시간 안에 반드시 실행되어야 하는 환경을 위해 설계된다.
그래서 스케줄링에서 중요한 기준은 평균 성능이 아니라,
최악의 경우에도 데드라인을 지킬 수 있는가이다.

즉, RTOS는 단순히 빠른 OS라기보다
작업 실행 시간이 예측 가능하도록 설계된 OS라고 보는 것이 더 정확하다.


RTOS의 특징

RTOS는 일반적으로 다음과 같은 특징을 가진다.

  • 우선순위 기반 스케줄링
  • 짧고 예측 가능한 인터럽트 응답 시간
  • 짧은 컨텍스트 스위칭 시간
  • 작업의 데드라인 보장
  • 불필요한 백그라운드 작업 최소화

여기서 중요한 점은 RTOS가 항상 일반 OS보다 성능이 좋다는 의미는 아니라는 것이다.
일반 OS가 더 높은 처리량을 보일 수도 있지만, RTOS는 언제 실행될지 예측 가능하다는 점에 목적이 있다.


Hard RTOS

전통적으로 RTOS라고 하면 주로 Hard RTOS를 의미하는 경우가 많다.

Hard RTOS는 데드라인을 반드시 지켜야 하는 시스템에서 사용된다.
만약 정해진 시간 안에 작업이 완료되지 않으면 단순한 지연이 아니라,
시스템 실패나 안전 문제로 이어질 수 있다.

예를 들어 항공기 제어, 자동차 브레이크 제어, 의료 장비 같은 시스템에서는
작업이 “조금 늦게 실행되는 것” 자체가 치명적인 문제가 될 수 있다.

따라서 Hard RTOS는 다음 조건을 만족해야 한다.

중요한 작업이 정해진 데드라인 안에 실행될 것을 보장할 수 있어야 한다.


Soft RTOS와의 차이

반대로 Soft RTOS는 데드라인을 지키는 것이 중요하지만,
가끔 지연이 발생해도 시스템 전체가 실패하지는 않는 경우를 말한다.

예를 들어 영상 스트리밍이나 오디오 재생에서는
프레임이나 샘플 처리가 늦어지면 끊김이 발생할 수 있지만,
그 자체가 시스템의 치명적인 실패로 이어지지는 않는다.