1. A method of scheduling tasks for a plurality of applications, each application associated with a separate application task queue for identifying application tasks that are ready for execution, the method comprising: receiving a request from an application to place a task of the application in an application task queue; placing the task in the application task queue based on a set of intra application scheduling policies defined for the application; receiving a request to identify a next task to execute; identifying an application task queue from which the next task is to be executed, the application task queue identified based on a set of inter application scheduling policies defined across the plurality of applications; and scheduling a task from the identified application task queue for execution based on said intra application scheduling policies.