Опубликован: 31.07.2008 | Уровень: специалист | Доступ: платный
Лекция 3:

Алгоритмы отдельных функций, выполняемые в станциях с программным управлением

Аннотация: В этом разделе рассматривается только один из уровней алгоритмического обеспечения. В соответствии с рекомендациями МККТТ (серия Z.100 "Specification and Description Language SDL") изложены этапы разработки программного обеспечения. При этом определены два типа алгоритмов: алгоритмы этапа спецификаций и алгоритмы этапа описаний

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

В этом курсе мы поговорим о части алгоритмов этапа описания. Для более детального рассмотрения вопросов разработки алгоритмического обеспечения можно прочесть [6], [9]. Ниже в этой лекции будут использованы термины и символы, которые изложены в рекомендациях МККТТ. Ниже приведены некоторые из них.

Алгоритм изображается в виде модели конечного автомата [9]. Для описания его функционирования применяются следующие термины:

  • ВХОД — сигнал, поступающий из внешнего окружения;
  • ВЫХОД — сигнал, передаваемый алгоритмом во внешнее окружение;
  • СОСТОЯНИЕ — положение алгоритма, при котором действия процесса приостановлены до получения сигнала ВХОД ;
  • ПЕРЕХОД — совокупность, действий, которые при поступлении сигнала ВХОД переводят автомат из одного состояние в другое;

Эти действия кроме сигнала ВЫХОД содержат:

  • РЕШЕНИЕ — выбор одного из нескольких возможных путей продолжения процесса;
  • ЗАДАЧА — действие, которое не является ни РЕШЕНИЕМ, ни ВЫХОДОМ.

Для этих операторов заданы графические символы, применяемые для описания их изображения ([9], [16]).

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

Например, алгоритм сканирования, который приводится первым в этой лекции, дает описание реализации оператора ВХОД на уровне спецификации. Алгоритм приема номер дает описание реализации одной из задач уровня спецификации, и т. д.

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

Общие положения

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

Рассмотрим алгоритмы выполнения некоторых наиболее массовых модулей. При этом будем преследовать две главные цели:

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

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

Структурная схема алгоритма работы станции

Рис. 3.1. Структурная схема алгоритма работы станции

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

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

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

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

В основу математической модели положен автоматный принцип.

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

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

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

Алгоритм сканирования

Итак, мы установили, что программное обеспечение можно реализовать на базе универсальной программы. Первая часть такой системы — алгоритм ввода. Рассмотрим один из наиболее распространенных алгоритмов ввода — сканирование, т. е. ввод путем периодического опроса.

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

Датчики, подлежащие сканированию для определения поступления вызова (далее мы будем называть их "точками сканирования"), включаются в "линейки" сканирования. Они образуют матрицы, называемые определителями. На станции может быть несколько определителей — от 1 до 100. Поэтому адрес каждой точки сканирования определяется номером определителя, номером линейки в определителе и номером точки в этой линейке. На рис. 3.2 показаны эти входные данные, которые задают программному обеспечению необходимые параметры. Некоторые из точек могут быть заблокированы, для чего задается таблица блокировок, которая содержит "маски", исключающие из процесса сканирования некоторые точки. Число определителей, число линеек, таблица блокировок, число точек в линейке относятся к полупостоянным данным, отображающим параметры оборудования.

Кроме этого имеются полупостоянные данные, относящиеся к процессу.

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

  1. Число и значение периодов сканирования (обычно значение длительности периода указывается в количестве 10 мс интервалов).
  2. Расписание сканирования, т. е. таблица, закрепляющая значения периодов за отдельными линейками.
  3. Таблица сканирования, где находятся адреса сканируемых линеек. Они располагаются в строках в таблице и подразделяются на списки. В каждый список вносятся адреса сканируемых линеек, располагающихся в порядке их опроса. Например, первым идет список линеек, опрашиваемых каждые 10 мс, потом список линеек, опрашиваемых через каждые 20 мс, и т. д.
  4. Длина буфера заявок. Этот параметр задает длину буфера для сохранения полученных заявок на работу программ обработки вызова. Он задается после вероятностного расчета числа поступающих вызовов.

На рис. 3.2 показаны оперативные входы и выходы:

  1. Сигнал задающего генератора. Он задает начало работы процесса опроса следующей линейки. Как мы уже упоминали, в большинстве систем минимальный период составляет 10 мс.
  2. Запрос на сканирование по заданному адресу. Эта заявка поступает от оператора или программы, если какие либо линейки не сканируются периодически или требуется внеочередная проверка их состояния.

В качестве входного сигнала показан также сигнал "ответное слово". Это ответ на сигнал опроса линейки. Его вид зависит от режима сканирования.

Общий вид алгоритма сканирования

увеличить изображение
Рис. 3.2. Общий вид алгоритма сканирования

