Вопрос №1. «Вовлечение операционной системы в управление вводом-выводом »

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

Программам необходимо предоставлять средства обмена данными с внешними устройствами, которые не требуют непосредственного включения в каждую программу кода, управляющего устройствами ввода-вывода. Такой код включен в операционную систему. Это позволяет не писать такой код в каждой программе, а только обращаться к нему.

Таким образом, управление вводом-выводом – это одна из основных функций любой операционной системы.

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

Система ввода-вывода должна объединять в одной модели широкий спектр устройств, должна быть универсальной. С другой стороны должна обеспечить доступ к устройствам ввода-вывода для множества параллельно выполняющихся задач, причем так, чтобы они не мешали друг другу.

Поэтому самым главным является принцип: любые операции по управлению вводом-выводом объявляются привилегированными и могут выполнятся только кодом самой операционной системы.

Основные причины, по которым нельзя разрешать каждой отдельной пользовательской программе обращаться к внешним устройствам непосредственно:

1. Необходимость разрешать возможные конфликты в доступе к устройствам ввода-вывода. Например, пусть две параллельно выполняющиеся программы пытаются вывести на печать результаты своей работы. Если не предусмотреть внешнего управления устройством печати, то в результате может получится абсолютно не читаемый текст, так как каждая программа будет время от времени выводить свои данные, перемежающиеся с данными другой программы.

2. Желание увеличить эффективность использования ресурсов ввода-вывода. Например, у накопителя на магнитных дисках время подвода головки чтения-записи к необходимой дорожке и время обращения к определенному сектору могут значительно превышать время пересылки данных. В результате, если задачи по очереди обращаются к цилиндрам, далеко отстоящим друг от друга, то полезная работы, выполняемая накопителем, может быть существенно снижена.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: