Processes scheduling has been at the forefront of operating systems
research since the 1960’s. The most significant advance in
user-perceived performance has not come from better scheduling algorithms,
but rather increased processor speeds. Real-time applications, like
windowing systems or streaming video players have posed the greatest
challenge. Sometimes users want processes to respond immediately
and complete quickly (consume all the system resources) while other
times they accept latency (share resources more evenly). It is exceptionally
difficult for existing schedulers to determine which processes the
user feels are most important and when.
People place different levels of importance on applications they
use. This importance is often transient. For example, when the user
is in a rush and wants to quickly check their email before they
leave, the email application should not have to wait on other applications.
However, other times, the user might accept a longer launch time
because they also value background processes, like a downloading
a file or transferring pictures from their digital camera.
Anticipating user needs is practically impossible. However, users
provide a wealth of feedback in the form of gestures. One common
user gesture is to rapidly shake the mouse back and forth when the
performance of an application is too slow. The OS could interpret
this gesture as user frustration, and dedicate more resources and
CPU time to the application the user is interacting with. This could
be done by temporarily increasing the priority of the process.
Many applications slow down not because the application requires
more resources, but because other, potentially background processes
are running at higher intensity. Thus, contention for resources
typically occurs in short sporadic bursts. In response, gesture-based
increases in prioritization would be transient; the priority would
fade over time, and eventually return to its original level.
IBM Research, Patent Pending, Chris Harrison - 11/422,468
to Home Page
Go to Projects Page