Abstract
The Stack Resource Policy (SRP) is a real-time synchronization protocol with some distinct properties. One of such properties is early blocking; the execution of a job is delayed instead of being blocked when requesting shared resources. If SRP is used with dynamic priority scheduling such as Earliest Deadline First (EDF), the early blocking requires that a scheduler should select the highest-priority job among the jobs that will not be blocked, incurring runtime overhead. In this paper, we analyze the runtime overhead of EDF scheduling when SRP is used. We find out that the overhead of job search using the conventional implementations of ready queue and job search algorithms becomes serious as the number of jobs increases. To solve this problem, we propose an alternative data structure for the ready queue and an efficient job-search algorithm with O([log$_2n$]) time complexity.
Stack Resource Policy (SRP)는 몇 가지 독특한 특성을 가진 실시간 동기화 프로토콜이다. 그 특성 중의 하나는 초기 수행 차단(early blocking)으로서, 공유자원을 요청하는 시점에 작업의 수행을 정지시키는 것이 아니라, 작업의 수행 시점 자체를 연기하도록 한다. SRP가 EDF와 같은 동적 우선순위 스케줄링 알고리즘과 같이 사용될 경우, 초기 수행 차단을 지원하기 위해 스케줄러는 수행이 블록(block)되지 않을 작업 중 가장 우선순위가 높은 작업을 선택해야 하며, 이러한 탐색 연산은 수행 오버헤드(runtime overhead)의 원인이 된다. 본 논문에서는 SRP와 EDF를 같이 사용할 때의 스케줄러 수행 오버헤드를 분석한다. 기존의 준비 큐(ready Dueue) 구현 방식과 탐색 알고리즘을 사용하면 작업의 수가 많아짐에 따라 작업 탐색 오버헤드가 매우 커진다. 이 문제를 해결하기 위하여, 본 논문은 스케줄러가 효율적으로 작업을 탐색할 수 있는 준비 큐 자료구조와 O([log$_2n$])의 복잡도를 가지는 작업 탐색 알고리즘을 제안한다.