onlyonemac wrote:
I think an OS that uses some form of AI to manage system resources sounds like an interesting concept, although in practice it might be too unpredictable to be useful and performance will probably be an issue. A simple form of AI would be "self-optimisation" by measuring resource usage and performance and then attempting to adjust weightings in the resource management subsystems to minimise resource usage and maximise performance, and this isn't likely to induce too much of a performance penalty of its own and should be fairly predictable especially as the weightings could be saved/restored and manually adjusted or "frozen" to specific values.
I do exactly this -- but for very
coarse resource management (e.g., "should I bring another processor online, now?") and to evaluate "apparent successes" (e.g., the results of a particular task binding).
And, yes, performance is an issue -- you can't make these sorts of decisions
at run-time; but, you can review your past decisions and use that information in an expert system to refine your choices for
future decisions. For example, if binding a particular set of tasks to a processor node resulted in none of them missing deadlines, then that might be a good choice for the next similar scheduling/task binding decision. OTOH, if several tasks missed their deadlines -- or, achieved very low "value functions" -- you might want to try something different, next time.
This makes sense if you have periodic and "typically repeating" workloads -- why go through the entire decision making process, again, each time you have to make the decision? Why not save what you learned from the previous time you made the decision? (esp as many problems are NP-hard and can't be definitively solved).
And, if you have the AI framework in place (because you are using it in your applications to manage the resources that the
user perceives), then there is little cost in leveraging that capability FBO the OS!