Como o windows 7 pode se recuperar de uma falha de driver?

0

Notei que o PC de jogos do meu irmão executando o Windows 7 teve uma falha de driver para sua placa de vídeo nvidia 690, mas o próprio SO não travou, em vez disso alegou que ele havia se recuperado. Eu estava curioso como isso é possível? Fiquei com a impressão de que, uma vez que o kernel não tem proteção de memória, uma falha de driver derrubaria todo o sistema operacional, o que eu estou baseando meu conhecimento sobre o kernel do Linux. Como o windows 7 evita que o sistema operacional inteiro falhe?

    
por Fred Thomsen 25.12.2013 / 23:13

4 respostas

2

A partir do Windows Vista e do modelo de driver WDDM, os drivers da GPU são divididos em uma parte do kernel e do modo de usuário. Então, um problema na parte do modo de usuário não trava o Windows por mais tempo.

O recurso que você vê é chamado Detecção de tempo limite e recuperação de GPUs (TDR) . A Microsoft explicou isso aqui em um artigo .

  1. The Video Scheduler component of the Windows Vista graphics stack detects that the GPU is taking more than the permitted quantum time to execute the particular task and tries to preempt this particular task. The preempt operation has a "wait" timeout—the actual "TDR timeout." This step is thus the "timeout detection" phase of the process. The default timeout period in Windows Vista is 2 seconds. If the GPU cannot complete or preempt the current task within the TDR timeout, then the GPU is diagnosed as hung.

  2. The operating system informs the WDDM driver that a timeout has been detected and it must reset the GPU. The driver is told to stop accessing memory and should not access hardware after this time. The operating system and the WDDM driver collect hardware and other state information that could be useful for post-mortem diagnosis.

  3. The operating system resets the appropriate state of the graphics stack. The Video Memory Manager component of the graphics stack purges all allocations from video memory. The WDDM driver resets the GPU hardware state. The graphics stack takes the final actions and restores the desktop to the responsive state. As mentioned earlier, some older DirectX applications may now render just black, and the user may be required to restart these applications. Well-written DirectX 9Ex and DirectX 10 applications that handle "Device Remove" continue to work correctly. The application must release and then recreate its Microsoft Direct3D device and all of its objects.

    Throughout the process of GPU hang detection and recovery, the desktop is unresponsive and thus unavailable to the user. In the final stages of recovery, a brief screen flash occurs that is similar to the one when the screen resolution is changed. After the desktop has been successfully recovered, the following informational message appears to the user. enter image description here

Se você vir esta mensagem com muita frequência, confira este artigo da base de conhecimento:

"Driver do monitor parou de responder e recuperou" erro no Windows 7 ou no Windows Vista

link

Se você usa uma GPU AMD, confira este artigo da AMD:

Como solucionar problemas de "Driver de vídeo parou de responder e se recuperou", erros de tipo ATIKMDAG.sys

link

    
por 26.12.2013 / 08:11
1

"Crash" é um termo muito amplo. Você provavelmente quis dizer esta mensagem de balão:

Display driver stopped responding and has recovered.

Também não é muito detalhado e você deve ler assim:

Your GPU has done something unexpected but the driver has done some magic to recover it. Don't panic, situation is under control now.

Então, basicamente, não é o driver que caiu, mas o hardware. Driver fez o seu melhor e conseguiu. O que está acontecendo sob o capô quando a GPU trava depende da implementação, mas geralmente o driver está redefinindo-a para garantir que ela não esteja em algum estado anormal.

Eu acredito que a recuperação de falhas da GPU nesta forma é suportada pelo Windows desde o Vista, mas eu me lembro de ver uma recuperação automática semelhante em placas ASUS com GPU da ATI no XP há 8 anos, antes do lançamento do Vista.

    
por 25.12.2013 / 23:33
0

O driver não travou, a GPU fez. O PC recuperado, redefinindo a GPU.

    
por 25.12.2013 / 23:19
0

Eu não posso dizer com certeza sobre o Win7, mas em outros sistemas os drivers têm uma parte superior e uma parte inferior. A parte inferior provavelmente irá travar todo o seu sistema porque ele é executado na memória comum. O topo é executado em um nível muito mais alto e é possível protegê-lo de danificar outras coisas e, assim, para que as falhas sejam detectadas por solicitações de memória fora dos limites e, assim, capturadas antes que elas destruam algo diferente.

    
por 26.12.2013 / 04:35