Restart Manager

In the old days, "updating" an operating system or program meant installing an entirely new version of the software. Then Microsoft and some software vendors started posting "patches" on bulletin boards, then FTP sites, and eventually on the Web. Strangely, they didn't actually tell anyone that those patches were there, but they assumed that intrepid power users would unearth them and somehow get them installed.

This primitive state of affairs ended a few Windows versions ago when Microsoft introduced Windows Update, a service that made it much easier to find, download, and install security patches, bug fixes, software and certified driver updates, and service packs. Software vendors followed suit, and it soon become common to have a "Check for Updates" feature in a software package so that you could remain up-to-date.

Having the latest Windows updates and the latest versions of programs is a real boon because it makes computers more secure and more robust. However, it doesn't come without a cost. One of the biggest productivity killers today is the "Reboot Required" message you see all too often after installing even what seems like a minor patch. This dreaded message means that you have to save all your work, shut down your running programs, restart the system, and then open all your programs, windows, and documents all over again. It's frustrating, and it almost always seems so unnecessary. Why is there so often a need for a restart after patching Windows or a program?

The short answer is that it's not possible to overwrite a running executable file or dynamic link library (DLL), which the operating system locks while the program is in use. If the update includes a new version of a running executable or DLL, and that executable or DLL can't be shut down, the only way to perform the update is with a reboot, which ensures that all executables and DLLs are unloaded.

Why can't you just close the running program? It's not that easy, unfortunately. For one thing, you can't be sure these days when you shut down a program that you're shutting down all instances of the program in memory. Consider Microsoft Word, for example, which can be running not only in the Word window, but also in Outlook as the email editor, in Internet Explorer when it displays a .doc file, and so on. For another thing, many executable files operate in the background, and you don't even know they're running, so there's no interface for shutting them down.

Of course, it's silly to unload the entire system just to patch what could be a single running file. Fortunately, Windows Vista is tackling this absurdity with the new Restart Manager technology. Restart Manager does three things:

  1. It looks for all the processes that are using the file that needs to be updated.
  2. It shuts down all those processes.
  3. After the updates are applied, it restarts those processes.

The real trick here is the way that Restart Manager performs these restarts in programs designed to work with Restart Manager. It doesn't just start up the program and leave you to fend for yourself by reopening all your documents. Instead, Restart Manager preserves the exact state of each running process and then restores that state upon restarting the process.

So if you're working in Word on a document named Budget.doc and the cursor was in line 10, column 20, Restart Manager not only restarts Word, but it also opens Budget.doc and restores the cursor to line 10, column 20. (Microsoft calls saving a program state in this way "freeze-drying" the program.)

Note that the full functionality of Restart Manager is available only to applications written to take advantage of it. Office 2007 is the only program I know of that has this capability, but expect most major applications to become Restart Manageraware in their next versions.

For programs that don't support Restart Manager, Windows Vista introduces a new idea called "side-by-side compliant" DLLs. This technology enables an installation program to write a new version of a DLL to the hard disk, even if the old version is still in use. When you shut down the program, Vista replaces the old version of the DLL with the new one, so the update will be complete the next time you start the application.

All of this means that updates should require far fewer reboots in Vista than in XP. Not that reboots will never be required, however. In particular, there will always be patches that must update one or more core operating system files.

By definition, core operating system files run at startup and remain running as long as the system is turned on, and it's not possible to shut them down without shutting down the entire OS. (Technically, you can rename the file and then install the new version under the old name, but that can lead to all kinds of system problems.) In these situations, there will be no choice but to reboot to apply the patch. Hopefully, however, Vista's faster shutdown and startup times will make this less of a headache as well.