Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Thrashing (computer science)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Other uses== Thrashing is best known in the context of memory and storage, but analogous phenomena occur for other [[System resource|resources]], including: ;{{visible anchor|Cache thrashing}} :Where main memory is accessed in a pattern that leads to multiple main memory locations competing for the same cache lines, resulting in excessive [[CPU cache#Cache miss|cache misses]]. This is most likely to be problematic for caches with [[CPU cache#Associativity|associativity]]. ;{{visible anchor|TLB thrashing}} :Where the [[translation lookaside buffer]] (TLB) acting as a cache for the [[memory management unit]] (MMU) which translates virtual addresses to physical addresses is too small for the working set of pages. TLB thrashing can occur even if instruction cache or data cache thrashing is not occurring because these are cached in different sizes. Instructions and data are cached in small blocks ([[cache line]]s), not entire pages, but address lookup is done at the page level. Thus even if the code and data working sets fit into the cache, if the working sets are [[Fragmentation (computing)|fragmented]] across many pages, the virtual address working set may not fit into TLB, causing TLB thrashing. ;{{visible anchor|Heap thrashing}} :Frequent [[garbage collection (computer science)|garbage collection]], due to failure to allocate memory for an object, due to insufficient free memory or insufficient contiguous free memory due to [[Fragmentation (computing)|memory fragmentation]] is referred to as heap thrashing.<ref>''Performance Optimization and Tuning Techniques for IBM Processors, including IBM POWER8'', [https://books.google.com/books?id=oxUBBAAAQBAJ&pg=PA170&dq="heap+thrashing" p. 170]</ref> ;{{visible anchor|Process thrashing}} :A similar phenomenon occurs for processes: when the [[process working set]] cannot be [[Coscheduling|coscheduled]], i.e. such that not all interacting processes are scheduled to run at the same time, they experience "process thrashing" due to being repeatedly scheduled and unscheduled, progressing only slowly.<ref>{{cite news |author-link=John Ousterhout |first=J. K. |last=Ousterhout |url=https://web.stanford.edu/~ouster/cgi-bin/papers/coscheduling.pdf |title=Scheduling Techniques for Concurrent Systems |journal=Proceedings of Third International Conference on Distributed Computing Systems |year=1982 |pages=22β30 }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)