지노랩 /JinoLab
RTOS와 GPOS의 우선순위 역전(Priority Inversion) 차이 본문
우선순위 역전 예시 (교차로 비유)
- 낮은 우선순위 차량(L-task): 복잡한 교차로에 먼저 진입해 멈춰 섬(교차로 공유 영역 점유)
- 중간 우선순위 차량(M-task): 교차로를 그대로 지나감 → L은 교차로에서 빠져나갈 수 없어 대기
- 높은 우선순위 차량(H-task — 응급차): 교차로에 도착했으나 L이 “교차로 열쇠”를 쥐고 있어 진입 불가 → H도 대기
- 결과적으로 “가장 낮은 우선순위 L”이 교차로에서 빠져나가지 못해, “가장 높은 우선순위 H”도 한참 기다리게 됨 → 우선순위 역전(Priority Inversion)
1. 컴퓨팅에서 우선순위 역전
- L = 낮은 우선순위 태스크: 공유 자원(뮤텍스)을 잠금(교차로 진입)
- M = 중간 우선순위 태스크: CPU를 선점해 실행
- H = 높은 우선순위 태스크: 즉시 실행되어야 하지만, L이 잠근 자원이 해제되지 않아 블록(Block)
- 따라서 M이 실행되는 동안 L은 실행 기회를 얻지 못해 자원을 해제하지 못하고, H도 그 결과 계속 기다려야 함
2. GPOS vs RTOS의 우선순위 역전 처리
2.1 GPOS(일반 목적 운영체제)
- 우선순위 상속·천장 기능 없음
- 뮤텍스를 lock/unlock만 제공하며, L이 자원을 잠그면 L이 스케줄링될 때까지 M이 계속 CPU를 점유
- 이 상황에서 H는 오랜 시간 대기 → 우선순위 역전
- 결과
- “H(高) 태스크”가 기한 내 실행되지 못해 실시간 제약을 어길 수 있음
- 실시간 성능이 중요한 애플리케이션(예: 항공·자동차 제어)에는 부적합
2.2 RTOS(실시간 운영체제)
- 우선순위 상속(Priority Inheritance)
- L이 자원을 잠그고 있고, H가 대기 상태 → L의 우선순위를 일시적으로 H 수준으로 상향
- L이 CPU를 계속 점유해 자원을 해제 → L 우선순위 원복 → H 즉시 실행
- 효과: H가 기다리는 시간이 최소화되고, 우선순위 역전이 빠르게 해소
- 우선순위 천장(Priority Ceiling)
- L이 자원 획득 시 해당 자원의 “천장 우선순위”까지 올려져 실행(=사실상 최고 우선순위)
- L이 자원을 해제하면 우선순위 원복 → H가 즉시 실행
- 효과: 그 사이 M이 끼어들어도 L이 CPU를 잃지 않음 → 우선순위 역전을 근본적으로 방지
- 결과
- 우선순위 역전이 발생해도 반드시 정해진 최대 블록 시간 내에 문제를 해결
- “H(高) 태스크가 데드라인 내 안정적으로 실행”될 수 있도록 보장
3. RTOS의 핵심 스케줄링 특징
- 우선순위 기반 선점 스케줄링 (Priority-Based Preemptive Scheduling)
- 준비된 태스크 중 가장 높은 우선순위를 가진 것이 즉시 CPU 점유
- 중간·낮은 우선순위 태스크는, 더 높은 우선순위가 준비되면 즉시 선점당함
- 짧고 예측 가능한 인터럽트 지연(Interrupt Latency)
- 인터럽트 발생 → 최대 지연 시간 내에 ISR(인터럽트 처리 루틴) 실행 시작
- 커널 진입·반출 코드 오버헤드를 최소화해 지연이 작고 일정함
- 제한된 크리티컬 섹션 (Critical Section)
- 뮤텍스 등으로 보호하는 구역을 최대한 짧게 유지 → 장시간 인터럽트 차단 방지
- 시간 결정성(Time Determinism) 우선
- 시스템 처리량(Throughput)보다는 **“데드라인 준수”**를 최우선
- 태스크 개수·우선순위 체계를 사전에 설계해 타이밍 예측 가능하게 유지
4. 결론
- 우선순위 역전(Priority Inversion)
- “낮은 우선순위가 공유 자원을 점유 → 중간 우선순위가 차례로 실행 → 높은 우선순위가 자원 해제될 때까지 오래 대기”
- GPOS
- 우선순위 상속·천장 프로토콜 미구현 → 큰 시스템 부하 시 “높은 우선순위”가 기한을 놓칠 위험
- RTOS
- 우선순위 상속/천장 프로토콜 내장 → “최대 블록 시간”을 보장하며 우선순위 역전 문제를 해결
- “높은 우선순위 태스크(H)가 항상 제때 실행”되도록 보장 → 응답 지연 없이 실시간 제약 충족
실시간 시스템에서는 우선순위 역전이 곧 시스템 전체의 안전·정합성과 연결되므로, RTOS는 반드시 관련 프로토콜을 갖추고 있습니다.
'임베디드 시스템 > RTOS' 카테고리의 다른 글
| FreeRTOS 커널 받기 및 폴더 구조 정리하기 (0) | 2025.06.08 |
|---|---|
| 멀티태스킹(Multitasking)이란? (1) | 2025.06.07 |
| RTOS vs GPOS: 우선순위 역전(Priority Inversion) 개념 (0) | 2025.06.06 |
| RTOS vs GPOS: 태스크 스케줄링 관점 비교 (1) | 2025.06.06 |
| 실시간/범용 OS 비교 및 대표 RTOS (0) | 2025.06.05 |