Sunday, Feb 05th

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Запуск и выключение Системный вход

Системный вход

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

· Аппаратное прерывание (interrupt).

· Аппаратное исключение (trap).

· Программное исключение.

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

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

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

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


Похожие:
Еще по теме:
Советуем прочитать:

Сейчас 23 гостей онлайн

Реклама на сайте:

Организация праздников детские праздники Киев.