Project Home
Project Home
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
wiki1116: Adaptive_Partitioning_Technology (Version 7)

History -- or What's a Partition and why it is Adpative?#

Some customers were asking us to run virtual machines, or even for ARINC 653 compliance, so they could better manage their cpu time and memory resources. "Not real time" we thought. So we asked them what problems they really wanted to solve. It came down to three basic scenarios:
  1. The untrusted application: the ability to put a possibly nasty application into some kind of contrained box so it cannot hog resources to the point it will limit the est of the system
  2. Selling Througput: the ability to divide a system by capacity and performance into several pieces, sell each piece to a different customer, and then charge for the capabilities (speed, througput) of that piece
  3. Emergency Reserve: the ability to reserve a chunk of cpu time and memory so emergency recovery shell still work in overload and degreation situations.

Hmm. We thought. Virtualization-like solutions can do that but they are inflexible and not real time. We figured we could divide, or partition, system resouced in a way we can reconfigure on-the-fly and make it real-time too. So there.

The Tech#

The basic ideas are to
  1. provide guarantees of cpu time and memory available to applications
  2. provide limits, or controls, on time and space consumption
  3. allow for dynamic reconfiguration

There are two components, a fair share scheduler, actually a partition scheduler and a memory control system called, "memory partitioning". They provide time and space partitions, respecitvely. The two kinds of partitions can be used idependantly, or used together. A third piece, partitioning of filesystem resources is Comming Real Soon Now(TM).