Resource scheduling refers to the different algorithms that service providers use to deliver and allocate the different resources in a virtual environment. The premise is that resources are very limited so tenants and users do not actually own or reserve the resources that have been allocated to them, but rather they are allocated what resources they presently require based on the scheduling algorithms and that the advertised amounts of resources they have are only ceiling values. This allows the system to be lean, having no resources pinned down, wasted and unused.
The algorithms used in resource scheduling differ according to the needs of the service provider. There are currently no set standards for resource scheduling, so virtualization software vendors have come up with their own based on mathematical and proven algorithms in computer science. There are research studies being done to determine which algorithms work best for a given scenario such as the Improved Particle Swarm Optimization Algorithm and the Ant Colony Optimization Algorithm.
Some resource scheduling algorithms are not based on previously defined algorithms but on dynamic reactions to different variables such as current load and apparent need of requesting applications and virtual machines. This reactive approach seems to do the job well enough and can be fairly adaptable to most situations.