stringtranslate.com

Ввод/вывод

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

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

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

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

Интерфейс

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

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

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

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

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

Средства ввода-вывода, предоставляемые операционными системами, могут быть ориентированы на записи , когда файлы содержат записи , или ориентированы на потоки, когда файл содержит поток байтов.

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

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

Порт-мэппинг ввода-вывода

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

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

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

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

Ссылки

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

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