Growing Complexity —
Partitioning as a Solution —
The RTOS Scheduler —
Managing Priorities —
Watchdog Processes —
OS-controlled Time Partitioning —
Simplifying Parallel Development and Integration Testing —
"Unfreezing" the HMI —
Quantifying Development Savings —
Minimum Effort
[+]
Growing Complexity
A modern industrial control system may contain dozens or even hundreds of software tasks, all competing for a finite amount of memory and CPU time. To speed the development ...
Partitioning as a Solution
Resource partitioning offers a way to manage these complex integration issues. Using this approach, the system designer can isolate software subsystems into separate containers ...
The RTOS Scheduler
To understand the need for time partitioning, we must first consider how threads are scheduled in a typical control system. To ensure code portability ...
Managing Priorities
A priority-based scheduler isn’t a "fair share" scheduler. The highest-priority task with work to do can monopolize the CPU and starve all other tasks of CPU time. Consequently ...
Watchdog Processes
Sometimes, a group of related threads will starve other threads of CPU time. In other cases, starvation results from a single "runaway" thread that runs in a high-priority ...
OS-controlled Time Partitioning
Some RTOSs support CPU time partitioning. This concept provides a container for processes and threads, called a partition, that can be allocated a guaranteed share of ...
Simplifying Parallel Development and Integration Testing
Time partitioning eliminates the need to implement and enforce global priority schemes, and allows developers to define subsystem-level priority schemes according ...
"Unfreezing" the HMI
To appreciate these benefits, consider a simple system designed without the use of time partitioning. The system, illustrated in Figure 1, contains the following processes ...
Quantifying Development Savings
Using the build, test, find, and fix method to deal with task starvation is an expensive proposition. Often, starvation results in intermittent, unexplained system behavior rather than ...
Minimum Effort
As complexity and code size grows, the probability that task starvation and other software defects will make their way into final product also grows. The cost of resolving ...