Integrating Application-Defined Scheduling with the New Dispatching Policies for Ada Tasks

In previous papers we had presented an application program interface (API) that enabled applications to use application-defined scheduling algorithms for Ada tasks in a way compatible with the scheduling model defined in the real-Time Annex of the language. Each application scheduler was implemented with a special task. This paper presents a new implementation in which the application scheduler actions are executed as part of the kernel on which the run-time system is based, thus increasing the efficiency. This paper also presents modifications to the proposed API that align it with the evolution of the Ada Issues being considered in the Ada 200Y standardization. First, we use the new concept of deadline as an abstract notion of urgency, to order the tasks in the scheduling queue of the underlying kernel, freeing the application scheduler of the responsibility of keeping the desired ordering of tasks, and thus simplifying it and reducing its overhead. In second place, we also consider task synchronization through protected objects using the new Stack Resource Policy proposed for the EDF task dispatching policy in Ada 200Y, which can be used in a large variety of fixed and dynamic priority scheduling policies without explicit intervention of the application scheduler.

[1]  Alfred Strohmeier,et al.  Reliable Software Technologies - Ada-Europe 2004 , 2004, Lecture Notes in Computer Science.

[2]  Michael González Harbour,et al.  Application-defined scheduling in Ada , 2002 .

[3]  Michael B. Jones,et al.  Vassal: loadable scheduler support for multi-policy scheduling , 1998 .

[4]  Bryan Ford,et al.  CPU inheritance scheduling , 1996, OSDI '96.

[5]  Mario Aldea Rivas,et al.  Michael González Harbour: MaRTE OS: An Ada Kernel for Real-Time Embedded Applications , 2001, Ada-Europe.

[6]  Alan Burns,et al.  Supporting Deadlines and EDF Scheduling in Ada , 2004, Ada-Europe.

[7]  Alok Srivastava Ada Issue 00355: priority specific dispatching including round robin , 2006, ALET.

[8]  Harry Katzan Invitation to ADA , 1990 .

[9]  Kwei-Jay Lin,et al.  Implementing a general real-time scheduling framework in the RED-Linux real-time kernel , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[10]  Pascal Leroy An invitation to Ada 2005 , 2003, ALET.

[11]  Giorgio C. Buttazzo,et al.  Rate Monotonic vs. EDF: Judgment Day , 2003, Real-Time Systems.

[12]  Alan Burns,et al.  A Round Robin Scheduling Policy for Ada , 2003, Ada-Europe.

[13]  E. L. Harder,et al.  The Institute of Electrical and Electronics Engineers, Inc. , 2019, 2019 IEEE International Conference on Software Architecture Companion (ICSA-C).

[14]  Alok Srivastava Ada Issue 00357: support for deadlines and earliest deadline first scheduling , 2006, ALET.

[15]  Michael González Harbour,et al.  Implementing an Application-Defined Scheduling Framework for Ada Tasking , 2004, Ada-Europe.

[16]  Alfred Strohmeier,et al.  Reliable Software Technologies — Ada-Europe 2003 , 2003, Lecture Notes in Computer Science.

[17]  Theodore P. Baker,et al.  Stack-based scheduling of realtime processes , 1991, Real-Time Systems.

[18]  Corporate Ieee,et al.  Information Technology-Portable Operating System Interface , 1990 .

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

[20]  E. K. Gannett,et al.  THE INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS , 1965 .