Диспетчер программы DISP6

Begin;

D:= 1

IF D = 1 THEN GO TO P6 ELSE IF D = 2 THEN GO TO P7 ELSE

IF D= 3 THEN GO TO P8 ELSE IF D = 4 THEN GO TO P9 ELSE

IF D = 5 THEN GO TO P10 ELSE

END

P6 – формирование принятого кадра “I”, подтверждающего правильный прием первого из всех переданных на противоположную сторону информационных кадров “I” (cм. лаб. 3);

P7 – Программа записи кадра “I” с контрольно-проверочной комбинацией КПК в первый блок очереди Освоб;

P8 – программа переноса принятого кадра “I” из Освоб в очередь Окпм;

P9 – программа считывания правильно принятых противоположной стороной ранее кадров “I” и находящихся в очереди повтора Оповт (лаб.3);

P10 – программа: 1) перепись пакета принятого кадра “I” (находящегося в очереди Окпм) в очередь на передачу с канального процессора j=5 Оп23(j) в центральный процессор сетевого уровня (рис. 9.2 раздел 9); 2) передача пакета в Оп23(5) в регистр передачи на сетевой уровень REG23.

6.1. Программа P6

Выделение памяти для формирования принятого информационного кадра “I”, подтверждающего правильный прием всех переданных на противоположную сторону информационных кадров “I” (лаб. 3).

На рис.1 приведен этот формат этого кадра, включающий 1 байт заголовка кадра, 2 байта заголовка пакета, 128 байт информационной части пакета и 2 байта КПК этого кадра. Начальный адрес этого кадра с КПК - A(RGвх). Он имитирует входной регистр RGвх с канала, в котором в действительности аппаратным образом проверяется с помощью КПК был ли искажен кадр в канале. Как видно из рис.1 регистр состоит из 133-х байтов.

байты        
начальный адрес A(RGвх) Заголо-вок кадра Заголо-вок пакета Информационная часть пакета КПК

………………… кадр ………………………………………………………………..

……….. ………..…………. пакет …………………………..

Рис. 1. Формат принятого информационного кадра “I” во входной регистр с начальным адресом A(RGвх)

Сформировать поля принятого кадра (значения приведены для контрольного примера):

- записать данные m +5 в поле информационной части пакета (для контрольного примера m +5=6, т.е. 110).

- установить ноль в поле заголовка пакета.

Установить параметры заголовка принятого кадра (значения приведены для контрольного примера):

- установить тип кадра “I”: биты кадра <1>:= 0

- установить V1(S):=Z2; переменный параметр очередного информационного кадра “I” на передачу с противоположной стороны (т.е. N1(S) принятого кадра совпадает с ожидаемым)

- установить N1(S):= V1(S) и записать в биты принятого кадра <2-4>:=001

- установить V1(S):= V1(S) +1

