Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы построения операционных систем.doc
Скачиваний:
50
Добавлен:
07.11.2018
Размер:
5.07 Mб
Скачать

6. Управление устройствами

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

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

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

Последний пункт главы посвящен управлению магнитными дисками как наиболее используемыми устройствами обмена информацией. Рассматриваются физическая и логическая структура магнитного диска, исследуются методы управления, позволяющие увеличить скорость обмена информацией между оперативной памятью и магнитным диском.

6.1. Общая организация ввода-вывода

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

На рис.6.1 приведено несколько распространенных схем организации ввода-вывода: схемы на рис.6.1,а и 6.1,б соответствуют конфигурациям микрокомпьютеров, а схема на рис.6.1,в относится к компьютерам большой мощности.

Рис. 6.1. Организация ввода-вывода

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

Каналом, или устройством обмена называется специализированный процессор для операций ввода-вывода. Его запуск осуществляется центральным процессором; он не обладает аппаратом прерываний, однако сам может прерывать работу центрального процессора. Набор инструкций канала позволяет ему взаимодействовать со связанными с ним контроллерами и периферийными устройствами. Мини- и микрокомпьютеры содержат устройства прямого доступа к памяти, которые представляют собой каналы в упрощенной форме.

Контроллер представляет собой устройство управления, приспособленное к заданному типу внешних устройств. Его автономия ограничивается элементарными операциями. Главный интерес здесь заключается в том, чтобы разделить контроллер и устройство и связать устройства одного типа с одним единственным контроллером; в этом случае передача информации в каждый момент времени осуществляется только одним устройством. На других устройствах в это время можно одновременно выполнять операции, не связанные с непосредственной передачей информации (перемещение головки при обращении к диску, перемотка магнитной ленты). Разделение функций между контроллером и периферийным устройством зависит от типа периферийного устройства; логические функции (соединение и синхронизация операций, передача сигналов об окончании или об исключительных случаях) предоставляются контроллеру, а физические (передача) - периферийному устройству. Различия между контроллером и периферийным устройством в общем случае не проявляются в программировании ввода-вывода.

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

Центральный процессор управляет работой каналов с помощью команд ввода-вывода. Эти команды позволяют проверить состояние канала (команда TCH) и внешних устройств (команда TIO), начать и прекратить выполнение программы канала (команды SIO и HIO соответственно). Для связи ЦП и каналов используются две фиксированные ячейки оперативной памяти и аппарат прерываний от ввода-вывода.

В первой фиксированной ячейке по адресу 72 содержится полное адресное слово канала CAW­ (Channel Address Word). При исполнении команды ввода-вывода SIO (начать ввод-вывод) адресное слово канала передается в канал. Программа канала начинает выполняться с адреса, указанного в CAW­­. При этом обеспечивается защита памяти (ключ защиты памяти, к которой получает доступ канал, должен совпадать с ключом, указанным в CAW ­).

Все команды ввода-вывода имеют единый формат, представленный на рис.6.2.

Здесь КОП - код операции, определяющий конкретную команду канала. Из содержимого общего регистра B1 и смещения D1 формируется исполнительный адрес, который интерпретируется как адрес устройства, занимающий младший байт, и адрес канала, находящийся в старшем байте. Таким образом, возможна адресация до 256 каналов и до 256 устройств на каждом канале. Внешние устройства, подключенные к общему устройству управления, например накопители на магнитных дисках, адресуются последовательными числами, начинающимися с числа, кратного 16, и различающимися не более, чем на 15.

Рис. 6.2. Формат команды ввода-вывода

Во вторую фиксированную ячейку, применяемую в операциях ввода-вывода, по адресу 64 заносится двойное слово состояния канала CSW (Channel Status Word). Это слово полностью или частично заносится в оперативную память при исключительных ситуациях выполнения операции ввода-вывода: завершении программы канала, ошибках в программе или обмене данными и др. Ключ в CSW ­ переносится из адресного слова канала в начале выполнения программы канала. Адрес команды канала и остаточный счетчик указывает, насколько продвинулось исполнение программы канала к моменту занесения CSW в память.

Байт состояния устройства и байт состояния канала описывают состояния системы ввода-вывода на момент записи CSW ­. Значения битов 0...7 фиксированы для всех внешних устройств и в байте состояния устройства имеют следующие значения:

0 - внимание; на устройстве (обычно устройстве телеобработки) нажата специальная кнопка;

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

2 - контроллер закончил; устройство управления закончило свою часть операции ввода-вывода;

3 - занято; внешнее устройство или контроллер заняты выполнением предыдущей операции ввода-вывода или в них хранится условие прерывания;

4 - канал закончил; канал закончил передачу данных между внешним устройством и оперативной памятью;

5 - устройство закончило; внешнее устройство закончило операцию ввода-вывода;

6 - ошибка в устройстве; при операции ввода-вывода в устройстве возникла сбойная ситуация; в этом случае с помощью специальной команды канала можно уточнить состояние устройства;

7 - особый случай; необычная, но допустимая ситуация в устройстве, например, считывание ленточной марки накопителем на магнитной ленте.

Значения битов в байте состояния канала следующие:

0 - программно-управляемое прерывание; канал выбрал команду канала со специальным признаком;

1 - неправильная длина; физическая длина записи не совпадает с длиной, запрошенной в команде канала;

2 - ошибка в программе; обнаружены ошибки в CAW или командах канала;

3 - нарушение защиты; ключ защиты памяти не совпадает с ключом в CAW ­;

4 - ошибка в данных; нарушена правильная четность данных, передаваемых через канал, или обнаружена машинная ошибка;

5 - ошибка в управлении; обнаружен неправильный сигнал управления;

б - ошибка в интерфейсе; сбой в устройстве управления или внешнем устройстве;

7 - ошибка в цепочке; канал не успел расшифровать следующую команду канала до исполнения предыдущей.

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

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

Канал может управлять одним устройством с высокой пропускной способностью (диск), или быть распределенным между несколькими устройствами с меньшей пропускной способностью. В результате одновременного обращения нескольких процессоров (центральных процессоров или каналов) к оперативной памяти может возникнуть конфликтная ситуация, которая устраняется с помощью специального устройства доступа, устанавливающего порядок доступа согласно заранее определенным приоритетам. Каналы имеют приоритет над центральным процессором, потому что должны быстро реагировать на внешние события. Когда канал передает информацию с максимальной скоростью, он может полностью занимать путь доступа к памяти, тормозя тем самым выполнение программы на центральном процессоре; это явление называется «кража циклов обращения».

В зависимости от структуры и функциональных возможностей различают каналы селекторные и мультиплексные.

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

Мультиплексным называется такой канал, к выходам которого присоединяется несколько внешних устройств, причем все они или часть из них могут работать одновременно. Запросы от разных внешних устройств, работающих одновременно, удовлетворяются мультиплексным каналом в том или ином порядке (случайным, или в порядке поступления, или в порядке приоритетов).