 <p>I'm not an expert in hard real-time scheduling, but this is what your algorithm sounds like to me.</p> <p>It bears very strong resemblance with what happens in aerospace systems. Your system looks more flexible, but basically it all grinds down to knowing in advance that you have the resources to run the tasks that you need to run.</p> <p>Critical embedded aerospace systems prefer to be deterministic, but as a protection against potential flaws (tasks can run longer than allocated, if let), the tasking engine will interrupt those tasks to let other taks complete. Any free cycle left can sometimes be used to complete the interrupted tasks, or the task is deemed to have failed.</p> <p>Note that you can only fail tasks that are not critical, so you must construct your critical tasks carefully, or have a priority system whereby critical tasks have a chance to complete no matter what.</p> <p>You're now back to square one: you need to make sure that the ressources are sufficient to run the tasks required in advance.</p> <p>hth,<br> asoundmove.</p>