This is not needed to be known by you. At all. Ever.
You are falling into the implementation trap. You may find which classes call this on Tomcat, on X, on Y, on Z, etc. But what about Tomcat 5 vs. 6? What about X1 vs X2.5?
The basics of what you need to know for your container is what servlet specification it implements and that is places elements found in the web.xml file in the appropriate order. You can write simple test cases to verify this.
It doesn't matter what calls the Servlet classes you specify, as long as you verify that they DO GET CALLED. You are trying to find out increasingly irrelevant information. There is a reason you have a container in the first place, so you don't have to worry about all this start up code and threading...you just worry that your code will function properly once you rest easy that it is indeed being called.
Lot of ground work involved in transforming your data from server to client. All this implementation is with servers(web servers/app servers). This may vary from one server to another. If you want to get it in full details you will have to go through server APIs which is not really required to work with servlets.