- установить N1(R):=V1(R) в биты кадра <6-8>:=100; в программе лаб.3 в контрольном примере на противоположную сторону были отправлены три “I” кадра соответственно с N(S) (битами в заголовке <6-8>:= 010, 011, 100). Биты принятого кадра с N1(R) <6-8>:=100 показывают, что приняты правильно первые два из них (ожидается на противоположной стороне “I” кадр с N(S) = 100.

- установить КПК (старший байт равен нулю, младший байт – 10000100, т.е. суммированные по модулю 2 все байты кадра (10000010 – заголовок кадра, информационная часть пакета - 110). Это означает, что кадр принят неискаженным в канале.

D:=D+1

GO TO DISP6

6.2. Программа P7

Записать в массив первого блока по адресу А(N2+1) очереди свободных блоков Освоб принятый с канала связи кадр “I”, подтверждающий правильный прием с противоположной стороны двух (из трех переданных) информационных кадров “I” (рис. 2). Значения полей заголовка принятого кадра приведены для контрольного примера.

А(N2+1)

Биты 16 бит 16 бит                
Значения                    

.…адр. часть……..................кадр “I” ……….

Рис. 2. Заголовок кадра “I” в массиве очереди свободных блоков Освоб

- откорректировать поля характеристики очереди Нсвоб очереди свободных блоков Освоб, (т.е. снять свободный блок с начальным адресом массива по А(N2+1) из очереди свободных блоков Освоб (рис.3).

АНсвоб

А(N2+2) А(N1) N1- N2 -1

Рис. 3. Характеристика Нсвоб

- установить в ноль первое адресное поле первого массива свободного блока очереди свободных блоков Освоб с начальным адресом А(N2+2).

D:=D+1

GO TO DISP6

6.3. Программа P8

Переписать из очереди свободных блоков Освоб кадр “I” (без КПК), поступивший неискаженным, в очередь принятых с канала кадров Окпм (для упрощения рассматривается исходное состояние отсутствия очереди Окпм.):

- выделить память под характеристику Hкпм. очереди принятых кадров Окпм. с начальным адресом АHкпм;

- установить поля характеристики Hкпм (рис 4);

- поставить в очередь Окпм массив кадра с начальным адресом А(N2+1);

АHкпм

А(N2+1) А(N2+1)  

Рис. 4. Характеристика Hкпм

- установить значение ноль в оба адресные поля массива кадра с начальным адресом А(N2+1);

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

Определить N(S) первого кадра в Оповт: по первому полю Нповт определяем адрес массива первого кадра в Оповт; N(S):= биты <2-4> заголовка этого кадра. Для контрольного примера рис..7 лаб.3 N(S)=010. N1(R) - <6-8> принятого кадра “I” и находящегося в очереди Окпм. Для контрольного примера N1(R) = 100.

IF N(S) =< N1(R)-1 THEN

D:=D+1

GO TO DISP6

ELSE END

6.4. Программа P9

Y:= N1(R) - N(S); число кадров, на которые пришла квитанция об их правильном приеме.

Установить TADR:= <первое поле> характеристики Нповт, т.е. адрес массива первого кадра в Оповт.

FOR i = 1... Y DO

Поставить массив кадра по адресу TADR из очереди Оповт в очередь Освоб

IF i = Y THEN

Откорректировать Оповт и Освоб, Hповт и Нсвоб.

END ELSE

В первое поле характеристики Hповт записать второе адресное слово массива кадра по адресу TADR из очереди Оповт.

В третьем поле Hповт значение уменьшить на единицу.

Второе адресное слово массива по адресу TADR записать в первое поле характеристики Hповт, а в третьем поле Hповт значение уменьшить на единицу.

В первое адресное поле массива по адресу TADR записать второе адресное поле массива второго поля характеристики Нсвоб. Во второе адресное поле TADR записать ноль.

Во второе адресное поле массива второго поля характеристики Нсвоб записать TADR. . Во второе поле Нсвоб записать TADR, а в третьем поле Нсвоб прибавить единицу.

TADR:= <первое поле> Hповт

END

На рис. 5 приведена характеристика очереди Нповт (очереди Оповт) при исходных данных контрольного примера.

АНповт

А(3) А(3)  

Рис. 5. Характеристика Нповт

На рис. 6 приведена характеристика очереди Нсвоб (очереди свободных блоков Освоб) при исходных данных контрольного примера.

АНсвоб

А(N2+2) А(2) N1- N2 +1

Рис. 6. Характеристика Нсвоб

D:=D+1

GO TO DISP6

6.5. Программа P10

Выполнить следующую последовательность операций.

Переписать пакет принятого кадра “I” (находящегося в очереди Окпм) в очередь на передачу с канального процессора j=5 Оп23(j) в центральный процессор сетевого уровня (рис. 7.2, глава 7).

Переслать этот из Оп23(5) в регистр передачи на сетевой уровень REG23.

Перенести в конец Оп23(5) массив принятого кадра “I” по адресу А(N2+1) и находящегося в очереди Окпм.

Убрать заголовок кадра, оставив входящий в него пакет.

На рис. 7 приведен формат массива этого пакета без указания содержания заголовка и информационной части.

байты    
начальный адрес A(RGвх) Заголо-вок пакета Информационная часть пакета

…...………………… пакет …………………………………

Рис. 7. Формат массива пакета в принятом информационном кадре “I”

Откорректировать очереди Окпм, Оп23(5) и характеристики этих очередей Нкпм, Нп23(5)

Передача этот пакет в Оп23(5) в регистр передачи на сетевой уровень REG23 и перенести массив этого пакета в конец Освоб.

-Откорректировать очереди Оп23(5), Освоб и характеристики этих очередей Нп23(5), Нсвоб.

На рис. 8 приведена характеристика очереди Нсвоб (очереди свободных блоков Освоб) при исходных данных контрольного примера.

АНсвоб

А(N2+2) А(N2+1) N1- N2 + 2

Рис.8. Характеристика Нсвоб

D:=D+1

GO TO DISP6


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: