MPC > Guide > Content

Why system hangs and does not respond?

Why system hangs and does not respond?

The CPU only processes one task at a time, and switches among tasks when it is processing multiple tasks. The duration of a switch is extremely short. Therefore, some users might think that the CPU is able to process multiple tasks at the same time. It is the same situation for a system with multi CPUs. The number of task processed at the same time depends on the number of CPUs the computer has. Each CPU switches among the tasks it is responsible for.

For Windows operating system, the basic blocks that compose a process are called threads. When the CPU has to process multiple threads, it follows a priorities’ order which is link to the different kinds of tasks. There are five kinds of processes with different priorities.

‘real – time’: A must-respond live task, the threads occupy the operation system’s CPU.
‘high’: A must- respond live task.
‘above normal’: runs between ‘normal’ and ‘high’
‘normal’: it is not necessary for a must – respond.
‘below normal’: runs between’normal’ and ‘idle’
Idle: the threads run when system has unused resources, for example, screen saver, backend programs and data collection software.

The priority of a thread depends on the priority of the process it belongs to. The priorities of the threads decide in which order they are processed by the CPU. If Windows follows exactly the order of priority, everything runs smoothly. In fact, there is a flaw in Windows system. Indeed, an intensive thread with ‘normal’ priority is able to occupy the whole CPU. Therefore, the CPU cannot switch to the next thread properly even if the next thread has a higher priority. This is the reason why your computer does not respond sometimes.

Except the overload of CPU, a high frequency of IO operation is also one of the main reasons for no response. When the system is busy to do numerous IO operations, new IO requests cannot be answered immediately, for example open a file and run a program. As a result, your system becomes very slow.

How SmartBalance works?

If we change the priority of a process, the priorities for the threads of this process would change as well. Therefore, if one of the threads is using a lot of CPU, we can adjust the priority of its process temporarily to solve the problem. This action would enable switches among threads by the CPU and prevent your system from not responding.

SmartBalance is the tool used by MPC to adjust process priority intelligently. It automatically balances how the processes run, and ensure that the CPU is not overloaded by a single process. SmartBalacne monitors every process in real-time. If the CPU starts to be overloaded or if a process is occupying too much CPU it would take actions to prevent it. SmartBalance improves significantly the response speed of Windows by adjusting the priorities of backend processes. It does not affect the performance of any process because each process is still able to use its times’ slice of CPU properly. Usually, only a couple CPU periods are necessary to ensure the response of a process. Moreover, the adjustment of process priority is not permanent, it is only temporary. Once SmartBalance detects that a process is no longer slowing down the response of the system, the priority of this process is restored to its default value. SmartBalance monitors every IO and process operation at the same time. Once an IO operation causes a lower response rate for the system, SmartBalance adjusts the priority of the IO immediately. When the response rate is back to normal, the priority of IO is restored to its default value.

Back to Top