An Efficient Data Structure for Queuing Jobs in Dynamic Priority Scheduling under the Stack Resource Policy

Stack Resource Policy를 사용하는 동적 우선순위 스케줄링에서 작업 큐잉을 위한 효율적인 자료구조

  • 한상철 (서울대학교 컴퓨터공학과) ;
  • 박문주 (IBM 유비쿼터스 컴퓨팅 연구소) ;
  • 조유근 (서울대학교 컴퓨터공학부)
  • Published : 2006.06.01

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$])의 복잡도를 가지는 작업 탐색 알고리즘을 제안한다.

Keywords

References

  1. L. Sha, R. Rajkumar, and J. Lehoczky, 'Priority Inheritance Protocols: An Approach to Real-Time Synchronization,' IEEE Transactions on Computers, Vol.39, No.9, pp.1175-1185, 1990 https://doi.org/10.1109/12.57058
  2. C. L. Liu and J. W. Layland, 'Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment,' Journal of the ACM, Vol.20, No.1, pp.46-61, 1973 https://doi.org/10.1145/321738.321743
  3. M. Chen and K. Lin, 'Dynamic Priority Ceilings: A Concurrency Control Protocol for Real-Time Systems,' Real-Time Systems, Vol.2, No.4, pp.325-346 https://doi.org/10.1007/BF01995676
  4. K. Jeffay, 'Scheduling Sporadic Tasks with Shared Resources in Hard-Real-Time Systems,' In Proceedings of 13th IEEE Real-Time Systems Symposium, pp.89-99, 1992
  5. T. Baker, 'Stack-Based Scheduling of Real-Time Processes,' Real-Time Systems, Vol.3, No.1, pp.67-100, 1991 https://doi.org/10.1007/BF00365393
  6. J. P. Lehoczky and L.. Sha, 'Performance of Real-Time Bus Scheduling Algorithms,' In Proceedings of the Joint Conference on Computer Performance Modelling, Measurement and Evaluation, pp.44-53, 1986
  7. M. Park, L. Sha, and Y. Cho, 'A Practical Approach to Earliest Deadline Scheduling,' SNU-CE-TR-2001-2, 2001
  8. J. W. Liu, Real-Time Systems, Prentice-Hall, 2000
  9. K. M. Zuberi, P. Pillai, and K. G. Shin, 'EMERALDS: A Small-Memory Real-Time Microkernel,' In Proceedings of 17th ACM Symposium on Operating Systems Principles, pp.277-299, 1999 https://doi.org/10.1145/319151.319170