IIS,应用程序域,池,进程和线程,高层次​​的理解

希望如果有人能把这些东西都变成我的潜能。

这是为了更好地理解操作系统的总体情况,也特别是如何适用于IIS。

如何在Web应用程序中应用域,应用程序池进程线程

是这样的:

应用程序池可以有多个应用程序域。

一个域可以有多个进程,每个进程pipe理一个线程池。 线程共享进程中的内存空间。

此外,我对linxu(ubuntu)服务器感兴趣,所以如果它是相似或不同的,有兴趣知道。

应用程序池可以包含多个IIS应用程序。

IIS应用程序是一组共享相同状态的相关页面 – 例如,应用程序和会话variables是共享的。 您可以通过用户界面进行应用程序或应用程序的开发。

一个IIS应用程序可能有零个或多个AppDomain。 一个AppDomain就像一个轻量级的进程内进程,但它是一个.Net特定的概念; ASP应用程序没有AppDomain,ASP.Net应用程序。

应用程序池在一个或多个工作进程(w3wp.exe)中运行。 一个进程本质上是一个内存的容器,并有一个相关的身份(一个标记),以及一个或多个线程。

一个线程是一个“执行线程” – 一个独特的CPU状态集合和一个运行在一个进程内存中的操作链。 线程可以有一个与它们关联的标记(例如,当它们模拟一个用户时),这个标记覆盖了该线程操作的进程标识,直到线程停止模拟。 如果线程“失去”它的标记,它将作为进程标识。

您应该阅读的书被Solomon,Russinovich和Ionescu称为“Windows内部” http://technet.microsoft.com/en-us/sysinternals/bb963901.aspx