Using large families for handling priority requests
ACM SIGAda Ada Letters
Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
Journal of the ACM (JACM)
Architecture of the space shuttle primary avionics software system
Communications of the ACM
ACM SIGAda Ada Letters
A testbed for investigating real-time Ada issues
IRTAW '88 Proceedings of the second international workshop on Real-time Ada issues
Real-time software engineering in Ada: observations and recommendations
TRI-Ada '89 Proceedings of the conference on Tri-Ada '89: Ada technology in context: application, development, and deployment
Asynchronous communication in Ada
IRTAW '89 Proceedings of the third international workshop on Real-time Ada issues
Ada usage/performance specification
IRTAW '90 Proceedings of the fourth international workshop on Real-time Ada issues
Ada real-time systems and basic priority inheritance
ACM SIGAda Ada Letters
An implementation of asynchronous I/O for Ada
WADAS '88 Proceedings of the fifth Washington Ada symposium on Ada
Interactors: a real-time executive with multiparty interactions in C++
ACM SIGPLAN Notices
Delivering real-time behaviour
Domain modeling and the duration calculus
Hi-index | 0.00 |
The goal in real-time scheduling is to satisfy the timing requirements of application jobs which often have hard deadlines. There are two aspects to Ada's scheduling policies which are detrimental to achieving this goal. First, Ada's constraints on the language's implementation limit the definition of priority and the task scheduling algorithm to preclude the use of the best algorithms for scheduling jobs with hard deadlines. Second, information about task priority is not used when selecting a task from an entry queue or when choosing among branches of a selective wait statement. Instead, FIFO and arbitrary disciplines are used, respectively, which can unnecessarily lead to missed deadlines, even for very low levels of processor utilization. We suggest some areas for change to make the language more suitable for building real-time systems.