My new favorite “Nerd” feature in Win7 involves the Resource Monitor (not surprisingly.) It’s mesmerizing at times…
Ever had a program get “stuck”, where it seems to be quite obviously waiting for something, but you don’t know what? Install programs that invoke child processes are notorious for this.
In the Win7 Resource Monitor app, in the Overview or CPU tabs, you’ll find the list of running processes. If a process is “stuck”, it’ll be highlighted with red text. This isn’t the cool part though.
You can right click on any process, and in the context menu, you’ll see “Analyze Wait Chain…”. Click that. In a nutshell, it lists the threads in a process that are blocking on a resource currently owned by another process. Better still, it tells you who the owning process/thread is! With that info, you can take corrective action, such as killing the child process that’s not giving up the resource.
You can find more about wait chains here: http://msdn.microsoft.com/en-us/library/ms681622(VS.85).aspx