Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Шнепс, М. А. Численные методы теории телетрафика

.pdf
Скачиваний:
10
Добавлен:
21.10.2023
Размер:
9.21 Mб
Скачать

Г л а в а

8

Алгоритмы моделирования систем коммутации

Внастоящей главе изложены алгоритмы мо­ делирования коммутационных схем, взятых из инженерной практики: однокаскадных п

двухкаскадных неполнодоступных схем, шестикаскадной схемы. Особое внимание обращается на компактную запись структуры и состояний схемы и составление экономичного алгоритма поиска свободных соединительных линий. Эти соображения важны как при моделировании схем на ЭВМ, так и при управлении коммута­ ционной системы в случае программно управляемой АТС.

8.1. НЕПОЛНОДОСТУПНАЯ СХЕМА

Пусть требуется моделировать неполнодоступную схему, имеющую параметры: v — число линий; п — число групп контак­ тов (абонентов); d — число доступных линий в каждой группе контактов. Пример НС приведен на рис. 8.1а. Для записи состоя-

 

 

 

 

 

 

 

 

Рис. 8.1. Неполиодоступ-

 

 

S)

 

 

 

 

 

ная схема с параметра­

а)

1

/

0 1 а 1 1

ми п = 3, d = 4, t> = 6 (за­

 

 

 

 

 

 

 

 

нятые линии

1 и 5 на

 

 

0

1

0

1

1

1

рис. обозначены черными

 

 

0

0

1

1

1

1

кружочками) (a); Pi, R2,

 

 

0

!

1

I

0

1

Яз — указатели

структу­

 

 

 

 

 

 

 

 

ры НС — указатель

 

 

 

 

 

 

 

 

занятых линий) (б)

ния линий, доступных t'-й группе контактов,

отводится строка Ri

с v разрядами.

Если /-я линия

(7 = 1 ,

... , v)

доступна £-й группе

( t=l ,

..., /г), то

значение /-го слева

разряда

в строке Ri

равно 1,

в противоположном случае равно 0. Для записи всей системы тре­ буется nv разрядов. Состояние системы характеризует указатель занятых линий R e v разрядами. Бели /-я линия свободна, то зна­ чение /-го разряда строки R равно 1, в противоположном случае— 0. Для нахождения свободных линий, доступных г-й группе, стро­ ка Ri логически умножается на строку R. Это дает возможность получить информацию одновременно о всех линиях, доступных i-й группе (см. пример на рис. 8.16). Кроме того, есть список заня-

1'50

гых линий, по которому происходит освобождение линий. Текущую длину списка обозначим .4. Каждая строка в данном списке име­ ет v разрядов, из них и— 1 разряд равен нулю, а один разряд равен единице. Номер этого разряда совпадает с номером данной линии (считая слева).

Заметим, что изложенным способом можно моделировать не любые НС. Нельзя, например, моделировать схемы со сдвигами, так как согласно алгоритму моделирования номера линий в каж­ дой группе должны идти в возрастающем порядке, а в этих схемах порядок нарушается. Но это несущественное ограничение, потому что согласно принципам выбора оптимальных НС (см. § 5.1) сдви­ ги увеличивают вероятность потерь и ими пользоваться не реко­ мендуется.

Переходим к изложению блок-схемы программы моделирова­ ния. Ее отдельные блоки имеют номера вида а(Ь, с), где а — номер

блока

по порядку;

 

Ь — номер блока, к

которому передается уп­

равление при выполнении логического условия, содержащегося в

блоке а;

с — номер

 

блока, к которому передается управление при

невыполнении

логического

условия. В

случае

арифметического

блока Ь =

с.

 

 

 

 

 

х и

 

1

 

(2,9).

Выбор псевдослучайного

числа

проверка услови

х > — —

(рис. 8.2). Переход к блоку 2 означает «поступил вы-

зов»,

к блоку 9 — «осво­

 

/Л

 

 

бождение одной из А за­

 

 

 

нятых линий».

 

 

 

 

 

 

2(3,3). Выбор псевдо­

 

 

 

 

случайного числа у и оп­

 

А

\ \

 

ределение номера группы

/

 

i=i[yn]+il, где квадратная

 

 

 

оу-

 

 

 

