실시간운영체제 (RTOS)
쉽게 풀면
일반 PC의 운영체제(윈도우 등)는 "평균적으로 빠르게" 여러 작업을 처리하는 데 초점을 맞춥니다. 어쩌다 한 번 반응이 0.5초 늦어져도 큰 문제가 되지 않기 때문입니다. 하지만 자동차 에어백 제어기나 공장 로봇팔처럼 "정해진 시간 안에 반드시" 반응해야 하는 장치라면 이야기가 다릅니다. 반응이 단 몇 밀리초라도 늦으면 사고로 이어질 수 있습니다. 실시간운영체제(RTOS)는 바로 이런 상황을 위해, 어떤 작업이 최악의 경우에도 언제까지 끝나는지를 수학적으로 보장하도록 작업 순서를 관리(스케줄링)하는 운영체제입니다. 마감 시한을 반드시 지켜야 하는 경우를 "경성 실시간", 조금 늦어도 큰 문제는 없는 경우를 "연성 실시간"이라고 구분합니다.
왜 중요한가
실시간운영체제는 자율주행차, 의료기기, 항공전자, 산업용 로봇처럼 시간 제약을 어길 경우 안전 사고로 직결되는 임베디드 시스템의 근간이기 때문에 시스템 설계 전반에서 핵심적으로 다뤄집니다. 일반 운영체제는 평균 응답 속도를 최적화하는 데 초점을 맞추는 반면, RTOS는 최악의 경우에도 마감 시한을 지킬 수 있는지를 수학적으로 보장해야 하므로 스케줄링 알고리즘, 인터럽트 처리, 자원 관리 방식 자체가 근본적으로 다르게 설계됩니다. 이 때문에 새로운 스케줄링 기법이나 임베디드 시스템을 다루는 논문에서 RTOS 환경에서의 검증 결과가 신뢰성의 핵심 근거로 제시되는 경우가 많습니다.
논문에서는 이렇게 쓰입니다
이 문장은 "새로 만든 작업 순서 배정 방법을 실시간운영체제에 실제로 구현해서, 가장 오래 걸리는 경우에도 정해진 시간 제한을 넘기지 않는다는 것을 확인했다"는 뜻입니다.
자율주행 및 로보틱스 연구에서는 여러 작업이 동시에 몰릴 때도 응답 시간의 변동 폭(지터)이 허용 범위 안에 있는지를 실험적으로 검증하는 방식이 흔히 사용됩니다.
의료기기나 안전이 중요한(safety-critical) 시스템을 다루는 논문에서는 마감 시한을 절대 넘겨서는 안 되는 경성 실시간 요구조건을 충족하기 위한 RTOS 설계 선택을 설명하는 경우가 많습니다.
조금 더 깊게 보면
RTOS의 핵심은 스케줄링 알고리즘에 있으며, 우선순위가 고정된 작업들을 마감 시한이 짧은 순서대로 처리하는 최단마감시한우선(EDF) 방식이나, 정해진 우선순위에 따라 항상 높은 우선순위 작업을 먼저 실행하는 고정우선순위(Rate Monotonic) 방식이 대표적으로 쓰입니다. 실무에서는 최악실행시간(WCET)을 정확히 추정하는 것이 스케줄 가능성을 보장하는 데 중요한데, 캐시나 파이프라인 같은 하드웨어 요소로 인해 실행 시간이 변동하기 때문에 WCET 추정 자체가 별도의 연구 주제로 다뤄지기도 합니다.
주의할 점
RTOS는 마이크로컨트롤러 자체와는 다른 개념입니다. 마이크로컨트롤러는 연산장치와 메모리, 입출력 회로를 담은 하드웨어 칩이고, RTOS는 그 위에서 여러 작업의 실행 순서를 시간 제약에 맞게 관리해주는 소프트웨어입니다. 마이크로컨트롤러만으로는 실시간성이 자동으로 보장되지 않으며, RTOS나 이에 준하는 정교한 펌웨어 설계가 함께 필요합니다.