관리 메뉴

Leo's Garage

RTOS - Real Time Operating System - 3 본문

Study/RTOS

RTOS - Real Time Operating System - 3

LeoBehindK 2023. 2. 27. 21:11
728x90
반응형

RTOS의 특징

 

1. Hard Realtime

2. Scalability

3. Preemptive

4. Multitasking

5. Deterministic

6. Portability

7. Robustness

Realtime System : 정해진 시간 내에 임무를 수행하는 시스템

- 소프트 리얼타임 시스템 (Soft RealTime System)

: 가능한 한 빠르게 임무를 수행하지만 반드시 정해진 시간 내에 수행할 필요는 없다. (timeout이어도 계속 수행)

- 하드 리얼타임 시스템 (Hard RealTime System)

: 어떤 사건이 발생했을 때 정확히 동작하는 것은 물론이고 반드시 정해진 시간 내에 그 임무를 마쳐야 한다. (timeout 이면 failure)

 

BootLoader

간단하게 특정 CPU에 OS 혹은 어떤 프로그램을 돌릴 수있도록 CPU가 동작하는데 필요한 아주 기초적인 부분이나 ROM(or flash), RAM, UART)등의 기본적인 디바이스들을 동작할 수 있게 만드는 프로그램

 

TASK

void YourTask(void *pdata)
{
	for(;;){
    	Call one of OS Services:
        OSMboxPend();
        OSQpend();
        OSSemPend();
        OSTaskDel(OS_PRIO_SELF);
        OSTaskSuspend(OS_PRIO_SELF);
        OSTimeDly();
        OSTimeDlyHMSM();
    }
}

1. 무한 루프 함수

void YourTask(void *pdata)
{
	OSTaskDel(OS_PRIO_SELF);
}

2. 실행 후 스스로를 삭제하는 함수

 

Task는 절대 Return을 하면 안되므로, 항상 'void' 타입으로 선언한다.

Task State Diagram

Priority가 높다고해서, CPU 점유가 많은 것은 아니다. 

Waiting(Pending)을 적게 가져갈 수록 CPU 점유율이 높아진다. Priority가 높은 Task의 Waitng(Pending)이 길어야 한다. 

 

Task와 Stack

 

Task Stack 메모리는 정적, 동적 할당 사용 가능

동적 메모리 사용의 경우, Memory Fragmentation 현상이 발생하지 않도록 Application이 일단 한 번 생성한 Task는 프로그램 종료까지 삭제하지 않고 유지하는 경우에만 사용하는 것이 바람직하다.

 

* Memory Fragmentation이란?

기억 장치의 빈 공간 또는 자료가 여러 개의 조각으로 나뉘는 현상을 말한다. 이는 요청한 메모리의 크기가 가용한 메모리의 크기보다 작은데도 불구하고 메모리 할당이 실패할 수 있는 문제를 낳는다. 

-> 사용 공간을 줄이거나, Read/ Write 속도를 늦춘다. 

 

Task Stack 크기는 Application마다 다르다. 

- Task에서 호출하는 함수의 중복 호출 횟수

- 해당 함수에서 사용하는 모든 지역변수의 사이즈

 

 

728x90
반응형

'Study > RTOS' 카테고리의 다른 글

RTOS - Real Time Operating System - 2  (0) 2023.02.22
RTOS - Real Time Operating System - 1  (0) 2023.02.21
Comments