скобка — знак целой ча­

/

 

 

 

сти.

 

 

 

 

 

/

 

\

\

3(4,5). Определение нали­

/

 

/

 

 

\\

чия свободной линии в 1

 

 

группе контактов, т. е. ус­

0 L

 

А

\

танавливаем,

отлично ли

 

Поступление

от нуля

логическое про­

Освобождение

 

 

Вызова

изведение строки R запи­

Рис- ^.2. Схема выбора событий на основе чи-

си ЛИНИЙ схемы на ст.ро-

Ку ■.записи ЛИНИЙ

ДОС-

равномерно распределенных на [0, 1], чис-

J

 

. „

 

кон-

ло jc— соответствует событию

«поступил вы-

тупных г-и группе

 

30в>>

 

 

 

тактов.

 

 

 

 

 

 

 

 

 

4(6,6).

Занятие очередной свободной

линии,

т. е. нахождение

. номера / первого справа разряда, равного единице в результате произведения, и замена /-го разряда строки R записи свободных линий на 0, соответственно увеличение описка занятых линий на од­ ну строчку.

5(6,6). Суммирование отказов.

6 (7,7). Суммирование поступивших вызов он.

161

7(8,1). Достаточна ли длина серии произведенных 'вызовов.

8(8,8). Вывод результатов и останов.

9(1,1). Выбор при помощи случайного числа z освобождае­

мой линии с номером к — [.гЛ]+1, вычеркивание ее из списка заня­ тых линий и замена в указателе свободных линий R соответствую­ щего разряда с 0 на 1. Вместо записи освобожденной липни в спи­ ске ставится последняя запись из описка. Длина описка становится равной А— 1.

