Thrashing¶
Repeatedly evict still-needed units from a fast memory tier, forcing costly refetches that displace useful computation.
Core Idea¶
Thrashing is a memory-hierarchy failure in which repeatedly used pages or cache lines are evicted from a fast resident tier and soon needed again. Costly refetch and replacement then markedly displace useful computation. The common mechanism is an effective residency conflict, not always total working-set size exceeding the fast tier's whole capacity.[ref-ac70642e75d3][ref-12f11a9d104e]
Scope of Application¶
Denning analyzed virtual-memory paging, where local working sets and page-frame allocation can produce excessive traffic to slower auxiliary storage. HP described a direct-mapped cache case in which four arrays map to one index and repeatedly displace one another; an assist cache avoids most misses, while simply enlarging the cache does not address that type of conflict.[ref-ac70642e75d3][ref-12f11a9d104e]
Clarity¶
A single cold miss or one-pass stream is not thrashing without recurrent eviction of soon-needed data. Paging shortage and cache-index collision are different triggers with different remedies. The named effect also requires material loss of useful work, not just a full cache or a high miss counter.[ref-ac70642e75d3][ref-12f11a9d104e]
Manages Complexity¶
The concept directs diagnosis from “the machine is slow” to a traceable loop: active references, displaced resident units, costly refetch and reduced service. It does not prescribe a universal fix. Working-set-aware allocation may help paging, whereas associativity or an assist cache can help a mapping conflict.[ref-ac70642e75d3][ref-12f11a9d104e]
Abstract Reasoning¶
Identify the fast and slow paths, trace which active units are repeatedly evicted and reloaded, then compare transfer overhead with useful work. Ask whether the binding constraint is page-frame allocation, set-index mapping or replacement policy. No strict live DAG parent is currently asserted; Feedback and Bottleneck are neighbors but not necessary genuses of every case.[ref-ac70642e75d3][ref-12f11a9d104e]
Knowledge Transfer¶
RAM pages backed by auxiliary storage and CPU cache lines backed by main memory differ in scale and trigger. Both fill the repeated-residency-loss and costly-refetch roles. The paging statement that aggregate working sets exceed total available frames must not be universalized to direct-mapped cache conflict.[ref-ac70642e75d3][ref-12f11a9d104e]
[^ref-ac70642e75d3]: Peter J. Denning, "Thrashing: Its Causes and Prevention", original author-hosted paper (1968), PDF pp. 1–4 and conclusion. [^ref-12f11a9d104e]: Kenneth K. Chan, Cyrus C. Hay, John R. Keller, Gordon P. Kurpanek, Francis X. Schumacher and Jason Zheng, "Design of the HP PA 7200 CPU", Hewlett-Packard Journal (February 1996), PDF p. 4.
Neighborhood in Abstraction Space¶
Thrashing sits in a sparse region of the domain-specific corpus (68th percentile for distinctiveness): few abstractions share its structure, so a faithful description tends to retrieve it precisely.
Family — Program Execution & Runtime Concepts (27 abstractions)
Nearest neighbors
- Rematerialization — 0.87
- Profile-Guided Optimization — 0.84
- Reconfigurable Computing — 0.83
- Hierarchical Storage Management — 0.83
- Reorder Buffer — 0.83
Computed from structural-signature embeddings · 2026-10-08