Implementing Application-Level Sporadic Server Schedulers in Ada 95

The sporadic server is a scheduling algorithm which is designed to schedule aperiodic activities in hard real-time systems, and which can also be used to schedule periodic activities in distributed hard real-time systems. In distributed systems the total schedulability can be increased substantially, up to 50% more schedulable utilization, by eliminating with the sporadic server the delay effects caused by jitter. Most of the real-time schedulers included in commercial operating systems or Ada run-time systems do not provide a scheduler-level implementation of the sporadic server algorithm, and thus an application-level implementation must be used. In this paper we present several implementations of this scheduling algorithm that can be accomplished using the features defined in the Ada 95 language. The different implementations are designed using extensible data types, to take advantage of the inheritance and polymorphism features of the language.