How does Process Lasso's 'process restraint' work?
...and what should I expect to happen?

There has been some misconception about how process 'restraint' works. A better way to look at it is as a re-priotization of the programs running on your computer, so that if other processes need access to the CPU, they can get it. If they don't, then the CPU will continue to be used by whatever processes do need it.

To understand how processes are prevented from using all your CPU, but CPU usage over-all doesn't decrease, you need to know a little about how your operating system works.

A single tasking CPU in a multi-tasking world

A CPU can only do one thing at a time. Multi-core CPUs can do multiple things at once, but each core (single CPU) can still only do one thing at a time. In order for multiple programs to be running at once (multi-tasking) your operating system rapidly switches the CPU between programs (thousands of times a second). This gives each program a chance to use the CPU(s) for a brief period of time, thus giving the appearance of programs running simultaneously.

So who decides which programs get to use the CPU, and for how long?

The part of your operating system that decides how the CPU should be shared amongst running programs is called the Scheduler. The Scheduler decides which program should get the CPU, and for how long it should get it. It makes this determination based on a program's priority and other factors (such as whether or not it is in the foreground). Process Lasso's out-of-control process restraint temporarily lowers the priority of programs heavily using the CPU. This tells the scheduler to let other programs use the CPU, if they need it.

So Process Lasso can help by adjusting which programs take precedence?

Yes, Process Lasso does just that. In an an ideal world, such dynamic tweaks to the process priority classes wouldn't be necessary. However, each user and machine is different, and Microsoft wrote their NT scheduler to try to do the best job in most cases. You can argue that it is unfortunate a normal priority process can bring the system to a virtual stall without Process Lasso, but that is actually by their design.

Will the 'restrained' programs slow down?

No, Process Lasso won't hurt the performance of your 'background' programs, unless other programs on your computer, such as maybe the text editor you are using, also need the CPU. In that case, the slowdown of the background program would be marginal, but the improvement in responsiveness to the foreground program would be substantial.

Oh, so this is why my CPU usage still stays at 100%?

Yes, that's exactly why -- it should! You would not want your CPU(s) to be sitting idle when there is work to be done ;).

 

 

 

Disclaimer: I tried to reduce some jargon here, replacing proper process and thread references with laymen terms like 'program'. I don't even try to define threads, time slices, context switches, and other jargon -- the object here is just to give the user an idea what the scheduler does.