고정 우선순위 스케줄링 (Fixed-Priority Scheduling, FP) — 각 태스크가 영구 고정된 우선순위를 가지는 Priority-Driven Scheduling의 한 갈래. 구현 단순성 덕분에 대부분의 RTOS가 기본 지원하며, OSTaskCreate() (uC/OS-II) / taskInit() (VxWorks) 등으로 태스크 생성 시 우선순위를 지정한다. VDX의 Task OIL PRIORITY 속성도 이에 해당 (OSEK 태스크와 ISR 참고).
Fixed vs Dynamic Priority
같은 태스크 집합도 우선순위 정책에 따라 스케줄 가능성이 갈린다.
Example
근본 문제
FP 설계에는 두 가지 근본 문제가 있다.
- 우선순위를 어떻게 할당할 것인가? (Priority Assignment)
- 해당 할당에서 태스크가 스케줄 가능한가? (Schedulability Analysis)
2번은 응답 시간 분석에서 다룬다. 아래에서는 1번에 집중한다.
우선순위 할당 정책
Random
- 성능 나쁨. 체계적 근거 부재.
Criticality Ordered (중요도 기반)
- 예: = 브레이크 제어 (중요) > = 속도 표시 (덜 중요)
- 직관적이지만 스케줄 가능성과 무관한 할당이 될 수 있음
Urgency Ordered (긴급도 기반)
- 예: = (100ms, 2ms) > = (1000ms, 15ms)
- 짧은 주기에 높은 우선순위 — RM의 아이디어
Optimal Static Assignment
| 정책 | 조건 | 규칙 |
|---|---|---|
| RM (Rate Monotonic) | Implicit deadline () | Rate가 높을수록(= 주기 짧을수록) 높은 우선순위 |
| DM (Deadline Monotonic) | Arbitrary deadline | Deadline 짧을수록 높은 우선순위 |
- RM과 DM은 implicit deadline 조건에서 동일해진다.
- RM은 FP 영역의 최적 정책이며, 증명은 Rate Monotonic 참고.
우선순위 vs 중요도
우선순위는 기능적 중요도를 반영할 수는 있지만, 다음 원칙이 우선한다.
스케줄 가능성이 보장된다면 중요도는 무관하다. (Once schedulability is guaranteed, importance does not matter.)
- 덜 중요한 태스크에 높은 우선순위를 부여하면 전체 스케줄 가능성이 개선될 수 있다.
- RM의 우선순위는 주기에서 결정되며, 짧은 주기 ≠ 높은 중요도.
중요도가 높은 태스크가 데드라인을 지키지 못할 위험이 있다면, 해당 태스크의 주기·실행 시간 설계를 바꿔 스케줄 가능성을 확보하는 쪽이 옳다.
Optimality 정의
스케줄링 알고리즘 가 최적(optimal)이라 함은, 어떤 다른 알고리즘이 태스크 집합을 스케줄 가능하게 만들 수 있으면, 도 가능하다는 의미.
- RM은 FP 최적 (implicit deadline 조건)
- EDF는 JFP 최적 (EDF)
“최적이다” = “가 실패하면 어떤 FP 알고리즘도 실패” (대우 명제).
Priority-Driven의 전제 재확인
Work-conserving이므로 ready job이 있으면 CPU는 idle할 수 없고, 스케줄링 결정은 Job 릴리스 / Job 완료 시점에만 발생한다.
워크로드·리소스 가정 (주기 태스크 모델 참고):
- 주기 태스크 집합 , 각 또는 implicit deadline이면
- 태스크 간 독립 (aperiodic / sporadic 없음)
- 싱글코어 CPU, 임의 시점 선점 가능
- 컨텍스트 스위치 오버헤드 무시