Лабораторная работа №3 Алгоритм программы передачи в канал связи нескольких информационных кадров
(см. главы 4,5)
Программа LAB3.
Описание:
-константы N1, N2, Z1, Z2, m, МСICL;
- переменные D, V(S), V(R), N(S), N(R),CICL;
- программы DISP1, P1, P2, P3, P4, P5;
- очереди Оп32, Оповт, Освоб.
Диспетчер программы DISP3
Установить и передать в канал МСICL информационных кадров.
МСICL:=3 (контрольный пример)
1:=CICL
Begin;
D:= 1
IF D = 1 THEN GO TO P1 ELSE IF D = 2 THEN GO TO P2 ELSE
IF D= 3 THEN GO TO P3 ELSE IF D = 4 THEN GO TO P4 ELSE
IF D = 5 THEN GO TO P5 ELSE
END
Программы:
P1 – формирование очереди из N1 свободных блоков
P2 – формирование N2 пакетов данных
P3 – перенос N2 пакетов данных из очереди Освоб в очередь пакетов Оп32
P4 – формирование информационного кадра, включающего первый пакет в очереди пакетов Оп32
P5 – перенос информационного кадра, сформированного программой P4, в очередь повтора Оповт и в регистр на передачу в канал
3.1. Программа p1
а) Выделение памяти под N1 свободных блоков (3<= N1=< 20). Каждый свободный блок занимает 138 байт:
- 2 байта под адрес предыдущего блока в списке блоков (первое адресное поле связки очереди);
- 2 байта под адрес следующего блока в списке блоков (второе адресное поле связки очереди);
- 3 байта под заголовок пакета;
- 1 байт под заголовок кадра;
- 128 байт под информационную часть пакета данных;
- 2 байта под контрольно-проверочную комбинацию КПК.
Очистить память, занятую свободными блоками.
б) Установление адресов связки в N1 свободных блоках:
- выделить память под характеристику очереди свободных блоков Нсвоб с начальным адресом АНсвоб. Установить поля характеристики Нсвоб (рис.1).
АНсвоб
-
А(1)
А(N1)
N1
Рис.1. Характеристика Нсвоб
Здесь
А(1) – адрес начала массива первого свободного блока в очереди Освоб
А(N1) – адрес начала массива последнего свободного блока в очереди Освоб.
Под массивом блока будем понимать блок (пакет, кадр, ячейка и др.) с адресными полями связки очереди.
_- установить адресные поля связки первого (рис. 2а) и N1 – го (рис. 2б) свободного блока в очереди Освоб.
А(1)
-
0
А(N1)
а)
А(N1)
-
А(N1)-1
0
б)
Рис. 2. Формат первого (а) и последнего (б) свободного блока в списке очереди Освоб
- установить адреса связки всех свободных блоков, кроме первого и последнего
FOR i=2, 3 …. (N1-1) DO
Запись в первое адресное поле i-го блока адрес начала i-1 блока списка очереди;
Запись во второе адресное поле i-го блока адрес начала i+1 блока списка очереди.
i=i+1
D:=D+1
GO TO DISP3
3.2. Программа p2
Записать данные в информационную часть первых N2 свободных блоков очереди Освоб, т.е. сформировать пакет данных в этих свободных блоках. Для упрощения примем заголовок пакета равным нулю.
На рис. 3 показан формат размещенного пакета в свободном блоке с начальным адресом A(i).
байты |
2 |
2 |
1 |
3 |
128 |
2 |
Начальный адрес A(i) |
Первое адресное поле |
Второе адресное поле |
|
Заголовок пакета |
Информационная часть пакета |
|
Рис. 3. Формат размещения пакета данных в свободном блоке с начальным адресом A(i).
Обозначим через m начальное значение для записи данных в информационную часть пакета данных.
FOR i= 1,2…..N2 DO
Записать m+1 в поле информационной части пакета с начальным адресом массива A(i). (Исходные данные параметра m приведены в разделе 6 настоящей лабораторной работы).
END
В результате в первых N2 свободных блоках установлены пакеты данных, образуя очередь пакетов Оп32. Функция следующей программы P3 в освобождении Освоб от пакетов очереди пакетов Оп32 (переносе их из . Освоб в Оп32 ), формирование характеристики очереди пакетов Оп32.
D:=D+1
GO TO DISP3