Организация побайтного ввода вывода – —

Организация ввода-вывода в ОС

Подсистема ввода-вывода обеспечивает обмен данными между приложениями и периферийными устройствами

К основным компонентам п/с относятся драйверы и файловая система

Основные задачи:

  • Организация параллельной работы устройств и процессора
  • Кэширование данных
  • Разделение устройств и данных между процессами
  • Удобный логический интерфейс
  • Простое включение нового драйвера и файловых систем
  • Поддержка синхронных и асинхронных операций

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

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

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

Кэширование данных

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

При больших объемах ввода — вывода, памяти может не хватать и в таких случаях под буфер используется дисковый файл: спул-файл

Другим решением является оснащение контроллера буферной памятью, соизмеримой с ОЗУ

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

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

Устройства ввода — вывода могут предоставляться процессам в монопольное или совместное использование.

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

Другие устройства, например терминал, используется только в монопольном режиме

Принтер не выделяется в монопольное использование, но разграничивает порции выдач разных процессов

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

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

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

Простое включение новых драйверов

Достоинством любой современной ОС является разнообразие набора драйверов для наиболее популярных устройств и поддержка нескольких файловых систем

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

Существуют два типа интерфейсов:

  • “драйвер-ядро” (Driver Kernel Interface, DKI) для взаимодействия с ядром ОС и
  • интерфейс “драйвер-устройство” (Driver Device Interface, DDI) для взаимодействия с контроллером

Для поддержки разработки драйверов обычно выпускается пакет DDK (Driver Development Kit)

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

Данные на дисках организуются в файловые системы (ФС). Свойства ФС во многом определяют свойства ОС (отказоустойчивость, быстродействие, емкость и пр.)

Популярные системы мигрируют из одной ОС в другую (например FAT мигрировала из MS DOS в OS/2, MS Windows, Unix)

Обычно в ОС имеется слой программного обеспечения, отвечающий за простоту подключения новой файловой системы. Например, слой VFS (Virtual File System) в версиях Unix.

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

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

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

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

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

Многослойная модель подсистемы В-В

Многослойная модель подсистемы ввода-вывода

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

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

Основные задачи менеджера:

  • системные вызовы ввода-вывода,
  • взаимодействие с контроллером,
  • поддержка внутреннего интерфейса взаимодействия модулей ввода-вывода,
  • взаимодействие с другими модулями ОС

Пример: среда STREAMS для UNIX

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

Средний процент в баллах: 100%
всего голосов: 1
среднее: 5
Помогая проекту BEST-EXAM, вы делаете образование более доступным для каждого человека, внесите и вы свой вклад —
поделитесь этой статьей в социальных сетях!

best-exam.ru

Тема 6. Организация ввода-вывода

Лекция 14. Операции для работы с портами ввода-вывода

1. Пространство ввода-вывода

2. Операции для работы с портами ввода-вывода

3. Ввод из порта и вывод в порт

1. Пространство ввода-вывода

Пространство ввода-вывода в IBM PC отделено от пространства памяти. У всех процессоров семейства х86, в том числе и 32-разрядных, в пространстве ввода-вывода используется 16-разрядная адресация (диапазон адресов 0-FFFFh). Для дешифрации адресов портов в оригинальном PC из 16 бит использовались только младшие 10 (А0-А9), что обеспечивало обращением портам в диапазоне адресов 0-3FFh. Старшие биты адреса, хотя и поступали на шину, устройствами игнорировались. В результате обращения по адресам, к примеру 378h, 778h, B78h и F78h, воспринимались устройствами одинаково. Это упрощение, нацеленное на снижение стоимости как системной платы, так и схем плат адаптеров.

В адаптерах для шин МСА и PCI и во всех современных системных платах используются все 16 бит адреса. Карта распределения адресов ввода-вывода стандартных устройств PC приведена в табл. 1. Эта карта подразумевает 10-битную дешифрацию адреса. Причем в конкретном компьютере реально присутствуют не все перечисленные устройства, но в то же время там могут оказаться другие, не попавшие в таблицу.

Таблица 1

Стандартная карта портов ввода-вывода

АТ – усовершенствованная технология

ХТ – расширенная технология

AT и PS/2

PC/XT

Назначение

000-00F

000-00F

Контроллер DMA #1 8237

010-01F

PS/2 — расширение DMA#1

020-021

020-021

