stringtranslate.com

Ввод, вывод

В вычислениях ввод/вывод ( I/O , i/o или неофициально io или IO ) — это связь между системой обработки информации, такой как компьютер , и внешним миром, таким как другая компьютерная система, периферийные устройства или компьютер. человек-оператор. Входы — это сигналы или данные, полученные системой, а выходы — это сигналы или данные , отправленные из нее. Этот термин также можно использовать как часть действия; «Выполнить ввод-вывод» означает выполнить операцию ввода или вывода .

Устройства ввода-вывода — этоаппаратные средства, используемые человеком (или другой системой) для связи с компьютером. Например,клавиатураиликомпьютерная мышь— этоустройство вводадля компьютера, амониторыипринтерыустройства вывода. Устройства для связи между компьютерами, такие какмодемыисетевые карты, обычно выполняют операции ввода и вывода. Любое взаимодействие интерактора с системой являетсявходом, а реакция, на которую реагирует система, называется выходом.

Обозначение устройства как входа или выхода зависит от точки зрения. Мыши и клавиатуры воспринимают физические движения, которые выводит пользователь-человек, и преобразуют их во входные сигналы, которые может понять компьютер; вывод этих устройств является входом компьютера. Точно так же принтеры и мониторы принимают сигналы, выдаваемые компьютерами, в качестве входных данных и преобразуют эти сигналы в представление, понятное пользователям. С точки зрения пользователя -человека , процесс чтения или просмотра этих представлений получает выходные данные; этот тип взаимодействия компьютеров и людей изучается в области взаимодействия человека и компьютера . Дополнительная сложность заключается в том, что устройство, традиционно считающееся устройством ввода, например, устройство считывания карт, клавиатура, может принимать команды управления, например, для выбора укладчика, отображения индикаторов клавиатуры, в то время как устройство, традиционно считающееся устройством вывода, может предоставлять данные о состоянии (например, , мало тонера, закончилась бумага, замятие бумаги).

В компьютерной архитектуре сочетание ЦП и основной памяти , в которую ЦП может читать или записывать напрямую с помощью отдельных инструкций , считается мозгом компьютера. Любая передача информации в или из комбинации ЦП/памяти, например, путем чтения данных с жесткого диска , считается вводом-выводом. [1] ЦП и его поддерживающая схема могут обеспечивать ввод-вывод с отображением в памяти , который используется в низкоуровневом компьютерном программировании , например, при реализации драйверов устройств , или могут обеспечивать доступ к каналам ввода-вывода . Алгоритм ввода-вывода предназначен для использования локальности и эффективной работы при обмене данными с дополнительным устройством хранения, например дисководом.

Интерфейс

Интерфейс ввода-вывода требуется всякий раз, когда устройство ввода-вывода управляется процессором. Обычно ЦП взаимодействует с устройствами через шину . Интерфейс должен иметь необходимую логику для интерпретации адреса устройства, сгенерированного процессором. Подтверждение связи должно реализовываться интерфейсом с использованием соответствующих команд (таких как BUSY, READY и WAIT), и процессор может взаимодействовать с устройством ввода-вывода через интерфейс. Если происходит обмен данными разных форматов, интерфейс должен иметь возможность преобразовывать последовательные данные в параллельную форму и наоборот. Поскольку для процессора было бы напрасно простаивать во время ожидания данных от устройства ввода, необходимо предусмотреть возможность генерации прерываний [2] и соответствующих номеров типов для дальнейшей обработки процессором, если потребуется. [ нужны разъяснения ]

Компьютер, использующий ввод-вывод с отображением в памяти, обращается к оборудованию путем чтения и записи в определенные ячейки памяти, используя те же инструкции на языке ассемблера, которые компьютер обычно использует для доступа к памяти. Альтернативный метод — ввод-вывод на основе инструкций, который требует, чтобы ЦП имел специализированные инструкции для ввода-вывода. [1] Устройства ввода и вывода имеют скорость обработки данных , которая может сильно различаться. [2] Для некоторых устройств, способных обмениваться данными на очень высоких скоростях, требуется прямой доступ к памяти (DMA) без постоянной помощи ЦП. [2]

Реализация более высокого уровня

Операционная система и средства программирования более высокого уровня используют отдельные, более абстрактные концепции и примитивы ввода-вывода . Например, большинство операционных систем предоставляют прикладным программам концепцию файлов . Языки программирования C и C++ , а также операционные системы семейства Unix традиционно абстрагируют файлы и устройства в виде потоков , которые можно читать или записывать, а иногда и то, и другое. Стандартная библиотека C предоставляет функции для управления потоками ввода и вывода.

В контексте языка программирования АЛГОЛ 68 средства ввода и вывода вместе называются транспутом . Библиотека передачи ALGOL 68 распознает следующие стандартные файлы/устройства : stand in, stand outи .stand errorsstand back

Альтернативой специальным примитивным функциям является монада ввода-вывода , которая позволяет программам просто описывать ввод-вывод, а действия выполняются вне программы. Это примечательно, поскольку функции ввода-вывода могут привнести побочные эффекты в любой язык программирования, но это делает чисто функциональное программирование практичным.

Канальный ввод/вывод

Канал ввода-вывода требует использования инструкций, специально разработанных для выполнения операций ввода-вывода. Инструкции ввода-вывода адресуют канал или канал и устройство; канал асинхронно получает доступ ко всей другой необходимой адресной и управляющей информации. Это похоже на DMA, но более гибко.

Ввод-вывод с отображением портов

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

Прямой доступ к памяти

Прямой доступ к памяти (DMA) — это средство, с помощью которого устройства могут передавать большие объемы данных в память и из памяти независимо от ЦП.

Смотрите также

Рекомендации

  1. ^ аб Нулл, Линда; Юлия Лобур (2006). Основы компьютерной организации и архитектуры. Джонс и Бартлетт Обучение. п. 185. ИСБН 0763737690. Архивировано из оригинала 20 декабря 2016 года . Проверено 11 декабря 2016 г.
  2. ^ abc Абд-эль-Барр, Мостафа; Хешам Эль-Ревини (2005). Основы компьютерной организации и архитектуры. Джон Уайли и сыновья. стр. 161–162. ISBN 9780471478331. Архивировано из оригинала 21 декабря 2016 года . Проверено 11 декабря 2016 г.

Внешние ссылки