스물두줄

컴퓨터시스템응용기술사 · 개념서 · 컴퓨터 구조 및 운영체제

우선순위 역전

설명 영상 우선순위 역전 · 3:21

왜 배우는가: 우선순위 역전은 우선순위 기반 실시간 시스템에서 높은 우선순위 작업이 낮은 우선순위 작업 때문에 지연되는 현상으로, 데드라인 위반과 직결되어 실무 설계 검토의 핵심 항목이다. 시험에서는 개념 정의, 발생 시나리오, 상속·상한 프로토콜 비교가 함께 묻는 형태로 반복 출제되어 기초 정의를 정확히 쓰는 능력이 먼저 요구된다.

출제 이력: 제137회 3교시 4번, 제108회 4교시 3번, 제99회 4교시 1번

1. 한 줄 정의와 핵심 키워드

답안 첫 줄 정의 문장

우선순위 역전은 높은 우선순위 작업이 낮은 우선순위 작업이 점유한 공유 자원 때문에 실행을 지연당해 우선순위 순서가 뒤집히는 현상이다.

핵심 키워드

  • 우선순위 역전(Priority Inversion)
  • 공유 자원(Shared Resource)
  • 선점(Preemption)
  • 임계 구역(Critical Section)
  • 우선순위 상속 프로토콜(PIP)
  • 우선순위 상한 프로토콜(PCP)
  • 무한 블로킹(Unbounded Blocking)
  • 중간 우선순위 작업(Medium-priority Task)

2. 개념 풀이

쉬운 말로 풀면, 중요한 작업이 자기보다 덜 중요한 작업이 쥐고 있는 물건을 기다리느라 멈추는 상황이다. 중요한 작업이 낮은 작업을 막는 것이 아니라 낮은 작업의 잠금 상태가 높은 작업을 막는다는 점이 핵심이다.

정식 정의는 다음과 같다. 우선순위 역전은 고우선순위 작업(H)이 저우선순위 작업(L)이 보유한 공유 자원을 요청해 블록되고, 그 사이 중간 우선순위 작업(M)이 L을 선점하여 H가 M의 실행이 끝날 때까지 대기하게 되는 스케줄링 상태를 말한다. 이 정의는 높은 우선순위 작업이 높은 우선순위 작업에 의해서만 지연되어야 한다는 우선순위 모델을 위반한다.

자원 점유(Resource Holding)는 작업이 잠금(뮤텍스·세마포어)을 획득한 상태를 뜻한다. 블로킹(Blocking)은 잠금이 풀릴 때까지 작업이 실행 대기 상태에 놓이는 것을 뜻한다. 선점은 실행 중인 작업이 더 높은 우선순위 작업에 의해 CPU를 빼앗기는 것이다. 역전은 자원 점유, 블로킹, 선점이 동시에 맞물릴 때 발생한다.

3. 등장 배경과 필요성

우선순위 기반 선점형 스케줄링이 실시간 시스템의 표준이 되면서 공유 자원 접근이 함께 늘었다. 세마포어나 뮤텍스로 자원을 보호하면 상호 배제는 보장되지만, 그 대가로 우선순위 역전이 생긴다. 단순 상호 배제만으로는 블로킹 시간의 상한을 알 수 없다는 점이 문제였다.

이 문제는 자원 공유가 없는 시스템에서는 생기지 않는다. 메시지 기반 시스템에서도 낮은 우선순위 메시지를 처리하느라 높은 우선순위 메시지를 무시하면 같은 역전이 일어난다. 따라서 공유 자원 접근을 설계할 때 반드시 고려해야 하는 조건이다.

Mars Pathfinder 탐사선에서 우선순위 역전 문제가 언급되며, 상속·상한 프로토콜은 이를 다루는 기법이다. 현재 VxWorks 등 상용 RTOS는 이 기법을 내장하고 있다.

우선순위 상속 프로토콜은 블로킹 시간을 임계 구역 길이 1회 이내로 제한하는 것이 목표이다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기