На рис. 3.2 указаны также режимы, в которых может работать алгоритм сканирования:

  1. Простое сканирование, которое заключается в том, что при периодическом опросе считывается состояние линейки (кодируемое 1 — есть изменение точки опроса и 0 — изменения нет). Состояние всех точек линейки поступает обратно на вход модуля сканирования в виде n - разрядного слова ( n — это разрядность линейки и обычно равно 16 или 32).
  2. Режим с защитой. Сканируемые датчики обычно контактируют с внешней средой (абонентские и соединительные линии, контакты реле) — это вызывает появление кратковременных помех. Для борьбы с таким явлением применяется сканирование с защитой. Наиболее распространенный способ — это двойное (тройное) сканирование со сравнением результатов. Для дальнейшей обработки передаются только сигналы, имеющие устойчивый характер, т. е. сохраняющиеся дольше заранее заданного времени.
  3. Сканирование по флажку. Во многих случаях входной сигнал поступает в случае окончания накопления данных. Например, при поступлении с соседней станции информации о номере вызываемого абонента на входящей станции накапливаются цифры и вырабатывается заявка на соединение, после того как принято достаточное количество цифр. В таких случаях сканируется только один датчик (флажок), который является индикатором получения сигнала об окончании приема информации. После срабатывания флажка считывается вся информация.
  4. Еще один вид сканирования — по запросу. Это сканирование, когда извне (от оператора или программы) записывается заявка на сканирование.

В соответствии с режимом сканирования формируется заявка. На рис. 3.2 показаны виды заявок.

На рис. 3.2б приведена заявка на простое сканирование.

Она содержит адрес сканируемой линейки:

  • тип определителя — указывает на устройства, включенные в данный определитель (многие из них содержат несколько точек сканирования);
  • номер определителя — это номер определителя в типе;
  • номер линейки — это номер внутри определителя.

На рис. 3.2в показана информация, запрашивающая сканирование по заявке. Она содержит адрес сканируемой линейки и адрес процесса (области памяти), в которую нужно записать результат.

На рис. 3.2г показана структура ответного слова. В данном случае приведена информация при простом сканировании и сканировании с защитой и по заявке. Она содержит номер заявителя, т. е. программы или оборудования, которое дало заявку на сканирование. Далее информация о точке сканирования представлена в координатах оборудования, т.е тип комлекта (АК, ИШК и т.п.) и номер комплекта среди типа Номер точки — номер среди точки сканирования среди данного комплекта. Далее идет информация о типе изменения. В большинстве случаев показывается, что опрашиваемая точка изменила свое состояние — а именно, перешла из состояния, обозначаемого нулем (исходное состояние), в состояние, обозначаемое единицей (рабочее состояние). Иногда от программы сканирования требуется в результате указать один из двух переходов — например, из исходного состояния в рабочее и наоборот. Тогда, с учетом необходимости отображать отсутствие изменения, для поля "тип изменения" предусматривается два бита. Они указывают: 00 — нет изменения, 01 — изменение из исходного состояния в рабочее и 10 — изменение из рабочего состояния в исходное.

При сканировании по флажку в поле "тип изменения" указывается вся принятая информация, о завершении приема которой сигнализировал флажок.

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

Принципы распределения заявок при различной организации расписания

Рис. 3.3. Принципы распределения заявок при различной организации расписания

При работе алгоритма сканирования большую роль играет организация списков адресов сканирования (рис. 3.3а). В памяти списки адресов сканирования сгруппированы по принципу периода. Например, пусть в один список S1 входят адреса линеек, сканируемых с периодом 10 мс, в список S2 — адреса линеек, сканируемых каждые 20 мс, в S3 — все линейки, сканируемые с периодом 40 мс. Предположим, что в первом периоде опрашиваются все списки, тогда через 10 мс опрашиваются только списки S1 периодом 10 мс (для остальных списков — S2 и S3 —пауза в сканировании не истекла). Во втором цикле будут опрашиваться списки S1 и S2. Далее будет сканироваться снова только один список S1. Далее — все три списка. В результате число сканируемых адресов будет изменяться — то уменьшаться, то увел ичиваться, — что может привести к скоплению заявок в отдельные 10-миллисекундные циклы (см. на рис. 3.3а результирующий график).

Поэтому принимается несколько другой порядок опроса списков (рис. 3.3б). В этом случае адреса списков разделяются на части, число которых равно числу 10-милисекундных циклов, составляющих период. Так, например, список S2 (период сканирования 20 мс) разделяется на 2 части, список S3 — на четыре части (период сканирования 40 мс).

При этом каждый 10-миллисекундный цикл сканируется весь список S1, половина (0,5) — S2, четверть (0,25) — S3. Это обеспечивает в каждом периоде выравнивание числа сканируемых линеек (см. на рис. 3.3б результирующий график) и обеспечивает высокую вероятность равномерного поступления заявок в разных 10-миллисекундных циклах.

Связь с центральным алгоритмом осуществляется следующим образом:

  1. при работе с существующим процессом результаты сканирования (в форматах, показанных на рис. 3.3д) записываются в соответствующую область памяти процесса, указанную в заявке; вместе с состоянием процесса они являются исходными данными для осуществления перехода;
  2. при первоначальном вызове записывается заявка на открытие области памяти процесса, затем в него записывается входной сигнал и новый процесс устанавливается в конец очереди на обработку. Такая установка позволяет не задерживать обработку существующих вызовов и является одной из мер борьбы с перегрузкой процессора при пике нагрузки.

Центральный алгоритм после обработки процесса записывает в области памяти алгоритмов заявку на сканирование, где указан объект, от которого ожидается сигнал ВХОД, и номер (адрес) области процесса, куда необходимо установить заявку.

Гульсим Калакова
Гульсим Калакова
Олег Сергеев
Олег Сергеев
Орхан Джафарзаде
Орхан Джафарзаде
Азербайджан, Баку
Айгуль Садриева
Айгуль Садриева
Россия, г. Казань