Holy cow, I wrote a book!
One thing I am known for at Microsoft is my frequent use of bad analogies. Everybody
else at work has had to suffer; now it's your turn.
Why are there so many copies of svchost.exe running? What is svchost.exe anyway?
Traditionally, each service runs in its own process. When you are developing and testing
your service, having it in its own process makes debugging a lot easier.
But if you look at your list of services (in Computer Management, Services), you can
see that if each one got its own process you'd sure have a whole lot of processes
lying around. Since there is a cost to each process merely for existing, having so
many processes running would be a waste, since many services are used only sporadically.
Tapisrv, for example, is active only when you are doing things with your modem.
For performance reasons, groups of services are thrown together and run in a shared
process called svchost. Sort of like a reality TV show, but without the voting.