Until you reboot, Windows cannot perform the last few steps necessary to "install" the program.You can compare this to Linux, which rarely requires you to reboot.Most operating systems and software were written in the days when diskspace and memory cost a lot of money.
Because we, as users are too stupid to restart a service, we are told to restart everything.It is not often that a user decides to buy a different application due to installer restarts, so the vender spends the time (money) working on what is needed to get user’s to buy their applications.How often have you had a problem after installing an application that sorted itself out when you did a reboot?An installer for an application can also get the application to save its state, shut it’s self down, then restart after the DLL has been updated.This can only be done if the DLL is used by a single application.Why is it sometimes that I need to restart my computer after installing new software and at other times I don't?Is there any reason why it needs this reboot or why it's not always one way or the other? If the software being installed affects an integral part of the operating system then a restart is required. On Windows systems, it is often used used because users are considered to be too stupid to use their computers properly.Sometimes, it's just sloppy programming by the developers. Often when you install new software a dll (file) that is used by lots of other software packages need to be upgraded to a new version. ) A DLL that is locked cannot be updated, so the installer will ask windows to replace the DLL with the new version the next time the machine is restarted. Some better installers will tell you the applications that should be closed down before running the installer, so letting the DLL be updated without a restart.(This much more likely to be the case when upgrading an application you already have installed.) If the dll is being used by an running application, part of it will be loaded into memory and the rest will be read from disk when it is needed. However that make the installer’s UI more complex and leads to more support calls.Most self updating applications do this – this should be the norm for mass market applications when there are lot of users.All of the above can lead to complex logic that is hard to test.Sometimes a piece of software will make a change that cannot come into effect while the computer is use.Some reasons might be - a file is in use, the change can only occur during boot up of the computer, there might be a security issue which can only be done before the computer has its networking active, maybe the virus scanner would interfere with the install.Even when you are asked to reboot, you usually only need to log out and back in.