실시간 시스템 하에서 최적 비주기적 태스크 스케줄링 알고리즘

연성 비주기적 태스크 스케줄러 (soft aperiodic task scheduler)는 주기적 태스크 (periodic task)의 마감 시간(deadline)을 보장하고, 비주기적 태스크에 대한 평균 반응시간(average response time)을 단축시키는데 그 목적이 있다. 최근 Carnegie Mellon 대학에서 대역 보존 (bandwidth preserving)[1],[8], Optimal (slack stealing)[2],[6] 알고리즘들을 개발하여 백그라운드, 폴링과 같은 전통적인 비주기적 태스크 스케줄링 알고리즘들에 비해 반응 시간을 크게 개선하였다. 특히, Optimal 알고리즘은 고정 우선순위 (fixed-priority) 주기적 태스크 시스템에서 비주기 태스크가 FIFO로 도착할 경우에 최적에 가까운 해결법을 제시하였다. 그러나 Optimal 알고리즘은 구현 자체의 커다란 오버헤드로 인하여 실제 응용에는 부적합할 뿐 아니라, 슬랙을 찾기 위한 계산 과정에서 주기적 태스크의 실행시간에 대한 올림값 (ceiling value) 때문에 이용 가능한 모든 슬랙을 찾을 수 없다는 단점이 있다. 따라서 본 논문에서는 실행 시 오버헤드가 적고 workload가 높을 시 Optimal 알고리즘보다 더 빠른 평균 반응시간을 얻을 수 있는 우선순위 펌핑 (Priority-Pumping) 알고리즘을 제안한다. 우선순위 펌핑 알고리즘은 off-line에서 가상 단주기 스케줄링 역시간 테이블 (virtually reversed rate monotonic scheduling table)을 사용하기 때문에 구현하기가 쉽고 시스템에 대한 예측성(predictability)이 높다.