The concurrent C programming language
The concurrent C programming language
Real-time systems and their programming languages
Real-time systems and their programming languages
Stack-based scheduling for realtime processes
Real-Time Systems
Aperiodic servers in a deadline scheduling environment
Real-Time Systems
ACM Computing Surveys (CSUR)
Programming with POSIX threads
Programming with POSIX threads
Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
Journal of the ACM (JACM)
Concepts and Notations for Concurrent Programming
ACM Computing Surveys (CSUR)
Monitors: an operating system structuring concept
Communications of the ACM
Synchronization in Real-Time Systems: A Priority Inheritance Approach
Synchronization in Real-Time Systems: A Priority Inheritance Approach
Operating system principles
The Java Language Specification
The Java Language Specification
Priority Inheritance Protocols: An Approach to Real-Time Synchronization
IEEE Transactions on Computers
Priority Inheritance Spin Locks for Multiprocessor Real-Time Systems
ISPAN '96 Proceedings of the 1996 International Symposium on Parallel Architectures, Algorithms and Networks
On designing lightweight threads for substrate software
ATEC '97 Proceedings of the annual conference on USENIX Annual Technical Conference
Asynchronous exception propagation in blocked tasks
Proceedings of the 4th international workshop on Exception handling
Testing for the Conformance of Real-time Protocols Implemented by Operating Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
The primary goal of a real-time system is predictability. Achieving this goal requires all levels of the system to work in concert to provide fixed worst-case execution-times. Un-fortunately, many real-time systems are overly restrictive, providing only ad-hoc scheduling facilities and basic concurrent functionality. Ad-hoc scheduling makes developing, verifying, and maintaining a real-time system extremely difficult and time consuming. Basic concurrent functionality forces programmers to develop complex concurrent programs without the aid of high-level concurrency features.Encouraging the use of sophisticated real-time theory and methodology, in conjunction with high-level concurrency features, requires flexibility and extensibility. Giving real-time programmers access to the underlying system data-structures makes it possible to interact with the system to incorporate new ideas and fine-tune specific applications. This paper explores this approach by examining its effect on a selection of crucial real-time issues: real-time monitors, timeouts, dynamic-priority scheduling and basic priority inheritance. The approach is implemented in μC++.