Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект 58 страниц 2002.doc
Скачиваний:
91
Добавлен:
15.06.2014
Размер:
4.07 Mб
Скачать

Распределение памяти в транспьютерах

Может быть адресовано до 232=4 Гб памяти. Адресация начинается с отрицательного адреса 8000:0000 (доп. код). Структурно конструктивно вся оперативная память подразделяется на внутрикристальную и внешнюю. Объём внутрикристальной равен 2 или 4 Кб. Внешняя и внутренняя памяти равнодоступны и имеют единую адресацию. Внутрикристальная память находится в младших адресах, а внешнекристальная – в старших. Во внутрикристальную память обычно помещают наиболее часто используемые подпрограммы, т.к. время выборки значительно меньше.

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

Диспетчеризация процессов

Каждый из процессов в каждый момент времени может быть:

  1. Выполняемым

  2. Активным (готовым к выполнению в очереди соответствующего приоритета)

  3. Ожидающим сигнала таймера (т.е. находится в очереди таймера соответствующего приоритета)

  4. Ожидающим ввода/вывода

Для выполняющегося процесса регистр I содержит адрес следующей выполняемой команды, а регистр W  его дескриптор. Для организации очереди процессов на выполнение в диспетчере используется две пары регистров, указывающих на начало и конец очереди высоко и низко приоритетных процессов:

Fptr0 Bptr0

Fptr1 Bptr1

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

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

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

Организация ВводА / выводА в транспьютере.

Ввод/вывод для процессов в транспьютере организуется одинаково как при использовании внешних обменов между процессами на разных транспьютерах – аппаратных линков, так и при использовании виртуальных линков (обмен между процессами одного транспьютера).

В обмене участвуют только два процесса: один выводит данные, а другой  вводит. В момент описания канала и после завершения канальной операции словосостояние канала инициализируется специальной константой MinInt.

Процесс, который первым выполняет обмен, приостанавливается, и проверяет словосостояние канала. Если оно равно MinInt, то значит, процесс первым подошел к процедуре обмена и далее процесс заносит в слово состояния канала дескриптор процесса, а в рабочую область процесса помещается значение регистра W и адрес передаваемых данных, после чего управление передаётся диспетчеру процесса.

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

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

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

Сообщения между транспьютерами передаются между последовательностью байтов. Для передачи используется пара проводов. По одному проводу из пары – сами данные, а по другому – подтверждение приёма каждого байта. При передаче байта передаются стартовый и управляющий биты, восемь информационных битов и стоповый бит. После передачи байта отправитель ждёт подтверждения, состоящего из стартового и управляющего битов. Если управляющий бит = 1, то в подтверждении он равен 0.

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

Передача по линку асинхронна, и для организации обмена требуется только точный кварцевый генератор с частотой 5 МГц для задания тактовых сигналов транспьютера.