Nonpreemptive strict-priority arbitration (source code)

= Nonpreemptive strict-priority arbitration

At each service decision, choose the highest-priority pending request, preserving <FIFO queue> order within a priority class. A running owner retains the resource until it releases it; a higher-priority arrival changes the next choice rather than interrupting current work. Two priority classes can be represented by two <FIFO queues>, consulting the urgent one first.

This policy preserves the ownership safety argument of a <message-passing mutual exclusion server>. It does not by itself give <starvation freedom> to lower-priority requests when higher-priority traffic can continue indefinitely. Priority is evaluated on requests known to the arbiter at the decision point; a message not yet received cannot influence that decision.