Иллюстрированный самоучитель по теории операционных систем

Компьютер и внешние события

  • Компьютер и внешние события

    Мы ждали его слишком долго. | Что может быть глупее, чем ждать? | Б. Гребенщиков | Практически все функции современных вычислительных систем так или иначе сводятся к обработке внешних событий. Единственная категория приложений, для которых внешние события совершенно неактуальны – это так называемые пакетные приложения, чаще всего – вычислительные задачи.
  • Опрос

    Наивное решение состоит в том, что нам следует циклически опрашивать признак события (пример 6.1). Это решение хорошо не только концептуальной простотой, но и тем, что если цикл опроса короток, время реакции будет очень маленьким.
  • Канальные процессоры и прямой доступ к памяти

    Одно из решений состоит в том, чтобы завести отдельный процессор и поручить ему всю работу по опросу. Процессор, занимающийся только организацией ввода-вывода, называют периферийным или канальным (channel).
  • Прерывания

    Альтернатива опросу, применяемая практически во всех современных процессорах, называется прерываниями (interrupt), и состоит в значительном усложнении логики обработки команд процессором. | Процессор имеет один или несколько входов, называемых сигналами или линиями запроса прерывания.
  • Исключения

    Многие процессоры используют механизм, родственный прерываниям, для обработки не только внешних, но и внутренних событий: мы с вами уже сталкивались с исключительными ситуациями (exception) отсутствия страницы и ошибки доступа в процессорах с виртуальной памятью, а также некоторыми другими – ошибкой шины при доступе к невыровненным словам, заполнению и очистке регистрового окна у SPARC и т. д.
  • Многопроцессорные архитектуры

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