Программа выдает оценку (вероятности потерь по .вызовам

л

л (Л) = N q!N, где N — общее число вызовов; N0 — число потерян­ ных вызовов.

8.2.ДВУХКАСКАДНАЯ НЕПОЛНОДОСТУПНАЯ СХЕМА

Коммутаторы первого каскада обозначим через /1, второго— через В. Вся 2/г-я схема состоит из s 2/г-х блоков. Каждый блок имеет вид, представленный на рис. 8.3. Введем параметры отдель­

ного 2&-го блока: п — число входов одного А коммутатора; k — число А коммутаторов; т — число В коммутаторов; f — число про­ межуточных линий между каждой парой Л и В коммутаторов (связность); I — число групп выходов; q — 'число выходов /в одной труппе.

Необходимость рассматривать 2&-ю схему в целом вместо s блоков возникает из-за того, что по-разному можно закоммутировать выходы одноименных В /коммутаторов в (различных блоках, образуя неиолнодоступные включения. Предположим, что комму­ тируются выходы лишь одноименных В коммутаторов, т. е. В ком­ мутаторов, расположенных в различных блоках, но имеющих один и тот же номер в блоке. Отдельная группа взаимно закоммутированных выходов определяет одну выходную линию. Выходные ли­ нии В коммутаторов разбиваются на ср частей, иными словами, на <р направлений (ср — произвольное целое число).

162

Проиллюстрируем дальнейшее 'описание алгоритма моделиронания на примере простой 2/г-й схемы (рис. 8.4), которая имеет сле­ дующие параметры: s = 2 , п = 3 , k = 2 , 1= 2, т — 2, /=1. Число на­ правлений ф = 2, в первом направлении имеется 3 линии, во вто­ ром — 2. Общее число входов в схеме N = -12, число занятых вхо­ дов а = 3. В данной ситуации возможны потери по двум причинам: 1) теряются все вызовы, поступающие на второе направление изза занятости всех линий этого направления; 2) из-за занятости всех промежуточных линий, выходящих из первого А коммутатора первого блока, теряются также вызовы, поступающие на первое направление, хотя и в этом направлении есть 2 свободные линии.

1. Кодирование 2к-й схемы

При моделировании сложных коммутационных систем чрез­ вычайно важно выбрать экономичный способ кодирования ее структуры и состояний в памяти ЭВМ. Состояния 2£-й схемы за­ даются тремя массивами информации. Массив 1 характеризует за­ нятые входы и пути; массив 2 — занятые промежуточные линии, массив 3 характеризует структуру коммутации выходных линий и запоминает занятые выходные линии. Ниже учитываются особен­ ности ячейки памяти машины БЭСМ-2М: трехадресная ячейка по 11 двоичных разрядов; код занимает шесть первых разрядов.

Массив 1 (таблица входов). Информация о занятых путях хранится в таблице входов. Каждому входу соответствует одна

ячейка памяти.

Занятый п у т ь записывается в виде табл. 8.1.

Т А Б Л И Ц А

S.1

 

 

 

Код

I адрес

11 адрес

III

адрес

/ -1

М

И

Г

i

В таблице / — номер В коммутатора; М — адрес ячейки, в ко­ торой записана занятая промежуточная линия (пл) (в массиве 2); Н — адрес ячейки, в которой записан занятый выход выбранно­ го направления (в массиве 3).

Свободному входу в массиве 1 соответствует ячейка, в которой занят лишь III адрес, где через г обозначен номер блока (5 раз­ рядов), через I — номер А коммутатора, которому принадлежит рассматриваемый вход (6 разрядов).

В начале списка расположены занятые входы, за ними свобод­ ные, что облегчает их выбор. По мере работы программы порядок входов в списке соответственно меняется.

Массив 2 (указатель промежуточных линий). Информация о пл одного А коммутатора записывается в f ячейках. Каждой пл

153

соответствует один разряд, притом 1 соответствует случаю, когда пл свободна; 0 — пл занята. Таким образом, массив 2 состоит из ksf ячеек, в каждой из которых используется т двоичных разря­ дов:

т разрядов

По адресу ячейки М (одной из ksf в массиве 2), указанной в мас­ сиве 1, можно полностью восстановить, какой из т разрядов за­ менен на 0 (признак занятой пл), и определить i — номер А ком­ мутатора.

Массив 3 (характеристика выходов по направлениям). Рас­ смотрим запись информации о коммутации выходов и их занятии для одного отдельного направления, поскольку для остальных это делается аналогично. Список линий рассматриваемого 'направле­ ния разделяем на т классов так, что в отдельный класс входят все линии, коммутирующие выходы одноименных В коммутаторов. Определяем число ф как максимальное число линий среди классов. Для рассматриваемого примера (см. рис. 8.4) три линии первого направления делятся на два класса: к первому классу принадлежит одна (первая) линия, ко второму — две линии (вторая и третья). Следовательно, ф = 2. Максимальное число выходных линий не пре­ восходит тф, а отсюда следует, что для записи состояния выход­ ных линий достаточно тф разрядов. При отсутствии взаимной ком­ мутации выходов эта информация полностью определяла бы также состояния выходов. Однако в нашем случае каждая линия может быть закоммутирована с любой комбинацией выходов из s блоков. Поэтому каждой выходной линии вообще необходимо сопоставить s разрядов, указывающих номера закоммутированных блоков.

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

1:54

разрядов. Первая ячейка в каждом из ф наборов характеризует со­

стояние некоторых т или меньшего числа выходных

линий, а ос­

тальные s

ячеек указывают коммутацию этих линий по s блокам.

В каждой

из первых ячеек набора первый разряд

соответствует

выходной линии первого коммутатора, второй — второму комму­ татору и т. д. Единица в каком-то из т разрядов первой ячейки набора указывает на то, что линия свободна, 0 указывает, что ли­ ния занята или отсутствует. Для остальных s ячеек этого набора 1 в t-м разряде /-й ячейки (1 ^ / ^ s ) указывает на то, что t-я линия имеет коммутацию с /-м блоком, 0 — что коммутация отсутствует. Присутствие 0 в t-м разряде (l^ tscrm ) всех s ячеек указывает на

отсутствие выходной линии.

Проиллюстрируем сказанное на первом направлении рассмат­

риваемого примера

 

(см. рис. 8.4). Как отмечено выше, для первого

направления ф = 2.

 

В начальном состоянии схемы (все линии сво­

бодны) информация о входах и выходах линий имеет вид

т — 2

,-------1

1

1

 

ОО

s = 2

Оо

 

О 1

Информация занимает б ячеек, так как ф(s + 1) = 6. При занятии

выходных линий меняется содержание первых ячеек в каком-то из ф наборов. В состоянии, изображенном на рис. 8.4, в первом на­ правлении занята одна линия (третья), что отмечается засылкой О во второй разряд 4-й ячейки.

На этом описание массивов информации заканчивается. Общее

ф

количество занятых ячеек равно n k s+ fk s+ (s -Ь 1J 2 фс, если т не

С=\

превосходит число разрядов в одной ячейке машины.

2. Работа программы моделирования

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

Рассмотрим, каким образом происходит занятие при условии, что вызов 'поступил по'определенному входу, т. е. из массива 1 вы­ брана ячейка а, соответствующая свободному входу, следовательно, известны номер блока г и номер коммутатора t. Согласно набору Ри..., Рч> выбираем направление с. Выбор свободной линии зависит от вида поиска. Предположим, что поиск упорядоченный. Тогда из массива 2 выбираем f ячеек, соответствующих t-му А коммутатору

155

r -го блока, и они логически суммируются. В итоге получаем одну ячейку р, которая указывает доступные свободные промежуточные линии (пл).

Переходим к массиву 3 направления с. Выбираем 1 и (г+1)-ю ячейки первого 'набора и их логически умножаем. Получаем уь Если в ячейке -уг есть хотя бы одна единица, то в направлении с из блока г исходят свободные линии. Логическим умножением ячеек р и у! проверяем, доступны ли выделенные свободные линии сво­

бодным пл. Если результат

совпадает с 0

( 0 — пустая ячейка),

то переходим к следующему

набору, получаем уг и т. д. до у

(так как имеется всего фс наборов), т. е. до потери вызова.

Если на /-м шаге у ; Д р ^ 0 , 1г£;/г^фс

(Д — знак логического

умножения), то имеется, по крайней мере, одна доступная свобод­ ная линия. Определяем место первой единицы (обозначим его че­ рез j) справа1) (или слева). Занимаем выделенную свободную и доступную линию, т. е. записываем 1 в соответствующем у'-м разря­ де массива 3, находим тот же у'-п разряд в одной из р ячеек пл и тоже занимаем. Информацию о занятии промежуточной и выход­ ной линий записываем в ячейку а массива 1, как указано при опи­ сании массива 1.

И, наконец, рассмотрим, как освобождаются занятые линии при выборе ячейки а, соответствующей какому-то обслуживаемому вы­ зову. На основе информации, содержащейся в коде, в первом и втором адресах ячейки а освобождаем занятую промежуточную и выходную линии, т. е. заменяем 0 на 1 в соответствующих местах массивов 2 и 3.

8.3. АЛГОРИТМ МОДЕЛИРОВАНИЯ ШЕСТИКАСКАДНОЙ СХЕМЫ

Рассмотрим еще один пример моделирования сложной коммута­ ционной системы, который одинаково хорошо иллюстрирует как процесс статистического моделирования во время исследований пропускной способности системы, так и организацию памяти спе­ циализированной управляющей ЭВМ. Имея это в виду, алгоритм моделирования изложим схематично, без учета особенностей маши­ ны (набор команд, число адресов, длина ячейки). Для упрощения изложения предположим, что ячейка памяти имеет переменную длину (в современных ЭВМ это применяется, а в специализирован­ ных управляющих ЭВМ могут быть организованы блоки памяти с разной длиной ячейки для хранения разного рода информации).

') Приводим алгоритм выделения первой единицы справа:

i .

— исходное число в ячейке а складывается (без нормализации)

с числом

«11 ...111» и посылается в ячейку Ь;

 

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

логическое умножение а н Ь, искомый результат в ячейке Ь.

Приме р : 1) 10110 2) отриц. 10101 3) 10110

