스물두줄

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

우선순위 상속

설명 영상 우선순위 상속 설명 · 2:45

왜 배우는가: 우선순위 상속은 실시간 시스템에서 우선순위 역전으로 인한 무한 지연을 막는 핵심 동기화 기법이다. 실무에서 RTOS의 뮤텍스 설계와 응답 시간 보장에 직접 쓰이며, 시험에서는 우선순위 역전 문제와 해결 기법을 묻는 문항으로 반복해서 출제된다.

출제 이력: 제135회 1교시 11번, 제111회 1교시 4번

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

우선순위 상속은 낮은 우선순위 태스크가 공유 자원을 점유할 때 대기 중인 최고 우선순위로 일시 승격시켜 무한 우선순위 역전을 제거하는 동기화 기법이다.

  • 우선순위 상속(Priority Inheritance)
  • 우선순위 역전(Priority Inversion)
  • 무한 우선순위 역전(Unbounded Priority Inversion)
  • 뮤텍스(Mutex)
  • 임계 구역(Critical Section)
  • 우선순위 천장 프로토콜(Priority Ceiling Protocol)
  • 실시간 운영체제(RTOS)

2. 개념 풀이

쉽게 말하면 낮은 우선순위 작업이 자원을 쥐고 있는데 높은 우선순위 작업이 그 자원을 기다리는 상황에서, 낮은 쪽에 잠깐 높은 우선순위를 빌려주는 방법이다. 그러면 중간 우선순위 작업이 끼어들어 낮은 작업의 실행을 막는 일이 줄어든다.

정식 정의는 다음과 같다. 실시간 컴퓨팅에서 우선순위 상속은 무한 우선순위 역전을 제거하는 방법이며, 스케줄링 알고리즘이 자원 락을 보유한 프로세스 A의 우선순위를, A가 기다리게 하는 다른 프로세스 중 최대 우선순위로 올린다(그 값이 A의 원래 우선순위보다 높을 때). 이때 A의 원래 우선순위보다 높은 경우에만 올린다.

핵심 용어는 다음과 같다.

  • 우선순위 역전: 높은 우선순위 작업이 낮은 우선순위 작업이 쥔 자원 때문에 대기하고, 그 사이 중간 우선순위 작업이 낮은 작업을 선점하여 높은 작업이 간접적으로 밀리는 현상이다.
  • 무한 우선순위 역전: 역전의 지속 시간이 상한 없이 늘어나는 경우다. 우선순위 상속은 이 경우를 막는 것이 목적이다.
  • 임계 구역 실행: 보유 작업은 상승된 우선순위로 임계 구역을 실행하고, 락을 해제하면 원래 우선순위로 돌아간다.

3. 등장 배경과 필요성

우선순위 기반 선점형 스케줄링에서는 우선순위가 높은 작업이 항상 먼저 실행된다는 전제가 있다. 그러나 공유 자원을 뮤텍스로 보호하면 이 전제가 깨질 수 있다. 낮은 우선순위 작업이 자원을 잡은 채 선점되면, 중간 우선순위 작업들이 CPU를 계속 차지해 높은 작업의 대기가 길어진다.

이 문제는 실제 시스템에서 나타날 수 있는 우선순위 역전 사례로 알려졌다. 이 사례는 우선순위 역전이 실제 임무 실패로 이어질 수 있음을 보여 주었고, 이후 RTOS에 우선순위 상속 기능이 표준적으로 들어갔다. 우선순위 상속은 역전을 없애는 것이 아니라 지속 시간을 제한하는 방향으로 동작한다는 점을 함께 이해해야 한다.

실시간 시스템에서는 응답 시간의 상한이 곧 안전성이다. 따라서 역전을 상한 없이 두지 않는 방법이 필요하며, 우선순위 상속은 그 요구에 맞춘 기법이다. 시험에서는 이 필요성을 우선순위 역전 문제와 연결해 서술해야 점수를 받는다.

4. 구성요소·원리·절차

우선순위 상속을 구현하는 요소는 네 가지다. 각 요소가 무엇을 기억하고 어떤 값을 바꾸는지 구분해야 답안에서 흐름을 설명할 수 있다.

비교 항목역할상속 과정에서의 변화
기본 우선순위태스크에 할당된 원래 값변하지 않고 보관했다가 해제 시 복원
유효 우선순위스케줄러가 실제로 사용하는 값대기 태스크가 생기면 상승
뮤텍스 소유자자원의 락을 보유한 태스크상속을 받는 대상
대기 큐같은 락을 기다리는 태스크 목록최고 우선순위를 산정하는 기준

이어지는 내용

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

앱에서 이 단원 읽기