상 | 우선순위 역전 (세마포어 문제) |
[우선순위 역전(Priority Inversion) 정의] 낮은 우선순위를 가진 Task에 의해 높은 우선순위를 가진 Task가 임계 영역 대기 때문에 Block 되어 수행되지 못하는 현상 해결방법: 우선순위 상속(Priority Inheritance) 기법, 우선순위 올림(Priority Ceiling) 기법 |
토픽 이름 | 우선순위 역전 |
분류 | OS > 병행 제어 > 우선순위 역전 |
키워드(암기) | - 정의 : 높은 우선순위 Task가 임계영역 대기, 블록 되어 수행되지 않는 현상 - 우선순위 역전의 해결방안 1) 우선순위 상속 (Priority Inheritance) 2) 우선순위 올림 (Priority Celling) |
암기법(해당경우) |
기출문제
번호 | 문제 | 회차 |
1 | 실시간 스케줄링(Real Time Scheduling) 문제 중 하나인 우선순위전도(Priority Inversion) 상황 시나리오를 설명하고 이에 대한 해결기법 2가지를 제시하시오. | 기99-응-4-1 |
2 | 3개 태스크 (task1, task2, task3)가 실행되고 이들의 우선순위는 task1 > task2 >task3 이다. 우선순위 역전 (Priority Inversion) 이 발생하는 경우와 이를 해결하기 위한 방법을 위 3 개 태스크를 예로 들어 설명하시오 | 기108-응-4-3 |
3 | 우선순위 역전현상 에 대해 설명하시오. | 모1111-응-1-15 |
4 | 우선순위 역전(Primary Inversion)을 설명하고 해결방안 두 가지를 설명하시오. | 모1207-응-1-3 |
5 | 우선순위 역전(Priority Inversion)현상의 해결방법을 설명하시오. | 모1305-응-1-4 |
6 | 실시간 스케줄링 기법에 대하여 다음을 설명하시오. 가. RM과 EDF를 각각 설명하시오. 나. 우선순위 역전현상(Priority Inversion)의 발생원인을 설명하시오. 다. 우선순위 역전현상의 해결방안 2가지를 설명하시오. |
합105-2일-2-7 |
7 | 우선순위 역전(Priority Inversion) 현상에 대해 설명하시오. | 합111-3일-1-6 |
8 | 4. 운영체제 Task의 우선순위 역전현상이 발생하는 경우와 이를 해결하는 방법에 대하여 설명하시오. | 모의_2018.07.관.2 |
9 | 7. Task1, Task2, Task3 이 실행 중일 때 발생 가능한 우선순위 역전(Priority Inversion)현상을 설명하고, 이에 대한 해결 기법을 설명하시오. (단, Task의 우선 순위는 Task 1 > Task 2 > Task 3 이다.) |
합숙_2019.08-응-3일 |
I. 실시간 스케줄링의 문제점, 우선순위 역전의 개요
- 낮은 우선순위를 가진 Task에 의해 높은 우선순위를 가진 Task가 임계영역 대기 때문에 블록 되어 수행되지 않는 현상
II. 우선순위 역전의 발생 개념도
순서 | 설명 |
1 | task3이 공유자원을 액세스하기 위해 바이너리 세마포어를 가지고 수행 |
2 | 운영체제 스케줄러에 의해 우선순위가 높은 task1이 수행됨 |
3 | task1이 task3이 먼저 획득한 세마포어를 얻으려 하고, task3이 그 세마포어를 반환할 때까지 WAITING 상태가 됨 |
4 | 스케줄러에 의해 task3이 수행됨 |
5 | 스케줄러에 의해 task2가 수행됨(중간에 중간순위인 task2가 들어와 CPU 차지) 이 때, task3의 우선 순위가 task2보다 높음에도 불구하고 task2가 먼저 수행되는 우선순위 역전 현상이 발생함 |
6 | task2의 수행이 종료되면 다시 task3이 수행됨 |
7 | task3이 세마포어를 반환 |
8 | task1 수행 |
- task 1이 가장 높은 우선순위를 가졌으나 결국 가장 나중에 수행됨
III. 우선순위 역전의 해결방안
가. 우선순위 상속 (Priority Inheritance)
- 우선순위 낮은 Task3을 임시로 자원요청한 상위우선순위를 부여해서 먼저 실행 - Deadlock 걸릴 확률 있음 (Task3이 Task1 점유자원을 요청하는 경우) |
나. 우선순위 올림 (Priority Celling)
- 어떤 스레드가 세마포어(뮤텍스)를 소유하고 있는 동안은 지정된 우선순위에서 동작 - 단, 스레드의 우선순위가 지정된 우선순위 올림 값보다 작은 경우에만 우선순위 변경 - 세마포어(뮤텍스)를 이미 잠근 쓰레드는 다른 쓰레드들에 의해 선점되지 않고 자신의 작업을 종료 가능 |
“끝”
반응형
'정보관리기술사 > CA_OS' 카테고리의 다른 글
모니터/Monitor 동기화 (1) | 2023.11.26 |
---|---|
교착상태(Deadlock) (0) | 2023.11.25 |
Semaphore (1) | 2023.11.23 |
Mutual Exclusion(상호배제)/뮤텍스 (1) | 2023.11.22 |
RAID (1) | 2023.11.21 |