Контроллер прерываний #1 — 8259А

040-05F

040-043

Таймер (PC/XT: 8253, AT: 8254)

060

060

Диагностический регистр POST (только запись)

060-063

Системный интерфейс 8255

060,064

Контроллер клавиатуры AT 8042

061

Источники NMI и управление звуком

070-07F

Память CMOS и маска NMI

080

Диагностический регистр-

080-08F

080-083

Регистры страниц DMA

090-097

PS/2 микроканал, арбитр

0А0

Маска NMI

0A0-0BF

Контроллер прерываний #2 — 8259А

0C0-0DF

Контроллер DMA #2 8237А-5

0F0-0FF

Сопроцессор 80287

100-1EF

PS/2 управление микроканалом

170-177

Контроллер НЖМД #2 (IDE#2)

1F0-1F7

Контроллер НЖМД #1 (IDE#1)

200-207

200-20F

Игровой адаптер

210-217

Блок расширений

238-23F

COM4

278-27F

278-27F

Параллельный порт LPT2 (LPT3 при наличии MDA)

2А2-2АЗ

4acbiMSM48321RS

2C0-2DF

2C0-2DF

EGA #2

2Е0-2Е7

COM4

2E8-2EF

COM4

2F8-2FF

2F8-2FF

COM2

300-31F

ПлатЬ прототипа

320-32F

Жесткий диск XT

338-33F

COM3 <,

370-377

Контроллер НГМД #2

376-377

Порты комайд IDE#2

378-37F

378-37F

Параллельный порт LPT1 (LPT2 при наличии MDA)

380-38F

380-38F

Синхронный адаптер SDLC/BSC #2

3A0-3AF

3А0-3А9

Синхронный адаптер BSC#1

3В0-3ВВ

3В0-3ВВ

Монохромный адаптер (MDA)

3В4-3С9

PS/2 видеосистема

3BC-3BF

3BC-3BF

Параллельный порт LPT1 платы MDA

3C0-3CF

3C0-3CF

EGA#1

3C0-3DF

3C0-3DF

VGA

3D0-3DF

3D0-3DF

CGA/EGA

ЗЕ0-ЗЕ7

COM3

3E8-3EF

COM3

3F0-3F7

3F0-3F7

Контроллер НГМД #1

3F6-3F7

Порты команд IDE*1

3F8-3FF

3F8-3FF

СОМ1

Каждой шине назначается своя область адресов ввода, поэтому дешифратор адресов, расположенный на системной плате, при чтении открывает соответствующие буферы данных, так что реально считываться будут данные только с одной шины. При записи в порты данные (и сигнал записи) могут распространяться по всем шинам компьютера. В стандартном распределении адреса 0h-0FFh отведены для устройств системной платы. При наличии (и разрешении работы) периферийных устройств на системной плате чтение по этим адресам не распространяется на шины расширения. Для современных плат со встроенной периферией и несколькими шинами (ISA, PCI) распределением адресов управляет BIOS через регистры конфигурирования чипсета.

studfiles.net

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

 

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

На рис.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 — ошибка в цепочке; канал не успел расшифровать следующую команду канала до исполнения предыдущей.

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

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

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

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

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

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

 

stydopedia.ru

ОРГАНИЗАЦИЯ СИСТЕМЫ ВВОДА-ВЫВОДА ИНФОРМАЦИИ

Для связи МК с объектом управления, для ввода и вывода информации используется 27 линий: три порта по 8 линий Р1, Р2 и BUS и три независимые линии тестируемые командами условного перехода: Т0, Т1 и INT.

Организация системы прерываний. МК имеет одноуровневую систему прерываний с двумя источниками запросов по входу ~INT (вектор 3) и переполнения таймера/счетчика Т (вектор 7). Одноуровневость означает отсутствие вложенности прерываний, т.е. новые запросы не воспринимаются до завершения обслуживания текущего запроса. При одновременном поступлении запросов высший приоритет имеет внешний источник. Каждый источник может быть замаскирован по специальным командам DIS I, DIS TCNT (запрет прерывания INT или от таймера) или размаскирован по командам EN I, EN TCNT соответственно (рис.6).

