Эти атрибуты также участвуют при обработке вызова.




Динамический объект — соединение

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

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

Приведем пример, который был рассмотрен ранее (см. рис. 2.59). Н рис. 2.96 приводит­ся иллюстрация понятия виртуального объекта соединение. В этом примере абонентский комплект (АК1) соединяется с модулем многочастотного приемопередатчика (МЧПП) для передачи набранного номера. Согласно рассмотренному ранее алгоритму, исходящий або­нент набирает номер входящего абонента, после чего другая часть МЧПП подсоединяется к другому абонентскому комплекту АК2.

После этих действий на станции появляется новый объект соединение, который отобра­жается с помощью адресов связи. Для этого к атрибутам реального объекта добавляется ат­рибут номер адреса связи (NCB)- Его значение указывает номер типа и номер комплекта, со­единенного с данным. Тогда функция, отражающая, например, объект АК1 как функцию его атрибутов (параметров), имеет вид:

fAK1=f (Nтип,NAK1 , NCB )

- N тип— номер типа комплекта, в данном случае тип АК (обычно этому типу присваи­вается номер 1);

- NAK1 — номер комплекта в своем типе (например, от 100 до 10 000 в зависимости от емкости станции);

- NCB — номер адреса связи (значения определяются типом, номером в типе комплек­тов, участвующих в соединении).

Аналогично отображается рассматриваемый в примере объект МЧПП:

fМЧПП=f (Nтип ,NМЧПП , NCB)

Рис. 2.96. Принцип создания и отображения объекта соединение:

Fnp — функция процесса;

а) условное изображение объекта соединение реального оборудования;

б) распределенное отображение объекта соединение с помощью адреса связи;

е) централизованное отображение объекта соединение с помощью адреса связи


 

Отличие состоит только в номере типа, который должен принимать значение, закреп­ленное за этим типом комплекта, и в дополнительных параметрах, содержащих характери­стики набранного номера, обозначенных N1 N2,..., Nk.

Заметим, что объект соединение является динамическим. Он изменяется в процессе ус­тановления соединения. В процессах, обеспечивающих передачу данных, он необязательно имеет аналог соединения реального оборудования. Он может отображать параметры вирту­ального пути или канала (см. 1.5.4).

Функционально объект соединение может быть отображен двумя способами децентра­лизованным (рис. 2.96, б) и централизованным (рис. 2.96, в).

При децентрализованном способе соединение отображается с помощью записи номера и типа предыдущего устройства на место переменной адрес связи (Nсв) последующего уст­ройства (это показано стрелками на рисунке). Для надежности запись типа и номера послед­него устройства дублируется в адресе связи первого устройства (замыкается «кольцо»).

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

Объект соединение может также иметь свои атрибуты (например категорию соедине­ния), которые здесь не указаны.

Серверы

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

Для дальнейшего изучения уточним применяемые термины.

Универсальная программа

Не вдаваясь в сложные математические подробности, приведем цитату [45]: «Универсальные программы — это программы, которые в некотором смысле реализу­ют все программы. Сначала существование универсальной программы кажется неправдо­подобным. Тем не менее, нетрудно убедиться, что она существует. Суть состоит в том, что универсальная программа не должна обязательно содержать в себе все другие программы. Она должна уметь кодировать и декодировать номера всех программ, которые могут быть записаны и допустимы на заданном языке программирования».

Можно добавить, что программа есть последовательность из заданных команд. Число таких последовательностей велико, но не бесконечно, и может быть перечислено. Оно под­дается закономерному описанию в виде номеров. Теоретическое исследование универсаль­ных программ [61] выходит за рамки настоящей книги.

Автоматный подход

Автоматный подход позволяет упорядочить в определенной последовательности вызо­вы серверов по запросу объекта. Согласно рекомендациям МККТТ Z.100-Z.104, для пред­ставления алгоритмов предложен язык спецификаций и описаний SDL (Specification and De­scription Language). Он также опирается на понятие конечный автомат. Поэтому этот подход позволяет использовать переход от алгоритмов различных уровней к программе. В мо­дели конечного автомата любой алгоритм отражается следующей рекурсивной функцией:

