1. A method for managing tasks for a virtual machine, the method comprising: maintaining a table of information regarding tasks for the virtual machine, wherein the table includes information regarding set of priorities for performing each of the tasks, and information regarding an amount of resources in a set of resources that are needed to complete each of the tasks; responsive to receiving a request to perform a task for the virtual machine in a set of data processing systems, identifying an amount of resources to perform the task for the virtual machine, wherein identifying the amount of resources to perform the task for the virtual machine comprises: identifying a type of the task and set of properties of the virtual machine; receiving information regarding a set of previous occurrences of the type of the task in the set of data processing systems; generating a model of the amount of resources and an amount of time the amount of resources are needed to perform the task based on the type of the task, the set of properties of the virtual machine, and the information regarding the set of previous occurrences; and identifying the amount of resources to perform the task from the model; identifying a set of resources in the set of data processing systems available to complete the task for the virtual machine; identifying a set of priorities for a set of phases of the task; and scheduling operations on the table of information to utilize the set of resources to perform the task for the virtual machine based on the set of priorities identified for the set of phases of the task.