SW/OS

RTOS 개론

seungH 2024. 1. 28. 13:49

운영체제란? 

컴퓨터의 입출력에 대한 기본 기능을 지원하고 컴퓨터에서 동작되는 프로그램 관리 및 서비스를 제공한다.

운영체제를 사용하면 TASK가 많은 프로그램을 개발할때 쉬워지며 효과적으로 프로그램을 관리할 수 있다.

또한 멀티태스킹을 지원하기 때문에 다양한 프로그램을 실행할 수 있다.

 

단점으로는 S/W overhead 증가로 수행속도 영향이 있을 수 있다.

멀티태스킹이 수행되면 다른태스크로 전환되는 지점에서 scheduling과 context switching이 진행된다. 현재까지 하고 있던 태스크의 과정을 저장하고, 다음태스크의 순서를 정하는 것이다. 하지만 이러한 연산이 추가되는 것이기 때문에 task가 별로 없는 프로그램을 수행할 때는 rtos보다 펌웨어가 속도적인 부분에서 이득이 될 수 있다.

운영체제와 커널?

커널은 운영체제의 핵심적인 역할을 하는 소프트웨어이다. 하드웨어의 자원을 프로세스에 나워주고 스케줄러, 태스크관리, 큐, 세마포어, 뮤텍스, 타이머, 임계영역과 같은 시스템적인 동작을 수행한다.

이는 운영체제의 정체성을 결정하기 때문에 매우 중요하며, 페도라, 우분투 등이 리눅스로 묶이는 것은 이들이 리눅스커널을 사용하고 있기 때문이다.

 

RTOS란?

Real Time Operating System

이벤트에 대한 응답이 주어진 시간 내에 이루어지는 것이다. 이는 각 태스크에 우선순위를 부여하여 가능해 진다.

임베디드시스템은 상용 운영체제와 다르게 특수한 목적을 위하여 제작되었으며 각 테스크가 수행되는 것을 보장해야 한다. 예로 방산의 미사일같은 무기를 생각한다면 1ms의 오차도 용납이 되지 않는다.

RTOS는 Hard Realtime으로 설계가 되었기 때문에 주어진 작업을 결정된 시간 내에 처리하도록 보장하는 운영체제이다.

 

임베디드시스템에 운영체제가 필요한 이유

단순화된 기능이나 순차적인 설계가 필요한 임베디드시스템이라면 F/W설계가 더 빠르고 효율적이지만, 복합화된 기능, 동시에 2개 이상의 프로세스가 작동되어야 하는 Multi Taskin issue가 있는 프로그램이라면 운영체제가 필요하다. 임베디드시스템에서는 범용 운영체제보다 Real-Time 운영체제가 더 필요하다.

 

RTOS vs General Purpose OS

 

운영체제 카운터

운영체제 동작을 위한 가장 중요한 하드웨어 정보가 된다.

Cortex-M에서는 Processor에 내장된 System Timer를 운영체제 타이머로 주로 사용을 하게 된다. 1tick마다 인터럽트를 발생하게 하여 이를 활용하여 스케줄링을 진행하게 된다.

'SW > OS' 카테고리의 다른 글

FreeRTOS Porting  (0) 2024.02.04
세마포어, 뮤텍스  (0) 2024.01.28
멀티태스킹, 멀티스레딩, 멀티프로세싱  (0) 2024.01.28