Не потрібно переривати, ми майже закінчили!

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

Більшість сучасного апаратного забезпечення використовує переривання, щоб взаємодіяти з операційною системою Драйвер пристрою, який управляє деяким обладнанням, повинен зареєструвати обробник переривання, щоб відповідати на ці переривання і обробляти їх Робота, яка виконується обработчиками переривань, включає відправку підтвердження пристрою про отриманні переривання, ініціалізацію апаратного пристрою, копіювання дан-

них з памяті пристрою в память системи і, навпаки, обробку апаратних запитів і надсилання відповідей на них

Ядро надає інтерфейси для реєстрації та звільнення обробників переривань, заборони переривань, маскування ліній переривань та перевірки стану системи переривань У табл 62 наведено огляд деяких з цих функцій

Так як переривання переривають виконання іншого коду (коду процесів, коду ядра та інші обробники переривань), то вони повинні виконуватися швидко Проте часто доводиться виконувати багато роботи Для досягнення компромісу між великою кількістю роботи і необхідністю швидкого виконання обробка переривання ділиться на дві половини Верхня половина – власне обробник переривання – Розглядається в цій главі Тепер давайте розглянемо нижню половину процесу обробки переривання

Джерело: Лав, Роберт Розробка ядра Linux, 2-е видання : Пер з англ – М: ТОВ «ІД Вільямс »2006 – 448 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*