1. A method comprising: defining a plurality of domains, each domain comprising a plurality of processes for execution on one of a plurality of physical processors in a processing system, the physical processors including a plurality of logical processors; assigning each of the plurality of processes to one of the plurality of domains based on a resource requirement not including processor utilization, wherein each of the plurality of processes comprises an executable code stream and belongs to exactly one domain, and wherein only one process in each domain can execute at a time; measuring processor utilization in the processing system; and allocating one of the plurality of domains to a subset of the plurality of logical processors according to the processor utilization, wherein said allocating comprises: if the processor utilization is within a first range, assigning the plurality of domains exclusively to a first subset of the plurality of logical processors; and if the processor utilization is within a second range higher than the first range, assigning one of the domains which requires a highest processor utilization exclusively to a second subset of the plurality of logical processors, wherein each of the logical processors in the second subset is implemented on the same physical processor, and excluding each of the other domains from the second subset of logical processors; if the processor utilization is within a third range higher than the second range, then assigning the one of the domains which requires the highest processor utilization and the one of the domains which requires a lowest processor utilization exclusively to the second subset of the plurality of logical processors, and excluding each of the other domains from using the second subset of logical processors.