32.5 Deadline 폴리시를 활용한 실시간 통신 주기 데이터 제약 조건 및 위반 검출 구조

32.5 Deadline 폴리시를 활용한 실시간 통신 주기 데이터 제약 조건 및 위반 검출 구조

드론의 모터 회전수를 능동적으로 보정하기 위한 자율 비행(Autonomous Flight) 알고리즘은 관성 측정 장치(IMU)와 같은 초고속 센서가 제공하는 데이터의 ’내용적 무결성’만큼이나 ’시간적 결정론(Time Determinism)’에 생사를 의존한다. 만약 초당 100회(10ms 주기) 수신되어야 할 고도(Altitude) 텔레메트리가 모터의 진동 노이즈나 CPU 스케줄링 간섭으로 인하여 단 50ms만 지연되더라도, 비행 제어기(FC)의 PID 적분항은 급격히 발산(Wind-up)하여 기체의 추락을 유발한다. 이러한 일시적 정보 단절, 이른바 주파수 데드락(Frequency Deadlock) 병목 현상을 미들웨어 단에서 선제적으로 감지하고 폭로하는 최전선 경보 체계가 바로 QoS의 Deadline(데드라인) 폴리시이다. 본 절에서는 Deadline 매개변수를 활용한 시간 제약 조건의 확립과, 위반(Violation) 발생 시 페일세이프(Fail-Safe)를 트리거하는 미들웨어 이벤트 구조를 학술적으로 서술한다.

1. 하드 리얼타임(Hard Real-time) 환경의 시간 제약성과 타이머 폴링의 한계

전통적인 ROS1 환경이나 일반적인 TCP/IP 소켓 프로그래밍에서는, 수신 측(Subscriber)이 송신 주기 결함을 감지하기 위해 자체적인 워치독 타이머(Watchdog Timer) 스레드를 구동해야만 했다. 마지막 패킷 수신 시간을 변수에 기록하고, 별도의 백그라운드 스레드가 이를 지속적으로 폴링(Polling)하여 임계 시간을 초과했는지 판별하는 방식이다.

그러나 이러한 유저 레벨(User-level)의 타이머 구동은 그 자체로 CPU 컨텍스트 스위칭(Context Switching) 오버헤드를 유발하며, 운영체제의 타이머 해상도(Timer Resolution)에 의존하므로 10ms 이하의 초정밀 하드 리얼타임 제약 조건을 일관되게 추적하기에 부적합하다. DDS 통신 아키텍처는 이 시간 감시의 책임을 커널-미들웨어에 가까운 RTPS(Real-Time Publish Subscribe) 계층으로 하향 위임함으로써, 통신 루프 내에서 발행과 수신의 맥박(Pulse)을 제로-오버헤드(Zero-Overhead) 수준으로 계측(Instrumentation)하는 진보를 이루어냈다.

2. 퍼블리셔의 발송 서약(Offered Deadline)과 서브스크라이버의 수신 기대(Requested)

Deadline 파라미터는 ROS2 노드 간의 철저한 시간적 계약서(Contract)로 작용한다.

송신부(Publisher) 측에서 설정하는 데드라인은 “나는 어떠한 시스템 부하가 발생하더라도 최소 지정 주기 내에는 무조건 다음 데이터를 송출할 것을 서약한다“는 발송 보증(Offered Deadline)을 명세한다. 반대로 수신부(Subscriber)에서 설정하는 데드라인은 “나는 제어 알고리즘의 안정을 위해 이전 데이터 수신 시점으로부터 늦어도 요구 시간 안에는 새로운 데이터를 기대한다“는 수신 요구 조건(Requested Deadline)을 규정한다.

만약 퍼블리셔 측 드라이버가 I/O 지연에 물리려 서약한 시간을 단 1ms라도 초과하여 다음 정보를 발산하지 못하면, 송신 노드 측 미들웨어는 자율적으로 OfferedDeadlineMissed 비동기 이벤트를 발생시킨다. 동시에 수신 노드 측 미들웨어 역시 타임아웃을 감지하고 RequestedDeadlineMissed 콜백을 트리거한다. 개발자는 이 콜백 함수 내부에 즉각적인 호버링(Hovering) 전환이나 엑추에이터 킬(Kill) 스위치 논리를 매핑함으로써, 유저 레벨 폴링 없이도 가장 완벽한 런타임 페일세이프(Fail-Safe) 반응망을 획득할 수 있다.

3. 비대칭 매개변수 호환성 계약(Compatibility Rule)과 조건 위반 색출

ReliabilityDurability 폴리시와 마찬가지로, Deadline 역시 비대칭 파라미터 간의 엄격한 호환성 조율(Compatibility Matching) 역학을 지닌다.

네트워크 무결성이 성립하기 위한 절대 명제는 **“송신자가 보증하는 최대 휴지기(Offered)는 반드시 수신자가 요구하는 기다림의 한계(Requested)보다 짧거나 같아야 한다”**는 것이다. 예컨대 퍼블리셔가 50ms마다 느긋하게 데이터를 보내겠다고 서약했는데, 서브스크라이버가 10ms마다 결여 없이 데이터를 달라고 요구한다면 이는 논리적 패러독스이다. 이 경우 핸드쉐이킹 단계에서 ROS2 네트워크 코어는 QoS 호환성 불일치(Incompatibility) 예외를 발생시키고 해당 라우팅 토폴로지 결속을 영구히 거부(Reject)한다. 이러한 선언적(Declarative) 컴포넌트 블로킹은 잘못된 프레임레이트(FPS)로 세팅된 카메라 노드가 핵심 관제망에 침투하여 시스템 주파수를 교란하는 사태를 부팅 타임(Boot-time)에 선제적으로 압살하는 가장 강력한 아키텍처적 보호 수단이다.