Разница между прерыванием и опросом в ОС

Автор: Laura McKinney
Дата создания: 2 Апрель 2021
Дата обновления: 14 Май 2024
Anonim
Уроки Ардуино #16 - аппаратные прерывания
Видео: Уроки Ардуино #16 - аппаратные прерывания

Содержание


У нас есть много внешних устройств, подключенных к процессору, таких как мышь, клавиатура, сканер и т. Д. Эти устройства также требуют внимания процессора. Предположим, что ЦП занят отображением PDF-файла, и вы щелкаете значок медиа-окна на рабочем столе. Хотя ЦП не имеет ни малейшего представления, когда произойдет подобное событие, он должен реагировать на такие входные сигналы от устройств ввода-вывода. Прерывание и опрос - это два способа обработки событий, генерируемых устройствами, которые могут произойти в любой момент, когда процессор занят выполнением другого процесса.

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


  1. Сравнительная таблица
  2. Определение
  3. Ключевые отличия
  4. Заключение

Сравнительная таблица

Основа для сравненияПрерываниеголосование
основнойУстройство уведомляет процессор о том, что оно требует внимания процессора.CPU постоянно проверяет состояние устройства, требует ли оно внимания процессоров.
МеханизмПрерывание - это аппаратный механизм.Опрос это протокол.
ОбслуживаниеОбработчик прерываний обслуживает устройство.CPU обслуживает устройство.
индикацияСтрока запроса прерывания указывает, что устройство нуждается в обслуживании.Бит готовности к команде указывает, что устройство нуждается в обслуживании.
ЦПУПроцессор нарушается только тогда, когда устройство нуждается в обслуживании, что экономит циклы процессора.CPU должен ждать и проверять, нуждается ли устройство в обслуживании, что приводит к потере большого количества циклов CPU.
ВхождениеПрерывание может произойти в любое время.Процессор опрашивает устройства через равные промежутки времени.
КПДПрерывание становится неэффективным, когда устройства продолжают неоднократно прерывать процессор.
Опрос становится неэффективным, когда процессор редко находит устройство готовым к работе.
примерПозвольте звонку, затем откройте дверь, чтобы проверить, кто пришел.Постоянно продолжайте открывать дверь, чтобы проверить, пришел ли кто-нибудь.


Определение прерывания

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

Хотя ЦП не знает, когда произойдет прерывание, поскольку оно может произойти в любой момент, но он должен реагировать на прерывание всякий раз, когда оно происходит.

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

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

Определение опроса

Как мы видели в прерываниях, вход от устройства ввода-вывода может поступать в любой момент, запрашивая процессор для его обработки. Опрос является протокол это уведомляет процессор о том, что устройству требуется его внимание. В отличие от прерывания, когда устройство сообщает ЦПУ, что оно нуждается в обработке ЦП, при опросе ЦП сохраняет просить устройство ввода / вывода, нуждается ли оно в обработке процессора.

Процессор непрерывно протестируйте каждое подключенное к нему устройство для определения того, нуждается ли какое-либо устройство в обращении к процессору. каждый устройство имеет Команда готовности бит, который указывает состояние этого устройства, то есть имеет ли оно какую-либо команду для выполнения ЦПУ или нет. Если бит команды установлен 1, тогда у него есть какая-то команда, которую нужно выполнить, если бит 0, тогда у него нет команд. ЦПУ имеет занятый бит это указывает на состояние процессора, независимо от того, занят он или нет. Если бит занят 1, тогда он занят выполнением команды какого-либо устройства, иначе это 0.

Алгоритм опроса

  • Когда у устройства есть какая-то команда, которая должна быть выполнена ЦП, оно постоянно проверяет занятый бит ЦП, пока не станет ясно (0).
  • Когда бит занятости становится ясным, устройство устанавливает бит записи в свой регистр команд и записывает байт в регистр данных.
  • Теперь устройство устанавливает (1) бит готовности к команде.
  • Когда CPU проверяет готовый к работе бит устройства и находит его установленным (1), он устанавливает (1) свой занятый бит.
  • Затем CPU считывает регистр команд устройства и выполняет команду устройства.
  • После выполнения команды CPU очищает (0) бит готовности к команде, бит ошибки устройства, чтобы указать на успешное выполнение команды устройства, и далее он очищает (0) свой бит занятости также, чтобы указать, что CPU свободен для выполнения команда какого-то другого устройства.
  1. В случае прерывания устройство уведомляет ЦП о том, что оно нуждается в обслуживании, тогда как при опросе ЦП неоднократно проверяет, нуждается ли устройство в обслуживании.
  2. Прерывание аппаратные средства механизм поскольку процессор имеет провод, строка запроса прерывания какой сигнал это прерывание произошло. С другой стороны, опрос протокол который продолжает проверять контрольные биты уведомить, есть ли у устройства что-то для выполнения.
  3. Обработчик прерываний обрабатывает прерывания, генерируемые устройствами. С другой стороны, в опросе, ЦПУ обслуживает устройство, когда они требуют.
  4. Прерывания сигнализируются строка запроса прерывания, Тем не мение, Команда готовности бит указывает на то, что устройство нуждается в обслуживании.
  5. В случае прерываний ЦП работает только тогда, когда какое-либо устройство прерывает его. С другой стороны, при опросе ЦП теряет много циклов ЦП, периодически проверяя бит готовности к команде каждого устройства.
  6. Прерывание может произойти в в любой момент времени в то время как процессор продолжает опрашивать устройство на регулярные отрезки.
  7. Опрос становится неэффективным, когда процессор продолжает опрашивать устройство и редко находит какое-либо устройство, готовое к обслуживанию. С другой стороны, прерывания становятся неэффективными, когда устройства продолжают неоднократно прерывать обработку ЦП.

Заключение:

Оба опроса и прерывания эффективны при посещении устройств ввода-вывода. Но они могут стать неэффективными при определенных условиях, как обсуждалось выше.