Real-Time Systems이란?
Computing system whose specification includes both logical and temporal correctness
- Logical correctness: produces correct outputs
- Temporal correctness: produces outputs at the right time
- Usually "embedded systems"
Real-Time System은 컴퓨팅 시스템이 잘 돌아가는 지 판단하는 요소로 시간적 요소가 추가됩니다. 논리적으로 올바른 값을 계산했어도 이를 주어진 시간 안에 계산해내지 못하면 Real-Time System으로 가치가 없습니다.
Real-Time System은 Embedded system에서 자주 사용됩니다. Embedded System은 주로 특정 작업만 하도록 설계된 경우가 많고 시간 안에 처리하는 것이 중요한 일에 많이 사용되기 때문입니다. 자동차나 항공기에 들어가는 Embedded system의 결과가 1, 2초 늦어지는 것만으로도 큰 피해로 이어질 수 있습니다.
GPOS vs RTOS

범용적으로 사용되는 컴퓨터와 Real-Time 임베디드 시스템은 위 그림과 같은 특징을 가집니다. General Purpose Computers에는 GPOS가 Real-Time Embedded Systems에는 RTOS가 주로 사용됩니다.

GPOS의 경우 각각의 프로세스는 자신만의 CPU와 메모리를 가졌다는 illusion을 가집니다. 얼마만큼의 CPU를 사용할지 고민할 필요가 없습니다.
RTOS는 프로세스라는 개념이 없고 Task라는 개념이 있습니다. Task는 single address space에서 돌아갑니다. 하나의 프로세스에 여러 개의 스레드가 존재하는 것과 흡사합니다. 이 Task가 얼마의 주기로 실행되고 얼마의 CPU time이 필요한지 개발자가 이해하고 이를 OS에게 요청해야 합니다.
Firmware vs RTOS

Firmware 기반의 코딩
- main function에 들어가 초기화 후 진행
- superloop에서 모든 걸 다함
RTOS 기반의 코딩
- timing requirement를 명시
- 쓰레드 프로그래밍과 흡사. main function은 중요하지 않음. function을 등록하면 알아서 돌아감
인더스트리에도 firmware 기반의 프로그램을 만드는 경우가 있습니다. 하지만 firware 기반의 프로그램은 작은 어플리케이션을 만드는 데는 충분히 유용하지만, 제품이 커지고 복잡해지면 integration이 어려워집니다. main function은 하나인데 200명이 그 곳에 프로그래밍을 하는 사태가 발생할 수 있습니다. 또한, RTOS는 SW 통합 시 각 SW 모듈이 그들의 timing requirements를 만족시키는 데 중요한 역할을 합니다.
RTOS
RTOS는 Real-Time application을 위한 OS이며 RTOS에서 제공하는 서비스는 다음과 같습니다.
- Task management
- Scheduling
- Resource sharing (semaphore, mutex, ...)
- Inter-task communication
- Memory management
- Device driver (CAN, Timer, ... )
- Filesystem
- ...
RTOS를 사용하면 RTOS가 제공해주는 기능(Services)을 사용할 수 있습니다.
OSEK/VDX

자동차 업계에서는 AUTOSAR의 근본이 되는 OSEK OS를 사용합니다. OSEK은 제품이 아닌 규격(spcificiation)입니다. 해당 규격에는 OSEK이 어떻게 생겨야 되는지에 대한 명세가 나와있습니다.
RTOS 용어 정리
김종찬 교수님 실시간 운영체제 및 소프트웨어 강의를 정리한 내용입니다. RTOS를 접하다 보면 Task, deadline, period와 같은 용어들을 자주 만나게 됩니다. 주로 RTOS의 특징인 시간 제약과 관련된 용
spacebike.tistory.com
Reference
'Operating System > RTOS' 카테고리의 다른 글
[OSEK OS] ISR (0) | 2021.07.26 |
---|---|
[OSEK OS] Task와 Event (0) | 2021.07.10 |
RTOS 용어 정리 (0) | 2021.06.30 |
OSEK OS란 - OSEK OS overview (1) | 2021.04.07 |