Удобный логический интерфейс

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



double arrow
Сейчас читают про: