Основные системные таблицы ввода/выводаКаждая операционная система имеет свои таблицы ввода/вывода для того чтобы управлять вводом/выводом через операционную систему (ядро) и выполнять при этом механизм прерывания операционной системы должна иметь по крайней мере 3 системные таблицы. Первая таблица оборудования содержит информацию обо всех устройствах ввода/вывода подключенных к системе.(Unit Control Block). UCB cодержит следующую информацию об устройстве: 1. тип устройства, его модель 2. подключение устройства (через какой интерфейс, к какому разъёму, какие порты и линии прерывания используются) 3. указание на драйвер (адрес секции запуска) 4. информацию о буфере памяти 5. состояние устройств 6. указатель на дескриптор задачи использующий устройство в данный момент 2 таблица описания виртуальных (логических) устройств. Её назначение – устранение связи между виртуальными устройствами, описанными в таблице 1. 2 таблица позволяет ядру операционной системы перенаправлять запрос на ввод/вывод из приложения на те программные модули и страницы данных, которые (или адреса которых) хранятся в соответствующем элементе 1 таблицы. В многопользовательских системах таких таблиц нет: одна общая и по одной на каждого пользователя. 3 таблица прерывания, которая для всех сигналов прерывания указывает тот или иной элемент 1 таблицы, который описывает устройство выполняющее эту линию прерывания. Эта таблица может в явном виде не присутствовать поскольку может из основной таблицы прерываний попасть на драйвер, именующий связи с элементом UCB. Наличие связи между таблицами 1 и 3. Взаимосвязь изображают так:
Управление вводом/выводом состоит в выполнении следующих действий: Запрос на операции ввода/вывода от выполняющейся программы поступает в ядро операционной системы. Оно проверяет вызов на правильность и при отсутствии ошибок пересылает его в подсистему ввода/вывода. Процесс ввода/вывода по логическому имени с помощью таблицы логических имен находит соответствующий элемент UCBтаблицы оборудования. Если устройство занято,то дескриптор задачи от которой поступил запрос на ввод/вывод помещается в очередь ожидающих устройств. Если устройство свободно, то подсистема определяет по UCB тип устройства и передает управление соответствующему драйверу на секцию запуска. Драйвер инициализирует оптимизацию управления и возвращает управление диспетчеру задач, чтобы он поставил на процессор готовую к исполнению задачу, Когда устройство ввода/вывода обрабатывает команду оно поставляет запрос на прерывание, по которому через таблицу прерывания управление передается на секцию продолжения, получив новую команду устройство начинает её обрабатывать, а управление процессом передается диспетчеру задач и процессор продолжает полезную работу. Таким образом осуществляется параллельное выполнение задач на фоне которого происходит управление операциями ввода/вывода.
|