Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект ОС.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
664.06 Кб
Скачать

Управление вводом-выводом в операционных системах

Содержание лекции:

- основные концепции организации ввода-вывода в ОС; режимы управления вводом-выводом.

Цель лекции:

- ознакомиться с методами управления вводом-выводом в ОС.

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

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

Любые операции по управлению вводом-выводом объявляются привилегированными и могут выполняться только кодом самой системы. Для обеспечения этого принципа в большинстве процессоров вводятся режимы пользователя и супервизора (привилегированный режим, режим ядра). В режиме супервизора выполнение команд ввода-вывода разрешено, а в режиме пользователя – запрещено. Обращение к командам ввода-вывода в пользовательском режиме вызывает исключение – определенный вид внутреннего прерывания (хотя возможны и более сложные схемы).

Различают разделяемые устройства ввода-вывода (допускающие разделение посредством механизма доступа, например, НМД, CD-ROM – устройства с прямым доступом) и неразделяемые (например, принтер, накопитель на магнитных лентах – устройства с последовательным доступом).

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

1. Модуль супервизора ОС (супервизор задач) получает запросы от прикладных задач на выполнение тех или иных операций, в т.ч. ввода-вывода. Запросы проверяются на корректность и обрабатываются дальше. Иначе пользователю выдается сообщение о некорректности запроса.

2. Супервизор ввода-вывода получает запросы на ввод-вывод от супервизора задач или от программных модулей самой ОС.

3. Супервизор ввода-вывода вызывает соответствующие распределители каналов и контроллеров, планирует ввод-вывод. Запрос выполняется либо сразу, либо ставится в очередь на выполнение.

4. Супервизор ввода-вывода инициирует операции ввода-вывода (передает управление соответствующим драйверам) и, в случае управления вводом-выводом с использованием прерываний, предоставляет процессор диспетчеру задач для передаче его очередной задаче.

5. При получении сигналов прерывания от устройств ввода-вывода супервизор идентифицирует эти сигналы и передает управление соответствующим программам обработки прерываний.

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

7. Супервизор ввода-вывода посылает сообщения о завершении операции ввода-вывода задаче, запросившей эту операцию, и снимает ее с состояния ожидания ввода-вывода, если задача ожидала завершения операции.

В случае если устройство ввода-вывода является инициативным (обычно – это набор датчиков), управление со стороны супервизора заключается в активизации соответствующего вычислительного процесса (перевод его в состояние готовности к выполнению).

Имеется два основных режимов ввода-вывода (рис. 13.1): режим обмена с опросом готовности УВВ; режим обмена с прерываниями;

Рисунок 13.1 – Управление вводом-выводом

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

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

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

ЛЕКЦИЯ № 14