실시간이란 시스템이 내부 이벤트나 외부 이벤트와 같은 서비스 요청에 대하여 정해진 시간 내에 요구되는 정확한 응답을 수행해야 하는 상태를 의미한다.[3] 이는 계산의 논리적 결과가 올바른 것을 넘어, 해당 결과가 산출되는 물리적 시점이 시스템의 정확성을 결정짓는 핵심 요소가 된다.[2]
1. 개요
실시간이란 시스템이 내부 이벤트나 외부 이벤트와 같은 서비스 요청에 대하여 정해진 시간 내에 요구되는 정확한 응답을 수행해야 하는 상태를 의미한다.[3] 이는 단순히 계산의 논리적 결과가 올바른 것을 넘어, 해당 결과가 산출되는 물리적 시점이 시스템의 정확성을 결정짓는 핵심 요소가 된다.[2] 즉, 데이터의 처리 값뿐만 아니라 그 처리가 완료되는 시간적 측면이 시스템 동작의 필수적인 조건으로 작용한다.[2]
과거의 컴퓨터가 복잡성을 점진적으로 통합하며 발전해 왔다면, 1990년대 이후에는 고성능 개인용 컴퓨터의 등장과 함께 기술적 진보가 이루어졌다.[1] 현대에 이르러서는 임베디드 시스템이 휴대전화, 카메라, 자동차 등 다양한 분야에 내장형 컴퓨터 형태로 광범위하게 보급되며 사용자에게 투명하고 연속적인 상호작용을 제공한다.[1] 이러한 흐름 속에서 임베디드 프로세서는 높은 기능적 요구사항을 충족하기 위해 데스크톱 컴퓨터의 고성능 기술을 계승하며 발전하고 있다.[1]
실시간성의 구현 방식은 요구되는 시간 제약 조건의 엄격함에 따라 크게 두 가지 유형으로 구분된다.[3] 소프트 실시간은 간혹 정해진 시간에 정확히 대응하지 못하더라도 시스템 전체의 동작에 중대한 손실을 초래하지 않는 특성을 가진다.[3] 반면, 하드 실시간은 정해진 시간 내에 대응이 이루어지지 않을 경우 시스템에 치명적인 오류가 발생하게 된다.[3] 최근의 시스템 설계에서는 이 두 가지 성격이 공존하는 경향이 뚜렷하며, 설계자는 두 기능이 동시에 구현되더라도 각자의 목적을 충분히 달성할 수 있도록 구성해야 한다.[3]
이러한 실시간 기술은 항공 교통 관제 시스템, 네트워크 멀티미디어 시스템, 지휘 통제 시스템 등 높은 신뢰성을 요구하는 다양한 분야에서 필수적으로 활용된다.[2] 시스템의 응답성과 시간 제약을 적절히 관리하지 못할 경우, 단순한 성능 저하를 넘어 사회적·물리적 재난으로 이어질 수 있는 위험이 존재한다.[2] 따라서 현대의 제어 시스템 및 임베디드 시스템 설계에서는 실시간 요구사항을 만족시키기 위한 정밀한 아키텍처 설계가 매우 중요한 과제로 다루어진다.
2. 실시간 시스템의 작동 원리
실시간 시스템의 작동 과정은 외부 또는 내부에서 발생하는 이벤트를 감지하는 시점부터 시작된다. 시스템은 서비스 요청이 유입되면 이를 처리하기 위해 프로세서를 할당하며, 이벤트 발생부터 실제 처리가 시작될 때까지의 지연 시간을 최소화하도록 설계된다. 이때 시스템의 동작은 단순히 계산 결과의 논리적 정확성만을 따지는 것이 아니라, 결과가 산출되는 물리적인 시점까지 고려하여 관리된다.[2]
결과를 출력하기까지 소요되는 처리 시간은 사전에 설정된 데드라인을 반드시 준수해야 한다.[3] 만약 시스템이 정해진 시간 내에 응답을 완료하지 못할 경우, 그 영향력에 따라 시스템의 성격이 구분된다. 하드 실시간 시스템은 마감 시간을 지키지 못할 경우 시스템 전체에 치명적인 오류를 초래할 수 있는 구조를 가진다.[3] 반면 소프트 실시간 시스템은 간헐적으로 정확한 시간에 대응하지 못하더라도 시스템 동작에 큰 손실이 발생하지 않는 특성을 보인다.[3]
현대의 실시간 시스템은 단일 목적을 수행하는 독립적 형태를 넘어, 하드 실시간과 소프트 실시간 기능이 공존하는 복합적인 구조를 띠는 경향이 있다. 임베디드 시스템 내의 고성능 임베디드 프로세서는 이러한 다양한 요구사항을 충족하기 위해 데스크톱 컴퓨터의 고성능 기술을 계승하며 발전해 왔다.[1] 따라서 시스템 설계 시에는 항공 교통 관제 시스템, 네트워크 멀티미디어 시스템, 지휘 통제 시스템 등 각 분야의 특성에 맞는 시간적 제약 조건을 정밀하게 반영해야 한다.[2]
3. 실시간성의 분류
실시간성은 요구되는 응답 시간의 준수 여부와 그에 따른 결과의 심각성에 따라 크게 두 가지 유형으로 구분된다.[3] 소프트 실시간은 서비스 요청에 대해 간혹 정확한 시간에 대응하지 못하는 상황이 발생하더라도, 시스템 전체의 동작에 있어 커다란 손실이 발생하지 않는 특성을 가진다.[3] 이는 시간적 제약을 완벽하게 지키지 못하더라도 시스템의 기능적 연속성을 유지할 수 있는 구조를 의미한다.[3]
반면 하드 실시간은 정해진 시간 내에 정확한 대응이 이루어지지 않을 경우 시스템에 치명적인 오류가 발생하는 엄격한 특성을 지닌다.[3] 이러한 시스템은 시간 준수 실패가 단순한 성능 저하를 넘어 시스템의 파괴나 심각한 사고로 직결될 수 있으므로 매우 높은 수준의 신뢰성이 요구된다.[2] 따라서 하드 실시간 시스템은 결과의 논리적 정확성뿐만 아니라 물리적인 산출 시점까지 철저하게 관리되어야 한다.[2]
현대의 임베디드 시스템은 단일한 목적만을 수행하는 과거의 방식에서 벗어나, 하드 실시간과 소프트 실시간의 특성이 공존하는 경향을 보인다.[3] 하나의 시스템 내에 두 가지 실시간 요구사항이 동시에 설계되는 경우가 많으며, 이 경우 각 기능이 설계 목적에 부합하는 실시간 성능을 발휘할 수 있도록 구현되어야 한다.[3] 이러한 복합적인 설계 방식은 항공 교통 관제 시스템, 네트워크 멀티미디어 시스템, 지휘 통제 시스템 등 다양한 분야에서 나타난다.[2]
4. 시스템 아키텍처 및 구성 요소
컴퓨팅 시스템은 더 작은 규모의 체계 안에 더 높은 수준의 복잡성을 통합하는 방향으로 진화해 왔다. 1990년대에는 개인용 컴퓨터가 슈퍼컴퓨터에 준하는 성능을 구현하며 고기능화되는 과정을 거쳤다.[1] 현대에 이르러 사용자는 휴대전화, 카메라, 자동차와 같은 임베디드 컴퓨터와 지속적이고 투명하게 상호작용하며 이를 일상적으로 사용한다.[1] 이러한 환경에서 임베디드 시스템은 사용자에게 별도의 인지 없이도 자연스럽게 작동하는 특성을 보인다.[1]
실시간 시스템의 기본 모델은 제어 대상이 되는 환경, 이를 측정하는 센서, 처리 결과를 반영하는 구동장치, 그리고 이를 연산하는 컴퓨터 시스템으로 구성된다.[4] 고성능 임베디드 프로세서는 시스템의 핵심적인 연산 능력을 제공하는 역할을 수행한다. 최근의 프로세서들은 기능적 요구사항이 점차 높아짐에 따라, 기존 데스크톱 컴퓨터에서 사용되던 고성능 기술들을 상속받아 적용하기 시작했다.[1] 시스템의 아키텍처는 중앙처리장치인 CPU, 데이터를 저장하는 메모리, 그리고 외부와 데이터를 주고받는 입출력 장치가 유기적으로 결합하여 구성된다.[4] 각 구성 요소는 실시간 응답성을 보장하기 위해 정해진 시간 내에 데이터를 처리하고 전달해야 한다.[2]
과거에는 하나의 시스템이 하나의 기능에 집중했다면, 오늘날의 아키텍처는 하드 실시간과 소프트 실시간 기능이 공존하는 경향이 뚜렷하다.[2] 따라서 설계 단계에서부터 두 가지 실시간 특성이 동시에 구현되더라도, 시스템이 의도한 목적을 충분히 달성할 수 있도록 정교한 설계가 요구된다.[3] 이는 항공 교통 관제 시스템, 네트워크 멀티미디어 시스템, 지휘 통제 시스템 등 다양한 분야에서 필수적인 요소로 작용한다.[2]
5. 실시간 시스템의 개발 및 보안
임베디드 시스템을 개발할 때는 시스템의 목적에 부합하는 신뢰성 확보가 필수적이다. 현대의 실시간 시스템은 하드 실시간과 소프트 실시간 기능이 공존하는 경향이 뚜렷하므로, 두 가지 요구사항을 동시에 만족시키기 위한 정밀한 설계가 요구된다.[3] 개발 과정에서는 시스템이 수행해야 하는 기능적 요구사항과 정해진 시간 내에 응답을 완료해야 하는 시간적 제약을 모두 충족할 수 있도록 개발 방법론을 적용해야 한다.[3]
보안 수준을 설정할 때는 시스템이 처리하는 데이터의 중요도와 물리적 시간의 민감도를 고려해야 한다. 실시간 시스템의 올바른 동작은 계산의 논리적 결과뿐만 아니라 결과가 산출되는 물리적 시점에도 의존하기 때문이다.[2] 따라서 보안 위협으로 인해 응답 시간이 지연될 경우, 이는 단순한 데이터 유출을 넘어 시스템 전체의 결정론적 동작을 저해하는 치명적인 오류로 이어질 수 있다.[2]
공격으로부터 시스템을 보호하기 위해 시스템 기능 제한을 통한 방어 메커니즘을 구축할 수 있다. 이는 불필요한 프로세스나 통신 프로토콜의 실행을 차단하여 공격 표면을 최소화하는 방식이다. 특히 임베디드 프로세서의 성능을 활용하여 자원 할당을 엄격히 관리함으로써, 외부의 비정상적인 요청이 실시간성을 저해하지 않도록 제어하는 것이 중요하다.[3]
6. 주요 활용 사례
임베디드 시스템은 현대 사회에서 실시간 기술이 가장 활발하게 적용되는 분야 중 하나이다. 휴대전화, 카메라, 자동차와 같은 기기들은 사용자가 인지하지 못하는 사이 임베디드 프로세서를 통해 지속적이고 투명하게 작동하며 실시간 기능을 수행한다.[1] 이러한 고성능 임베디드 프로세서는 과거의 데스크톱 컴퓨터에서 사용되던 고성능 기술을 계승하여, 더욱 복잡해진 기능적 요구사항을 충족하는 방향으로 발전하고 있다.[1]
특정한 목적을 달성하기 위해 설계된 전용 시스템에서도 실시간성은 핵심적인 요소로 작용한다. 항공 교통 관제 시스템이나 네트워크 멀티미디어 시스템, 그리고 지휘 통제 시스템은 대표적인 전용 실시간 시스템의 사례에 해당한다.[2] 이러한 시스템들은 단순히 계산의 논리적 결과만을 도출하는 것이 아니라, 결과가 생성되는 물리적인 시점까지도 시스템 동작의 정확성을 결정짓는 중요한 기준으로 삼는다.[2]
실시간 기술은 일상생활 전반에 걸쳐 편재적 기술로서 자리 잡고 있다. 현대의 시스템은 단일한 목적만을 수행하는 독립적인 형태를 넘어, 하드 실시간과 소프트 실시간의 특성이 공존하는 복합적인 구조를 띠는 경향이 있다.[3] 따라서 설계 단계에서부터 다양한 실시간 요구사항을 동시에 만족시키면서도, 각 시스템이 의도한 목적에 부합하는 충분한 기능을 발휘할 수 있도록 정밀하게 구현된다.[3]
8. 인용 및 각주
[1] Architectures for Real-Time, ericrotenberg.wordpress.ncsu.edu(새 탭에서 열림)
[2] Real-Time Systems, users.ece.cmu.edu(새 탭에서 열림)
[3] realtime system, www.dooroos.org(새 탭에서 열림)
[4] Basic Model of a Real-time System, www.geeksforgeeks.org(새 탭에서 열림)