Working set

Working set is a concept in computer science which defines the amount of memory that a process requires in a given time interval.

[2] Typically the units of information in question are considered to be memory pages.

This is suggested to be an approximation of the set of pages that the process will access in the future (say during the next

time units), and more specifically is suggested to be an indication of what pages ought to be kept in main memory to allow most progress to be made in the execution of that process.

Often a heavily loaded computer has so many processes queued up that, if all the processes were allowed to run for one scheduling time slice, they would refer to more pages than there is RAM, causing the computer to "thrash".

In other words, the working set strategy prevents thrashing while keeping the degree of multiprogramming as high as possible.

To avoid the overhead of keeping a list of the last k referenced pages, the working set is often implemented by keeping track of the time t of the last reference, and considering the working set to be all pages referenced within a certain period of time.

Analogs of working set exist for other limited resources, most significantly processes.