So, frequently I notice my computer is running like a dog and check task manager to find out that google desktop is indexing, virus scan is running, windows update is downloading stuff, other programs (java, google pack, etc) are downloading or applying updates, etc. Is there any way to get all these intensive background tasks set up to run at the same time every week, or to run only when I ask them to, or something of that nature? I am running Windows XP unfortunately.
Windows Update is scheduled from the System Properties control panel. Schedule this to run last thing early in the morning.
A good virus scanner has scheduling features. I have mine scheduled to update at 2PM and scan at 2AM.
Java Update Scheduler can be tamed by removing it from startup, and then using Task Scheduler to launch it at whatever time you want. You would also need to schedule some task to kill the process again though.
Whatever you end up doing, don't schedule everything to run simultaneously. Everything will be competing for CPU time. Figure out approximately how long things take to run and stagger them out so that they don't run simultaneously, or at least not for very long.
Here's the daily schedule I use: 2:00 PM - antivirus definition update 11:00 PM - backup 2:00 AM - antivirus scan 3:30 AM - defrag 5:00 AM - Windows Update
The Task Scheduler is a good way to get programs to run at a specific time. However it might be difficult to force specific applications which themselves do not support scheduling.
For apps that do not support any scheduling I would recommend using process explorer to lower the priority of the process so that the processes you care about get first shot at the CPU time. As it turns out there is no unix style "NICE"/"RENICE" command within windows that seems to work all that well. Cygwin can spawn a windows process with a modified priority but it seems to lack a renice command to change the process priority of an already running process which you probably would want to do in this case.