Линия INT контролируется во время сигнала ALE и результат тестирования запоминается в триггере внешнего прерывания TIX, установка которого инициирует эквивалент команды CALL 003h (переход по вектору прерывания). В стеке сохраняется РС и PSW, выполняется переход на ППОП, последней командой которой должна быть команда RETR — возврата из прерывания, восстанавливающая содержимое PSW и РС. К моменту выполнения команды RETR внешний сигнал запроса ~INT должен быть снят внешними средствами или выдачей из МК по какой-либо линии портов Р1 или Р2 сигнала подтверждения прерывания.

Аналогично работает схема обработки прерываний от таймера. Если прерывания от таймера разрешены (TRP TCN=1), то в момент возникновения переполнения таймера триггер TIT устанавливается и вызывает переход на ППОП от таймера по вектору 7, после чего автоматически сбрасывает флажок TIT.

Линии Т0 и Т1 используются для ввода тестирующего сигнала от двоичного датчика с объекта управления, по значению которых в МК может выполняться условный переход JT0, JT1, JNT0, JNT1 в программе.

Кроме того по линии Т0 из МК может выдаваться сигнал синхронизации CLK (опорная частота МК деленная на 3) после выполнения команды разрешения выдачи синхросигналов ENT0 CLK).

Линия Т1 может использоваться в качестве входа счетчика событий от внешних источников. Рассмотрим организацию таймера/счетчика (рис.7).

Устройство работает в двух режимах: таймера и счетчика, в которые оно переводится по командам START, а останов по команде STOP TCNT. При переходе через границу счета инициируется запрос на прерывание (переполнение) и устанавливается флажок переполнения TF, который может быть проверен командой условного перехода JTF addr8 и триггер TF автоматически сбрасывается.

В режиме счетчика подсчитывается количество переходов из 1 в 0 на внешнем входе Т1.

В режиме таймера устройство считает метки времени деления частоты машинных циклов ALE на 32. Это позволяет получить паузы от 1/32 ALE до 256 * 1/32 ALE.

Порты ввода-вывода Р1 и Р2.Специальная схемотехника портов Р1 и Р2 (квазидвунаправленная) позволяет выполнять ввод или вывод, причем каждая линия может быть индивидуально настроена на один из режимов. Выходные буфера портов имеют встроенные регистры, которые запоминают выводимые данные. При вводе данных информация поступает непосредственно в АС, минуя выходной буферный регистр, который должен находиться в состоянии 0FFh. Иначе выполняется операция маскирования вводимых данных по схеме «монтажное ИЛИ» с содержимым буферного регистра. Это и позволяет одни линии портов использовать для ввода, а другие для вывода. Упрощенная структура портов показана на рис.8.

Порт 2 отличается от Р1 тем, что его младшие 4 бита и линия PROG могут использоваться для расширения МК-системы по вводу-выводу с использованием БИС расширителя интерфейса К580ВР43 (рис.9).

 
 

Порт ввода-вывода BUS — это двунаправленная 8-разрядная мультиплексированная шина адреса/данных с z-состоянием и предназначен для побайтного ввода и вывода.

Порт BUS может использоваться как для подключения внешней памяти программ и данных, так и для расширения числа линий ввода-вывода для подключения дополнительных периферийных устройств, например, БИС параллельного и последовательного интерфейса ВВ55 или ВВ51. Ввод-вывод может осуществляться по двум типам команд: MOVX или командам ввода и вывода INS и OUTL.

Также как и для портов Р1 и Р2 при выводе байт фиксируется во внутреннем буферном регистре и вырабатывается сигнал ~ЗП (~WR), а при вводе формируется сигнал ~ЧТ (~RD).

 

 

Вводимые и выводимые через порт BUS данные можно маскировать по командам ORL BUS,#d и ANL BUS,#d, что позволяет выделять и обрабатывать отдельный бит или группу бит.

Рассмотрим подключение к порту BUS БИС параллельного интерфейса К580ВВ55.

Вариант А.Порты ВВ55 адресуются как ячейки внешней памяти данных, доступ к которым осуществляется по командам MOVX (рис.10).

Вариант В.Выбор порта ВВ55 осуществляется через установку адреса через порт Р2 МК48 (рис.11).


5rik.ru

Канальная организация подсистем ввода-вывода



Обратная связь

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса — ваш вокал


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


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший «Салат из свеклы с чесноком»


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека — Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков — Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) — В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

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

Логически такая подсистема ввода-вывода представляет собой совокупность подканалов обмена между внешними устройствами и ОП; каждому внешнему устройству выделяется логический подканал.

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