s(t+1)=f(S(t),X(t)),

Z{t+1)=f1(S(t),X(t)),

где X(t) = [x1(t), x2(t), x3(t),..., xp(t)] — значения сигналов на входе автомата;

S(t) = [s1(t), s2(t), s 3(t),..., sn(t)] — внутренние состояния автомата;

Z(t) = [z1(t), z2(t), z3(t),..., zk(t)] — значения сигналов на выходе автомата.

Следуя этим выражениям, алгоритм можно представить как последовательное вычисле­ние рекурсивной функции, которая сопоставляет совокупности входного сигнала, текущего состояния и нового состояния. Смена состояний называется переход. Пара «ВХОД-СО­СТОЯНИЕ» уникальна, т.е., нигде в алгоритме не применяется для перехода в другое со­стояние. Переход из одного состояния в другое сопровождается выполнением действий при переходе. Эти действия указаны в рекомендациях ITU-T Z. 100-104. Приведем некоторые определения:

- СОСТОЯНИЕ обозначает положение процесса, при котором он приостановлен до по­лучения сигнала ВХОД;

- ВХОД — действие, которое передает алгоритму информацию от внешнего окружения или другого алгоритма и инициирует ПЕРЕХОД;

- ЗАДАЧА — действие, не определенное ни одним из приведенных терминов;

- УСЛОВИЕ — это действие, при котором выбирается один из нескольких возможных путей продолжения процесса;

- ВЫХОД — действие, которое передает сигнал внешнему окружению или другому ал­горитму.

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

Согласно рекомендациям для изображения алгоритмов применяются следующие обо­значения (рис. 2.97).

Рис. 2.97. Условное отображение блоков алгоритмов

Функция, позволяющая последовательное вычисление ее значений на основании предыдущего значе­ния и начальных условий.

При применении этих обозначений существует естественные ограничения:

- за символом СОСТОЯНИЕ может следовать один или несколько символов ВХОД;

- каждому символу ВХОД должен предшествовать один символ СОСТОЯНИЕ (пара
СОСТОЯНИЕ ВХОД уникальна, т.е., должна соответствовать только переходу в од­
ноименное СЛЕДУЮЩЕЕ СОСТОЯНИЕ);

- за символом ВХОД должен следовать один и только один символ, который не может
быть символом ВХОД;

- за символом и ЗАДАЧА или ВЫХОД должен следовать один и только один символ,
который не может быть символом ВХОД;

- за символом УСЛОВИЕ должны следовать два или более символов, которые не могут
быть символами ВХОД.

Заметим, что нет никаких ограничений на число следующих последовательно операторов ПЕРЕХОД (ЗАДАЧА, УСЛОВИЕ, ВЫХОД) и на порядок их следования.

Табличные функции

Указанные выше ограничения позволяют иметь еще одно отображение алгоритма, запи­санного на языке SDL, в виде таблицы соответствий (табл. 2.2), которая сопоставляет каж­дой паре ВХОД-СОСТОЯНИЕ набор действий при переходе.

Таблица 2.2. Таблица соответствий, отображающая оператор ПЕРЕХОД

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

Значение оператора S(t) — указывает номер состояния, в котором находится процесс. Например, табл. 2.3. показывает пример нумерации операторов СОСТОЯНИЕ. (Здесь и да­лее для составления таблиц используется рис. 2.98.) Эта таблица составляется либо нумера­цией состояний в готовом алгоритме, либо устанавливается руководителем разработки (для ограничения имен и числа состояний), либо накапливается, контролируется, пополняется системой автоматизации.

Значение оператора X(t) — указывает номер входного сигнала, который инициирует пе­реход. Например, табл. 2.4 показывает пример нумерации операторов ВХОД.

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

Операция ВХОД до поступления сигнала «ВХОД» в основной алгоритм обработки вы­полняется модулем (объектом) «сканирование».

Значение Q(t) — указывает номер оператора УСЛОВИЕ. Для нумерации применяют ин­дексы при буквенном обозначении Q. Табл. 2.5. показывает пример нумерации одного УСЛОВИЯ.

Значение z(t) указывает номер выходного сигнала, передаваемого в окружающие уст­ройства или алгоритмы. Task(t) указывает номер оператора ЗАДАЧА.

