Priority Inheritance on Condition Variables

09 July 2013

New Image

In this paper, a mechanism is presented to deal with priority inversion in real-time systems when multiple threads of execution synchronize on each other by means of mutual exclusion semaphores coupled with the condition variables pro- gramming abstraction. Traditional priority inheritance solutions focus on addressing priority or deadline inversion as due to the attempt to lock mutual exclusion semaphores, or deal exclusively with specific interaction patterns such as client-server ones. The mechanism proposed in this paper allows the programmer to explicitly declare to the run-time environment what tasks are able to perform a notify operation on a condition over which other tasks may be suspended through a wait operation. This enables developers of custom interaction models for real- time tasks to exploit their knowledge of the application-specific interaction model so as to potentially reduce priority inversion. The paper discusses issues in the realization of the technique, and its integration with existing priority inheritance mechanisms on nowadays operating systems.