Из Википедии, бесплатной энциклопедии
  (Перенаправлено из ввода и вывода )
Перейти к навигации Перейти к поиску

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

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

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

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

Интерфейс [ править ]

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

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

Реализация более высокого уровня [ править ]

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

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

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

Канал ввода / вывода [ править ]

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

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

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

Прямой доступ к памяти [ править ]

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

См. Также [ править ]

  • Устройство ввода
  • Устройство вывода
  • Асинхронный ввод / вывод
  • Ограничение ввода / вывода

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • СМИ, относящиеся к вводу / выводу, на Викискладе?