Книга: 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.

Оглавление книги


Генерация: 1.153. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз