Talk:Working set

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing (Rated Stub-class)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Stub-Class article Stub  This article has been rated as Stub-Class on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.
Note icon
This article has been automatically rated by a bot or other tool as Stub-Class because it uses a stub template. Please ensure the assessment is correct before removing the |auto= parameter.

This description differs significantly from the usage of the term described in The Working Set Model for Program Behavior (see this page for a free overview).

  • Programmer's view of WS: the smallest collection of information that must be in memory to execute her program efficiently
  • System's view of WS: the set of most recently referenced pages

That is, the above-mentioned paper, in which (as far as I am aware), P.J. Denning coined the term working set, says that it is the memory the process needs to execute efficiently, while the WP article says the working set is the amount of memory that the process actually gets. Aragorn2 20:12, 25 August 2006 (UTC)

A quick scour around the house didn't turn up my copy of Tanenbaum, but my memory of the term agrees with what you describe. Note that the "major hurdle" paragraph also seems to have this meaning. Perhaps the first paragraph (at time of writing) is intended to reflect an allocation strategy where the allocation equals the [calculated approximation of the] working set. The sentence “a page is removed from memory the moment it leaves W” on the overview page that Aragorn2 cites seems to confirm this explanation.
I note first of all that the first definition that Aragorn2 cites appears to be slightly incorrect, by the plainest reading: presumably all of the "information" (at least all of the heap & stack and much of the text, data & bss) must be in memory at some point (assuming that the processor cannot directly address the swap device). I suppose, then, that working set is to be defined with respect to a particular point in the program's execution (like the second definition Aragorn2 cites) rather than to the program as a whole. Put another way, “execution of [the] program” must be understood to mean something like “continued execution of the program”, i.e. “execution of the next small piece of the program”.
That aside, I note that both of the definitions Aragorn2 cites (and my understanding of the term before I came to this article) are fuzzy: membership of the set depends on the relative terms ‘efficiently’ and ‘recently’, i.e. it depends where one sets the threshold for what is efficient or recent (or soon, from the point of view of a perfect approximation)....
I'll change the first paragraph accordingly. Pjrm 12:14, 11 November 2007 (UTC)