While there has been considerable work on self-adaptive systems, applying these techniques to networked, embedded systems poses several new problems due to the requirements of embedded real-time systems. Among others, we have to consider memory and hardware limitations, as well as task schedulability and timing dependencies. The goal of this paper is to find a correct placement of software components efficiently, even though most of these individual constraints are highly intractable (NP-complete). This is a prerequisite for runtime adaptation in such domains and can be used for system optimization, extension or failure handling. We introduce an integrated model of system constraints for efficient computation of software component allocation, focusing on automotive embedded systems. For solving these, we have developed and compared two techniques based on SAT solving and Simulated Annealing, which enforce placement constraints efficiently. This reduces the size of the constraints significantly, but still leads to 2 million variables and more than 126 thousand equations in our case study with realistic automotive system settings. We show that both approaches provide solutions in several seconds on current commodity hardware, and show that SAT solving is more efficient for larger sets of equations.
['Marc Zeller', 'Christian Prehofer', 'Gereon Weiss', 'Dirk Eilers', 'Rudi Knorr']
Towards Self-Adaptation in Real-Time, Networked Systems: Efficient Solving of System Constraints for Automotive Embedded Systems