Patent ID: 8255910

Claim:
A method comprising: scheduling, by a weighted proportional-share virtual time processor scheduler, processor access to a first consumer during a time period in which a second consumer is blocked from processor access, comprising: defining a block time interval Block i , wherein the block time interval specifies how long the second consumer can be blocked from processor access without causing the second consumer's actual virtual time A i to be updated upon becoming unblocked; and defining a credit time interval Credit, wherein the credit time interval specifies how long back the second consumer can have its actual virtual time A i lagging, wherein the second consumer becomes blocked from processor access at time T bl , and wherein the weighted proportional-share virtual time processor scheduler continues scheduling access to the processor for the first consumer while the second consumer is blocked; and when the second consumer becomes unblocked, the system virtual time SVT is updated as: SVT=min(A i (T cur -Credit)), wherein T cur is a current time of the second consumer, the second consumer is unblocked at time T cur -Credit, and min(A i (T cur -Credit)) is a minimum actual virtual time of the second consumer at time T cur -Credit; when the second consumer becomes unblocked from processor access, determining, by the weighted proportional-share virtual time processor scheduler, whether length of the time period over which the second consumer was blocked from processor access exceeds a predefined time threshold, comprising: determining whether T cur -T bl is greater than the block time interval Block i , and when determined that T cur -T bl is not greater than the block time interval Block i , not updating the actual virtual time A i (T cur ) of the first consumer at time T cur before scheduling access to the processor for the first consumer; and when determined that T cur -T bl is greater than the block time interval Block i , then the actual virtual time A i (T cur ) of the first consumer at time T cur is adjusted as: A i (T cur )=max(A i (T bl ),SVT), wherein A i (T cur ) equals either the SVT or the actual virtual time of the first consumer at T bl , whichever is greater; and when determined that the length of the time period over which the second consumer was blocked from processor access does not exceed the predefined time threshold, not updating virtual time of the second consumer before scheduling processor access for the second consumer.