Task Allocation in Embedded Real-Time Systems
Recent trends in embedded systems show a shift from large monolithic software-systems towards smaller reusable software-components. This offers increased flexibility, but also leads to additional design-decisions which need to be taken. The design-decisions include: which application software-component to allocate onto which processor; how to configure data-transmission between processors via networks and gateways; how to schedule task-execution and data-transmission. While most related work in the literature addresses the scenario that the system is designed "from scratch", this work instead focuses on designing the system in an evolutionary manner. This also means that legacy decisions have to be taken into account, which poses signicant constraints on the design space. In addition, the system shall be designed in a way that it is extensible towards future modications. The main contributions of this work are constraint-aware task allocation, network configuration (especially frame packing) which minimizes bandwidth-utilization, extensible network configuration, and backward-compatible network configuration.