[OS]/Embedded

[펌] RTOS( Real-Time Operating System )

하늘을닮은호수M 2005. 5. 24. 09:21
반응형

이번에는 RTOS에 대하여 개괄적으로 정리해보려 하였습니다.

그런데너무 무모한 도전이었던 것 같아 조금 후회되네요.. ^^ 워낙 방대하고 전문적인 내용도 많아 소화가 잘 안되는군요 ^^ 일단 나름대로 정리해보고, 다음 기회에 좀더 보충해볼 생각입니다.

RTOS( Real-Time Operating System)

RTOS?

RTOS(Real-Time Operating System) Real-Time (Embedded) System 위한 운영체계이다. 따라서 먼저 Embedded System Real-time System 정의를 이해할 필요가 있다.

Embedded System

정의

마이크로프로세서 혹은 마이크로 컨트롤러를 내장하여(embedded) 미리 정해진 기능만을 수행하는 장치

cf) PC처럼 사용자가 프로그램을 바꿔가며, 여러 가지 용도로 활용할 있다면 시스템은 embedded system으로 분류하지 않는다.

응용분야

정보가전, 정보단말, 통신장비, 항공/군용, 물류/금융, 차량/교통, 사무, 산업/제어, 의료, 게임

Real-Time System

정의

예고 없이 불시에발생하는 이벤트에 대하여 정해진 시간내에 정확한 결과 제공하되, 응답시간이 예측가능하고 일정해야 하는 시스템

시간 상의 제약(Time Correctness, 시간적 정확성) 중요시되는 시스템이다.

종류

Hard Real-Time System : deadline 넘기면 처리가 의미 없음

Soft Real-Time System : deadline 넘기더라도 여전히 처리는 의미 있음, 가치는 떨어짐

Real-Time Embedded System

정의

Real-Time 요건을 충족하여야 하는 Embedded System.

범위

대부분의 컨트롤 시스템은 Real-Time Embedded System.

ex) ID 체크 보안시스템, 공장 로봇, ATM(Automated Teller Machine)

RTOS

정의

Real-Time 성격의 어플리케이션을 개발/수행하기 위한 OS.

cf) 많은 RTOS Real-Time Embedded System 위해 설계되고 사용되고 있다.

RTOS 필요한가?

Real-Time Embedded System 개발하기 위해, 멀티태스킹과 같은 기능이 중요해지고 있는데, 기존 범용 멀티태스킹 OS 시간적 정확성을 보장해주지 못해, 이를 지원해주는 RTOS 필요하다.

멀티태스킹의 필요성

Real-Time Embedded System 기능이 점점 복잡해져, S/W 개발과 유지보수가 점점 어려워지고, 많은 시간과 비용이 필요해지고 있다. 이를 해결하기 위해, 시스템의 기능을 순차적으로 실행되는 하나의프로그램으로 구현하는 대신, 여러 개의 task(multi-task) 분할하여 개발할 필요가 있다.

멀티태스킹의 형태로 개발하면 다음과 같은 잇점이 있다.

1) 코드의 개발, 수정, 유지, 보수가 보다 용이하다.

2) 이벤트에 대해 보다 신속하게 응답할 있다.

( interrupt 발생하면, 진행 중인 task 대신 interrupt 처리할 task 우선적으로 실행할 있다. )

3) 시스템의 신뢰도와 성능을 높일 있다.

cf) Real-Time Embedded System에서의 멀티태스킹:

범용 시스템의 경우, 멀티태스킹은 서로 무관한 여러 작업( ex. word, email, media-player) 동시에 수행하는 것을 말한다. 그러나 Embedded System 경우는 하나의 임무를 수행하기 위해, 동시에 수행되어야 하는 여러 task 수행하는 것을 말한다. 이들 task들은 하나의 어플리케이션을 구성하는 모듈(부품) 된다.

멀티태스킹 OS 필요성

멀티태스킹은 다음과 같은 까다로운 문제를 일으킨다. 이들 문제는 직접 해결하기 보다는 OS 도입하는 것이 훨씬 효과적이다.

1) task 경쟁의 관리

2) 데드락

3) 우선순위 역전( priority inversion )

4) 재진입 문제( Reentrancy )

5) task 통신

ex) ADSL Router

ADSL Router 경우에, PPP, IP, TCP/UDP 프로토콜을 처리하면서, 동시에 라우터 간의 동기화를 위해 RIP 메시지를 주고받아야 하고, 시스템 관리 정보를 주고받기 위해 SNMP 메시지도 발송하는 등의 여러 task들을 동시에 수행하고 있다. 이것을 multitasking 지원하는 OS 도움 없이 하나의 프로그램으로 작성할 경우, 프로그램은 심각하게 복잡해진다.

RTOS 필요성

기존의 범용 멀티태스킹 OS 경우, 상대적으로 시간에 엄격하지 않아, Real-Time 요건을

반응형