1. A method for controlling a data processing system, comprising: receiving, by an operating system executing on a data processing system, an execution request from an application, the execution request including at least one resource-defining attribute corresponding to an execution thread of the application; resolving, by the operating system, any conflicts between a plurality of the resource-defining attributes of the execution thread, wherein the plurality of resource-defining attributes includes at least two of an attribute indicating that the execution thread should be allocated a greater amount of dedicated processor power, an attribute indicating that the execution thread will compete for locks with other execution threads of the same application, an attribute indicating that the execution thread will compete for locks with other execution threads in a same lock group, an attribute indicating that the execution thread uses a greater amount of memory bandwidth, an attribute indicating that the execution thread uses a greater amount of floating-point instructions, an attribute indicating that the execution thread requires more data than can be stored in a processor cache memory, an attribute indicating that memory accesses of the execution thread are principally stream-orientated, an attribute indicating that the execution thread is likely to access more data than will fit into a cache, or an attribute indicating that the execution thread will execute a large amount of code that is selected in a pattern that is substantially random, and wherein resolving any conflicts includes ignoring redundant resource-defining attributes of the execution thread; allocating processor resources to the execution thread by the operating system according to the at least one resource-defining attribute; and allowing execution of the execution thread on the data processing system according to the allocated processor resources.