Управление передачей данных между ОП и ВУ осуществляет канал ввода-вывода (или просто канал).

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


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

Для обмена с быстрымиВЗУ в монопольном режиме используют селекторный канал (иногда называют блоковый или блокмультиплексный канал).

Функционально подсистема ввода-вывода включает в свой состав процессоры ввода-вывода (канальные процессоры), устройства управления внешними устройствами (контроллеры) и собственно ВУ.

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

Обычно таких команд в системе команд ЭВМ несколько. Например, для мэйнфреймов фирмы IBM(S/370, S/390 и др.) имеется не менее 8 команд ввода-вывода:

1. SIO – Начать ввод-вывод.

2. SIOF – Начать ввод-вывод с быстрым отключением.

3. TCH – Проверить (опросить) канал.

4. TIO – Проверить (опросить) ввод-вывод.

5. CLRIO – Освободить ввод-вывод.

6. HIO – Остановить ввод-вывод.

7. HDV – Остановить устройство.

8. STIDC – Записать идентификатор канала.

Ниже приведен формат команд ввода-вывода для указанных выше семейств ЭВМ.

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

Как следует из рис. 4.3 в поле адресов (байты 2 и 3) можно указывать до 256 каналов и до 256 устройств.

Ниже приведены примеры записи команд ввода-вывода.

SIO WWOD ; адрес канала и устройства задан символическим именем.

SIO X’00C’ ; адресован канал с номером 0, а адрес УВВ равен .

Для того чтобы задать устройству ВВ необходимую команду, указать откуда брать данные для ввода-вывода и сколько данных необходимо вводить (выводить), необходимо указать в программе на языке ассемблера команду CCW, имеющую формат:

имя CCW Четыре операнда, разделенные запятыми

Операнд 1 – абсолютное выражение, определяющее код команды.

Операнд 2 – абсолютное или перемещаемое выражение, определяющее адрес данных.

Операнд 3 – абсолютное выражение, определяющее признаки (флажки).

Операнд 4 – абсолютное выражение, определяющее количество информации в байтах, участвующих в операции.

Например, команда

 

READ CCW X’02’, X’800’, X’00’, X’50’

 

осуществляет считывание (код 02), 80 байтов (5016), в память с адреса 80016.

На рис. 4.4 приведен вариант организации подсистемы ввода-вывода с 6-ю каналами (1 мультиплексный и 5 селекторных).

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

В большинстве ЭВМ интерфейсы между ЦП и каналами идентичны с точки зрения состава передаваемой информации и логики ее обработки. В канальных подсистемах ввода-вывода используют для подключения ВУ как радиальные (магистральные), так и шинные интерфейсы. Возможно использование и комбинированных интерфейсов.

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

Рис. 4.4. Структурная схема канальной подсистемы ввода-вывода

 


megapredmet.ru

Раздел 4. Организация системы ввода-вывода в эвм.

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

Связь процессора с периферийными устройствами осуществляется:

  1. Через аккумулятор (регистр общего назначения)

  2. Через оперативную память.

Оперативная память может непосредственно связаться с внешним устройством через DA.

Проблемы ввода-вывода:

  1. Существует большое количество устройств ввода-вывода, с различными параметрами:

  1. Скорость передачи данных.

  2. Формат передачи данных (устройства последовательного, параллельного представления информации и т.д.).

  3. Различные формы передачи данных (байты, слова, блоки секторы).

  4. Количество выполняемых функции (чтение, запись).

  1. Различные скорости работы центральной машины и внешних устройств (требуется многоуровневая буферная память).

  2. Асинхронность центральной рабочей машины и внешних устройств (Это значит, что центральная машина работает сама по себе, внешне устройство подготавливается к работе (согласование устройств)).

Требования в системе ввода-вывода:

  1. Обеспечить эффективное согласование центральной части машины и внешних устройств с

целью достижения максимальной производительности.

  1. Обеспечение распределения внешних устройств по одновременно выполняемым

задачам в системе (большинство машин работают в многозадачных системах).

  1. Обеспечение управлением каждым конкретным внешним устройством.

  2. Обеспечение дружественного интерфейса с пользователем.

Архитектура систем ввода-вывода.

Существует два основных способа организации системы ввода вывода.

  1. Прямой ввод вывод.

  2. Косвенный ввод вывод (канальный ввод вывод).

ОП

системная шина

