Real-time concurrent systems typically involve a large number of components interacting with one another in complex ways. In such systems, proper and often complex and elaborate resource access policies must be incorporated to eliminate undesirable executions and to ensure maximum possible concurrency. In this paper, we present a technique for priority inversion control when using such complex resource access policies. We present a systematic approach to design resource access control code based on a formal development methodology called the global invariant approach, along with appropriate priority inversion control code. Our solution relies only on mutex locks with priority inversion control, which are found in many real-time operating systems, and priority-based binary semaphores; therefore, our solution can be implemented on existing infrastructures. We present an implementation of our solution on VxWorks.
['Liubo Chen', 'Masaaki Mizuno', 'Gurdip Singh']
A priority inheritance-based inversion control methodology for general resource access problems