Underload

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

  • System partition, with a 70% budget
  • partition Pa, with a 20% budget
  • partition Pb, with 10% budget

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 realtime scheduler. This is simply typical of QNX Neutrino scheduling.

Normal load
Figure 1The thread scheduler's behavior when underloaded.
Page updated: