Книга: Real-Time Concepts for Embedded Systems
16.4.2 Ceiling Priority Protocol
16.4.2 Ceiling Priority Protocol
In the ceiling priority protocol, the priority of every task is known, as are the resources required by every task. For a given resource, the priority ceiling is the highest priority of all possible tasks that might require the resource.
For example, if a resource R is required by four tasks (T1 of priority 4, T2 of priority 9, T3 of priority 10, and T4 of priority 8), the priority ceiling of R is 10, which is the highest priority of the four tasks.
This access control protocol follows the rules in Table 16.2 when a task T requests a resource R.
Table 16.2: Ceiling priority protocol rules.
Rule # | Description |
---|---|
1 | If R is in use, T is blocked. |
2 | If R is free, R is allocated to T. T's execution priority is raised to the priority ceiling of R if that is higher. At any given time, T's execution priority equals the highest priority ceiling of all its held resources. |
3 | T's priority is assigned the next-highest priority ceiling of another resource when the resource with the highest priority ceiling is released. |
4 | The task returns to its assigned priority after it has released all resources. |
This access control protocol is shown in Figure 16.10.
Figure 16.10: Ceiling priority protocol example.
With the ceiling priority protocol, the task inherits the priority ceiling of the resource as soon as the task acquires the resource even when no other higher priority tasks contend for the same resource. This rule implies that all critical sections from every sharing task have the same criticality level. The idea is to finish the critical section as soon as possible to avoid possible conflicts.
- 16.4 Priority Inversion
- 16.4.1 Priority Inheritance Protocol
- 16.4.3 Priority Ceiling Protocol
- ceiling()
- 5.5.5 Priority-aware mutexes
- 5.5.5.1 Priority ceiling mutexes
- 5.5.5.2 Priority inheritance mutexes
- 8.1.4 Beware of priority inversion
- Свойство Priority
- SERVER PRIORITY CLASS
- Complex protocols and connection tracking
- Using Priority Scheduling and Control