Adaptive Partition Schedulers are a relatively new type of partition scheduler, pioneered with the most recent version of the QNX operating system. Adaptive Partitioning (or AP) allows the real-time system designer to request that a percentage of processing resources be reserved for a particular subsystem (group of threads and/or processes). The operating systems priority driven pre-emptive scheduler will behave in the same way that a non-AP system would until the system is overloaded (i.e. system-wide there is more computation to perform, than the processor is capable of sustaining over the long term). During overload, the AP scheduler enforces hard limits on total run-time for the subsystems within a partition (as dictated by the allocated percentage of processor bandwidth for the particular partition). If the system is not overloaded, a partition that is allocated (for example) 10% of the processor bandwidth, can, in fact, use more than 10%, as it will borrow from the spare budget of other partitions (but will be required to pay it back later). This is very useful for the non real-time subsystems that experience variable load, since these subsystems can make use of spare budget from hard real-time partitions in order to make more forward progress than they would in a Fixed Partition Scheduler such as ARINC-653, but without impacting the hard real-time subsystems deadlines.