Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Кэширование операций ввода-вывода при работе с накопителями на магнитных дисках



1. Основные концепции организации ввода-вывода в операционных системах

• Главный принцип: любые операции по управлению вводом-выводом объявляются привилегированными и могут выполняться только кодом самой операционной системы.

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

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

• Существуют устройства:

• разделяемые – допускают разделение посредством механизма доступа. Примеры – накопитель на магнитных дисках, устройства чтения компакт-дисков – устройства с прямым доступом;

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

• ОС должна управлять и теми, и другими устройствами.

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

1) необходимость разрешать возможные конфликты в доступе к устройствам ввода-вывода;

2) желание увеличить эффективность использования ресурсов ввода-вывода;

3) необходимость избавить программы ввода-вывода от ошибок.

• Управление вводом-выводом осуществляется компонентом операционной системы, который часто называют супервизором ввода-вывода.

• Основные задачи супервизора:

1) супервизор задач (модуль супервизора ОС) получает запросы от прикладных задач на выполнение тех или иных операций, в том числе на ввод-вывод. Эти запросы проверяются на корректность и, если они соответствуют спецификациям и не содержат ошибок, то обрабатываются дальше; 2) супервизор ввода-вывода получает запросы на ввод-вывод от супервизора задач или от программных модулей самой операционной системы.

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

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

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

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

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

2. Режимы управления вводом-выводом. Закрепленные и общие устройства ввода-вывода

• Имеется два основных режима ввода-вывода:

1) режим обмена с опросом готовности устройства ввода-вывода;

2) режим обмена с прерываниями

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

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

• Выгоднее, выдав команду ввода-вывода, перейти на выполнение другой программы. А появление сигнала готовности трактовать как запрос на прерывание от устройства ввода-вывода. Именно эти сигналы готовности и являются сигналами запроса на прерывание.

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

• Драйверы, работающие в режиме прерываний, представляют собой сложный комплекс программных модулей и могут иметь несколько секций:

1) секцию запуска – инициирует операцию ввода-вывода.

2) одну или несколько секций продолжения – осуществляет основную работу по передаче данных и является основным обработчиком прерывания; 3) секцию завершения – обычно выключает устройство ввода-вывода или просто завершает операцию.

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

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

• Понятие виртуального устройства шире, чем понятие спулинга (spooling — Simultaneous Peripheral Operation On-Line). Основное назначение спулинга — создать видимость разделения устройства ввода-вывода, которое фактически является устройством с последовательным доступом и должно использоваться только монопольно и быть закрепленным за процессом.

• Например, несколько приложений должны выводить на печать результаты своей работы. Каждому процессу предоставляют виртуальный принтер, и поток выводимых символов сначала направляют в специальный файл на диске (спул-файл — spool-file) и только по окончании виртуальной печати выводят содержимое спул-файла на принтер. Системные процессы, которые управляют спул-файлом, называются спулером чтения (spool-reader) или спулером записи (spool-writer).

3. Основные системные таблицы ввода-вывода

• Для управления всеми операциями ввода-вывода и отслеживания состояния всех ресурсов, занятых в обмене данными, операционная система должна иметь соответствующие информационные структуры, которые отображают информацию:

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

• аппаратные ресурсы, закрепленные за имеющимися в системе устройствами ввода-вывода;

• логические (символьные) имена устройств ввода-вывода, используя которые вычислительные процессы могут запрашивать те или иные операции ввода-вывода;

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

• области памяти для хранения информации о текущем состоянии устройства ввода-вывода и параметрах, определяющих режимы работы устройства;

данные о текущем процессе, который работает с данным устройством;

• адреса тех областей памяти, которые содержат данные, собственно и участвующие в операциях ввода-вывода (получаемые при операциях ввода данных и выводимые на устройство при операциях вывода данных).

• Создаются три системных таблицы.

• Первая таблица содержит информацию обо всех устройствах ввода-вывода, подключенных к вычислительной системе – таблица оборудования, а каждый элемент этой таблицы называется UCB (Unit Control Block — блок управления устройством ввода-вывода). Каждый элемент UCB содержит информацию:

? тип устройства, его конкретная модель, символическое имя и характеристики устройства;

? способ подключения устройства;

? номер и адрес канала (и подканала), если такие используются для управления устройством;

? информация о драйвере, который должен управлять этим устройством,

? информация о том, используется или нет буферизация при обмене данными с устройством, «имя» буфера;

? установка тайм-аута и ячейки для счетчика тайм-аута;

? состояние устройства;

? поле указателя для связи задач, ожидающих устройство;

? возможно, множество других сведений.

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

• Вторая системная таблица называется таблицей виртуальных логических устройств (Device Reference Table, DRT). Назначение ее — установление связи между виртуальными (логическими) устройствами и реальными устройствами, описанными посредством первой таблицы (таблицы оборудования).

• Третья таблица — таблица прерываний — необходима для организации обратной связи между центральной частью и устройствами ввода-вывода. Указывает для каждого сигнала запроса на прерывание тот элемент UCB, который сопоставлен данному устройству. Каждое устройство либо имеет свою линию запроса на прерывание, либо разделяет линию запроса на прерывание с другими устройствами, но при этом имеется механизм второго уровня адресации устройств ввода-вывода.

• Таким образом, таблица прерываний отображает связи между сигналами запроса на прерывания и самими устройствами ввода-вывода.





Дата публикования: 2014-12-08; Прочитано: 1619 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...