Underload

Underload occurs when partitions demand less CPU time than their defined budgets, over the averaging window. For example, if we have three partitions:

with light demand in all three partitions, the output of the aps show command might be something like this:

                    +-------- CPU Time -------+-- Critical Time --
Partition name   id | Budget |  Max |    Used | Budget |      Used
--------------------+-------------------------+-------------------
System            0 |    70% | 100% |   6.23% |  200ms |   0.000ms
Pa                1 |    20% | 100% |  15.56% |    0ms |   0.000ms
Pb                2 |    10% | 100% |   5.23% |    0ms |   0.000ms
--------------------+------------------+--------------------------
Total               |   100% |      |  27.02% |

In this case, all three partitions demand less than their budgets.

Whenever partitions demand less than their budgets, the thread scheduler chooses between them by picking the highest-priority running thread. In other words, when underloaded, the thread scheduler is a strict real time scheduler. This is simply typical of QNX Neutrino scheduling.

Figure 1. The thread scheduler's behavior when underloaded.