Входы в ядро можно категоризировать в соответствии с событием или действием, которое его вызывает.
· Аппаратное прерывание (interrupt).
· Аппаратное исключение (trap).
· Программное исключение.
Аппаратные прерывания возникают из-за внешних событий, таких, как необходимость обработки устройства ввода/вывода или сообщение от часов о наступлении определенного времени. (Например, ядро зависит от наличия часов реального времени или интервального таймера для поддержания текущего времени дня, управления планированием процессов и инициированием и выполнением системных функций тайм-аутов.) Аппаратные прерывания возникают асинхронно и могут не относиться к контексту текущего выполняющегося процесса.
Аппаратные исключения могут быть либо синхронными, либо асинхронными, но связаны с контекстом текущего выполняющегося процесса. Примерами аппаратных исключений являются исключения, сгенерированные в результате недопустимой арифметической операции, такой, как деление на ноль.
Программные исключения используются системой для принудительного планирования события, такого, как перепланирование процесса или обработка работы с сетью так быстро, как это возможно. Программные исключения реализуются установкой флага каждый раз, когда процесс собирается выйти из ядра. Если флаг установлен, вместо выхода из ядра запускается код обработки программного прерывания.
Системные вызовы являются особым случаем программного прерывания - машинная инструкция, используемая для инициирования системного вызова, обычно вызывает аппаратное исключение, которое обрабатывается ядром особым образом.
- 19/05/2010 21:00 - Возвращение из ядра
- 18/05/2010 21:00 - Выполнение системного вызова
- 18/05/2010 12:57 - Организация времени выполнения
- 17/05/2010 20:11 - Работа системы
- 16/05/2010 18:53 - Межпроцессное взаимодействие
- 15/05/2010 13:20 - Укорачивание файлов
- 14/05/2010 19:10 - Идентификация файла
- 13/05/2010 11:56 - Разбросанный ввод/вывод