2.21 실시간 시스템 및 결정성 요구사항에 대한 기술 리딩 방법
1. 실시간 시스템의 개념과 분류
실시간 시스템(Real-time System)은 외부 이벤트에 대한 응답이 정해진 시간 제약(Time Constraint) 내에 완료되어야 하는 시스템이다. Kopetz(2011)에 따르면, 실시간 시스템의 정확성(Correctness)은 연산 결과의 논리적 정확성뿐만 아니라 결과 생성의 시간적 정확성(Timeliness)에 의하여 결정된다.
실시간 시스템은 시간 제약의 엄격도에 따라 다음과 같이 분류된다. 경성 실시간 시스템(Hard Real-time System)은 시간 제약의 위반이 시스템 실패 또는 치명적 결과를 초래하는 시스템이다. 항공기 비행 제어 시스템, 자동차 제동 시스템, 그리고 의료 기기의 생체 신호 처리 시스템이 대표적 사례이다. 연성 실시간 시스템(Soft Real-time System)은 시간 제약의 위반이 시스템 성능의 저하를 초래하나 치명적 결과로 이어지지 않는 시스템이다. 멀티미디어 스트리밍, 온라인 게임 서버 등이 이에 해당한다. 확성 실시간 시스템(Firm Real-time System)은 마감 시한을 넘긴 결과가 무가치(Worthless)하나, 시스템 전체의 실패로 이어지지는 않는 시스템이다.
딥테크 기업에서 자율 시스템(Autonomous System), 로봇, 의료 기기, 산업 제어 시스템, 그리고 항공우주 시스템은 경성 실시간 요구 사항을 가지며, CTO는 이러한 시스템의 시간적 정확성을 보장하기 위한 기술적 리더십을 발휘하여야 한다.
2. 결정성(Determinism)의 요구와 보장
2.1 결정성의 정의
결정성(Determinism)은 시스템이 동일한 입력과 초기 조건에서 항상 동일한 출력과 시간적 행동을 보이는 속성이다. 실시간 시스템에서 결정성은 시스템의 응답 시간이 예측 가능하고 반복 가능(Reproducible)함을 의미한다.
결정성의 보장에 영향을 미치는 요소는 다음과 같다. 프로세서 아키텍처(캐시 동작, 파이프라인, 분기 예측), 운영 체제의 스케줄링 정책, 메모리 관리(가비지 컬렉션, 가상 메모리), 입출력(I/O) 처리, 그리고 인터럽트(Interrupt) 처리가 결정성에 직접적 영향을 미친다.
2.2 결정성 보장을 위한 기술적 접근
CTO가 실시간 시스템의 결정성을 보장하기 위하여 주도하여야 할 기술적 접근은 다음과 같다.
실시간 운영 체제(Real-Time Operating System, RTOS)의 선택이다. 우선순위 기반 선점형 스케줄링(Priority-based Preemptive Scheduling)을 지원하는 RTOS는 태스크의 실행 순서와 시간을 예측 가능하게 관리한다. VxWorks, FreeRTOS, QNX, 그리고 Zephyr가 대표적 RTOS이다.
최악 실행 시간(Worst-Case Execution Time, WCET) 분석이다. 각 태스크의 최악 실행 시간을 정적 분석(Static Analysis) 또는 측정 기반 분석(Measurement-based Analysis)을 통하여 산정하고, 이를 기반으로 스케줄링 가능성(Schedulability)을 검증한다. Liu and Layland(1973)의 Rate Monotonic Scheduling(RMS) 이론은 정적 우선순위 스케줄링에서의 스케줄링 가능성 판단 기준을 제공한다.
메모리 관리의 결정성 확보이다. 동적 메모리 할당(Dynamic Memory Allocation)은 실행 시간의 비결정성을 유발할 수 있으므로, 경성 실시간 시스템에서는 정적 메모리 할당(Static Memory Allocation) 또는 메모리 풀(Memory Pool) 기법을 채택한다. 가비지 컬렉션(Garbage Collection)을 사용하는 언어(Java, Python 등)는 경성 실시간 시스템에는 부적합하다.
3. CTO의 실시간 시스템 기술 리딩 방법
3.1 시스템 수준의 시간 예산(Time Budget) 관리
CTO는 실시간 시스템의 설계 단계에서 시스템 수준의 시간 예산을 수립하고 관리하여야 한다. 시간 예산은 센서 입력에서 액추에이터 출력에 이르는 전체 처리 경로(End-to-End Latency)의 시간 분배를 정의한다.
시간 예산의 수립은 다음 과정으로 이루어진다. 시스템 수준의 응답 시간 요구 사항 정의, 처리 경로의 각 단계(센서 읽기, 데이터 전처리, 알고리즘 처리, 통신, 액추에이터 제어)에 대한 시간 할당, 안전 마진(Safety Margin)의 확보, 그리고 각 단계의 WCET 대비 시간 예산의 충분성 검증이다.
3.2 아키텍처 수준의 결정성 설계
CTO는 시스템 아키텍처 수준에서 결정성을 내재적으로 보장하는 설계를 주도하여야 한다. 시간 트리거 아키텍처(Time-Triggered Architecture, TTA)는 Kopetz(1997)가 제안한 접근으로, 모든 통신과 처리가 사전에 정의된 시간 일정(Schedule)에 따라 수행되므로 높은 수준의 결정성을 보장한다.
이벤트 트리거 아키텍처(Event-Triggered Architecture)는 외부 이벤트의 발생에 의하여 처리가 촉발되는 접근으로, 유연성은 높으나 결정성의 보장이 상대적으로 어렵다. 양 접근의 하이브리드를 통하여 결정성과 유연성의 균형을 추구하는 것이 실무적으로 빈번하다.
3.3 검증과 인증
안전 관련 실시간 시스템은 기능 안전 표준(ISO 26262, DO-178C, IEC 61508 등)에 따른 검증과 인증을 요구한다. CTO는 이러한 인증 요구 사항을 개발 프로세스에 내재화하고, 검증 활동(정적 분석, 단위 시험, 통합 시험, 시스템 시험)을 체계적으로 관리하여야 한다.
형식적 방법(Formal Method)은 수학적 기법을 활용하여 시스템의 속성을 엄밀하게 검증하는 접근으로, 높은 안전 무결성 수준(Safety Integrity Level, SIL)이 요구되는 시스템에서 활용된다. 모델 검사(Model Checking), 정리 증명(Theorem Proving), 그리고 추상 해석(Abstract Interpretation)이 대표적 형식적 방법이다.
4. 기술 리더십의 실천
실시간 시스템과 결정성 요구 사항에 대한 CTO의 기술 리더십은 다음과 같이 실천된다. 시간적 정확성을 아키텍처 설계의 일급 시민(First-class Citizen)으로 취급하고, 기능적 요구 사항과 동등한 수준의 관리를 보장한다. 실시간 전문 인력의 확보와 육성을 전략적으로 수행한다. 실시간 시스템 개발에 적합한 개발 도구, 시험 장비, 그리고 분석 도구에 대한 투자를 확보한다. 그리고 비실시간 구성 요소와 실시간 구성 요소 사이의 명확한 아키텍처적 경계를 설정하여 결정성 보장의 범위를 관리한다.