Blocking and priority inversion

A ready job is blocked when it is prevented from executing by a
lower-priority job; a priority inversion is when a lower-priority
job executes while a higher-priority job is blocked

• These occur because some jobs cannot be preempted:

– Many reasons why a job may have non-preemptable sections

• Critical section over a resource

• Some system calls are non-preemptable

• Disk scheduling

– If a job becomes non-preemptable, priority inversions may occur, these
may cause a higher priority task to miss its deadline

– When attempting to determine if a task meets all of its deadlines, must
consider not only all the tasks that have higher priorities, but also non-
preemptable regions of lower-priority tasks

• Add the blocking time in when calculating if a task is schedulable


Feel free to contact the admin for any suggestions and help.