Назад | Перейти на главную страницу

BSOD BugCheck в многоядерной системе - какой поток вызвал сбой?

Я знаю, что система Windows выйдет из строя со стоп-ошибкой и "синим экраном" для несколько общих причин, некоторые из которых могут быть:

Что меня интересует, так это то, что при изучении аварийного дампа (скажем, WinDBG) в дампе всегда будет указываться поток, вызвавший сбой, что позволяет исследовать стек для этого потока, предоставляя историю вызовов, которые привели к проверка ошибок и сбой. Просмотр этого стека дает подсказки относительно того, как предотвратить проблему в будущем (например, конкретный драйвер требует обновления и т. Д.).

Зная это, я задал себе следующий вопрос, который обнаруживает пробел в моих знаниях:

  1. В многоядерной / процессорной системе несколько потоков будут выполняться одновременно.
  2. Поэтому, конечно, есть вероятность того, что два потока одновременно вызовут проверку ошибок?

Что происходит при этих обстоятельствах? Есть ли у меня фундаментальное непонимание того, как ОС обрабатывает многоядерные / процессорные системы с точки зрения одновременного выполнения и доступа к памяти и оборудованию (IRQL и отложенные вызовы процедур (DPC) и т. Д.)?

Спасибо