Adaptive Partitioning

In many computer systems, it's important to protect different applications or groups of applications from others. You don't want one application—whether defective or malicious—to corrupt another or prevent it from running.

To address this issue, some systems use virtual walls, called partitions, around a set of applications to ensure that each partition is given an engineered set of resources. The primary resource considered is CPU time, but can also include any shared resource, such as memory and file space (disk or flash).

Figure 1. Static partitions guarantee that processes get the resources specified by the system designer.

Partitions provide:

By using multiple partitions, you can avoid having a single point of failure. For example, a runaway process can't occupy the entire system's resources; processes in other partitions still receive their allocated share of system resources.

Even without adaptive partitioning, QNX Neutrino's process model provides significantly more protection than some other operating systems do, including:

Typically, the main objective of resource partitioning on other systems is to divide a computer into a set of smaller computers that interact as little as possible; however, this approach isn't very flexible. In QNX Neutrino, adaptive partitioning takes a much more flexible view.

Our partitions are adaptive because: