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.
Keywords Real-Time Systems - Kernel - Scheduling - Compilers - Ada - POSIX