MPCP assumes that task and resources have been assigned and statically bound to process and scheduler of any synchronization processor know the priorities and resource requirement of all task requiring the global resources managed by the processor.

According to this protocol, the scheduler of each processor schedules all local task as well as global critical section on a fixed priority basis. It also controls the resources excess according to priority ceiling protocol. When a task uses a global resource, its global critical section executes on its synchronization processor of resource. If global critical section task has lower priority than local task on synchronization processor then local task may delay the completion of global critical section and increases the blocking time of remote task. To avoid this, MPCP schedules all global critical section with higher priorities than local task. If the lower priority is π lower then scheduler schedules the global critical section of a task with priorities πi at priority (πi - π lower ).

For example in a system of task with priorities 1 – 5 , global critical section of a task with priority 5 is scheduled at priority 0 which is higher than 1.

Consider a system with two processor P1 and P2 as shown in fig below.


The job J2, J4, J5 are local to processor P1 which is synchronization processor for resources dotted( R2 ). Dotted is the local resource because it is required by local jobs J2 and J4 only. Job J1 and J3 are local to processor P2 which is synchronization processor for the resource black (R1). Balck is the global resource required by J1, J2 and J3 as shown in timing diagram.

In the example, J2 is directly blocked by J4 when J2 requests dotted at time 4 and J1 is directly blocked by J3 at time 3 when it needs black. The execution of global critical section may be delayed by global critical section of other jobs on synchronization processor. For example, the global critical section of job J2 on P2 is delayed by global critical section of higher priority job J1 in time interval 6 to 11. This is called blocking time of J2.

At time 11, J1 exits from global critical section and its priority becomes lower than priority of global section of J2 i.e. priority of J1 is 1 and priority of J2 = 2- 5 = -3 which is higher than J1. As the result J2 preempts J1 on processor in the interval (11, 12]. The total delay suffered by a job due to preemption by global critical section of lower priority job is a considered as blocking time.

A job may be delayed by a local higher priority job whose execution is suspended on the local processor when higher priority jobs executes on a remote processor. This time is also considered as a blocking time in multiprocessor system. For example J2 is suspended at time 7 and it is still not completed in the time interval (13, 14) and J5 released at 13 cannot start until time 14.