[2025~] Embedded/Free RTOS
[Free RTOS_017] RTOS란?
heylo
2025. 3. 7. 14:02
RTOS라는 용어는 실시간 운영체제라는 뜻을 가지고 있습니다.
RTOS를 바라보는 시각은 크게 두가지가 있습니다.
첫번째, RTOS는
임베디드 시스템 전용 운영체제다.
두번째, RTOS는
실시간 지원을 위한 운영체제다.
둘 다 맞는 표현입니다.
전자의 경우는 RTOS를
단순 멀티태스킹 기능이 필요해서 쓰는 경우인 것이죠.
후자의 경우는 멀티태스킹 하면서
또한 실시간 처리가 필요해서인 거죠.
여러분은 이 RTOS를 사용하시려는 목적
혹은 가치를 어느 쪽에 두고 계십니까?
두 가지가 서로 다르지 않은 것 같지만
사실 큰 차이가 있습니다.
***
실시간이라는 말의 뜻을 우리가 정확히 이해하기 위해선
기본적으로 전제하고 들어가야 할 사실이 있습니다.
그것은 임베디드 시스템은 모두 다 리얼타임 시스템이다 라는 것입니다.
레이더 시스템, 드론, 미사일 관제 시스템, 자동차, 스마트폰,
심지어 커피 머신도 또한 실시간 시스템입니다.
왜냐하면 실시간 시스템이라고 하는 것은
그 어디에도 정확한 기준이 없어요.
위키피디아 설명을 인용해 보면
실시간 컴퓨팅 시스템이란
사용할 수 있는 자원이 한정되어 있는 상황에서
작업 수행이 요청되었을 때
이를 제한된 시간 안에 처리해 결과를 내주는 것을 말한다.
이 문장에서 가장 모호한 표현이라고 짐작되는 단어가 어떤 것일까요?
제한된 시간이라는 구절이라고 생각합니다.
임베디드 시스템들은 저마다 다른 목적과 동작 방식을 가진 것처럼
서로 다른 제한 시간을 가지고 있을 겁니다.
어떤 시스템은 1초 안에 동작을 완료하면
성공으로 인정되는 시스템이 있는가 하면,
어떤 시스템은 0.001초 안에 동작을 완료하여야만
성공으로 인정됩니다.
이 중 어떤 시스템을 실시간이라고 부를 수 있을까요?
위키피디아 설명에 따르면
둘 다 실시간 시스템이라고 부를 수밖에 없는 겁니다.
커피 자판기에 동전을 넣고 버튼을 조작한 후
최대 1초 안에 나오는 컵이
그날따라 컵이 나오는데 2초가 걸린 거예요.
그렇다고 커피자판기를 이용하는 사람이
이것을 의식하거나 큰 문제로 생각하지 는 않습니다.
대개의 사람은 그냥 그럴 수도 있다고 생각할 겁니다.
자동차를 생각해 보죠.
시속 120km로 주행 중인 자동차에서 브레이크를 밟았을 때
전방 100미터 내
그리고 3초 안에 차량이 서야 한다고 가정해 보죠.
하지만 그날따라 100미터 이내에 서지도 못했고
심지어 3초 안에 서지도 못했어요.
대부분의 사람들은 앞서 커피 머신 사례와 달리
이 사안만큼은 심각하게 받아들입니다.
왜 그럴까요?
앞서 커피 머신 컵 사례의 경우는
커피를 조금 빠르게 먹거나 늦게 먹거나 정도의 차이로만 받아들이지만
자동차 브레이크 사례의 경우는
탑승자의 안전문제와 직결되기 때문입니다.
***
이러한 상황을 고려하여 실시간 시스템은
소프트 리얼타임과 하드 리얼타임
이렇게 두 가지 용어로 구분하고 있습니다.
소프트 리얼타임은 기준시간이 있고
기준시간 안에 시스템이 응답을 못하더라도
실패가 excuse, 즉 용서가 되는 시스템을 얘기하는 겁니다.
앞서 예로 들었던 커피 머신 컵 사례가
바로 소프트 리얼타임의 케이스입니다.