728x90
1. RTOS란?
- RTOS (Real-Time Operating System)는 특정 시간 내에 작업을 정확하게 수행해야 하는 임베디드 시스템을 위한 운영체제
- 주어진 시간 내에 작업을 완료하는 것을 보장하는 실시간성
- 일반적인 운영체제(예: Windows, Linux)와는 달리 응답 시간이 매우 중요하다.
-
2. 일반 운영체제와의 차이점
특성 일반 OS (Linux, Windows) RTOS (FreeRTOS, RTEMS)
목적 | 다목적, 범용 | 실시간, 특정 작업 |
---|---|---|
응답 시간 | 비결정적 (Best Effort) | 결정적 (Deterministic) |
우선순위 | 상대적 | 절대적 |
메모리 관리 | 가상 메모리, 페이징 | 물리적 메모리, 고정 크기 |
인터럽트 처리 | 상대적으로 느림 | 빠르고 효율적 |
스케줄링 | 일반적으로 비실시간 (Round-Robin, Time Sharing) | 실시간 (Preemptive, Cooperative) |
-
3. RTOS의 핵심 기능
- Deterministic Response (결정론적 응답)
- 모든 작업은 예측 가능한 시간 안에 완료되어야 한다.
- 응답 시간이 일정하게 유지되어야 하므로 지연(Jitter)이 적어야 함
- Task Scheduling (태스크 스케줄링)
- Preemptive Scheduling: 우선순위가 높은 작업이 낮은 작업을 중단하고 실행할 수 있음
- Cooperative Scheduling: 각 작업이 스스로 CPU를 반환할 때까지 실행됨
- Interrupt Handling (인터럽트 처리)
- 하드웨어 이벤트에 대한 빠르고 효율적인 응답을 위해 최적화된 인터럽트 관리가 필요
- Memory Management (메모리 관리)
- 일반적으로 Heap이나 Stack 같은 고정된 메모리 영역을 사용
- 메모리 누수와 할당 지연을 최소화하는 구조
- Inter-Task Communication (태스크 간 통신)
- 세마포어(Semaphore), 뮤텍스(Mutex), 큐(Queue), 메일박스(Mailbox) 등을 통해 태스크 간 데이터를 주고받을 수 있음.
-
4. RTOS의 구조
- Kernel (커널): RTOS의 핵심, 태스크 관리, 메모리 관리, 스케줄링 담당
- Task (태스크): 실제 사용자 프로그램, 각각의 독립적인 실행 흐름
- ISR (Interrupt Service Routine): 하드웨어 인터럽트를 처리하는 루틴
- IPC (Inter-Process Communication): 태스크 간의 통신 방법
-
5. RTOS 스케줄링 알고리즘
- Fixed Priority Scheduling (고정 우선순위 스케줄링)
- 각 태스크에 고정된 우선순위를 부여하여 높은 우선순위의 작업을 먼저 처리
- 예시: Rate Monotonic Scheduling (RMS), Deadline Monotonic Scheduling (DMS)
- Earliest Deadline First (EDF)
- 가장 빠른 데드라인을 가진 태스크를 먼저 스케줄링
- 동적인 스케줄링 알고리즘으로, 시스템 부하에 따라 우선순위가 변할 수 있다.
- Round-Robin (RR)
- 각 태스크가 같은 시간 간격으로 CPU를 사용
- 선점형(preemptive) 또는 비선점형(non-preemptive) 방식으로 구현 가능
-
6. RTOS의 장단점
장점
- 짧고 예측 가능한 응답 시간
- 높은 안정성과 신뢰성
- 실시간 이벤트 처리가 용이
- 메모리와 CPU 자원의 효율적인 관리
단점
- 복잡한 설계와 개발 비용
- 자원 제한이 많은 시스템에서의 최적화 필요
- 다중 작업이 복잡한 경우 스케줄링 관리의 어려움
-
7. 대표적인 RTOS 예시
- FreeRTOS: 가볍고 오픈소스, IoT와 소형 기기에 널리 사용
- RTEMS: 위성, 로봇, 항공 우주 시스템에서 사용
- VxWorks: 산업 자동화, 국방, 항공 우주에서 사용
- ThreadX: IoT, 임베디드 기기에서 널리 사용
-
8. RTOS와 임베디드 시스템의 관계
- 임베디드 시스템의 성능, 전력 효율성, 안정성을 크게 좌우하는 중요한 요소
- 실시간 제어가 필요한 시스템 (예: 자동차, 의료 기기, 로봇)에 필수적
- 딥러닝, 컴퓨터 비전과 같은 복잡한 작업도 RTOS 위에서 최적화하여 구현 가능
728x90
반응형
'Study > 임베디드 | Embedded System' 카테고리의 다른 글
[임베디드시스템] 04. TCP/IP, 통신 프로토콜 (0) | 2025.03.22 |
---|---|
[임베디드시스템] 03. XIP 실행 방식과 DRAM vs Flash Memory 비교 (0) | 2025.03.22 |
[임베디드시스템] 02. RAM 메모리 구조와 메모리 맵 개요 (0) | 2025.03.22 |
[임베디드시스템] 01. 임베디드 시스템 개요 (0) | 2025.03.17 |