쉽게 이해하는 : 실시간 운영체제(Realtime OS)의 핵심개념 - VxWorks, Realtime Linux

주싱·2021년 5월 7일
1

Software Engineering

목록 보기
1/12
post-thumbnail
post-custom-banner

시작하며

방산업체에 일하면서 VxWorks라는 수천만원 짜리 운영체제를 사용해 보았다. 일반 Linux 운영체제는 무료인데, Windows Home 버전은 10만원대, Windows Server 버전도 고작 100만원 대면 살 수 있는데 '실시간'이 붙은 이 운영체제는 왜 수천만원을 호가하는 건지 궁금했다.

그래서 실시간이 도대체 정확히 뭘 의미하길래 수천만원의 값어치를 하는지 '실시간'의 정확한 개념에 대해 정리해 보았다.

컴퓨터 비전공자 뿐 아니라 전공자들도 실시간에 대한 개념을 단지 '반응이 빠르다' 정도로 알고 있는 경우가 많은 것 같다. 그러나 컴퓨터 공학에서 사용하는 '실시간' 이라는 개념은 단지 반응이 빠른것을 넘어 'Deterministic' (번역하면 결정론적)한 특성을 가짐을 의미한다. 'Deterministic' 하다는 건 어떤 입력에 대한 결과가 이럴수도 저럴수도 있는게 아니라 항상 정해진 결과로 반응한다 정도로 풀어 볼 수 있다. 자세히 살펴보자.

실시간 != 빠른 반응

먼저 반응이 빠르다는 것은 아래와 같이 사용자에 의해 시스템에 어떤 요청이 발생한 시점과 시스템이 실제 요청을 처리한 시점 사이의 간격이 매우 짧은 것을 의미한다. 즉 시스템이 사용자의 요청에 매우 빠르게 응답하는 것이라 할 수 있다. 그러나 반응이 빠른 시스템이라고 해서 실시간 시스템이라고 정의 내릴 수 없다.

실시간 == Deterministic

반면에 결정론적인 반응에는 Dead Line이라는 시간 개념이 추가된다. 결정론적 반응이라 함은 그림과 같이 사용자에 의해 시스템에 어떤 요청이 발생 시 시스템이 반드시 Dead Line 시간 내에 요청을 처리함을 보장해야 하는 것이다. 결정론적 반응을 보장하는 시스템을 실시간 시스템이라고 정의한다.

구조적 차이

실시간 시스템과 비실시간 시스템을 비교해보면 아래 그림과 같이 비실시간 시스템도 평소에 Dead Line 시간 내에 반응을 하지만 상황에 따라 반응 속도가 느려질 수도 있는 구조적인 특성을 가지고 있는 것이다.

Windows 운영체제로 100msec 간격으로 어떤일을 수행하는 태스크를 스케줄링 할 수 있지만 항상 100msec를 지킨다고 보장해 주지 않는다.

반면에 VxWorks 운영체제는 운용체제가 구조적으로 이를 보장해준다. 그래서 수천만원을 호가하는 것이고, 미사일을 제어하는 것과 같이 매우 크리티컬한 시스템을 구현하는데 사용된다.

실생활의 비유

개념을 쉽게 이해할 수 있도록 실생활의 예를 들어보자.

비실시간 식당

먼저 비실시간 시스템에서의 나의 시간 흐름을 보자. Dead Line 인 12시 10분 내에 나는 밥을 반드시 먹을 수 있는가? 그럴 수도 있고 그렇지 않을 수도 있다. 즉 반드시 그렇게 됨을 보장해 주지 않는다. 왜냐하면 오늘 식당에 갔는데 오늘 따라 줄이 엄청 길면 제일 뒤에 줄을 서서는 3분안에 배식을 못할 수도 있기 때문이다.

실시간 식당

반면 실시간 시스템 식당을 보자. 오늘 식당에 갔는데 아무리 줄이 길어도 나는 제일 앞으로 가서 밥을 배식할 수 있기 때문에 나는 12시 8분이면 회의실로 갈 수 있다. 반드시 Dead Line인 12시 10분 안에 식사를 하고 사무실로 돌아 올 수 있도록 보장해 주는 식당 시스템을 가진 것이다.

결론

이와 같이 실시간 운영체제는 단지 반응이 빠른 시스템을 의미하지 않는다. 시스템이 요구되는 Dead Line 시간 내에 반드시 응답함을 보장하는 Deterministic(결정론적)한 구조를 가진 시스템을 컴퓨터 공학에서는 실시간 운영체제라고 정의한다.

profile
소프트웨어 엔지니어, 일상
post-custom-banner

0개의 댓글