Scheduling hard real-time systems