Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ What is Adaptive Partitioning?

Media Vault

Software Library

Restoration Projects

Artifacts Sought

What is Adaptive Partitioning?

[Previous] [Contents] [Index] [Next]

What is Adaptive Partitioning?

This chapter includes:

  • What are partitions?
  • System requirements
  • Adaptive partitioning scheduler

What are partitions?

As described in the Adaptive Partitioning chapter of the System Architecture guide, a partition is a virtual wall that separates competing processes or threads.

Partitions let the system designer allocate minimum amounts of system resources to each set of processes or threads. The primary resource considered is CPU time, but can also include any shared resource such as memory and file space (disk or flash).


Note: The initial version of Adaptive Partitioning implements the budgeting of CPU time, via the adaptive partitioning scheduler. Future releases will address budgeting memory and other resources.

Traditional partitions are static and work best if there's little or no dynamic deployment of software; in dynamic systems, static partitions can be inefficient.

Adaptive partitions are more flexible because:

  • you can dynamically add and configure them
  • they behave as a global hard realtime scheduler under normal load, but can still provide minimal interrupt latencies when the system is fully loaded
  • they distribute a partition's unused budget among partitions that require extra resources when the system isn't loaded

You can introduce adaptive partitioning without changing -- or even recompiling -- your application code, although you do have to rebuild your system's OS image.

System requirements

For adaptive partitioning scheduling to operate properly, your system should meet some requirements:

  • On x86 systems, turn off any BIOS configuration that may cause the processor to enter System Management Mode (SMM). A typical example is USB legacy support. If the processor enters SMM, the adaptive partitioning scheduler still works correctly, but CPU percentages apportioned to partitions will be inaccurate.

    A simpler reason for preventing SMM is that it introduces interrupt latencies of about 100 microseconds at unpredictable intervals.

  • Adaptive partitioning isn't supported on 386 and 486 processors, because they don't have a timebase counter, which the scheduler needs in order to do microbilling.

Adaptive partitioning scheduler

The adaptive partitioning scheduler is an optional thread scheduler that lets you guarantee minimum percentages of the CPU's throughput to groups of threads, processes, or applications. The percentage of the CPU time allotted to a partition is called a budget.

The adaptive partitioning scheduler has been designed on top of the core QNX Neutrino architecture primarily to solve these problems in embedded systems design:

  • guaranteeing proper working when the system is fully loaded
  • preventing unimportant or untrusted applications from monopolizing the system

Before looking at the details of the scheduler, let's give it a try.


[Previous] [Contents] [Index] [Next]

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026