A robust software design methodology for real-time computer systems relies on addressing challenges related to communication, synchronization, and mutual exclusion in concurrent programming. The quality of the mechanisms used to manage the description of concurrent activities significantly affects the program's responsiveness, reliability, readability, and efficiency. The primary aim of this article is to describe the implementation of the monitor concept to address issues associated with the non-determinism of executing concurrent activities. The proposed solution introduces the event concept as a consistent management construct mainly utilized to maintain data consistency in a concurrent environment. It treats events as signals to synchronize the behavior of concurrent program activities. To overcome spontaneous concurrent program behavior the monitor concept has been expanded by adding time-guarded synchronization mechanisms of concurrent activities. Because the time notion was involved in the concurrent activity scheduling process, there is a more general discussion about how and where time-related relationships should be considered. This paper presents an implementation of the monitor concept as a library. This approach promotes portability. The proposed implementation of the monitor concept was released as a minimum viable product (MVP) and has been successfully utilized in several real-time systems as a foundational operating platform. One such system is the software for the real-time flight inspection of radio navigation aids, which serves as an example that illustrates the range of potential applications for the proposed implementation of the monitor concept.
Mariusz Postół (Thu,) studied this question.