Ввод/вывод
Эта статья нуждается в дополнительных цитатах для проверки . ( ноябрь 2019 г. ) |
Операционные системы |
---|
Общие особенности |
В вычислениях ввод /вывод ( 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 errors
и stand back
.
Альтернативой специальным примитивным функциям является монада ввода-вывода , которая позволяет программам просто описывать ввод-вывод, а действия выполняются вне программы. Это примечательно, поскольку функции ввода-вывода могут привнести побочные эффекты в любой язык программирования, но это позволяет сделать чисто функциональное программирование практичным.
Канал ввода/вывода [ править ]
Канал ввода-вывода требует использования инструкций, специально разработанных для выполнения операций ввода-вывода. Инструкции ввода-вывода адресуют канал или канал и устройство; канал асинхронно получает доступ ко всей другой необходимой адресной и управляющей информации. Это похоже на DMA, но более гибко.
Ввод-вывод с отображением портов [ править ]
Ввод-вывод с отображением портов также требует использования специальных инструкций ввода-вывода. Обычно устройству назначается один или несколько портов, каждый из которых имеет особое назначение. Номера портов находятся в отдельном адресном пространстве, отличном от того, которое используется обычными инструкциями.
Прямой доступ к памяти [ править ]
Прямой доступ к памяти (DMA) — это средство, с помощью которого устройства могут передавать большие объемы данных в память и из памяти независимо от ЦП.
См. также [ править ]
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б Налл, Линда; Юлия Лобур (2006). Основы компьютерной организации и архитектуры . Джонс и Бартлетт Обучение. п. 185. ИСБН 0763737690 . Архивировано из оригинала 20 декабря 2016 года . Проверено 11 декабря 2016 г.
- ↑ Перейти обратно: Перейти обратно: а б с Абд-эль-Барр, Мостафа; Хешам Эль-Ревини (2005). Основы организации и архитектуры компьютера . Джон Уайли и сыновья. стр. 161–162. ISBN 9780471478331 . Архивировано из оригинала 21 декабря 2016 года . Проверено 11 декабря 2016 г.
Внешние ссылки [ править ]
- СМИ, связанные с вводом/выводом, на Викискладе?