A method, operable by a processor, for changing a first scheduler in a virtual machine monitor comprising a scheduler manager, the virtual machine monitor being configured to create a plurality of virtual machines (13, 14 1 -14 N) and to run on a computer platform, wherein the scheduler manager comprises a function pointer array pointing to a function array of the currently active first scheduler, wherein each pointer in the function pointer array points to an active function of the currently active first scheduler; the method comprising: receiving, with the virtual machine monitor, a scheduling request from a scheduling requester being at least one of a service operating system in a service virtual machine, a guest operating system (141 1 -141 N) in a guest virtual machine (14 1 -14 N), and a timer of the computer platform; loading the second scheduler in the virtual machine monitor when the virtual machine monitor is running; and activating, with the scheduler manager, the loaded second scheduler to handle the scheduling request for a scheduling process in place of the first scheduler when the virtual machine monitor is running, wherein the activating comprises updating the function pointer array of the scheduler manager to point to active scheduler functions of the second scheduler; and calling, with the scheduler requester, the active scheduler functions of the second scheduler by dereferencing a pointer of the scheduler requester pointing to the function pointer array of the scheduler manager and calling the functions pointed by the function pointer array; wherein the loading further comprises ceasing device resources, owned by a running virtual machine in response to receiving a scheduler changing request to change the first scheduler and loading the second scheduler in the virtual machine monitor based upon a scheduler parameter of the scheduler changing request, wherein the loading further comprises unloading the first scheduler from the virtual machine monitor before loading the second scheduler. receiving, with the virtual machine monitor, a scheduling request from a scheduling requester being at least one of a service operating system in a service virtual machine, a guest operating system (141 1 -141 N) in a guest virtual machine (14 1 -14 N), and a timer of the computer platform; loading the second scheduler in the virtual machine monitor when the virtual machine monitor is running; and activating, with the scheduler manager, the loaded second scheduler to handle the scheduling request for a scheduling process in place of the first scheduler when the virtual machine monitor is running, wherein the activating comprises updating the function pointer array of the scheduler manager to point to active scheduler functions of the second scheduler; and calling, with the scheduler requester, the active scheduler functions of the second scheduler by dereferencing a pointer of the scheduler requester pointing to the function pointer array of the scheduler manager and calling the functions pointed by the function pointer array; wherein the loading further comprises ceasing device resources, owned by a running virtual machine in response to receiving a scheduler changing request to change the first scheduler and loading the second scheduler in the virtual machine monitor based upon a scheduler parameter of the scheduler changing request, wherein the loading further comprises unloading the first scheduler from the virtual machine monitor before loading the second scheduler.