^ГТГТТГ

01010 л 0- ^ ___

10 10 1

ооою

156

Пусть требуется установить соединение между определенным входом и определенным выходом в шестикаскадной (6/г) схеме, приведенной на рис. 8.5 [Glj. Через / г и т обозначены числа входов и выходов в коммутаторах различных каскадов, индекс указывает номер каскада. Каждая пара соединенных коммутаторов имеет по одной пл, т. е. /=1. Выполняется также равенство

Т Е Ш

Ш Y

Ш

Координаты '(номера) входов я выходов обозначим прописными буквами N и М с соответствующими 'индексами. Тогда задачу мож­ но сформулировать так: требуется установить соединение между

входом

с координатами АД N% АД N,k и выходом с координатами

Мв, М5,

М,и М3, т. е. определить АД N6 и М2, Mi. Координаты при­

нимают'значения 0, 1,..., п—;1 или 0, 1,..., т— 1 с индексами у п и т

соответственно.

три массива:

Для кодирования состояния бй-й схемы введем

1) указатели пл по каскадам; 2) таблица входов;

3) таблица вы­

ходов.

Первый массив состоит из пяти блоков (согласно числу типов пл). На каждую пл отводится по одному двоичному разряду: пи­ шем 1, если пл свободна, и 0, если занята. Нумеруем разряды спра­

