What is the difference between Programs, Processes, Threads and Windows?

Firstly, how does Windows run a program?

For instance, what does Windows do when you double click Internet Explorer icon?
When you double click Internet Explorer icon, Windows creates a process for Internet Explorer, a process is simply a running program, each process requires some System resources (CPU usage, Memory usage …). Each process creates one or more threads, a thread can be considered as sub-process. And finally each thread can have one or  more associated top-level windows (In our example,  Internet Explorer window is the top level window that you can see). When you double click Internet explorer icon again new process is created which doesn’t often  have a relation with the first one except that they are similar instances. 
In EndTask, you can either terminate all the processes of Internet Explorer at once, or terminate a specified process.

Terminating a specified process?

You can either select a window in windows’ list box created by the specified process and terminate it, or you can select Internet Explorer item from Programs’ list box and click Programs’ details button, and then select the process that you want from process’s list and click ‘Terminate’ button.

Terminating a program completely?

EndTask displays one item only for each program in Programs’ list box in Task Manager. That means - in our previous example - there exists only one item for Internet Explorer, and beside it,  the number of processes of Internet Explorer (which is 2), by selecting Internet Explorer item from the list and clicking ‘Terminate’ button, all the processes of Internet Explorer will be terminated, and Internet Explorer will be completely terminated.