Создатель оригинального Диспетчера задач в Windows объяснил, почему инструмент "врёт" о загрузке процессора
Бывший инженер Microsoft Дэйв Пламмер, приложивший руку к поддержке ZIP-файлов в Windows и меню "Пуск" в Windows NT, рассказал, как его детище на самом деле считывает загрузку CPU. Разработчик намеренно сделал Диспетчер задач максимально простым, чтобы тот не расходовал лишние ресурсы системы, но пользователи годами замечали, что цифры выглядят странно.
По словам инженера, сама задача звучит тривиально – либо процессор занят, либо нет. На практике всё упирается в вопрос "занят чем именно", и именно здесь простой спидометр превращается в подобие бухгалтерской экспертизы. За одной цифрой на экране скрывается сразу несколько плоскостей измерения:
загрузка одного ядра или всех сразу
текущий момент или усреднение за секунду-две
пользовательский режим, режим ядра или время обработки прерываний
отложенные процедурные вызовы и цикл простоя
служебные учётные категории планировщика
Диспетчер задач работает по таймеру и показывает не реальную картину в моменте, а интерпретацию того, что происходило между обновлениями. Очевидное решение (поделить загрузку на прошедшее время) требует идеально точного срабатывания GUI-таймера, а на это полагаться нельзя. Пламмер сравнил такой подход с попыткой заставить метроном держать ритм в кузове пикапа на разбитой грунтовке.
Вместо этого инженер заложил другую логику. Утилита запрашивает суммарное время каждого процесса с момента запуска, то есть сумму времени в режиме ядра и в пользовательском режиме, и вычитает из него показатель прошлого обновления. Получившееся значение делится на общее процессорное время, потреблённое всеми процессами за тот же отрезок – схема сложнее, но заметно точнее прямого деления.
Проблема в том, что усреднение между обновлениями перестало отражать реальную работу процессора. Современные чипы с динамическим масштабированием частоты, Turbo Boost, тепловым троттлингом и глубокими состояниями простоя разорвали прежнюю связь между "потраченным временем" и "выполненной работой".
Полупустое шоссе с Ferrari пропускает куда больше трафика, чем забитая дорога со старыми цементовозами – такой аналогией инженер описал нынешнее поведение CPU.
Сам Пламмер считает, что загрузка процессора должна измеряться как отношение реально выполненной работы к теоретическому максимуму, который железо могло бы выдать. Правда, повлиять на Windows разработчик уже не может, ведь он давно вышел на пенсию из Microsoft.
- В Windows 11 перестанут навязчиво требовать обновление и снизят потребление ресурсов
- На MacBook Neo можно запустить Windows, но ОЗУ хватит только на простые задачи
- Спустя 33 года после выхода Windows 3.1 разработчица из Microsoft рассказала историю легендарной желто-красной цветовой схемы в стиле тележки с хот-догами