초록 close

본 연구에서는 다양한 실시간 스케줄링 알고리즘들을 구현할 수 있는 재구성 가능한 스케줄러 모델을 제안한다. 제안 모델은 기본적인 작업(job) 디스패처(dispatcher)와 소프트웨어 타이머를 제공하는 하위 계층의 스케줄링 틀(framework)과 이를 기반으로 응용에 적합한 특정 스케줄링 알고리즘을 구현하는 상위 계층의 태스크 스케줄러로 구성된다. 시스템 개발자는 상하 구성 요소간 정보 교환을 위한 커널 내부 인터페이스만 준수한다면, 커널 하부 메커니즘과는 독립적으로 새로운 스케줄링 알고리즘을 구현할 수 있다. 한번 구현된 태스크 스케줄러는 향후 새로운 시스템 구축시 재사용 가능하다. 실시간 리눅스(Real-Time Linux) 5 에 제안된 스케줄링 틀을 구현한 후, 이를 기반으로 대표적인 실시간 스케줄링 알고리즘들을 시험적으로 구현하여 보았다. 이를 통해 다양한 스케줄링 알고리즘들을 하부의 복잡한 커널 메커니즘 수정 없이 독립적으로 개발할 수 있음을 확인하였다. 또한 실험을 통해 두 단계 분리된 구조를 가진 제안 모델의 스케줄링 오버헤드가 하나로 통합된 기존 일체형 스케줄러와 큰 차이가 없음을 확인할 수 있었다.


This paper proposes a reconfigurable scheduler model that can support various real-time scheduling algorithms. The proposed model consists of two hierarchical upper and lower components, task scheduler and scheduling framework, respectively. The scheduling framework provides a job dispatcher and software timers. The task scheduler implements an appropriate scheduling algorithm, which supports a specific real-time application, based on the scheduling framework. If system developers observe internal kernel interfaces to communicate between two hierarchical components, they can implement a new scheduling algorithm independent of complex low kernel mechanism. Once a task scheduler is developed, it can be reused in a new real-time system in future. In Real-Time Linux 5 , we implemented the proposed scheduling framework and several representative real-time scheduling algorithms. Throughout these implementations, we confirmed that a new scheduling algorithm could be developed independently without updates of complex low kernel modules. In order to confirm efficiency of the proposed model, we measured the performance of representative task schedulers. The results showed that the scheduling overhead of proposed model, which has two separated components, is similar to that of a classic monolithic kernel scheduler.