воскресенье, 9 октября 2011 г.

По следам новой теории ввода/вывода

Недавно в журнале «Информатика» появилась статья А.А. Дуванова и Н.Д. Шумилиной «Устройства ввода и вывода. Теория относительности» [1]. В ней авторы предлагают свое толкование привычных, казалось бы, терминов «устройство ввода» и «устройство вывода». По их версии, устройства ввода — это любые устройства, через которые компьютер получает данные, в том числе дисководы, модемы, флэш-диски и пр. Аналогично устройства вывода — это любые устройства, через которое данные выводятся из компьютера, причем получателем может быть как человек, так и другое цифровое устройство (те же дисковод и флэш-диск).

Как известно, об определениях не спорят. Напротив, спор в научном мире начинается с фиксации определений. Иногда он на этом и заканчивается, поскольку спор умных людей нередко вызван именно тем, что его участники называют одним и тем же термином совершенно разные вещи. Поэтому некорректно говорить о том, верные определения даны в [1] или неверные. Но можно сравнить их с альтернативными и проследить, к чему они в конечном счёте приводят: какую картину мира удается построить на основе этих определений.

Начнём с официальных источников. Согласно ГОСТ 25868-91 [2], «устройство ввода (вычислительной машины) — периферийное устройство, обеспечивающее преобразование информации в форму, необходимую для ее автоматического ввода в ЭВМ», и «устройство вывода (вычислительной машины) — периферийное устройство, обеспечивающее вывод данных из ЭВМ». Приведенное в ГОСТ определение устройства ввода явно подчеркивает его характерную черту — первичное преобразование информации из «некомпьютерного» вида в «компьютерный». Таким образом, определение из [1] противоречит определению в ГОСТ, что само по себе уже нехорошо, потому что способно только вызвать путаницу. Стандарт он тем и хорош, что создает общепринятый фундамент для дальнейших «строительных» работ.

Определение устройства вывода в ГОСТ значительно слабее, но по аналогии, сохраняя общую идеологию, хочется написать так: «устройство вывода (вычислительной машины) — периферийное устройство, обеспечивающее преобразование данных в форму, доступную для ее восприятия человеком».

В результате можно сделать следующий вывод: определения в [1] не позволяют как-то выделить (классифицировать) устройства, которые выполняют преобразование данных из «некомпьютерного» формата в «компьютерный» и обратно, то есть находятся на границе между «некомпьютерным» и «компьютерным» мирами. В сравнении с определениями ГОСТ, это шаг назад, поскольку среди устройств ввода/вывода (по терминологии [1]) затерялся целый подкласс устройств, обладающих принципиальными отличиями от всех остальных.

Представим на минуту, что куда-то исчезли все устройства, которые по ГОСТ назывались устройствами ввода. Вместе с ними исчезли и устройства вывода — мониторы, принтеры, наушники и т.д. Остались только флэшки, дисководы, роутеры, коммутаторы, модемы и пр. Что получим? «Компьютерный» мир оказывается замкнут, человек теряет все средства общения с ним, поскольку воспринимать цифровые сигналы непосредственно мы пока не научились. Этот факт говорит о том, что исходные определения упустили что-то важное, и устройства ввода (вывода) (по терминологии [1]) бывают разные.

Теперь проанализируем выводы, к которым приходят авторы [1] на основе введенных ими определений.

«Итак, компьютер — это процессор и внутренняя память». «Все другие устройства обеспечивают или ввод информации в память компьютера, или вывод из нее. Соответственно, все другие устройства, подключаемые к процессору и памяти, являются устройствами ввода и (или) вывода».

Вряд ли кто-то будет спорить с тем, что компьютер — это система, обладающая системным свойством — обрабатывать данные по введенной в него программе. Если мы говорим, что «компьютер — это процессор и внутренняя память», возникает вопрос о том, обладает ли эта пара тем же самым системным свойством? На наш взгляд, нет, потому что ввести в него программу не удастся, так же как и получить какие-то результаты.

«Флешка и принтер между собой принципиально не отличаются».

По мнению автора данной заметки, это неверное утверждение. Принтер выполняет преобразование информации из цифровой формы в «бумажную». Флэш-диск — это устройство «компьютерного» мира, которое никак не обменивается данными с реальным миром. Смешение двух понятий похоже на ситуацию в индейском племени хипо, в языке которого зеленый и голубой цвета обозначались одним и тем же словом, и сначала предполагалось, что индейцы не различают эти цвета вообще.
«На схеме зеленые стрелки показывают движение информации, а красные — управляющие воздействия процессора:»

При анализе этой схемы возникает несколько серьезных вопросов. Возьмем, для примера, флэш-диск, который часто используется для иллюстрации в [1]. Согласно предлагаемой терминологии, его можно считать устройством ввода и вывода, то есть внешним устройством (левый блок на схеме). В таком диске есть контроллер и память. Если с памятью все понятно, то на месте контроллера на схеме написано «устройство ввода/вывода». Кроме того, судя по схеме, процессор только управляет прямым доступом к памяти и не может обмениваться данными с внутренней памятью и напрямую с внешним устройством (нет зелёных стрелок), что, мягко говоря, не соответствует истине.

При чтении статьи [1] в воздухе постоянно витает вопрос «зачем»? Новые определения понятий «устройство ввода» и «устройство вывода» не имеют, на наш взгляд, никаких преимуществ перед классическими, закрепленными в ГОСТ. Картина немного проясняется в последних разделах статьи [1]: «Теория относительности ввода и вывода» и «Формальные определения», где утверждается, что
  • понятия «устройство ввода» и «устройства вывода» применимы не только к компьютерам, но и к любому процессу передачи информации вообще:

    «Так что же есть сканер? Для компьютера это устройство ввода. А для человека? А для человека сканер — устройство вывода. Мы ведь отдаем ему листок, “выводя” из папки, в которой листок хранили».

  • эти понятия зависят от направления передачи информации; два компьютера, обменивающиеся данными, попеременно являются друг для друга устройствами ввода и вывода.
Получается некая кибернетическая картина мира, в которой человеку отводится примерно такая же роль, как и любому компьютерному устройству. С точки зрения [1], компьютер может рассматриваться как устройства ввода и вывода для «флэшки», а человек — как устройство ввода для сканера. «Ну и что?» — скажет читатель. Да просто предложен еще один философско-кибернетический взгляд на мир. Более важный вопрос: «Что из него следует?» Да, в общем-то, и ничего и не следует. «Тогда зачем?» Это вопрос пока без ответа. Подведем итоги. По мнению автора этой заметки, понятия «устройства ввода» и «устройства вывода» должны быть на своём месте, обозначая устройства для преобразования данных между компьютерным и реальным мирами. Попытки расширить эти понятия пока ничего путного не дали. Литература
  1. А.А. Дуванов, Н.Д. Шумилина, Устройства ввода и вывода. Теория относительности // Информатика, № 14, 2011, с. 24-29.
  2. ГОСТ 25868-91. Оборудование периферийное систем обработки информации. Термины и определения.

Ярлыки: , ,