Engineering Agit

[RTOS study 01] - RTOS란? 본문

Personal Study/RTOS

[RTOS study 01] - RTOS란?

Sean_Kim95 2021. 1. 31. 00:23

◈ 여는 글

 본 카테고리는 RTOS의 이론적인 공부 내용을 담는다.


1. Real-time embedded system

 실시간 임베디드 시스템은 '실시간 시스템'과 '임베디드 시스템'의 특성을 동시에 갖고 있다.

<Fig. 1-1> 세 가지 시스템의 상관관계

1-1. Real-time system

 실시간 시스템은 다음과 같이 정의된다.

"실시간장치를 시스템을 계속 감시하여 장치의 상태가 바뀔 때 그와 동시에 제어동작을 구동시키는 시스템"

 실시간 시스템은 하나의 controlling system과 하나 이상의 controlled system으로 구성된다. Controlling system과 controlled system의 상호작용은 다음과 같이 세 가지로 볼 수 있다.

<Fig. 1-2> 상호작용 diagram

 


1) Periodic interaction

 상호작용이 주기적인 경우에는 controlling system이 controlled system으로 통신을 시도한다.

2) Aperiodic interaction

 상호작용이 비주기적인 경우에는 controlled system이 controlling system으로 먼저 통신을 시도한다. 이러한 상호작용의 경우에는 controlled system의 외부 이벤트가 언제 발생하는 지에 따라 통신이 진행되므로 예측이 불가하다.

3) Periodic & Aperiodic interaction

주기적 그리고 비주기적인 상호작용 특성을 모두 갖는 경우에 controlling system은 controlled system이 발생하는 이벤트와 정보를 처리해서 정해진 시간 안에 응답해야한다. 


 이와 같은 상호작용을 통해 controlling system은 외부와 상호작용한다. 이러한 실시간 시스템은 '무기방어시스템'를 예로 들 수 있다. 무기방어시스템의 경우에는 C&D(Command and decision) 시스템, radar 시스템 그리고 무기발사제어시스템으로 이루어져있다. 여기서 C&D는 controlling system이고 나머지 시스템들은 controlled system이다. Radar 시스템에서는 적의 미사일을 탐지하여 미사일의 좌표를 C&D에 전송한다. 이때의 상호작용은 비주기적이라고 볼 수 있는데 이는 적의 미사일이 오는 것이 비주기적이기 때문이다. 이에 반해 C&D와 무기발사제어시스템의 상호작용은 주기적인 통신으로 이루어진다. 이는 탐지된 이후 해당 좌표에 대한 정보를 무기발사제어시스템에 전송하는 것은 빠른 시간에 주기적인 신호를 발생하여 이루어지기 때문이다. 이를 통해 실시간 시스템의 특징을 2가지 알 수 있다.

1. Logical or functional correctness: Radar 시스템에서 탐지한 좌표가 정확해야 적의 미사일을 정확하게 타격할 수 있기 때문이다.

2. Timing correctness: 만약에 radar에서 탐지한 시점과 무기발사제어시스템에서 발사한 시점의 차이가 너무 크면 해당 미사일을 제거할 수 없기 때문에 정확히 주어진 시간 내에 정해진 process를 처리할 수 있어야한다. 

이 두 가지 특징에 의존적인 것이 바로 실시간 시스템이다. 이들 중 후자가 전자에 비해 더 중요하다고 볼 수 있다.

 추가로 다음과 같은 특징이 있다.

3. Deterministic: 실시간 시스템은 정해진 시간 안에 외부 이벤트 또는 입력에 반응하기 때문에 확정적이라고 볼 수 있다. 확정적 실시간 시스템의 모든 구성요소는 정해진대로 동작해야 하고 이러한 요소는 전체 시스템이 확정적으로 동작하는데 중요한 역할을 한다.

4. Robustness: 실시간 시스템의 '확정성'은 외부환경의 변화에 대한 적응성(adaptability)이 떨어질 수 있다. 이 적응성과 동일한 용어로 견고성(robustness)를 사용한다.

