В лекции рассматриваются основные физические и логические принципы
организации ввода-вывода в вычислительных системах.
Функционирование любой вычислительной системы обычно сводится к
выполнению двух видов работы: обработке информации и операций по
осуществлению ее ввода-вывода. Поскольку в рамках модели, принятой
в данном курсе, все, что выполняется в вычислительной системе,
организовано как набор процессов, эти два вида работы выполняются
процессами. Процессы занимаются обработкой информации и выполнением
операций ввода-вывода.
Содержание понятий "обработка информации" и "операции ввода-вывода"
зависит от того, с какой точки зрения мы смотрим на них. С точки
зрения программиста, под "обработкой информации" понимается
выполнение команд процессора над данными, лежащими в памяти
независимо от уровня иерархии – в регистрах, кэше, оперативной или
вторичной памяти. Под "операциями ввода-вывода" программист
понимает обмен данными между памятью и устройствами, внешними по
отношению к памяти и процессору, такими как магнитные ленты, диски,
монитор, клавиатура, таймер. С точки зрения операционной системы
"обработкой информации" являются только операции, совершаемые
процессором над данными, находящимися в памяти на уровне иерархии
не ниже, чем оперативная память. Все остальное относится к
"операциям ввода-вывода". Чтобы выполнять операции над данными,
временно расположенными во вторичной памяти, операционная система,
сначала производит их подкачку в оперативную память, и лишь затем
процессор совершает необходимые действия.
Объяснение того, что именно делает процессор при обработке
информации, как он решает задачу и какой алгоритм выполняет, не
входит в задачи нашего курса. Это скорее относится к курсу
"Алгоритмы и структуры данных", с которого обычно начинается
изучение информатики. Как операционная система управляет обработкой
информации, мы разобрали ранее, в деталях описав два состояния
процессов – исполнение (а что его описывать то?) и готовность
(очереди планирования и т. д.), а также правила, по которым
осуществляется перевод процессов из одного состояния в другое
(алгоритмы планирования процессов).
Данная лекция будет посвящена второму виду работы вычислительной
системы – операциям ввода-вывода. Мы разберем, что происходит в
компьютере при выполнении операций ввода-вывода, и как операционная
система управляет их выполнением. При этом для простоты будем
считать, что объем оперативной памяти в вычислительной системе
достаточно большой, т. е. все процессы полностью располагаются в
оперативной памяти, и поэтому понятие "операция ввода-вывода" с
точки зрения операционной системы и с точки зрения пользователя
означает одно и то же. Такое предположение не снижает общности
нашего рассмотрения, так как подкачка информации из вторичной
памяти в оперативную память и обратно обычно строится по тому же
принципу, что и все операции ввода-вывода.
Прежде чем говорить о работе операционной системы при осуществлении
операций ввода-вывода, нам придется вспомнить некоторые сведения из
курса "Архитектура современных ЭВМ и язык Ассемблера", чтобы
понять, как осуществляется передача информации между оперативной
памятью и внешним устройством и почему для подключения к
вычислительной системе новых устройств ее не требуется
перепроектировать.