Stack Resource Policy
Last updated
Last updated
Similar to PCP, but with one rule about the beginning of execution , to guarantee that all required semaphores are free.
Uses also the concept of priority ceiling.
Defines the preemption level (π) as the capacity of a task to cause preemption on another one (static parameter).
A task may only start executing when its own preemption level is higher than the one of the executing task and also higher than the ceilings of all the semaphores in use ( system ceiling ).
The SRP protocol only allows that a task starts executing when all resources that it needs are free.
The upper bound of the blocking time (B) is equal to the one of the PCP protocol, but it occurs in a different time - at the beginning of the execution instead of at the shared resource access.
Each task can block only once by any task with a lower preemption level that uses a semaphore whose ceiling is at least equal to its preemption level.
Worst-case blocking time.
Schedulability analysis with SRP.
Same equations as for PIP and PCP. Bi computes as for PCP.
Smaller blocking than PiP, free of chain blocking and deadlocks.
Smaller number of preemptions than PCP, intrinsic compatibility with fixed an dynamic priorities and to resources with multiple units (i.e., that allow more than one concurrent access, e.g. buffer arrays).
The hardest to implement (preemption test much more complex, requires computing the system ceiling, etc.).
Not transparent to the programmer (semaphore ceilings, etc.)