# Вопрос 60: Системы приоритетов прерываний

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

Второй механизм – с относительным приоритетом. В этом случае все прерывания имеют свой приоритет, который у них отличается. Пусть мы имеем три прерывания A,B и С, которые имеют приоритеты а>b>c. Пусть возникло прерывание B. Процессор перешел к программе его обработки. В время обработки возникли запросы на прерывания сначала С, затем А. Обработка прерывания B не была прервана и программа обработки прерывания B доработала до конца. Теперь, несмотря на то, что запрос на прерывание C пришел раньше, чем на A, происходит переход к обработке прерывания A, потому что оно обладает более высоким приоритетом (рисунок ниже). Механизм с относительным приоритетом

Третий механизм – механизм с абсолютным приоритетом. Пусть у нас есть два источника прерывания A и B. С приоритетами a>b. Пусть поступил запрос на прерывание B. Процессор приступил к программе его обработки. В это время поступило прерывание A. Процессор прерывал программу по обработке прерывания B и перешел к обработке прерывания A. По окончании программы обработки прерывания A процессор вернулся и закончил обработку прерывания B. Механизм с абсолютным приоритетом

В некоторых системах существует сложный механизм динамического изменения прерываний, то есть после выполнения некоторого прерывания его приоритет падает. Такие системы прерываний называются полинговыми. Пусть у нас есть три прерывания A,B,C с динамическими приоритетами a>b>c. Произошло прерывание A, и процессор его обработал. Теперь мы имеем приоритеты b>c>a. В некоторых случаях приоритет прерывания повышается с течением времени. Полинговые системы прерываний применяются в системах, где количество прерываний велико или велика частота их возникновения. При статических приоритетах может возникнуть ситуация, когда прерывание с низким приоритетом никогда не будет обработано, так как его постоянно будут вытеснять другие с более высоким приоритетом. Полинговые системы решают эту проблему.

results matching ""

    No results matching ""