При нумерации этих операторов следует дать несколько комментариев. Как показано в предыдущих разделах (2.9.2-2.9.8), многие функции выполняются алгоритмическими мо­дулями (в терминологии объектно-ориентированного подхода — объектами). Например, оператор ВЫХОД, указывающий на включение и выключение акустических сигналов, вы­полняется модулем передачи команд. Этот модуль, согласно идеологии объектно-ориенти­рованного подхода, имеет свой интерфейс. Поэтому при описании интерфейса указываются номера последовательностей команд. Эти номера определяют конкретную последователь­ность команд в операторе ВЫХОД. Обычно они бывают многозначными. Например, приме­няется номер, состоящий из двух частей. В первой части он содержит номер устройства (объекта), которое должно выполнить последовательность команд, а во второй части указы­вается (через точку) конкретная последовательность команд.

Табл. 2.6 показывает пример нумерации операторов ВЫХОД. В этой таблице предпола­гается, что при нумерации объекту «акустическое соединение» поставлен в соответствие номер 3 (первая часть номера оператора ВЫХОД), и он может сформировать две последова­тельности команд (вторая часть номера оператора ВЫХОД) — «включить» или «выклю­чить». Эти действия отражены соответственно номерами во второй части номера.

Номер сигнала ВЫХОД с именем «включить таймер 20 с» предполагает, что таймер — это объект с номером 4 (первая часть номера), а действие имеет номер 1.

Еще раз напомним, что присвоение этих номеров делается произвольно по готовому ал­горитму, или руководителем, или системой автоматизации, но впоследствии строго соблю­дается. Особое значение придается разрешению, запрещению или ограничению синонимов. Например, термин «включить» может иметь синонимы — «активизировать», «запустить» и т.п. Для табличного алгоритма выполнение операторов-синонимов возможно, но лучше выполнять заповедь «не увеличивай сущность без необходимости», поскольку многознач­ность может привести к трудностям в понимании разработчиком или пользователем.

Операторы ЗАДАЧА выполняется модулями, которые также как и оператор ВЫХОД имеют свои интерфейсы. Принцип назначения номеров одинаков. Например, при выполне­нии оператора ЗАДАЧА с именем «найти свободный приемник» необходимо указать, что этот оператор предназначен модулю поиска промежуточных путей (он также проводит по­иск свободных приборов) и номер действия внутри этого модуля. Табл. 2.7 иллюстрирует пример нумерации оператора ЗАДАЧА. В данном случае назначенный номер 2.1. показы­вает, что модуль (объект) «поиск промежуточных путей» имеет номер 2 (первая часть но­мера оператора), а действие «найти свободный МЧПП» имеет номер 1.

Таблица 2.7. Нумерация оператора ЗАДАЧА

 

Наименование оператора ЗАДАЧА Числовое значение
Найти свободный МЧПП 2.1

Заметим, что при передаче сообщения объекту номер оператора сопровождается необ­ходимой информацией, которая рассматривалась при описании отдельных алгоритмов. Эти данные указаны на рисунках 2.71, 2.74, 2.77, 2.83, 2.89) в виде некоторых входов.

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

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

Рассмотрим пример табличного отображения алгоритма. На рис. 2.98 приведен простой алгоритм, выполненный в соответствии с автоматным подходом и написанный на языке SDL. Этот же алгоритм отображен с помощью таблицы соответствий (табл. 2.8), в которой применяется нумерация операторов, заданная табл. 2.3-2.7.

Сопоставление табл. 2.8 и рис. 2.98 показывает, что существует обратное соответствие, т.е. таблица однозначно может быть переведена в алгоритм на языке SDL. Более того, язык на первом этапе внедрения алгоритма имел текстовую версию, которая не получила разви­тия. При табличном подходе она может быть использована для автоматизации одной из са­мых «скучных» работ — составления описания алгоритма.

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

Например, для строки табл. 2.8 может быть представлен следующий текст.

«Если система находится в состоянии... и поступил сигнал..., то выполняется,...прове­ряется условие... Если в результате проверки..., то акустический..., таймер... Система пе­реходит в состояние...». Все пропущенные слова восстанавливаются с использованием па­раметров табл. 2.3-2.7.