위의 두 가지 특성은 적절한 조절이 필요하다. 확정성을 높이면 견고성이 떨어지고 견고성을 높이면 확정성이 떨어지기 때문이다. 이는 개발하고자 하는 시스템의 특성에 의존적이므로 시스템에 따라 달리 설정하면 된다.


※ 추가 사항

 위에서 살펴보았듯 실시간 시스템은 시간에 의존적이며 정해진 deadline이 있고 이에따라 동작한다. 이 deadline에 대해 실시간 시스템을 '경성(hard)' 실시간 시스템과 '연성(soft)' 실시간 시스템으로 나눌 수 있다. 


1-2. Embedded system

 임베디드 시스템은 일반적으로 다음과 같이 정의된다.

"특정 기능을 수행하기 위해 하드웨어와 소프트웨어를 밀접하게 통합한 컴퓨팅 장치"

'임베디드(Embedded)'라는 용어에서 알 수 있듯 해당 시스템은 더 큰 시스템인 'embedding' 시스템의 일부로 내장된다. 임베디드 시스템은 특정 기능을 수행하는 것에는 적합하나 다른 기능은 수행할 수 없다는 제약이 있다. 


2. RTOS

 RTOS(실시간 운영체제)는 다음과 같이 정의된다.

"코드실행을 시간에 따라 정확히 관리하고, 시스템 자원을 관리하고, 응용 프로그램 개발을 위한 일관된 기반을 제공하는 일종의 프로그램"

RTOS 기반의 프로그램들은 다양한 종류가 있는데, 이렇게 다양한 요구 사항이 부합할 수 있도록 scalable한 특성을 가져야하는 것이 RTOS의 목표이다. 

 RTOS는 커널(kernal), 파일 시스템, 네트워크 프로토콜 스택, 특정 응용에 필요한 여러 가지 요소 등 다양한 모듈(module)의 조합으로 구성할 수 있다. 혹은 커널로만 RTOS를 구성하는 경우도 있다. 따라서 커널은 RTOS의 핵심요소라고 볼 수 있다. 

<Fig. 1-3> RTOS 구성요소 (출처: https://circuitdigest.com/article/understanding-rtos-and-how-to-use-it-for-embedded-systems)

 대부분의 커널은 다음과 같은 요소를 포함한다.

<Fig. 1-4> RTOS 커널의 핵심요소 (출처:http://www.embeddedlinux.org.cn/rtconforembsys/5107final/LiB0023.html)

1) Scheduler

 커널에 포함되어 있으며 언제 어떤 task를 실행할 지를 결정하는 알고리즘을 제공한다. 대표적인 스케줄링 알고리즘의 예는 'round-robin' 스케줄링과 'preemptive' 스케줄링이다.

2) Object

개발자가 실시간 임베디드 시스템용 응용 프로그램을 만들 때 사용하는 특별한 구조체이다. 대표적으로 'task', 'semaphore', 'message-queue' 등이 있다.

3) Service

 커널이 오브젝트를 대상으로 수행하는 동작을 말한다. 대표적으로 타이머 관련 작업, 인터럽트 처리, 자원관리 등이 있다.


 RTOS는 윈도우와 같은 GPOS(General Purpose Operating System)과는 다음과 같은 공통점과 차이점이 있다.

공통점 RTOS만의 특성
일정 수준의 multi-tasking 지원 임베디드 응용에서 필요로하는 보다 높은 신뢰성
SW와 HW 자원 관리 필요에 따라 OS 기능 추가/제거 가능
응용프로그램에 기본적인 OS 서비스 제공 빠른 수행 속도
응용프로그램으로부터 HW 추상화 적은 메모리 사용
  실시간 임베디드 시스템에 적합한 스케줄링 정책
  디스크 없이 ROM과 RAM만으로 시스템 구성 가능
  다른 HW 플랫폼으로 쉽게 이식 가능

RTOS를 이용한 실시간 임베디드 시스템 디자인, Qing li & Caroline Yao. 에이콘
Comments