Friday, April 26, 2013
What is the cause of thrashing? How does the system detect thrashing? Once it detects thrashing, what can the system do to eliminate this problem?
- Thrashing takes place when the sub-system of the virtual memory of the computer system is involved in a state of paging constantly.
- It rapidly exchanges data in the memory with the data available on the disk excluding level of processing of most of the applications.
- Thrashing leads to the degradation of the performance of the computer or may even cause it to collapse.
- The problem may further worsen until the issue is identified and addressed.
- If there are not enough pages available for the job, it becomes very likely that your system will suffer from thrashing since it’s an activity involving high paging.
- This also leads to high rate of page fault.
- This in turn cuts down the utilization of the CPU.
- Modern systems utilize the concept of the paging system for executing many programs.
- However, this is what makes them prone to thrashing.
- But this occurs only if the system does not have at present sufficient memory as required by the application or if the disk access time is too long.
- Thrashing is also quite common in the communication systems where the conflicts concerning the internal bus access is common.
- The order of magnitude or degree by which the latency and throughput of a system might degrade depends up on the algorithms and the configuration that is being used.
- In systems making use of virtual memory systems, workloads and programs presenting insufficient locality of reference may lead to thrashing.
- Thrashing occurs when the physical memory of the system is not able to contain in itself the workload or the program.
- Thrashing can also be called as the constant data swapping.
- Older systems were low end computers i.e., the RAM they had was insufficient to be employed in modern usage patterns.
- Thus, when their memory was increased they became noticeably faster.
- This happened because of the availability of more memory which reduce the amount of swapping and thus increased the processing speed.
- IBM system/ 370 (mainframe computer) faced this kind of situation.
- In it a certain instruction consisted of an execute instruction pointing over to another move instruction.
- Both of these instructions crossed the page boundary and also the source from which the data has to be moved and the destination where it was to be placed both crossed the page boundary.
- Thus, this particular instruction altogether required 8 pages and that too at the same time in memory.
- Now if the operating system allocated less than 8 pages, a page fault is sure to occur.
- This page fault will lead to thrashing of all the attempts of restarting the failing instruction.
- This may even reduce the CPU utilization to almost zero!
For resolving the problem of thrashing, the following things can be done:
1. Increasing the amount of main memory i.e., the RAM in the system. This is the best ever solution for this and will be helpful for a long term also.
2. Decreasing the number of programs to be executed by the system.
3. Replacing the programs that utilize heavy memory with their less memory utilizing equivalents.
4. Making improvements in the spatial locality.
- Thrashing can also occur in cache memory i.e., the faster storage space that is used for speeding up the data access.
- Then it is called cache thrashing.
- It occurs when the cache is accessed in a way that it leaves it of no benefit.
- When this happens many main memory locations compete with each other for getting the same cache lines that it turn leads to a large number of cache misses.