Рис. 2.98. Фрагмент алгоритма перехода из исходного состояния

в состояние «прием номера»:

S(t), S(t + 1) — СОСТОЯНИЯ в текущий и следующий момент времени;

х(t) — ВХОД (входной сигнал); Q1 — УСЛОВИЕ 1 (результат поиска путей);

Task1 — заявка на ЗАДАЧУ1 (алгоритм поиска путей);

Task2 — заявка на ЗАДАЧУ2 (передача команд);

Task3 — заявка на ЗАДАЧУЗ (установка таймера)

Таблица 2.8. Таблица соответствия согласно алгоритму, изображенному на рис. 2.98

 

№ строки S(t) x(t) Task1 (t) Q1 Task2(r) Task3(t) S(t+1)
      2.1 l 3.3 4.1  
      -   3.1 -  
      - - 3.2 -  

Алгоритмы работы с таблицей

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

Таблица соответствия содержит переходы, записанные в виде чисел. Алгоритм работы с таблицей заключается в том, что выполняются две задачи:

- по заданной паре ВХОД-СОСТОЯНИЕ определяется нужная строка таблицы соот­ветствия;

- осуществляются действия в том порядке, который указан в строке, и в соответствии с содержанием установленного в ней номера.

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

Многозадачность

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

Эта проблема решается следующим способом, применяемым для систем с многозадач­ной обработкой. Для каждого процесса, который обозначается в общем случае как «обра­ботка вызова», отводится область памяти. В ней записывается глобальное состояние вызо­ва. Оно может принимать следующие значения: свободно, работа, ожидание, блокировка и регулирует взаимодействие между процессами.

Состояние свободно присваивается, если область не занята вызовом. Состояние работа — при выполнении процесса. Состояние ожидание отмечает ожидание поступления внешнего сигнала. Состояние блокировка отмечает аварийные процессы. Система работает, изменяя состояния в порядке, показанном на рис. 2.99.

Рис. 2.99. Последовательность значений глобальных состояний вызова

Переходы на рис. 2.99 осуществляются в двух фазах.

1. Фаза ввода. На этом этапе проводится опрос внешних объектов как в алгоритме ска­нирования. При поступлении из внешней среды сигналы ВХОД записываются в специаль­ные зоны памяти, называемые областями памяти процессов. В этой фазе глобальное состоя­ние — свободно (точнее, отсутствует запись в области «состояние») заменяется глобальным состоянием ожидание, и процесс переводится в очередь на выполнение.

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

Под сигналом, согласно определению ITU-T (Рекомендация Z.100), понимается поток данных несу­щих информацию процессу. Например, сигналы «абонент снял трубку», «абонент положил трубку», сигналы управления, поступающие с других станции и т.п.

 

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

При успешном выполнении этих действий вызову снова присваивается состояние ожи­дание (на рис. 2.99 возможность возврата указывается двухсторонней стрелкой), и он воз­вращается в очередь ожидающих процессов. Если этот переход был завершающим для про­цесса (например, разъединение), то область памяти освобождается и ей присваивается зна­чение свободно.

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

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

Рис. 2.100. Порядок многозадачной обработки процессов и взаимодействие очередей

Очередь свободных процессов — это резерв всех свободных областей памяти, которые могут быть использованы для «порождаемых» процессов.

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

Очередь процессов, ожидающих обработки, — это области памяти, в которые записан входной сигнал. Они ожидают процедуры обработки строки табличного алгоритма. Поря­док обработки вызова следующий. При поступлении входного сигнала диспетчер ввода, в качестве которого выступает программа сканирования, распределяет его в одну из двух очередей. Если это первичный сигнал, то занимается одна из областей памяти процессов в очереди свободных процессов, вместо состояния свободно устанавливается состояние ожи­дание и процесс переводится в очередь процессов, ожидающих обработки. Если этот про­цесс уже существует, что определяется заявкой на сканирование (см. 2.9.2), то после записи поступившего входного сигнала процесс переводится в очередь процессов, ожидающих об­работки. Устанавливается состояние ожидание.

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-14 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: