Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Відкладена обробка переривань

Встановлення оброблювачів переривань

Рівні переривань

Введення-виведення, кероване перериваннями

Про концепцію переривань ішлося раніше, а тут зупинимося на викори­станні переривань для організації введення-виведення та особливостях їхньої об­робки у драйверах пристроїв.

Базовий механізм переривань дає змогу процесору відповідати на асинхронні події. Така подія може бути згенерована контролером після закінчення введен­ня-виведення або у разі помилки, після чого процесор зберігає стан і переходить до виконання оброблювача переривання, встановленого ОС. Цим знімають необ­хідність опитування пристрою - система може продовжувати звичайне виконан­ня після початку операції введення-виведення.

Розглянемо деякі додаткові дії, що виникають під час організації обробки пе­реривань у сучасних ОС.

Насамперед необхідно мати можливість скасовувати або відкладати обробку пе­реривань під час виконання важливих дій.

Виходячи з цього, переривання поділяють на рівні відповідно до їхнього пріо­ритету (Interrupt Request Level, IRQL — рівень запиту переривання). Окремі фрагменти коду ОС можуть маскувати переривання, нижчі від певного рівня, скасовуючи їхнє отримання. Виділяють, крім того, немасковані переривання, от­римання яких не можна скасувати (апаратний збій пам'яті тощо).

Зазначимо, що за деяких умов переривання вищого рівня можуть переривати виконання оброблювачів нижчого рівня.

Контролер переривань здійснює роботу з перериваннями на апаратному рівні. Він є спеціальною мікросхемою, що дає змогу відсилати сигнал процесору різними лініями. Процесор вибирає оброблювач переривання, на який потрібно перейти, на підставі номера лінії, що нею прийшов сигнал, її називають лінією запиту перериван­ня або просто лінією переривання (IRQ line). У старих архітектурах застосовували- заблокувати, резервувати пам'ять за допомогою операцій, що призводять до сторінкового переривання).

Основною вимогою до оброблювачів є ефективність їхньої реалізації. Оброблю­вач переривання повинен завершувати свою роботу швидко, щоб переривання не залишалися заблокованими надто довго. З іншого боку, часто у відповідь на пере­ривання необхідно виконати досить великий обсяг роботи. Два критерії (швид­кість і обсяг роботи) у цьому разі конфліктують один із одним.

Сучасні ОС вирішують цю проблему через поділ коду оброблювача перери­вання навпіл.

Верхня половина (top half) — це безпосередньо оброблювач переривання, що виконується у відповідь на прихід сигналу відповідною лінією. Зазвичай у верх­ній половині здійснюють мінімально необхідну обробку (наприклад, повідомля­ють пристрій про те, що переривання оброблене), після чого вона планує до вико­нання другу частину.

Нижня половина (bottom half) не виконується негайно у відповідь на перери­вання, ядро планує її до виконання пізніше, у безпечніший час. Основна відмін­ність між виконанням обох частин полягає в тому, що під час виконання нижньої половини переривання дозволені, тому вона не впливає на обслуговування інших переривань — ті з них, які виникли після завершення верхньої половини, будуть успішно оброблені. В усьому іншому до коду нижньої половини ставлять ті самі вимоги, що й до коду оброблювачів.

Таку технологію називають відкладеною обробкою переривань, вона реалізова­на в усіх сучасних ОС. У Linux механізми реалізації коду нижньої половини, по­чинаючи із версії 2.4, називають тасклетами (tasklets), у Windows XP - відкла­деними викликами процедур (deferred procedure calls, DPC).

<== предыдущая лекция | следующая лекция ==>
Способи виконання операцій введення-виведення | Планування операцій введення-виведення
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 964; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.