Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции (ОС).doc
Скачиваний:
7
Добавлен:
11.09.2019
Размер:
716.29 Кб
Скачать

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

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

Задачи ос по управлению файлами и устройствами

Подсистема ввода-вывода (Input-Output Subsystem) при обмене данными с внешними устройствами должна решать ряд задач:

1) организация параллельной работы устройств ввода-вывода и процессора

2) согласование скоростей обмена и кэширование данных

3) разделение устройств и данных между процессами

4) обеспечение удобного логического интерфейса между устройствами и остальной частью системы

5) поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера

6) динамическая загрузка и выгрузка драйверов

7) поддержка нескольких файловых систем

8) поддержка синхронных и асинхронных операций ввода-вывода

Организация параллельной работы устройств ввода-вывода и процессора

Каждому устройству ввода-вывода (диск, принтер, терминал и т.д.) соответствует специальное устройство управления контроллер. Контроллер работает параллельно с процессором и взаимодействует с прикладными программами посредством особой программы ОС драйвером.

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

Согласование скоростей обмена и кэширование данных

При обмене данными всегда возникает задача согласования скорости. В общем случае скорости генерации данных и их чтения не совпадают. Согласование скорости достигается за счет буферизации данных и синхронизации доступа процессов к буферу. Буфер обычно располагается в ОЗУ.

При больших объемах ввода - вывода, памяти может не хватать и в таких случаях под буфер используется дисковый файл: спул-файл (spool). Например, организация вывода данных на принтер. Другим решением является оснащение контроллера буферной памятью, соизмеримой с ОЗУ.

Буферизация решает и другую задачу - сократить количество реальных обращений к устройствам за счет кэширования (дисковый кэш).

Разделение устройств и данных между процессами

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

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

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