Составители:
5. После того как прерывание обработано ядром операционной
системы, прерванный контекст восстанавливается и работа потока
возобновляется с прерванного места.
4.3 Функции централизованного диспетчера прерываний
Прерывания выполняют очень полезную для вычислительной системы
функцию — они позволяют реагировать на асинхронные но отношению к
вычислительному процессу события. Трудности обработки прерываний
связаны с непредвиденными переходами управления от одной процедуры к
другой, возникающими в результате прерываний от контроллеров внешних
устройств. А также возникновение в непредвиденные моменты времени
исключений, связанных с ошибками во время выполнения инструкций.
Операционная система должна упорядочивать выполнения системных
процедур, вызываемых по прерываниям во времени так же, как планировщик
упорядочивает многочисленные пользовательские потоки. Кроме того, сам
планировщик потоков является системной процедурой, вызываемой по
прерываниям. Поэтому правильное планирование процедур, вызываемых по
прерываниям, является необходимым условием правильного планирования
пользовательских потоков.
Для упорядочения работы обработчиков прерываний в операционных
системах применяется тот же механизм, что и для упорядочения работы
пользовательских процессов — механизм приоритетов. В операционной
системе выделяется программный модуль, который занимается
диспетчеризацией обработчиков прерываний, называемый диспетчером
прерываний.
При возникновении прерывания диспетчер прерываний вызывается
первым. Он запрещает ненадолго все прерывания, а затем выясняет причину
прерывания. После этого диспетчер сравнивает назначенный данному
источнику прерывания приоритет и сравнивает его с текущим
приоритетом потока команд, выполняемого процессором. В этот момент
времени процессор уже может выполнять инструкции другого обработчика
прерываний, также имеющего некоторый приоритет. Если приоритет
нового запроса выше текущего, то выполнение текущего обработчика
приостанавливается и он помещается в соответствующую очередь
обработчиков прерываний. В противном случае в очередь помещается
обработчик нового запроса.
4.4 Процедуры обработки прерываний вызванные из
текущего процесса
Важной особенностью процедур, выполняемых по запросам
прерываний, является то, что они выполняют работу, чаще всего никак не
70
5. После того как прерывание обработано ядром операционной
системы, прерванный контекст восстанавливается и работа потока
возобновляется с прерванного места.
4.3 Функции централизованного диспетчера прерываний
Прерывания выполняют очень полезную для вычислительной системы
функцию — они позволяют реагировать на асинхронные но отношению к
вычислительному процессу события. Трудности обработки прерываний
связаны с непредвиденными переходами управления от одной процедуры к
другой, возникающими в результате прерываний от контроллеров внешних
устройств. А также возникновение в непредвиденные моменты времени
исключений, связанных с ошибками во время выполнения инструкций.
Операционная система должна упорядочивать выполнения системных
процедур, вызываемых по прерываниям во времени так же, как планировщик
упорядочивает многочисленные пользовательские потоки. Кроме того, сам
планировщик потоков является системной процедурой, вызываемой по
прерываниям. Поэтому правильное планирование процедур, вызываемых по
прерываниям, является необходимым условием правильного планирования
пользовательских потоков.
Для упорядочения работы обработчиков прерываний в операционных
системах применяется тот же механизм, что и для упорядочения работы
пользовательских процессов — механизм приоритетов. В операционной
системе выделяется программный модуль, который занимается
диспетчеризацией обработчиков прерываний, называемый диспетчером
прерываний.
При возникновении прерывания диспетчер прерываний вызывается
первым. Он запрещает ненадолго все прерывания, а затем выясняет причину
прерывания. После этого диспетчер сравнивает назначенный данному
источнику прерывания приоритет и сравнивает его с текущим
приоритетом потока команд, выполняемого процессором. В этот момент
времени процессор уже может выполнять инструкции другого обработчика
прерываний, также имеющего некоторый приоритет. Если приоритет
нового запроса выше текущего, то выполнение текущего обработчика
приостанавливается и он помещается в соответствующую очередь
обработчиков прерываний. В противном случае в очередь помещается
обработчик нового запроса.
4.4 Процедуры обработки прерываний вызванные из
текущего процесса
Важной особенностью процедур, выполняемых по запросам
прерываний, является то, что они выполняют работу, чаще всего никак не
70
Страницы
- « первая
- ‹ предыдущая
- …
- 68
- 69
- 70
- 71
- 72
- …
- следующая ›
- последняя »
