Назад | Перейти на главную страницу

IIS, домены приложений, пулы, процессы и потоки, понимание на высоком уровне

Я надеялся, что кто-то сможет представить мне все эти вещи в перспективе.

Это необходимо для лучшего понимания операционных систем в целом, а также, в частности, как это применимо к IIS.

Как домены приложений, пулы приложений, процессы и потоки задействованы в веб-приложении?

Это так:

Пул приложений может иметь несколько доменов приложений.

В домене может быть несколько процессов, и каждый процесс управляет пулом потоков. В процессе потоки совместно используют пространство памяти.

Также меня интересуют серверы linxu (ubuntu), поэтому, если они похожи или отличаются, мне было бы интересно узнать.

Пул приложений может содержать несколько приложений IIS.

Приложение IIS - это набор связанных страниц, которые имеют одно и то же состояние - например, общие переменные приложения и сеанса. Вы подаете или отключаете приложение через пользовательский интерфейс.

Приложение IIS может иметь ноль или более доменов приложений. AppDomain похож на облегченный процесс внутри процесса, но это концепция, специфичная для .Net; У приложений ASP нет доменов приложений, в приложениях ASP.Net есть.

Пул приложений работает в одном или нескольких рабочих процессах (w3wp.exe). Процесс, по сути, является контейнером для памяти и имеет связанный с ним идентификатор (токен) и один или несколько потоков.

Поток - это «поток выполнения» - отдельный набор состояний ЦП и цепочка операций, которая выполняется в памяти внутри процесса. Потоки могут иметь связанный с ними токен (например, когда они олицетворяют пользователя), который переопределяет идентификатор процесса для операций этого потока, пока поток не перестанет олицетворять себя. Если поток «теряет» свой токен, он действует как идентификатор процесса.

Книга, которую вы должны прочитать, называется «Внутреннее устройство Windows». http://technet.microsoft.com/en-us/sysinternals/bb963901.aspx Соломона, Руссиновича и Ионеску.