This function is invoked from the I/Oprocessor thread context, hence should be implemented in a way that it consumes minimal amount of time, as the same thread handles multiple sessions.
We are more proficient in analyzing the amount of the processor used and the amount of memory used, and we are now focusing more on the amount of disk I/O used (performance and configuration).
The O(1) scheduler was much more scalable and incorporated interactivity metrics with numerous heuristics to determine whether tasks were I/O-bound or processor-bound.