DOI QR코드

DOI QR Code

Improvement of Linux Schedulability Analysis for Simultaneous Support of Real-Time Task Groups and Deadline Task

실시간 태스크 그룹과 데드라인 태스크의 동시 지원을 위한 리눅스 스케줄링 가능성 분석 개선

  • Received : 2017.03.09
  • Accepted : 2017.04.28
  • Published : 2017.07.15

Abstract

Linux is a general-purpose operating system that supports several schedulers, allowing different schedulers to coexist. In addition, Linux uses the Control Group (cgroup) to reserve CPU resources for task groups that follow the real-time (SCHED_FIFO, SCHED_RR) and non-real-time (SCHED_NORMAL) scheduler policies, except for the deadline scheduler (SCHED_DEADLINE). The cgroup performs the schedulability analysis to guarantee the reserved CPU resource as much as possible. However, current implementation of the schedulability analysis does not distinguish between deadline tasks and real-time tasks. Therefore, if these deadline tasks and real-time task groups coexist, there is a case where the resource reservation for the real-time task group is rejected. In this paper, we analyze the problems in the schedulability analysis for real-time task groups of Linux cgroups and propose patches to solve these problems.

리눅스는 범용 운영체제로써 다양한 스케줄러를 지원하며, 서로 다른 스케줄러가 런타임 시에 혼재하는 상황을 허용한다. 또한, 리눅스는 Control Group(cgroup)을 활용하여 데드라인 스케줄러(SCHED_DEADLINE)를 제외한 실시간(SCHED_FIFO, SCHED_RR) 및 비실시간(SCHED_NORMAL) 스케줄러 정책을 따르는 태스크들에 대해서 그룹 단위의 CPU 자원 예약을 지원한다. cgroup은 스케줄링 가능성 분석을 수행하여 예약된 CPU 자원을 최대한 보장하려고 한다. 하지만 현재 리눅스의 실시간 태스크 그룹에 대한 스케줄링 가능성 분석은 데드라인 태스크와 실시간 태스크를 구분하지 못하는 문제에 의해서 두 스케줄러를 사용하는 태스크가 혼재할 때 실시간 태스크 그룹의 자원예약을 거부하는 경우가 발생한다. 본 논문은 리눅스 cgroup의 실시간 태스크 그룹에 대한 스케줄링 가능성 분석에서 발생하는 문제를 분석하고, 이를 해결하는 커널 패치를 제안한다.

Keywords

Acknowledgement

Supported by : 정보통신기술진흥센터

References

  1. D. Merkel, "Docker: lightweight linux containers for consistent development and deployment," Journal of Linux Journal 2014, Vol. 2014, No. 239, pp. 2, May. 2014.
  2. R. Rosen, "Linux containers and the future cloud," Journal of Linux Journal 2014, Vol. 2014, No. 240, pp. 3, Mar. 2014.
  3. P. Turner, B. B. Rao and N. Rao, "CPU bandwidth control for CFS," Proc. of the Linux Symposium 2010, pp. 245-254, 2010.
  4. libcgroup, 2010, Mar. 31, Libcg - Library for Control Groups, Generated Documentation for libcg, [Online]. Available: http://libcg.sourceforge.net/html/index.html (downloaded 2017, Jul. 10)
  5. B. Brandenburg and J. Anderson, "Integrating hard/ soft realtime tasks and best-effort jobs on multiprocessors," Proc. of the 19th Euromicro Conference on Real-Time Systems, pp. 61-70, 2007.
  6. I. Shin, A. Easwaran and I. Lee, "Hierarchical scheduling framework for virtual clustering of multiprocessors," Proc. of the 2008 Euromicro Conference on Real-Time Systems, pp. 181-190, 2008.
  7. Y. G. Yim, H. C. Jo, H. W. Jin and S. I. Lee, "Strict CPU Resource Reservation for CFS Group Scheduling on Linux," Proc. of the KIISE Winter Conference 2014, pp. 1190-1192, 2014. (in Korean)
  8. Y. G. Yim, H. C. Jo, H. W. Jin and S. I. Lee, "Schedulability analysis of linux task groups for hard real-time systems," Proc. of the 17th Real Time Linux Workshop (RTLWS), pp. 5-12, 2015.
  9. Ingo Molnar, 2014, Oct.13, [GIT,PULL] scheduler tree changes for v3.18, [Online]. Available: https://patchwork.kernel.org/patch/5073931/ (downloaded 2017, Jul. 10)
  10. kernel dot org, 2017, Jul. 02, Linux Kernel Documentation, maintainers - The Linux Kernel Archives. Available: https://www.kernel.org/doc/linux/MAINTAINERS (downloaded 2017, Jul. 10)