Системная служба Taskhost: что это?

Каждому использующему ОС Windows, так или иначе, приходилось вызывать «Диспетчер задач», чтобы, например, завершить зависшее приложение или отследить службу, нагружающую системные ресурсы. И многие обращали внимание, что в дереве процессов постоянно висит служба Taskhost. Что это такое, мы и попробуем разобраться. По крайней мере, рассмотрим вкратце ее назначение, функционирование и некоторые проблемы в работе.

Taskhost: что это?

Вообще толковое полное описание работы самой службы Taskhost даже на просторах всемирной паутины найти достаточно проблематично. Эта касается материала, рассчитанного на рядового пользователя, написанного простым доступным языком. В основном все касается технического аспекта и дебрей основ работы Windows. Но мы все-таки постараемся рассмотреть процесс taskhost. Что это за служба, сейчас и выясним.

Отталкиваясь от того, что пишут специалисты корпорации Microsoft, службу Taskhost можно охарактеризовать как средство запуска в системе приложений и программ с архитектурой в 32 бита, представленных не в виде стандартного исполняемого EXE-файла, а в виде динамической библиотеки DLL, содержащей программный исполняемый код, который и извлекается из нее данной службой.

Проще всего это пояснить на примере использования, скажем, VST-, DX- или RTAS-плагинов для музыкальных программ, оснащенных соответствующими хостами. В данном случае такие виртуальные инструменты и эффекты представлены именно файлами DLL.

В чем-то это напоминает принципы работы процессов rundll32 и svchost, но только первая из этих двух служб запускается для каждого процесса отдельно, а вторая отвечает за запуск всех 32-битных приложений в целом. Судя по этому, процесс Taskhost является дублирующим, и для вызова нескольких процессов стартует в нескольких вариантах (с разными атрибутами), но на одной службе висит несколько динамических библиотек, что иногда приводит к слишком высокой нагрузке на системные ресурсы и к зависанию всей системы. Кроме того, нередко встречаются конфликты между параллельными процессами Taskhost и Rundll32.

Кстати сказать, хотя taskhost - это общий системный процесс, он запускается отдельно для каждого пользовательского сеанса.

Проблемы с нагрузкой на системные ресурсы

Итак, в «Диспетчере задач» в дереве процессов и на мониторе системных ресурсов самой ресурсоемкой определяется служба Taskhost. Что это с точки зрения потребления системных ресурсов? А вот что. Поскольку служба запускается в единственном числе с каждым из атрибутов LOCAL SERVICE, SYSTEM и под текущим именем пользователя, но отвечает она за запуск нескольких библиотек в зависимости от завышенных требований какой-либо из них, происходит увеличение нагрузки на файл службы Taskhost, что неизменно ведет к растущему потреблению ресурсов центрального процессора и оперативной памяти.

Слабые процессоры просто не успевают обрабатывать такое количество информации.

Можно ли отключить службу taskhost.exe?

Теперь несколько слов о возможности отключения службы, если наблюдается ее чрезмерная нагрузка на системные ресурсы. В принципе, считается, что системные службы типа Taskhost Windows (в смысле сама «операционка») отключать не может. В стандартном варианте так и есть, но это ограничение можно обойти. Если вы думаете, что при отключении этой службы в системе проявятся какие-то негативные последствия, вы глубоко заблуждаетесь. Ничего страшного не произойдет, зато освободятся дополнительные ресурсы, да и быстродействие повысится. Это, прежде всего, касается Windows XP и Vista.

Для отключения можно использовать деактивацию самого «Планировщика задач» или одну из его функций под названием RacSysprepGeneralize. Но это уже другой вопрос.

Комментарии