Song Jiang's paper on Simple token based thrashing protection has an excellent description on SystemThrashing:

"In a multiprogramming environment, allocated memory pages of a program will become replacement candidates if they have not been accessed for a certain period of time under two conditions: (1) the program does not need to access these pages; and (2) the program is conducting page faults (as a sleeping process) so that it is not able to access the pages although it might have done so without the page faults. We call the LRU pages generated by condition (1) true LRU pages, and those by condition (2) false LRU pages. These false LRU pages are produced by the time delay of page faults, not by the access delay of the program. Thus, the LRU principle is not held in this case.

Whenever page faults occur due to memory shortage in a multiprogramming environment, false LRU pages of a program can be generated, which will weaken the ability of the program to achieve its working set. For example, if a program does not access the already obtained memory pages on the false LRU condition, these pages may become replacement candidates (LRUpages) when the memory space is being demanded by other interacting programs. When the program is ready to use these pages in its execution turn, these LRU pages may have been replaced to satisfy requested allocations of other programs. The program then has to ask the virtual memory system to retrieve these pages by replacing LRU pages of others, possibly generating false LRU pages for other programs. The false LRU pages may be cascaded among the interacting programs, eventually causing system thrashing."

LinuxMM: SystemThrashing (last edited 2017-12-30 01:05:11 by localhost)