Изменения внутреннего устройства ядра Windows Server 2008 - Повышение эффективности пулов потоков

ОГЛАВЛЕНИЕ

Повышение эффективности пулов потоков

Написание приложений, использующих преимущества наличия нескольких процессоров, может оказаться сложной задачей, поэтому в Windows XP введены рабочие пулы потоков, инфраструктура и соответствующий интерфейс API, позволяющий абстрагироваться от подробных сведений о выполнении небольших порций работы процессорами. Приложение указывает рабочие элементы для API пула потоков, который затем выполняет их на одном из ряда потоков, создаваемых им для каждого ЦПУ системы и которыми он управляет.

Назначение пула потоков состоит в минимизации переключений контекста посредством использования одних и тех же потоков для выполнения нескольких рабочих элементов подряд. Если это невозможно вследствие того, что один из его потоков уже занят выполнением другой работы, он выполняет рабочий элемент с использованием другого потока на другом ЦПУ.

Реализация пула потоков в Windows Server 2008 повышает эффективность использования процессоров опосредованно, используя преимущества усовершенствований порта завершения, и непосредственно, оптимизируя управление потоками, чтобы рабочие потоки динамически поступали и уходили, по мере необходимости в них для манипулирования рабочей нагрузкой приложения. Далее, центральная часть инфраструктуры была переведена в режим ядра, что минимизирует количество обращений к системе, осуществляемых использующими API приложениями. Наконец, новый API облегчает приложениям выполнение некоторых операций, например вывод из очереди единиц работы во время закрытия приложения.