Это описание из книги FreeBSD очень ориентировано на ОС.Я даже не согласен с ее определением, Эта возможность перезапустить инструкцию называется точным исключением .Вы не перезапускаете инструкцию после исключения сбоя питания.Поэтому вместо того, чтобы попытаться выяснить, что имел в виду Мак-Кьюсик, я предложу пойти в другое место для лучшего описания исключений.
Кстати, я предпочитаю определение Смита:
ПрерываниеТочно, если сохраненное состояние процесса соответствует последовательной модели выполнения программы, в которой одна инструкция завершается до начала следующей.
https://lagunita.stanford.edu/c4x/Engineering/CS316/asset/smith.precise_exceptions.pdf
Почти все современные процессоры поддерживают точные исключения.Так что тяжелая работа уже сделана.Операционная система должна зарегистрировать обработчик прерываний для исключений, которые принимает оборудование.Например, будет обработчик сбоев страниц с плавающей запятой ... Чтобы выяснить, что необходимо для этих обработчиков, вам нужно прочитать теорию операций процессора.
Несмотря на то, что кажется грубымдетали системы, это довольно высокий уровень.В нем ничего не говорится о том, что делает оборудование, и поэтому описание FreeBSD очень короткое.
Чтобы по-настоящему понять точные исключения , вам необходимо прочитать об этом в контекстеконвейерная обработка, вышедшая из строя, суперскалярная ... в книге по компьютерной архитектуре.Я бы порекомендовал Компьютерная архитектура A Количественный подход 6-е изд.Есть раздел Работа с исключениями p C-38, который представляет таксономию различных типов исключений.Описание FreeBSD описывает только некоторые исключения.Затем выясняется, как каждый тип исключения обрабатывается конвейером.
Кроме того, Интерфейс программирования Linux имеет 3 длинных главы на интерфейсе сигналов POSIX.Я знаю, что это не FreeBSD, но он охватывает то, что приложение увидит, когда, например, будет принято исключение с плавающей запятой и сигнал SIGFPE будет отправлен процессу.