기출 priority inversion

agnusdei·2024년 10월 28일
0

Hardware & Software

목록 보기
72/136

문제

실시간 스케줄링(Real Time Scheduling) 문제 중 하나인 우선순위 전도(Priority Inversion) 상황 시나리오를 설명하고, 이에 대한 해결 기법 두 가지를 제시하세요.

답안

  1. 우선순위 전도(Priority Inversion) 시나리오

우선순위 전도(Priority Inversion)는 우선순위가 높은 작업이 낮은 우선순위의 작업에 의해 간접적으로 대기하게 되어 우선순위 역전 현상이 발생하는 상황을 말합니다. 이는 실시간 시스템에서 흔히 발생하며, 시스템의 성능 저하와 타이밍 이슈를 유발할 수 있습니다.

시나리오 예시

•	작업 A: 낮은 우선순위를 가진 작업으로, 자원(Resource) R을 점유 중입니다.
•	작업 B: 중간 우선순위를 가진 작업으로, 자원 R과 무관한 다른 작업을 수행합니다.
•	작업 C: 높은 우선순위를 가진 작업으로, 자원 R을 필요로 합니다.

동작 순서:

1.	작업 A가 자원 R을 점유한 상태에서 실행 중입니다.
2.	작업 C가 실행되며 자원 R을 필요로 하지만, 자원이 작업 A에 의해 점유되어 대기 상태가 됩니다.
3.	작업 B가 실행되며, 작업 C보다 우선 순위는 낮지만 작업 A보다 우선순위가 높기 때문에 작업 A를 선점하게 됩니다.
4.	결과적으로, 작업 C는 작업 B의 완료 시점까지 계속 대기해야 하며, 우선순위 전도로 인해 높은 우선순위를 가진 작업이 지연되는 문제가 발생합니다.

이로 인해 우선순위가 낮은 작업(A)에 의해 높은 우선순위 작업(C)이 지연되는 역전 현상이 발생하게 됩니다.

  1. 우선순위 전도 해결 기법

우선순위 전도를 방지하기 위해 사용할 수 있는 대표적인 해결 기법은 우선순위 상속(Priority Inheritance)과 우선순위 올림(Priority Ceiling) 기법입니다.

1) 우선순위 상속(Priority Inheritance)

우선순위 상속 기법은 낮은 우선순위의 작업이 높은 우선순위의 작업에 의해 필요로 하는 자원을 점유하고 있을 때, 낮은 우선순위 작업의 우선순위를 상속받아 높이는 방식입니다.

•	동작 방식: 자원을 점유 중인 낮은 우선순위 작업이 높은 우선순위 작업에 의해 대기 중일 경우, 해당 낮은 우선순위 작업이 높은 우선순위 작업의 우선순위를 임시로 상속받아 실행됩니다.
•	장점: 높은 우선순위의 작업이 지연되지 않고 빠르게 자원을 확보할 수 있게 됩니다.
•	단점: 여러 개의 높은 우선순위 작업이 대기 중일 때 상속되는 우선순위를 관리하는 데 복잡도가 증가할 수 있습니다.

2) 우선순위 올림(Priority Ceiling)

우선순위 올림 기법은 각 자원에 대한 우선순위의 한계를 미리 지정하여 자원에 접근할 수 있는 작업의 우선순위를 제한하는 방식입니다.

•	동작 방식: 자원 R에 대해 미리 정해진 우선순위 올림을 설정하고, 자원을 점유하려는 작업의 우선순위가 이 우선순위보다 높거나 같아야 접근을 허용합니다. 자원을 점유한 작업의 우선순위는 해당 자원의 우선순위 올림까지 상향 조정됩니다.
•	장점: 시스템에서 우선순위 역전 현상을 근본적으로 방지할 수 있습니다.
•	단점: 미리 자원별로 우선순위를 설정해야 하므로, 시스템 설계 시에 정확한 우선순위 산정이 필요합니다.

요약

우선순위 전도는 실시간 시스템에서 발생하는 우선순위 역전 현상으로, 낮은 우선순위의 작업이 높은 우선순위 작업을 지연시키는 문제를 유발합니다. 우선순위 상속(Priority Inheritance)우선순위 올림(Priority Ceiling)은 이러한 문제를 해결하는 대표적인 기법으로, 각각 높은 우선순위를 임시로 상속받거나 미리 정해진 우선순위 제한을 설정해 우선순위 역전 현상을 방지합니다.

0개의 댓글