ЦП

ОП контрол. ВУ контр. ВУ

ВУ ВУ1 ВУ2 ВУ3

механизм

носит. инф

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

ВУ1 ВУ2 ВУ3 ВУ4

контр. 1 контр. 2

канал 1

(мультиплексный)

ЦП ОП

канал 2 контрол. ВУ

(селекторный)

В данной архитектуре осуществлен процесс ввода-вывода называемый канальный.

Каналы делятся на

  1. Мультиплексные (обслуживают много, но медленно).

  2. Селекторные (обслуживают мало, но быстро).

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

Сравнение функций контролеров и каналов, состав контролеров и каналов

Контролеры:

  1. В текущий момент времени он выполняет одну команду ввода-вывода получаемую от процессора или канала и одновременно обслуживает одно внешние устройство.

В его функции входит:

  1. Опознание своего адреса выборки.

  2. Подтверждение готовности внешних устройств.

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

  4. Согласование форматов данных.

  5. Согласование скоростей передачи (буферизация).

  6. Фиксация момента и характера операции ввода-вывода.

Контроллер должен содержать:

  1. Селектор адреса (логическая схема, выдающая разрешающий сигнал на один адрес).

  2. Регистры управления (содержит команду) и состояния. Состояния характеризуются следующими битами: DONE,BUSYERRORчасто применяется бит приоритета.

  3. Буферные регистры данных (которые служат для согласования форматов и скоростей передачи).

Особенности каналов:

  1. Выполняет целую канальную программу из многих команд.

  2. Допускает одновременно управлять несколькими внешними устройствами.

В его функции входит:

  1. Опознание своего адреса и подтверждения готовности.

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

  3. Поиск контроллера и внешнего устройства участвующего в операции и проверки их готовности.

  4. Запуск канальной программы и управление обменом.

  5. Сообщение центрального процессора о завершение операции и всей программы.

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

studfiles.net

Тема 2.4 Обслуживание ввода-вывода

Дом Тема 2.4 Обслуживание ввода-вывода

просмотров — 183

Способы организации ввода-вывода.

Организация побайтного ввода-вывода. Организация ввода-вывода с использованием каналов ввода-вывода. Последовательность операций, выполняемых каналом ввода-вывода. Канальная программа. Вовлечение операционной системы в управление вводом-выводом. Рабочая область канала ввода-вывода. Очередь запросов на ввод-вывод. Алгоритм обработки прерываний по вводу-выводу. Пример управления вводом-выводом.

□Основными задачами подсистемы ввода-вывода являются:

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

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

□ Драйверы делятся на низкоуровневые, непосредственно управляющие работой контроллеров внешних устройств, и высокоуровневые, обеспечивающие логический интерфейс к устройствам, к примеру драйверы файловых систем

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

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

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

Основными компонентами подсистемы ввода-вывода являются драйверы, управляющие внешними устройствами, и файловая система. К подсистеме ввода-вывода можно также с некоторой долей условности отнести и диспетчер прерываний.

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

Необходимость обеспечить программам возможность осуществлять обмен дан­ными с внешними устройствами и при этом не включать в каждую двоичную программу соответствующий двоичный код, осуществляющий собственно управ­ление устройствами ввода/вывода, привела разработчиков к созданию системно­го программного обеспечения и, в частности, самих операционных систем. Про­граммирование задач управления вводом/выводом является наиболее сложным и трудоемким, требующим очень высокой квалификации. По этой причине код, позво­ляющий осуществлять операции ввода/вывода, стали оформлять в виде систем­ных библиотечных процедур; потом его стали включать не в системы програм­мирования, а в операционную систему с тем, чтобы в каждую отдельно взятую программу его не вставлять, а только позволить обращаться к такому коду. Сис­темы программирования стали генерировать обращения к этому системному коду ввода/вывода и осуществлять только подготовку к собственно операциям вво­да/вывода, то есть автоматизировать преобразование данных к соответствую­щему формату, понятному устройствам, избавляя прикладных программистов от этой сложной и трудоемкой работы. Другими словами, системы программиро­вания вставляют в машинный код необходимые библиотечные подпрограммы ввода/вывода и обращения к тем системным программным модулям, которые, собственно, и управляют операциями обмена между оперативной памятью и внеш­ними устройствами. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, управление вводом/выводом — это одна из базовых функций любой ОС.

oplib.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *