For anti-virus, I seriously recommend ESET NOD-32 as simply the best of all; they have an
online scanner. I have used this at work to diagnose and clean machines on which the AV we use there (Sophos, the university has a site licence, so it's free to us) had failed to detect anything.
This kind of behaviour doesn't need to be caused by a virus, though. The first thing is to find out what process is doing it (which may show in task manager, but may also not be apparent there). See if the problem occurs in safe mode; if not, try disabling the various things that run at a normal startup one by one until the problem is identified (run the program "msconfig" for an easy way to do this).
Your antivirus package may be doing its startup scan with a misconfiguration - try checking that, or even uninstalling and reinstalling it (this is something I have to do regularly with the Sophos AV I use at work
). Windows Search may be having a problem completing, and so be starting again every time. Windows Defender on XP (it's built-in to later versions of Windows) went bad in its final update - I've had to remove it from all the machines in the office because it was causing this kind of startup problem.
Anyway, without even knowing what you are running, this is all speculation!
Oh, and defragmentation can be very effective every few months, but pointless on a daily scale (and it won't address this freezing problem anyway); before you do it, use the console command:
fsutil usn deletejournal /D C:
and wait for all disk activity to stop (you'll get no other indication - it may take a while). This deletes a very highly fragmented system file that you will never miss, and so makes future fragmentation less severe.