157

ва налево, т. е. в первом справа разряде содержится информация о состоянии ил с номером 0 в соответствующем блоке пл. Характе­ ристики блоков приведены в табл. 8.2.

Т А Б Л Л Ц A

S.2

 

Таблица

входов

состоит

из

 

 

 

nin2n3n.ik ячеек по числу входов,

а

Название

Число разря­

Число ячеек

каждая ячейка в

случае занятого

блока

дов в ячеПке

в блоке

входа

содержит

информацию о

 

 

 

соединительном пути (о занятых

пл/-//

пц

п 2п 3П4

пл) между

входом и выходом и

пл//—ш

т2

"ЦПз«4

координаты

выхода,

с которым

данный вход соединен. Ниже уви­

 

 

т3пц

U J l ! l / - I V

//г1то = / г6и5

дим, как формируется информа­

n n I V - V

«5

/1вт 4т я

ция о занятых пл.

 

 

 

Таблица

выходов

состоит

из

 

Пл

т5т4т3

 

пц1Пь1щт 3 ячеек по числу выходов.

 

 

 

Каждая ячейка в 'случае занятого

 

 

 

выхода

содержит номер входа,

с

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

вызова известны координаты входа Nlk Nz, N3t

Nik и координаты вы­

хода Мс, М5, Mi, М3. Это значит, что вход с

номером Ni + nlN2+

-}-tiitizN3-f-niti2ti3Nit следует соединить с выходом, имеющим номер Мс+ т 6М-а + т6т5М /,+т3тъ1щМ3. Согласно координатам входа и выхода известно, что соединение должно произойти через свобод­ ные пл, указанные в (m 3Nik+ M 3)-ii ячейке блока nsim -iv- Обозна­ чим ее содержание через р. Надо только определить, свободны ли пл со стороны входа (посредством блоков пл/_л и плп - ш ) , а также со стороны выхода (посредством блоков пл/r-v и пл^-г/)- Для выяснения этого формируем два указателя пл (обозначим их а и у соответственно) длины тлт2 разрядов каждый. Указатель а состоит из nii частей по т2 разрядов в каждой. Он формируется из nii ячеек блока пли - ш соответственно тем разрядам из общего их числа nii, которые равны 1 в ячейке с номером N2 + n2N3+ n2n3Nlk в блоке пл/—л (если разряд равен 0, т. е. пл занята, то в соответст­ вующих ему т2 разрядах пишутся нули). Подобным же образом формируется указатель у на основе блоков плv -v i и пл/v-v- После их формирования результат логического умножения а Д р Д у = б указывает номера свободных пл. Согласно выбранной дисциплине занятия, например, выбором первой справа свободной пл в указа­ теле б выбирается пл между III и IV каскадами.

Пусть выделен х-и справа разряд, тогда решение задачи следую­

щее:

 

 

 

М2 =

X

- 1 ;

Mi = х т2М2— 1;

тг

 

 

 

N 6=

X

- 1 ; Ne = х — nbN&— 1.

Us J

 

 

 

158

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

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

Можно отметить также, что в реальной АТС алгоритм управле­ ния сложнее: надо вводить избыточные разряды для помехоустой­ чивости, реализовать сложные дисциплины обслуживания, учиты­ вая приоритеты, различные дополнительные услуги. Представление об этом можно получить из описания квазиэлектронных АТС

ESS №1 [99], ESS № 2 [289], DEX-2 [292] и др.

Соседние файлы в папке книги из ГПНТБ