Управление приложениями, процессами и производительностью
Всякий раз, когда операционная система или пользователь запускает службу, приложение или команду, Microsoft Windows запускает один или более процессов для управления соответствующей программой.
Процессы могут работать в фоновом режиме независимо от сеансов зарегистрированных пользователей. Фоновые процессы не имеют контроля над клавиатурой, мышью или другими устройствами ввода и обычно запускаются операционной системой. Но с помощью Task Scheduler (Планировщик заданий) пользователи тоже могут запускать процессы в фоновом режиме, и эти процессы способны работать независимо от того, зарегистрирован ли пользователь в системе. Например, если планировщик заданий запускает назначенное задание при наличии зарегистрированного пользователя, процесс может продолжить выполнение даже после завершения сеанса пользователя.
Windows отслеживает каждый процесс, выполняемый в системе, по имени образа, идентификатору процесса, приоритету и другим параметрам. Имя образа — это имя исполняемого файла, используемого для запуска процесса, скажем, Msdtc.exe или Svchost.exe. Идентификатор процесса — числовой идентификатор процесса, например 2588. Приоритет процесса указывает на то, какую часть системных ресурсов должен получить процесс но сравнению с другими выполняемыми процессами. Процесс с более высоким приоритетом получает преимущества над процессами с более низким приоритетом, и, вероятно, ему не придется дожидаться получения процессорного времени, доступа к памяти или обращения к файловой системе. Процесс с более низким приоритетом, напротив, обычно вынужден ждать завершения текущей задачи, выполняемой процессом с более высоким приоритетом, и только после этого он может получить доступ к процессору, памяти или файловой системе.
Решение проблем с зависшими процессами
В идеале процессы должны работать без всяких проблем. В действительности, однако, проблемы возникают — и зачастую в самый неподходящий момент. Обычно проблемы заключаются в следующем.
- Процессы перестают отвечать, например, когда приложение прекращает обработку запросов. Как только это происходит, пользователи могут сказать вам, что они не в состоянии работать с конкретным приложением, что их запросы к приложению остаются необработанными или что оно их игнорирует.
- Процессы не освобождают процессор — например, у вас появляется неконтролируемый процесс, который захватывает все процессорное время. Когда это происходит, система может показаться работающей медленно или вообще зависшей, так как этот процесс пожирает все процессорное время и не дает другим процессам выполнять свои задачи.
- Процессы используют больше памяти, чем нужно, например, когда в приложении есть утечка памяти. В этом случае процессы не освобождают занятую ими память. В результате свободная память в системе может постепенно уменьшаться с течением времени, и, поскольку доступной памяти становится мало, может замедлиться отклик системы на запросы, или она просто перестанет на них отвечать. Утечки памяти также могут нарушить работу других програм, выполняемых в данной системе.
В большинстве случаев, когда обнаруживаются эти или другие проблемы, процесс обычно останавливают и запускают вновь. Также нужно проверить журналы событий для выявления причины проблемы. При утечках памяти следует известить об этом разработчиков и проверить, не появилось ли обновление, решающее данную проблему.