When creating a real-time software system, developers will typically spend a substantial amount of time performing model validation. Performing such validation in a platform-independent way is not only less complicated with device abstraction and simplification, but also allows for a much wider selection of validation and design tooling. However, such an approach does present the designer with an additional challenge: how to make that final design transition from the platform-independent model to an implementation on a specific real-time operating system (RTOS).
In this paper, the authors look at a specific problem in the transition to an RTOS-specific model, which occurs when the operating system does not support as many priority levels as the design requires. Typically, the designer solves this problem by choosing which tasks to merge based on previous knowledge of the design and flexibility in the periodicity of each of the tasks making up the software system. The authors propose an automated approach that identifies harmonic tasks with distinct priority levels that can be merged to reduce the number of priority levels required of the RTOS.
The authors formulate a mixed-integer linear programming problem that aims to minimize device utilization. Constraints are derived that allow the minimization to identify harmonic tasks with distinct priorities while ensuring that none of the real-time constraints on response times, resource blocking, and deadlines are violated. Despite possibly being an overly complex solution to a simple problem, there is no denying that the approach works well.