Constant bandwidth server revisited

The Constant Bandwidth Server (CBS) is an algorithm for providing temporal protection and real-time guarantees to real-time sporadic tasks. Recently, an implementation of this algorithim called SCHED_DEADLINE has been included in the Linux kernel. Therefore, the CBS algorithm is now used to serve more generic tasks than do not obey to the classical sporadic task model. One important type of tasks which was not considered by the original CBS algorithm is the so called "self-suspending task model", where a task instance can suspend itself waiting for an external event. Even if the original algorithm is adapted so that the temporal protection property continues to hold, it is difficult for developers to provide guarantees and to select the most appropriate server parameters for such tasks. This paper investigates the problem of using the CBS algorithm for serving self-suspending tasks, by analysing it from a theoretical point of view and showing how to select the server parameters (budget and periods) for self-suspending tasks. Finally, the effectiveness of these proposals is shown through both simulations and real experiments on Linux / SCHED_DEADLINE.

[1]  Scott A. Brandt,et al.  Improving soft real-time performance through better slack reclaiming , 2005, 26th IEEE International Real-Time Systems Symposium (RTSS'05).

[2]  Stefan Savage,et al.  Processor capacity reserves: operating system support for multimedia applications , 1994, 1994 Proceedings of IEEE International Conference on Multimedia Computing and Systems.

[3]  Scott A. Brandt,et al.  Integrating best-effort scheduling into a real-time system , 2004, 25th IEEE International Real-Time Systems Symposium.

[4]  Sanjoy K. Baruah,et al.  Greedy reclamation of unused bandwidth in constant-bandwidth servers , 2000, Proceedings 12th Euromicro Conference on Real-Time Systems. Euromicro RTS 2000.

[5]  James H. Anderson,et al.  Task Scheduling with Self-Suspensions in Soft Real-Time Multiprocessor Systems , 2009, 2009 30th IEEE Real-Time Systems Symposium.

[6]  Giorgio C. Buttazzo,et al.  Integrating multimedia applications in hard real-time systems , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[7]  Luca Abeni,et al.  Stochastic Analysis of a Reseveration Based System , 2001 .

[8]  Jay K. Strosnider,et al.  The Deferrable Server Algorithm for Enhanced Aperiodic Responsiveness in Hard Real-Time Environments , 1987, IEEE Trans. Computers.

[9]  Ragunathan Rajkumar,et al.  Linux/RK: A Portable Resource Kernel in Linux , 2005 .

[10]  Hennadiy Leontyev,et al.  LITMUS^RT : A Testbed for Empirically Comparing Real-Time Multiprocessor Schedulers , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[11]  Noah Watkins,et al.  A Flexible Scheduling Framework Supporting Multiple Programming Models with Arbitrary Semantics in Linux , 2009 .

[12]  L. Abeni,et al.  Stochastic analysis of a reservation based system , 2001, Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001.

[13]  Claudio Scordino,et al.  An EDF scheduling class for the Linux kernel ∗ , 2009 .

[14]  Giorgio C. Buttazzo,et al.  Resource Reservation in Dynamic Real-Time Systems , 2004, Real-Time Systems.

[15]  Luigi Palopoli,et al.  An object‐oriented tool for simulating distributed real‐time control systems , 2002, Softw. Pract. Exp..

[16]  Binoy Ravindran,et al.  ChronOS Linux: A best-effort real-time multiprocessor Linux kernel , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[17]  Shuichi Oikawa,et al.  Resource kernels: a resource-centric approach to real-time and multimedia systems , 2001, Electronic Imaging.

[18]  Jonathan Walpole,et al.  Analysis of a reservation-based feedback scheduler , 2002, 23rd IEEE Real-Time Systems Symposium, 2002. RTSS 2002..

[19]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[20]  Shinpei Kato,et al.  ExSched: An External CPU Scheduler Framework for Real-Time Systems , 2012, 2012 IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.