Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LEKTsII_obschie.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

2.4.1 Основные понятия и концепции организации ввода/вывода в ос

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

Главный принцип ввода/вывода – любые операции по управлению вводом/выводом объявляются привилегированными и могут выполняться только самой ОС. Для обеспечения этого принципа в большинстве процессоров вводятся два режима: режим пользователя, выполнение команд ввода/вывода запрещено; режим супервизора, выполнение команд ввода/вывода разрешено.

Использование команд ввода/вывода в пользовательском режиме вызывает исключение (прерывание) и управление передается ОС.

Для мультипрограммных ОС одним из основных видов ресурсов – устройства ввода/вывода и обслуживающие их программы. ОС должны управлять разделяемыми и неразделяемыми устройствами и позволять параллельно выполняющимися задачам использовать различные устройства ввода/вывода.

Непосредственное обращение к внешним устройствам из пользовательских программ не разрешено по трем причинам:

  • возможные конфликты при доступе к устройствам ввода/вывода;

  • повышение эффективности использование этих ресурсов;

  • ошибки в программах ввода/вывода могут привести к разрушению системы.

2.4.2 Менеджер ввода-вывода

Компонента ОС, выполняющая ввод/вывод называется супервизором ввода/вывода.

2.4.2.1.Основные задачи супервизора следующие:

  • получение, проверка на корректность и выполнение запросов на ввод/вывод от прикладных задач и от модулей самой системы;

  • планирование ввода/вывода: выполнение или постановка в очередь;

  • инициирование ввода/вывода – передача управления драйверам;

  • при получении сигналов прерывания передача управления соответствующей программе обработки прерывания;

  • передача сообщений об ошибках, если они появляются;

  • передача сигнала о завершении операции ввода/вывода.

2.4.2.2. Состав супервизора:

  1. верхний слой – системные вызовы и нижний слой – взаимодействие с контроллерами устройств

  2. драйверы – низкоуровневый (традиционные) и высокоуровневые (общие)

  3. специальный файл – спулинг файл

Для организации использования многими параллельно выполняющимися задачами устройств ввода/вывода, которые не могут быть разделяемыми, введено понятие виртуального устройства (спулинга). Главная задача спулинга – создать видимость параллельного разделения устройства ввода/вывода с последовательным доступом, которое должно быть монопольным и быть закрепленным. Например, каждому вычислительному процессу можно предоставить не реальный, а виртуальный принтер, и поток выводимых символов сначала направить в файл на диске. По окончанию виртуальной печати в соответствии с дисциплиной обслуживания и приоритетами приложений содержимое спул файла выводится на принтер. Системный процесс, управляющий спул файлом, называется спулером.

Если устройство ввода/вывода является инициативным, управление со стороны супервизора ввода/вывода заключается в активизации соответствующего вычислительного процесса. Инициативное устройство – устройство, по сигналу прерывания от которого запускается соответствующая ему программа.