Introduction —
Secure Compartments —
Avoiding Process Starvation —
Fixed Partition Schedulers —
Adaptive Partitioning Schedulers —
Partition Inheritance —
Increased System Availability —
Scaling Partitions on Multicore Processors —
Pain-free Software Integration —
Conflicting Demands
[+]
Introduction
Virtually every embedded system today is connected, either physically or wirelessly, to the outside world. This network connectivity creates numerous possibilities for ...
Secure Compartments
To address these reliability and security issues, some designs place virtual compartments, or partitions, around groups of software processes and allocate ...
Avoiding Process Starvation
Nonetheless, building a reliable system involves more than partitioning functionality into separate memory domains. For many systems, ensuring resource availability ...
Fixed Partition Schedulers
To address these problems, some operating systems offer a fixed-cycle partition scheduler that allows the system designer to group processes into partitions and to allocate ...
Adaptive Partitioning Schedulers
Another approach, called adaptive partitioning, addresses these drawbacks by providing a more dynamic scheduling algorithm. Like fixed-cycle partitioning ...
Partition Inheritance
To further enforce CPU budgets, a partitioning scheduler can provide partition inheritance. The principle behind this mechanism is simple: Whenever a server process ...
Increased System Availability
When a hardware or software subsystem fails in a high availability embedded system, automated recovery functions must return the system to ...
Scaling Partitions on Multicore Processors
To date, partitioning has been used almost exclusively in single-processor environments. However, with the growing proliferation of multi-core processors ...
Pain-free Software Integration
Partitioning can also avoid the performance and reliability problems that inevitably arise when integrating multiple software subsystems. For example, an OEM may ...
Conflicting Demands
Embedded software is becoming so complex that, without some form of partitioning, system designers and software engineers will be hard-pressed to satisfy the conflicting ...