Thermal-aware task assignment for real-time applications on multi-core systems