- Устройства ввода и вывода информации
- Устройства вывода информации
- Монитор
- Принтер
- Плоттер
- Проектор
- Колонки
- Устройства ввода информации.
- Клавиатура
- Сканеры
- Основные методы ввода-вывода (I/O)
- Авторизуйтесь
- Основные методы ввода-вывода (I/O)
- I/O в аппаратном обеспечении
- I/O в программном обеспечении
- Блокирующий метод
- Неблокирующий метод
- Мультеплексированный метод
- Асинхронный метод
- Многопоточность или однопоточность?
Устройства ввода и вывода информации
Компьютер является всесторонним устройством для переработки данных. Компьютеру для того чтобы переработать данные, нужно каким либо из способов ввести туда. Чтобы реализовать ввод данных, человек создал специальные устройства, первая из них была клавиатура. Оказываясь в компьютере, информация обрабатывается и после этого создается право вывода текущей информации, т.е. вы имеет право визуального понимания информации. Основными устройствами для того чтобы вывести данные стали –монитор, видеоадаптер и принтер. Жесткий диск был создан для того чтобы было куда сохранять обработанные данные после ввода, после этого были созданы магнитные диски и средства оптического хранения.
Устройства вывода информации
Устройства вывода информации – это те устройства, которые переводят информацию с компьютерного языка в формы, понятные для человека. Монитор принтер видеокарта проектор и плоттер, это именно те устройства которые следует отнести к устройствам вывода данных. Чтобы ввести информацию в компьютер нужно пользоваться устройствами ввода Главное их роль – создать воздействие на компьютер. Множества выпускаемых устройств ввода повлекли за собой целые технологии от осязаемых до голосовых. И хотя они функционируют по разному, но предназначение у них одно – дать пользователю связаться с компьютером. Именно благодаря своей компактности и наглядности представления информации человеком было создано устройства ввода графической информации. Основными сторонами использования устройств ввода графической информации являются системы автоматизированного проектирования, обработки изображений, обучения, управление процессами, мультипликации и многие другие.
Монитор
При помощи монитора между человеком и компьютером обеспечивается информационная связь. Первые микрокомпьютеры были с небольшими блоками, в которых не существовало средств представления. У человека был только набор мигающих светодиодов или право распечатки результатов на принтере. Первый компьютерные мониторы были очень примитивны в сравнении с нынешними мониторами. Когда были первые мониторы, текст отображался только в зеленом цвете, но в те годы это считалось очень большим прорывом, потому что человек приобрел возможность в режиме “life” выводить и вводить данные.
Принтер
Создание напечатанной версии документа, вот одна из главных задач компьютера. Именно поэтому принтер является нужным аксессуаром. Принтеры – это устройства вывода данных из ЭВМ, изменившие информационные коды в соответствующие им графические символы и напечатанные на бумаге. Выводя результат работы на лист бумаги, принтер приумножает взаимосвязь между человеком и компьютером. Принтеры по своим скоростным возможностям создают диапазон от самой маленькой до самой большой.
Плоттер
Вывод информации, представленная в графической форме – это одна из главных задач вычислительных средств, используемых для автоматизации проектирования. Плоттер – это устройство, осуществляющие функции вывода графической информации на бумагу и на другие носители.
Проектор
Лампа перераспределяющая свет вместе с концентрацией светового потока на маленькой плоскости называется проектор. Основным элементом данного прибора является лампа, свет которой, поступает через определенные элементы, поступает на экран и создает картинку. Лампа в проекторе является самым основным элементом, свет которого проходит через определенные элементы, поступает на экран и после этого мгновенно создает картинку. На сегодняшний день лампы проектора разделяют на LCD и DLP на основе оттого через какие элементы должен проходить свет. Компактность, а также менее негативное влияние на зрение, вот главные достоинства жидкокристаллических проекторов. Их недостатком является менее насыщенный чёрный цвет. Качественная картинка – это достоинство микрозеркальных проекторов. Утомляемость зрения при продолжительном просмотре – вот главная их слабая сторона
Колонки
Колонки – устройство, которое подключается к компьютеру и служит устройством вывода звуковой информации.
Устройства ввода информации.
Устройства при помощи, которых можно ввести данные в компьютер называется устройства ввода. Осуществить воздействие на компьютер, вот одна из главных задач устройств ввода. Разнообразие выпускаемых устройств ввода повлекли за собой целые технологии от осязаемых до голосовых. И хотя они служат для разного, но предназначены лишь для одного–дать пользователю связаться с компьютером. Благодаря своей компактности и наглядности человек создал устройства ввода.
Клавиатура
Клавиатура является одним из самых основных устройств ввода данных.
MFII вот стандарт клавиатуры в современном мире. Пять групп клавиш, доставляемых свою высокую функциональную поставку, вот что можно отметить в клавиатуре MFII. Специальные клавиши для слепых с осязаемыми точками на клавишах, специальные клавиатуры для складов и магазинов, дававшие устройства для чтения штрихового кода, вот что следует отметить среди других видов клавиатур. Сенсорные клавиатуры, имеющие в своей особенности защиту от опасного влияния, специальные покрытия клавиш дополнительной сенсорной фольгой, клавиатура подходящая для медицинских учреждений со специальными устройствами считывания информации со страховой карты, называются промышленными. В настоящее время появились клавиатуры со специальными клавишами для удобства работы с той или иной операционной системой (ОС), например, клавиатура для Windows 95. Таким образом, выбор клавиатуры зависит от ОС, с которой предлагается работать.
Мышь нужна для ввода данных или одиночных команд, выбираемых из меню. Мышь является небольшой коробочкой с двумя или тремя клавишами, с легкостью передвигающийся в любом направлении. Мышь присоединяется к компьютеру благодаря шнуру и нуждается в особой программной поддержки. Мыши нужна плоская поверхность, для этого были созданы специальные коврики. Мышь – это механический манипулятор, преобразующий движения в управляющий сигнал. В частности сигнал может быть использован для позиционного курсора или прокрутки страниц
Сканеры
Для того чтобы читать графическую информацию с бумажного используется оптические сканеры. Сканируемое изображение считывается и изменяется в цифровую форму элементами дополнительного устройства: CCD – чипами. Сканеры– это устройство, которое, анализируя какой–либо объект, создает цифровую копию изображения объекта, этот процесс называется сканированием.
В данной статье была представлена довольно полная информация об механизмах вывода и ввода данных и о положениях их деятельности. Качество работы современного ПК сложно представить себе без обеспечения его устройствами о которых шла речь, так как они демонстрируют необходимую пользу при работе человека с компьютером, а понимание способов работы вышеперечисленных устройств, создают более продуктивное их пользование.
Источник
Основные методы ввода-вывода (I/O)
Авторизуйтесь
Основные методы ввода-вывода (I/O)
Начинающему разработчику зачастую сложно разобраться в средствах ввода-вывода (I/O), поскольку присутствует небольшая путаница в определении различий этих способов. В данном материале попробуем заполнить этот пробел и разобраться в классификации основных типов ввода-вывода.
I/O в аппаратном обеспечении
В современных операционных системах средства ввода-вывода представляют собой способы взаимодействия между обработчиком информации и внешним миром. Сюда можно отнести чтение или запись файлов на жёсткий диск или SSD, отправку и получение данных по сети, отображение информации на мониторе и получение ввода с мыши и клавиатуры.
Способы взаимодействия современных ОС с периферийными устройствами зависят от типа устройства, возможностей прошивки и аппаратного обеспечения. Можно считать, что периферия может обрабатывать несколько запросов одновременно. То есть время последовательного взаимодействия прошло. В этом смысле все взаимодействия устройств ввода-вывода с процессором асинхронны и находятся на стороне аппаратного обеспечения.
Такой асинхронный механизм называется аппаратным прерыванием. В простом случае, процессор отправляет запрос к внешнему устройству и начинает бесконечный цикл, в котором он каждый раз запрашивает у периферии, готовы ли данные, которые процессор мог бы считать, и ждёт в цикле, пока периферия не выдаст ему эти данные. Этот метод ввода-вывода называется методом опроса поскольку процессор должен постоянно проверять состояние периферии.
25–27 ноября, Онлайн, Беcплатно
На самом деле, на современном оборудовании процессор просит периферию выполнить действие и забывает о нём, продолжая обрабатывать другие инструкции. Как только устройство завершит свою работу, оно сообщает об этом процессору, вызывая прерывание. Это происходит на уровне аппаратного обеспечения, и при этом процессору никогда не приходится ожидать или опрашивать периферию, что освобождает его для другой работы, пока периферия сама не сообщит о своей готовности.
I/O в программном обеспечении
В среде программного обеспечения существует большое количество видов ввода и вывода: блокирующий, неблокирующий, мультиплексированный и асинхронный. Давайте рассмотрим их по очереди.
Блокирующий метод
Помните, что любая пользовательская программа запускается внутри процесса, а код выполняется в контексте потока? Предположим, вы пишете программу, которой нужно читать информацию из файла. С блокирующим вводом-выводом вы просите ОС «усыпить» ваш поток и «разбудить» его только после того, как данные из файла будут доступны для чтения.
То есть блокирующий ввод-вывод называется так, потому что поток, который его использует, блокируется и переходит в режим ожидания, пока ввод-вывод не будет завершён.
Неблокирующий метод
Проблема метода блокировки заключается в том, что поток будет спать, пока ввод-вывод не завершится. Поток не сможет выполнять никаких других задач, кроме ожидания завершения ввода-вывода. Иногда вашей программе больше и не надо ничего делать. В противном случае во время ожидания ввода-вывода было бы полезно выполнять другие задачи.
Один из способов осуществить это — использовать неблокирующий ввод-вывод. Его идея заключается в том, что когда программа делает вызов на чтение файла, ОС не будет блокировать поток, а просто вернёт ей либо готовые данные, либо информацию о том, что ввод-вывод ещё не закончен. Это не заблокирует поток, но программе придётся позже проверять, завершён ли ввод-вывод. Это означает, что ПО может по-разному реагировать в зависимости от того, завершён ли ввод-вывод и выполнять другие задачи. Когда же программе снова понадобится ввод-вывод, она сможет повторно попробовать прочесть содержимое файла, и если ввод-вывод завершён, то получит содержимое файла. В противном случае ПО снова получит сообщение о том, что операция ещё не завершена и сможет заняться другими задачами.
Мультеплексированный метод
Проблема с неблокирующим вводом-выводом в том, что с ним не удобно работать, если задачи, которые выполняет программа, ожидая ввода-вывода, сами из себя представляют другой ввод-вывод.
Хорошо, если ПО просит ОС прочитать содержимое из файла А, после чего выполняет какие-нибудь сложные вычисления. Затем проверяет, завершилось ли чтение файла А, и если да, то просто продолжает ту работу, для которой нужно было содержимое файла, а иначе снова выполняет некоторое количество сложных вычислений и так далее.
Но что, если программе не нужно выполнять сложные вычисления? Ей просто нужно прочесть файл A и одновременно файл B. Пока ПО ожидает завершения обработки файла А, оно делает неблокирующий вызов чтения содержимого файла В. Во время ожидания обработки программе больше нечего делать, потому она входит в бесконечный цикл опроса, проверяя, готово ли A и готово ли B, снова и снова. Это либо нагрузит процессор проверками состояния ваших неблокирующих вызовов, либо вам придётся вручную добавить какое-то произвольное время, которое ваш поток будет «спать», а значит, программа немного позже заметит, что ввод-вывод готов, что отрицательно скажется на пропускной способности ПО.
Во избежание этого можно использовать мультиплексированный ввод-вывод. Он тоже блокирует поток на операциях ввода-вывода, но вместо того, чтобы производить блокировку по очереди, вы можете запланировать все операции ввода-вывода, которые вам нужно сделать, и блокировать их все. Операционная система разбудит поток, когда какая-нибудь из операций завершится. В некоторых реализациях мультиплексированного ввода-вывода можно даже точно указать, что вы хотите, чтобы поток разбудили, только когда заданный набор операций ввода-вывода будет завершён, например, когда файлы A и C, или файлы B и D будут готовы.
Таким образом ПО делает неблокирующий вызов чтения файла A, потом неблокирующий вызов чтения файла B, и наконец говорит ОС: усыпи мой поток, и разбуди его, когда A и B будут оба готовы, или когда один из них будет готов.
Асинхронный метод
Проблема мультиплексированного ввода-вывода в том, что поток всё-таки спит, пока ввод-вывод не будет готов для обработки. Для многих программ это подходит, поскольку у них нет других задач, пока они ждут завершения операций ввода-вывода. Но иногда у них есть и другие задачи.
Например, ПО вычисляет цифры числа π и одновременно суммирует значения из нескольких файлов. Вам хотелось бы запланировать все операции чтения файлов, пока программа ждёт их выполнения, вычислять цифры числа π. Когда какой-нибудь из файлов будет прочитан, ПО прибавит записанное в нём значение и продолжит вычислять цифры числа π дальше, пока ещё один файл не будет прочитан.
Чтобы это работало, нужно, чтобы ваше вычисление цифр числа π могло быть прервано вводом-выводом, когда он завершается. Это можно сделать с помощью обратных вызовов, связанных с событиями. Вызов на чтение принимает функцию обратного вызова и возвращается немедленно. Когда ввод-вывод завершается, операционная система остановит ваш поток и выполнит обратный вызов. Когда обратный вызов завершится, система возобновит работу вашего потока.
Многопоточность или однопоточность?
Вы, наверно, заметили, что все вышеописанные способы ввода-вывода работают в рамках одного потока, главного потока вашего приложения. На самом деле, для выполнения ввода-вывода не требуется отдельный поток, поскольку, как вы видели в начале статьи, вся периферия выполняет ввод-вывод асинхронно. Поэтому и возможно делать блокирующий, неблокирующий, мультиплексированный и асинхронный ввод-вывод в однопоточной модели и одновременный ввод-вывод может работать без поддержки многопоточности.
Но обработка результатов операций ввода-вывода может быть и многопоточной. Это позволяет программе делать одновременные вычисления поверх одновременного ввода-вывода. Так что, ничто не мешает вам совмещать многопоточность и эти механизмы ввода-вывода.
В самом деле, есть пятый популярный метод ввода-вывода, который требует многопоточности. Его часто путают с неблокирующим или асинхронным, поскольку он похож по интерфейсу на те два. Он работает просто: он использует блокирующий ввод-вывод, но каждый блокирующий вызов делается в отдельном потоке. В зависимости от реализации, вызов либо принимает функцию обратного вызова, либо использует модель опроса, как если он возвращает Future .
Источник