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

Лекция-23

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

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

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

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

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

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

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

  3. Ожидающим сигнала таймера

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

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

Fptr0 Bptr0

Fptr1 Bptr1

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

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

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

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

Ввод / вывод

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

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

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

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

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

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

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

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

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

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