An Ada Interface for Application-Defined Scheduling (original) (raw)

Application-Defined Scheduling In Ada

ACM SIGAda Ada Letters, 2003

This paper presents an application program interface (API) that enables Ada applications to use application-defined scheduling algorithms in a way compatible with the scheduling model of the Ada 95 Real-Time Systems Annex. Several application-defined schedulers, implemented as special user tasks, can coexist in the system in a predictable way. This API is currently implemented on our operating system MaRTE OS.

A POSIX-Ada Interface for Application-Defined Scheduling

Lecture Notes in Computer Science, 2002

This paper presents an application program interface (API) that enables applications running on top of a POSIX operating system to use applicationdefined scheduling algorithms in a way compatible with the scheduling model of the Ada 95 Real-Time Systems Annex. Several application-defined schedulers, implemented as special user tasks, can coexist in the system in a predictable way. This API is currently implemented on our operating system MaRTE OS.

Extending Ada's real-time systems annex with the POSIX scheduling services

ACM SIGAda Ada Letters, 2001

In this paper we propose extending the scheduling model of the Ada 95 Real-Time Systems Annex with the services specified in the Real-Time POSIX standard. These services include a round robin within priorities scheduling policy, a sporadic server scheduling policy, and execution time clocks and timers. With these services the Ada Real-Time Annex will enable addressing a larger number of application requirements.

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

Lecture Notes in Computer Science, 2005

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.

Implementing application-level sporadic server schedulers in Ada 95

Lecture Notes in Computer Science, 1997

1. 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 schedulerlevel implementation of the sporadic server algorithm, and thus an applicationlevel 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.

Programming execution-time servers in Ada 2005

Proceedings of the 13th international workshop on Real-time Ada - IRTAW '07, 2007

Much of the research on scheduling schemes is prevented from being used in practice by the lack of implementations that provide the necessary abstractions. An example of this lack of provision is the support of execution-time servers, these important building blocks are not generally available to the system developer. In this paper, we show how new Ada 2005 mechanisms can be used to construct various execution-time servers. We also outline the different server types that could form part of a library of real-time utilities for Ada.

The Ada task system and real-time applications: an implementation schema

Computer Languages, 1985

The Ada task system is critically evaluated from the point of view of real-time applications. Based on such an evaluation an abstract machine, supplying both an operational semantics and an implementation schema for it, is derived. Such a schema, depending on parameters, may supply a standard implementation following the Ada Reference Manual specifications, or may allow the user to implement ad hoc policies required by the time constraints of the specific application.

The Chance for Ada to Support Distribution and Real-Time in Embedded Systems

Lecture Notes in Computer Science, 2004

This paper presents a modification of GLADE-the current GNAT implementation of the Ada 95 Distributed Systems Annex (DSA)-to support the development of distributed applications with hard real-time requirements. This modified implementation, that we call RT-GLADE (Real-Time GLADE), is specially suitable for embedded applications composed of a small number of heterogeneous processors and communication networks, because it ensures predictable timing behaviour. A real-time model of the implementation allows the application developer to determine and optimize the overall timing behaviour by applying the corresponding schedulability analysis and priority assignment techniques. This realtime version of GLADE continues to conform to the DSA, so the entire real-time application can be built within the Ada 95 context. To implement RT-GLADE, we provide a priority-based communication network over standard Ethernet that is used to ensure predictable transmission times.

Modeling and schedulability analysis in the development of real-time distributed Ada systems

2002

The paper proposes a model for specific Ada structures that can be integrated into our methodology for modeling and performing schedulability analysis in the development phases of distributed real-time applications written in Ada 95 and using its Annexes D and E. This methodology is based on independently modeling the platform, the logical components used, and the real-time situations of the application itself (real-time transactions, workload or timing requirements). The specific models presented in the paper provide support for the automated analysis of local and remote access to distributed services; hence, if a procedure of a remote call interface is invoked from a component assigned to a remote node, the corresponding communication model (with marshalling, transmission, dispatching, and unmarshalling of messages) is implicitly integrated into the overall model that is being analyzed.