토픽 88 / 111·병렬 처리 (Parallel Processing)
우선순위 역전 (Priority Inversion)
우선순위 역전 (Priority Inversion)
높은 우선순위 태스크가 낮은 우선순위 태스크의 락을 대기하며 중간 우선순위에 의해 간접 차단되는 현상
특징: 우선순위 체계 위반, 실시간 시스템에서 치명적, 무한 지연 가능
발생 시나리오: L(락 보유) → H(같은 자원 대기) → M(L 선점) → L 실행 불가 → H 무한 대기
Mars Pathfinder (1997): 버스 관리(H)가 기상 태스크(L)의 뮤텍스 대기 중 통신(M)에 차단, 워치독 리셋 반복, PIP 패치로 해결
해결 기법
- •PIP(Priority Inheritance): 락 보유 태스크가 대기자의 최고 우선순위 상속, 동적, 체인 블로킹 가능
- •PCP(Priority Ceiling): 자원별 천장 우선순위 설정, 락 획득 시 상승, 데드락 자동 방지, 사전 분석 필요
- •Immediate PCP: 락 획득 즉시 천장으로 상승, 최대 1회 블로킹 보장
PIP vs PCP: PIP(동적/간단/체인블로킹가능) vs PCP(정적/데드락방지/사전분석필요)
비교: 우선순위 역전(간접 차단) vs 데드락(순환 대기) vs 기아(무한 대기)
연관: Race Condition, 뮤텍스, 실시간 스케줄링, 워치독 타이머, RTOS