1. A system implemented on a computing device, comprising: at least one processor; and memory that is accessible by the at least one processor, the memory storing components for execution by the at least one processor, the components including: a resource manager operable to maintain a resource usage budget associated with an application, the resource usage budget indicating how much of a resource of the computing device can be used by the application during execution thereof, to send at least one message to a foreground process associated with the application that is indicative of the resource usage budget, and to receive from the foreground process at least one message specifying a first portion of the resource usage budget that is to be allocated to the foreground process and a second portion of the resource usage budget that is to be allocated to at least one background task associated with the application.