IIS、应用程序域、池、进程和线程的高级理解

IIS、应用程序域、池、进程和线程的高级理解

希望有人能帮我理清这些事情。

这是为了更好地理解操作系统,以及它如何具体应用于 IIS。

应用程序域、应用程序池、进程和线程如何在 Web 应用程序中发挥作用?

是不是这样的:

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

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

另外,我对 linxu(ubuntu)服务器很感兴趣,因此,如果它相似或不同,我会很感兴趣了解。

答案1

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

IIS 应用程序是一组共享相同状态的相关页面 - 例如,应用程序和会话变量是共享的。您可以通过 UI 进行应用化或取消应用化。

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

应用程序池在一个或多个工作进程 (w3wp.exe) 中运行。进程本质上是内存的容器,具有与之关联的标识 (令牌) 和一个或多个线程。

线程是“执行线程”——一组独特的 CPU 状态和在进程内存上运行的操作链。线程可以拥有与其关联的令牌(例如,当它们模拟用户时),该令牌将覆盖该线程操作的进程标识,直到线程停止模拟。如果线程“丢失”其令牌,它将充当进程标识。

你应该读的书是《Windows Internals》http://technet.microsoft.com/en-us/sysinternals/bb963901.aspx作者:Solomon、Russinovich 和 Ionescu。

相关内容