Я заметил, что на игровом ПК моего брата под управлением Windows 7 произошел сбой драйвера для его видеокарты nvidia 690, но сама ОС не вылетала, а утверждала, что восстановилась. Мне было любопытно, как это возможно? У меня сложилось впечатление, что, поскольку ядро не имеет защиты памяти, сбой драйвера может привести к выходу из строя всей ОС, что я основываюсь на своих знаниях о ядре Linux. Как Windows 7 избежать сбоя всей ОС?

4 ответа4

2

Начиная с Windows Vista и модели драйверов WDDM, драйверы графического процессора делятся на части ядра и пользовательского режима. Таким образом, проблема в части пользовательского режима больше не приводит к сбою Windows.

Функция, которую вы видите, называется Тайм-аут обнаружения и восстановления графических процессоров (TDR). Microsoft объяснила это здесь, в статье.

  1. Компонент Video Scheduler графического стека Windows Vista обнаруживает, что графическому процессору требуется больше разрешенного квантового времени для выполнения конкретной задачи, и пытается выгрузить эту конкретную задачу. Операция с упреждением имеет тайм-аут ожидания - фактический тайм-аут TDR. Таким образом, этот этап является фазой «обнаружения тайм-аута» процесса. Период ожидания по умолчанию в Windows Vista составляет 2 секунды. Если графический процессор не может завершить или выгрузить текущую задачу в течение тайм-аута TDR, графический процессор будет диагностирован как зависший.

  2. Операционная система информирует драйвер WDDM о том, что тайм-аут обнаружен, и она должна сбросить графический процессор. Драйвер получает указание прекратить доступ к памяти и не должен получать доступ к оборудованию после этого времени. Операционная система и драйвер WDDM собирают информацию об аппаратном обеспечении и другую информацию о состоянии, которая может быть полезна для посмертной диагностики.

  3. Операционная система сбрасывает соответствующее состояние графического стека. Компонент Video Memory Manager графического стека удаляет все выделения из видеопамяти. Драйвер WDDM сбрасывает аппаратное состояние графического процессора. Графический стек выполняет последние действия и восстанавливает рабочий стол до адаптивного состояния. Как упоминалось ранее, некоторые старые приложения DirectX теперь могут отображать только черный цвет, и пользователю может потребоваться перезапустить эти приложения. Хорошо написанные приложения DirectX 9Ex и DirectX 10, которые обрабатывают "Удаление устройства", продолжают работать правильно. Приложение должно выпустить, а затем воссоздать свое устройство Microsoft Direct3D и все его объекты.

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

Если вы видите это сообщение слишком часто, проверьте эту статью базы знаний:

Ошибка "Драйвер дисплея перестал отвечать и восстановился" в Windows 7 или Windows Vista

http://support.microsoft.com/kb/2665946/en-us

Если вы используете AMD GPU, проверьте эту статью от AMD:

Как устранить неполадки «Драйвер дисплея перестал отвечать и восстановился», ошибки типа ATIKMDAG.sys

http://support.amd.com/en-us/kb-articles/Pages/737-27116RadeonSeries-ATIKMDAGhasstoppedrespondingerrormessages.aspx

1

"Авария" - это очень широкий термин. Вы, вероятно, имеете в виду это сообщение:

Драйвер дисплея перестал отвечать и был восстановлен.

Это тоже не очень подробно, и вы должны прочитать это так:

Ваш графический процессор сделал что-то неожиданное, но драйвер исправил это. Не паникуйте, сейчас ситуация под контролем.

Таким образом, в основном это не драйвер, а аппаратное обеспечение. Водитель сделал все возможное и преуспел. То, что происходит при закрытии графического процессора, зависит от реализации, но обычно драйвер сбрасывает его, чтобы убедиться, что он не находится в ненормальном состоянии.

Я полагаю, что восстановление после сбоя графического процессора в этой форме поддерживается Windows начиная с Vista, но я помню, что подобное автоматическое восстановление на картах ASUS с графическим процессором ATI в XP было примерно 8 лет назад, до выпуска Vista.

0

Драйвер не разбился, GPU сделал. ПК восстанавливается путем сброса графического процессора.

0

Я не могу сказать наверняка на Win7, но на других системах драйверы имеют верхнюю и нижнюю части. Нижняя часть, скорее всего, приведет к краху всей вашей системы, поскольку она работает в общей памяти. Вершина работает на гораздо более высоком уровне, и ее можно защитить от повреждения другими вещами, и, таким образом, обнаруживать сбои по запрошенным запросам памяти и, таким образом, захватывать до того, как они уничтожат что-то еще.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .