Another note: "player" == entity, "game" == work to do
My dynamic kernel idea involves making every kernel component a module. Something like a modular kernel, but not necessarily. It's about a kernel that can adapt to it's environment, and think. I do not mean artificial intelligence. The idea involves the Nash equilibrium. I realize it's a game theory, but it in my opinion can be applied to an operating system. Here are my reasons why:
The occurrence of the "Nash Equilibrium" depends on the "game" played among players under certain conditions, and if these conditions match, then the NE strategy set will be adopted. Sufficient conditions to guarantee that the Nash equilibrium is adopted are:
I think everything involving computing wants their "payoff" (performance) to be max.The players all will do their utmost to maximize their expected payoff as described by the game.
While this may never be possible, the only way to achieve this is with a bug-free program. This is a flaw in my idea.The players are flawless in execution.
The players have sufficient intelligence to deduce the solution.
The players know the planned equilibrium strategy of all of the other players.
The players believe that a deviation in their own strategy will not cause deviations by any other players.
These can all be achieved by contacting a "name server" in user space, for example asking "hey, what is 'x' player going to do?" and other communication. The kernel can generate strategies for anything incoming through the IPC, such as scheduling, context-switches, etc. For instance, if the OS notices that there is extreme overhead, it can generate a strategy to the user-level servers, dispatch it, and have them carry out the kernel's will.There is common knowledge that all players meet these conditions, including this one. So, not only must each player know the other players meet the conditions, but also they must know that they all know that they meet them, and know that they know that they know that they meet them, and so on.
Certain pieces of the kernel can also be moved from user/kernel space on the fly. Normally during bootup of such a system, almost everything starts out in user space. In conditions where the overhead starts to affect system performance, the kernel will generate a strategy to safely take the player from user space and move it to kernel space.
I understand I sounded like a crackpot throughout this entire thing, but it's somewhat theoretical and somewhat practical in my opinion. Thoughts?