What are the Causes of Thrashing and how to overcome Thrashing in Operating System


Thrashing in os

(1) What is thrashing?(2) What are causes of thrashing ?(3) How to overcome thrashing ?(4) Working set model(5) Working set model example.(6) Conclusion.

 This tutorial covers the concepts of thrashing in os. In this thrashing tutorial  I am going to discuss about what is thrashing and causes of thrashing and how to overcome thrashing in os.

So lets start with introduction of thrashing.


(A) What is thrashing ?
 So what is thrashing in os ? Thrashing is nothing but a situation which occurs when a process is spending more time in paging or swapping activities rather than its execution. In thrashing state CPU is so much busy in swapping that it can not respond to user program as much as it required.
 
(B) Causes of Thrashing
Thrashing is not good from performance point of view. Now in this thrashing tutorial I will tell about the causes of thrashing , actually Initially when the CPU utilization is low, then process scheduling mechanism, loads many processes into the memory at the same time so that degree of multi programming can be increased.
                                            
So now in this situation we have more number of processes in memory as compare to the available number of frames in memory. So allocating a limited amount of frames to each process.
When any higher priority process arrive in memory and if frame is not freely available at that time then the other process that occupied the frame which is resides in frame will move to secondary storage and this free frame is now allocated to higher priority process 
                            
causes of thrashing and how to overcome thrashing

 



In other words we can say that as the memory fills up, process starts to spend a lot of time for the required pages to be swapped in, again  CPU utilization becomes low because most of the processes are waiting for pages.

(C) How to overcome thrashing?
 
In previous section we found the causes of thrashing. Now in this section of this thrashing tutorial we will see how to eliminate thrashing. Here we will study about the technique or methodology used to reduce the thrashing. In order to prevent thrashing in operating system at first we need to know that how many frames as they really is needed by a process at any time. There is a technique known as working-set model which is used to reduce the causes of thrashing in operating system.
 

Thrashing technique starts by looking at how frames a process is actually using. This techniques specify a locality model for process execution. According to locality model when a process executes, it moves from locality to locality. Here the term locality represents a set of pages that are actively used together.

In this part of this thrashing tutorial,  I will discuss about working set model explanation which is a technique to reduce the thrashing in os. Working set model  is based on assumption of Locality. This model used a parameter Δ defines the working-set window. 

The concept is to checking the most recent Δ page references. Working set is a set of pages available in the most recent Δ  or sometime also known as  an approximation of the program’s locality.

If the page is in active use it will be in the working set. If it is no longer being used it will dropped from the working set Δ time units after its last reference. So working set is an approximation of program’s locality.

(E) Working set model example

In this section of thrashing tutorial we will understand the concept of  working set model with the help of an example consider the sequence of memory references shown in following Figure.


how to eliminate thrashing

If 6 = 10 memory references, then the working set at time t1 is {1, 2, 5,6, 7}. At time t2, the working set has changed to {3, 4}.

 
The accuracy of the working set depends on the selection of 6. Because assume that 6 is too small,then it will not encompass the whole locality; but if 6 is too large, then it may overlap several localities.

Main property of working set is its size. If we compute the working-set size, WSS for each process in the system, we can then consider that where D is the total demand for frames that each process is  using the pages in it’s working set. Thus process i needs WSS frames.

If the total demand is greater than the total number of available frames (D > m), then it will cause thrashing to occur, because in this case some processes will not have enough frames. Once  has been selected we can use this model easily.


Here the role of operating system is that the operating system monitors the working set of each process and after that it allocates to that working set enough frames to provide it with its working-set size.

If  we have sufficient extra frames, then another process can be initiated. Here it is important to remember that If the sum of the working-set sizes increases and it is exceeding the total number of available frames then operating system selects a process to suspend.

The process’s pages are swapped out, and its frames are reallocated to other processes and the suspended process can be restarted later.

(F) Conclusion

So as a conclusion we can say that  working-set model prevents thrashing in os while keeping the degree of multi programming as high as possible. In this way it optimizes CPU utilization.
 
Main problem with the working-set model in os is keeping track of the working set. Because working-set window is a moving window and at each memory reference, a new reference appears at one end and the oldest reference drops off the other end.A page is in the working set if it is referenced anywhere in the working-set window.

Friends I hope that this thrashing tutorial is helpful to you in understanding the thrashing concept.your suggestions, comments are really valuable for us, to improve the tutorial quality. So give your feedback. 

Leave a Comment

x