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

Выбор редакции

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Когда у устройства есть какая-то команда, которая должна быть выполнена ЦП, оно постоянно проверяет занятый бит ЦП, пока не станет ясно (0).
  • Когда бит занятости становится ясным, устройство устанавливает бит записи в свой регистр команд и записывает байт в регистр данных.
  • Теперь устройство устанавливает (1) бит готовности к команде.
  • Когда CPU проверяет готовый к работе бит устройства и находит его установленным (1), он устанавливает (1) свой занятый бит.
  • Затем CPU считывает регистр команд устройства и выполняет команду устройства.
  • После выполнения команды CPU очищает (0) бит готовности к команде, бит ошибки устройства, чтобы указать на успешное выполнение команды устройства, и далее он очищает (0) свой бит занятости также, чтобы указать, что CPU свободен для выполнения команда какого-то другого устройства.

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

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

Заключение:

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

Top