TRANSITIVE PRIORITY INHERITANCE IN REAL-TIME MULTI-TASK APPLICATIONS
Control procedures for accessing shared resources in multi-task real-time software applications are analyzed. Two approaches to preventing priority inversion - direct and transitive procedures of priority inheritance - are analyzed in detail. To illustrate the considered notions and statements, concrete examples of multi-task application configurations are provided along with their execution diagrams under particular scenarios of system events, which demonstrate insufficient response time of tasks with sufficient computing resources and even mutual task clinches. The nomenclature of attributes to be included into task and resource descriptors for task management with the two priority inheritance procedures is proposed. The sufficient conditions for the direct procedure to prevent priority inheritance are formulated. The procedure of transitive priority inheritance is demonstrated to be capable of detecting a mutual task clinch in the application.