Patent ID: 8424007

Claim:
A computer-implemented method for prioritizing tasks from virtual machines, the computer-implemented method comprising: receiving, from a task scheduling agent within a first virtual machine, a request to perform a first task of an application, wherein: the request comprises priority information, the request is received at a scheduling module of a hypervisor that manages the first virtual machine, the priority information comprises an identifier of a resource needed to execute the first task, and the task scheduling agent sends the request to the scheduling module before the first task is sent to the hypervisor for execution; determining a priority of the first task based on the priority information by predicting future availability of the resource, wherein predicting the future availability of the resource comprises tracking use of the resource to identify a performance metric of the resource; scheduling the first task based on the priority of the first task by evaluating the performance metric of the resource; selecting, based on the scheduling, the first task for execution; notifying the task scheduling agent within the first virtual machine that the first task has been selected for execution.