Эта статья требует дополнительных ссылок для проверки . ( декабрь 2009 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
В архитектуре x86 исключение двойной ошибки возникает, если процессор сталкивается с проблемой при попытке обслуживания ожидающего прерывания или исключения . Пример ситуации, когда может произойти двойная ошибка, - это когда прерывание запускается, но сегмент, в котором находится обработчик прерывания, недействителен. Если процессор сталкивается с проблемой при вызове обработчика двойной ошибки, генерируется тройная ошибка, и процессор выключается.
Поскольку двойные сбои могут происходить только из-за ошибок ядра , они редко вызываются программами пользовательского пространства в современной операционной системе с защищенным режимом , если только программа каким-либо образом не получает доступ к ядру (некоторые вирусы, а также некоторые низкоуровневые программы DOS ). Другие процессоры, такие как PowerPC или SPARC, обычно сохраняют состояние в заранее определенных и зарезервированных машинных регистрах. В этом случае двойной отказ будет ситуацией, когда произойдет другое исключение, в то время как процессор все еще использует содержимое этих регистров для обработки исключения. Процессоры SPARC имеют четыре уровня таких регистров, т. Е. Имеют четырехоконную регистровую систему .
См. Также [ править ]
Дальнейшее чтение [ править ]
- Коллинз, Роберт (2000). «Тройной сбой процессора» . Повышение производительности и приемы программирования . Архивировано 9 сентября 2017 года . Проверено 22 ноября 2015 .*
- Остерман, Ларри (2005-02-08). «Более быстрое сокращение прерывания системных вызовов» . WebLog Ларри Остермана . Блоги MSDN . Архивировано 9 сентября 2017 года . Проверено 23 июля 2010 .