Providing security

Many systems are vulnerable to Denial of Service (DOS) attacks. For example, a malicious user could bombard a system with requests that need to be processed by one process. When under attack, this process would overload the CPU and effectively starve the rest of the system.

Figure 1Without adaptive partitioning, a DOS attack on one process can starve other critical functions.

DOS attack in an unpartitioned system

Some systems try to overcome this problem by implementing a monitor process that detects CPU utilization and invokes corrective actions when it deems that a process is using too much CPU. This approach has a number of drawbacks, including:

  • Response time is typically slow.
  • This approach caps the CPU usage in times when legitimate processing is required.
  • It isn't infallible or reliable; it depends on appropriate thread priorities to ensure that the monitor process obtains sufficient CPU time.

Adaptive partitioning can solve this problem by providing separate budgets to the system's various functions. This ensures that the system always has some CPU capacity for important tasks. Threads can change their own priorities, which can be a security hole, but you can configure the thread scheduler to prevent code running in a partition from changing its own budget.

Figure 2With scheduler partitions, a DOS attack is contained.

DOS attack in a partitioned system

Since adaptive partitioning can allocate any unused CPU time to partitions that require it, adaptive partitioning doesn't unnecessarily cap control-plane activity when there's a legitimate need for increased processing.

Page updated: