Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS.docx
Скачиваний:
21
Добавлен:
21.04.2019
Размер:
68.14 Кб
Скачать
  1. Организация ввода/вывода на физическом уровне.

Канальные программы

К программы состоят из команд К (CCW)

CCW каждая команда К - двойное слово

Содержит поля:

Код операции 1б

Адрес данных в ОП 3б

Флаги, управляющие выполнением операции 2б

Счетчик 2б

|-----+-------+-------+---------|

| КОП | адрес | флаги | счетчик |

|-----+-------+-------+---------|

0 8 32 48 63

xxxxxx00 - недопустимый код

01 - запись, направление из ОП в К

10 - чтение, направление из К в ОП

11 - управление из ОП в К

(разновидность записи)

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

При чтении УВВ передает в К байты, а К записывает их в ОП по указанному адресу до исчерпания счетчика

При передаче байта, независимо от направления, счетчик уменьшается на 1

Если по окончанию выполнения команды счетчик не равен 0, возникает ситуация "неправильная длинна"

Флаги CCW

PCI

Программно управляемое прерывание

Встретившись в CCW вынуждает К создать прерывания ввода/вывода особого типа.

Если при выборе очередной К команды PCI будет равен 1, то будет сформирован запрос на прерывание ввода/вывода

Эти прерывания могут использоваться для синхронизации К и ЦП

CD и CC

Цепочка данных

Цепочка команд

Говорят о том, что К должен сделать после выполнения текущей CCW

CD = 1

По окончанию передачи данных, заданных текущим адресом и счетчиком команды,

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

это позволяет записывать данные в несвязанные области памяти. Такой режим работы К называется цепочкой данных

CD = 0, CC = 1

По окончанию выполнения передачи данных текущей команды происходит выбор следующей команды и дальнейшая

обработка продолжается в соответствии с новым кодом операции. Такой режим называется цепочкой команд

CD = 0, CC = 0

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

SILI

Если в ситуации "неправильная длинна" значение флага SILI текущей команды оказывается равным 1,

выполнение К программы продолжается

Если значение флага в этом случае равно 0, выполнение К программы будет прекращено

IDA

Часть средства ДПА

Позволяет вместо адреса реальной памяти задать список адресов начал сегментов

Адреса данных в К программах должны быть реальными. В тоже время при использовании средств ДПА

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

В виртуальном адресном пространстве эта область будет связана, т.е. адреса байтов этой области

будут принимать последовательно увеличивающиеся на единицу значения. В реальной ОП данная область

не обязательно является связанной

Для разрешения этого конфликта предназначен IDA. При его наличии адрес данных из К программы

интерпретируется как адрес списка, элементы которого содержат реальные адреса и длины несвязанных

областей реальной памяти

SKIP

Флаг учитывается только при выполнении операции чтения, обработка его выполняется К.

Если этот флаг установлен в операции чтения, передаваемые К данные не будут записаны в ОП, а потеряются

// 63К

CCW x'02',1,CD+SKIP,64512

CCW x'00',ABC,0,1024

//буфер

В ОП располагаются программа ЦП, данные этих программ, программы К, данные этих программ, CCW,

слово состояния К

1) Подготовленная К программа, выполняющая требуемую операцию ввода/вывода

2) Адрес программы К должен быть занесен в адресное слово К

3) Должна быть выполнена команда "начать ввод/вывод", аргумент которой содержит адрес УВВ

ЦП проверяет состояние программы, доступность К программы и продолжает выполнение своей программы

В тоже время К начинает выполнение команд программы К

4) По завершению К программы ЦП будет оповещен при помощи прерываний

Каждая компонента системы ввода/вывода может генерировать собственное прерывание.

Может быть 3 прерывания

Пример К программы

CCW x'07',ADDR,CC,6

CCW x'31',ADDR+2,CC,5

CCW x'08',*-8,CC,1

CCW x'06',BUF,0,LNG

Выбор записи на магнитном диске

x'07' - установка цилиндра и выбор головки

ADDR имеет формат BBCCHHR

BB - номер барабана

CC - номер цилиндра

HH - номер головки

R - номер записи

Передается только 6 байт (4 аргумента)

x'31' - поиск по идентификатору на "="

Передается CCHHr и сравнивается с маркером.

Если совпадет - переходит на x'06'

x'08' - команда перехода в К программе

*-8 - адрес предыдущей команды

x'06' - чтение данных

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]