Learning
토픽 17 / 85·CPU 스케줄링

우선순위 역전 (Priority Inversion)

우선순위 역전 (Priority Inversion)

높은 우선순위 태스크가 낮은 우선순위 태스크가 보유한 공유 자원(락)을 대기하는 동안, 중간 우선순위 태스크가 CPU를 선점하여 고우선순위 태스크가 간접적으로 차단되는 현상 (관126, 컴137 기출)

특징: 우선순위 체계 위반, RTOS에서 치명적, 선점형 스케줄링+공유 자원에서 발생

발생 시나리오(L-M-H 3단계)

Mars Pathfinder 사례(1997): 정보 버스 태스크(H)가 기상 태스크(L)의 뮤텍스 대기 중 통신 태스크(M)에 의해 차단, 워치독 타이머 리셋 반복 → PIP 적용으로 해결

해결 기법

  • PIP(Priority Inheritance Protocol): 자원 보유 태스크가 대기 중인 가장 높은 우선순위를 일시 상속, 자원 해제 시 원래 우선순위 복원, 체인 상속 가능
  • PCP(Priority Ceiling Protocol): 각 자원에 최대 사용 우선순위(Ceiling) 사전 할당, 태스크는 자신의 우선순위가 모든 잠긴 자원의 Ceiling보다 높을 때만 락 획득

PIP vs PCP 비교

적용사례: VxWorks(PIP), POSIX pthread(PTHREAD_PRIO_INHERIT), AUTOSAR OS, 항공·의료 RTOS

연관: 스케줄링, 우선순위, 뮤텍스, RTOS, 데드락