Рекомендуємо, 2024

Вибір Редакції

Різниця між перериванням і опитуванням в ОС

Ми маємо безліч зовнішніх пристроїв, приєднаних до процесора, як миша, клавіатура, сканер, принтер і т.д. Ці пристрої також потребують уваги процесора. Припустимо, CPU зайнятий у відображенні PDF-файлу, а ви клацніть на піктограмі медіапрогравача вікна на робочому столі. Хоча CPU не має ніякої ідеї, коли подія, як це відбудеться, але він повинен відповісти на такі входи з пристроїв введення / виводу. Переривання і опитування - це два способи обробки подій, що генеруються пристроями, які можуть трапитися в будь-який момент, коли процесор зайнятий у виконанні іншого процесу.

Опитування та переривання дозволяють процесору зупиняти те, що він робить, і реагувати на більш важливе завдання. Опитування та переривання відрізняються один від одного в багатьох аспектах. Але основним моментом, який відрізняє Polling і Interrupt є те, що в опитуванні CPU продовжує перевіряти пристрої вводу-виводу на регулярній основі чи потребує служба CPU, тоді як пристрій переривання процесора перериває процесор і повідомляє процесору, що він потребує служби CPU . Я обговорював деякі відмінності між перериванням і опитуванням у таблиці порівняння нижче.

Діаграма порівняння

Основа для порівнянняПерериванняОпитування
ОсновнийПристрій повідомляє процесор, що він потребує уваги процесора.Процесор постійно перевіряє стан пристрою, чи потребує він уваги процесора.
МеханізмПереривання - це апаратний механізм.Опитування - це протокол.
ОбслуговуванняОбробник переривання обслуговує пристрій.Процесор обслуговує пристрій.
ІндикаціяЛінія запиту на переривання вказує, що пристрій потребує обслуговування.Біт Comand-ready показує, що пристрій потребує обслуговування.
ЦППроцесор порушується тільки тоді, коли пристрою потрібне обслуговування, яке зберігає цикли процесора.Процесор повинен почекати і перевірити, чи потребує пристрій обслуговування, яке витрачає багато циклів процесора.
ВиникненняПереривання може відбутися в будь-який час.CPU опитує пристрої через регулярні інтервали.
ЕфективністьПереривання стає неефективним, коли пристрої постійно переривають процесор.
Опитування стає неефективним, коли процесор рідко знаходить пристрій, готовий до обслуговування.
ПрикладНехай дзвоник відкриє двері, щоб перевірити, хто прийшов.Постійно відкривайте двері, щоб перевірити, чи хтось прийшов.

Визначення переривання

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

Хоча CPU не знає, коли буде відбуватися переривання, як це може статися в будь-який момент, але він повинен реагувати на переривання, коли це відбувається.

Коли обробник переривання закінчує виконання переривання, процесор відновлює виконання завдання, яке він зупинив для відповіді на переривання. Програмне забезпечення, апаратне забезпечення, користувач, деякі помилки в програмі і т.д. можуть також генерувати переривання. Переривання обробки природи ЦП призводить до багатозадачності, тобто користувач може виконувати ряд різних завдань одночасно.

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

Визначення опитування

Як ми бачили в перериваннях, вхід з пристрою вводу / виводу може прийти в будь-який момент з проханням обробити процесор. Опитування - це протокол, який повідомляє CPU, що пристрій потребує його уваги. На відміну від переривання, де пристрій повідомляє процесору, що він потребує обробки процесора, в опитуванні процесор продовжує запитувати пристрій вводу-виводу, чи потрібна обробка процесора.

Процесор постійно перевіряє кожне пристрій, прикріплене до нього, для виявлення необхідності будь-якого пристрою. Кожен пристрій має біт, готовий до команд, який вказує на стан цього пристрою, тобто чи має він певну команду для виконання процесором чи ні. Якщо командний біт встановлений на 1, то має деяку команду, яка повинна бути виконана, якщо біт дорівнює 0, то він не має команд. CPU має зайнятий біт, який вказує на стан CPU, чи він зайнятий чи ні. Якщо зайнятий біт встановлений 1, то він зайнятий у виконанні команди деякого пристрою, інакше це 0 .

Алгоритм опитування

  • Коли пристрій має певну команду для виконання процесором, він постійно перевіряє зайнятий біт процесора, поки він не стане ясним (0).
  • Оскільки біт зайнято стає ясним, пристрій встановлює біт запису в реєстр команд і записує байт у реєстр даних.
  • Тепер пристрій встановлює (1) готовий до команди біт.
  • Коли CPU перевіряє біт, готовий до команд, і знаходить його встановлений (1), він встановлює (1) свій зайнятий біт.
  • Після цього CPU зчитує реєстр команд пристрою і виконує команду пристрою.
  • Після виконання команди CPU очищає (0) біт, готовий до команд, біт помилки пристрою, щоб вказувати на успішне виконання команди пристрою, і далі очищує (0) його зайнятий біт, щоб вказати, що процесор вільний для виконання команду іншого пристрою.

Ключові відмінності між перериванням і опитуванням в ОС

  1. При перериванні пристрій повідомляє процесор, що він потребує обслуговування, тоді як в опитуванні CPU неодноразово перевіряє, чи потребує пристрій обслуговування.
  2. Переривання - це апаратний механізм, оскільки CPU має провідну лінію запиту переривання, яка сигналізує про те, що відбулося переривання. З іншого боку, опитування - це протокол, який перевіряє контрольні біти, щоб повідомити, чи має пристрій щось виконати.
  3. Обробник переривань обробляє переривання, що генеруються пристроями. З іншого боку, в опитуванні процесор обслуговує пристрій, коли він цього вимагає.
  4. Переривання сигналізується лінією запиту на переривання . Однак біт Command-ready показує, що пристрій потребує обслуговування.
  5. У перериваннях ЦП порушується лише при перериванні будь-якого пристрою. З іншого боку, в опитуванні процесор витрачає багато циклів процесора, повторно перевіряючи готовий біт кожного пристрою.
  6. Переривання може відбуватися в будь-який момент часу, тоді як процесор продовжує проводити опитування пристрою на регулярних інтервалах .
  7. Опитування стає неефективним, коли процесор продовжує проводити опитування пристрою і рідко знаходить будь-який пристрій, готовий до обслуговування. З іншого боку, переривання стають неефективними, коли пристрої постійно переривають обробку процесора.

Висновок:

Обидва запити та переривання є ефективними при відвідуванні пристроїв вводу-виводу. Але вони можуть стати неефективними при певних умовах, як обговорювалося вище.

Top