Thrashing and working set model in Operating Systems - Time & Space Complexity
When a computer runs many programs, it needs to manage memory efficiently. Thrashing happens when the system spends too much time swapping data in and out of memory instead of doing useful work.
We want to understand how the system's work changes as the number of programs or memory needs grow.
Analyze the time complexity of this simplified memory management loop.
while (true) {
for (each process) {
if (process needs page) {
if (page not in memory) {
swap page in;
}
}
}
}
This loop checks each process repeatedly to see if it needs pages in memory and swaps them in if missing.
Look at what repeats often in this code.
- Primary operation: Checking each process's page needs and swapping pages.
- How many times: The outer loop runs forever, and inside it, the system checks all processes repeatedly.
As the number of processes or pages grows, the system spends more time swapping pages.
| Input Size (number of processes) | Approx. Operations (page checks and swaps) |
|---|---|
| 10 | Moderate checks and occasional swaps |
| 100 | Many checks and frequent swaps, slowing work |
| 1000 | Very high checks and constant swapping, system thrashes |
Pattern observation: As processes increase, the system spends more time swapping pages, which grows quickly and hurts performance.
Time Complexity: O(n)
This means the time spent checking and swapping grows roughly in direct proportion to the number of processes.
[X] Wrong: "Adding more memory always stops thrashing immediately."
[OK] Correct: Sometimes, even with more memory, if the working set (pages needed) is too large or poorly managed, thrashing can still happen.
Understanding how system performance changes with more processes and memory needs helps you explain real-world computer behavior clearly and confidently.
What if the system used a better working set model that predicts page needs more accurately? How would the time complexity change?
Practice
thrashing in operating systems?Solution
Step 1: Understand the meaning of thrashing
Thrashing happens when the system spends too much time swapping pages in and out of memory instead of executing processes.Step 2: Identify the effect of thrashing
This excessive paging slows down the computer significantly, reducing performance.Final Answer:
Excessive paging causing slow system performance -> Option DQuick Check:
Thrashing = Excessive paging slowing system [OK]
- Confusing thrashing with normal multitasking
- Thinking thrashing speeds up the CPU
- Believing thrashing means no memory usage
working set of a process?Solution
Step 1: Define working set
The working set is the collection of pages a process has used recently and needs to run efficiently.Step 2: Identify correct description
Pages recently used by the process fit this definition, unlike all pages or swapped pages.Final Answer:
Pages recently used by the process -> Option CQuick Check:
Working set = Recently used pages [OK]
- Thinking working set includes all system pages
- Confusing working set with swapped out pages
- Assuming working set is pages never accessed
Solution
Step 1: Analyze working set growth impact
If the working set grows beyond available memory, the system must swap pages frequently to keep up.Step 2: Identify system behavior
This frequent swapping causes thrashing, which slows down the system instead of speeding it up.Final Answer:
Thrashing will occur, slowing down the system -> Option AQuick Check:
Working set too big = Thrashing slows system [OK]
- Assuming more pages always improve speed
- Believing system ignores memory limits
- Thinking process ends immediately without warning
Solution
Step 1: Understand cause of thrashing
Thrashing happens when too many processes compete for limited memory, causing excessive paging.Step 2: Identify best solution
Reducing the number of processes competing for memory lowers paging demand and reduces thrashing.Final Answer:
Reduce the number of processes competing for memory -> Option BQuick Check:
Less competition = less thrashing [OK]
- Increasing working set size worsens thrashing
- Decreasing CPU speed does not fix memory issues
- Disabling paging causes system failure
Solution
Step 1: Analyze working set vs memory size
The process needs 100 pages to run well, but only 80 pages fit in memory, causing potential thrashing.Step 2: Determine best memory management action
Swapping out some pages from the working set or adjusting memory allocation helps keep the working set within limits and avoids thrashing.Final Answer:
Swap out some pages from the process's working set -> Option AQuick Check:
Adjust working set to fit memory to avoid thrashing [OK]
- Increasing working set size worsens thrashing
- Allowing frequent swaps causes thrashing
- Terminating process is last resort, not first
Ready to prove it?
Pass the test and this pattern moves unknown
