цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Системные прерывания, исключения в процессорах Intel

Системные прерывания, исключения в процессорах Intel

Автор: Mike(admin) от 3-06-2019, 04:05

Системные прерывания


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


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


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


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


Исключения в процессорах Intel


Системы Pentium могут иметь до 256 различных видов исключений. Номера в интервале от 0 до 31 соответствуют исключениям, определенным архитектурой Pentium, и таким образом идентичным в любых системах класса Pentium. Номера в интервале от 32 до 255 соответствуют аппаратным и системным прерываниям, принадлежащим операционной системе.


Ошибка деления возникает, когда приложение делает попытку деления на нуль, или когда результат команды деления слишком велик для операнда назначения. Unix не пытается исправлять ошибки деления, предпочитая просто прервать программу. Командные процессоры Unix обычно сообщают об ошибках деления как «Ошибка операции с плавающей точкой».


Печально известное общее нарушение защиты возникает по разным причинам, обычно ввиду того, что программа ссылается на не определенную область виртуальной памяти, или когда программа пытается сделать запись в процедурный сегмент, определенный как «только-для-чтения». Unix не пытается исправлять такие сбои. Командные процессоры Unix обычно сообщают об общих нарушениях защиты как «Сбой сегментации».


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




© digitrode.ru



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий