Patent ID: 8776061

Claim:
A computing device comprising: a bus; a processor in communication with the bus; a first processor resource in communication with the bus; a second processor resource in communication with the bus; and, a computer readable storage medium in communication with the bus, the computer readable storage medium storing instructions, which when executed, configuring the processor to monitor allocations and deallocations of the first processor resource and the second processor resource, wherein monitoring the allocations and the deallocations of the first processor resource and the second processor resource comprises: tracking requests to allocate or deallocate the first processor resource and the second processor resource; for a requested allocation of the first processor resource, incrementing a count of a first resource counter up with an increment reflecting an extent of the allocation, the first resource counter configured to indicate negative values; for a requested deallocation of the first processor resource, incrementing the count of the first resource counter down with an increment reflecting the extent of the deallocation; determining, after incrementing the count of the first resource counter up or down, whether the absolute value of the count of the first resource counter meets or exceeds a first resource counter threshold; upon determining that the absolute value of the count of the first resource counter meets or exceeds the first resource counter threshold, updating a count of a second resource counter up or down with an increment reflecting the value of the first resource counter count and resetting the count of the first resource counter; determining, based at least in part on a comparison of the value of the count of the second resource counter with a quality of service limit, whether a quality of service criteria can be satisfied if an additional requested allocation of the first or second processor resource is granted; upon determining that the quality of service criteria can be satisfied if the additional requested allocation of the first or second processor resource is granted, granting the request to allocate the first or second processor resource; and upon determining that a difference between the first resource counter threshold and a second threshold exceeds a predetermined value, updating the first resource counter threshold with a revised first resource counter threshold for use in subsequent monitoring.