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

Лекция №7

В соответствии с рекомендациями МККТТ (серия Z.100 «Specification and Description Lan­guage SDL») определены этапы разработки программного обеспечения. При этом выделены два типа алгоритмов. Алгоритмы этапа спецификаций и алгоритмы этапа описаний.

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

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

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

ВХОД — сигнал, поступающий из внешнего окружения;

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

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

ПЕРЕХОД — совокупность действий, которые при поступлении сигнала ВХОД пере­водят автомат из одного состояние в другое.

Перечисленные действия (кроме сигнала ВЫХОД) включает в себя:

РЕШЕНИЕ — выбор одного из нескольких возможных путей продолжения процесса;

ЗАДАЧА — действие, которое не является ни РЕШЕНИЕМ, ни ВЫХОДОМ.

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

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

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

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

Рассмотрение базируется на общей модели алгоритма, показанного на рис. 1. Цен­тральный алгоритм получает от программы сканирования сигналы об изменении состояния вешней среды и вызывает периферийные модули.

Тема: Алгоритмы функций, выполняемых в станциях с программным управлением - student2.ru

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

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

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

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

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

Изложение в данном разделе строится по принципу «меньше подробностей», поэтому, следуя ключевой линии анализа, алгоритмы будут изложены в общем виде. Для более под­робного изучения можно рекомендовать [40].

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

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

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

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

Число и значение периодов сканирования (обычно значение длительности периода указывается в количестве интервалов длительностью 10 мс).

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

Таблица сканирования, где находятся адреса сканируемых линеек. Они располагаются в строках таблицы и подразделяются на списки. В каждый список вносятся адреса сканируе­мых линеек, располагающиеся в порядке их опроса. Например, первым идет список линеек, опрашиваемых каждые 10 мс, потом список линеек, опрашиваемых через каждые 20 мс, и т.д.

Размер буфера заявок. Этот параметр задает длину буфера для сохранения получен­ных заявок на работу программ обработки вызова. Он задается после вероятностного расче­та числа поступающих вызовов.

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

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

Запрос на сканирование по заданному адресу, который поступает от оператора или программы, если какие-либо линейки не сканируются периодически или требуется внеоче­редная проверка их состояния.

Сигнал «ответное слово» — реакция на сигнал опроса линейки. Его вид зависит от режима сканирования.

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

Простое сканирование, которое заключается в том, что при периодическом опросе, считывается состояние линейки (кодируемое 1 — если есть изменение точки опроса, и 0 — если изменения нет). Состояние всех точек линейки поступает обратно на вход модуля сканирова­ния в виде «-разрядного слова (п — разрядность линейки, обычно равная 16 или 32).

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

Тема: Алгоритмы функций, выполняемых в станциях с программным управлением - student2.ru

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

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

Еще один вид сканирования — по запросу, когда извне (от оператора или программы) записывается заявка на сканирование.

В соответствии с режимом сканирования формируются различные виды заявок. На рис. 2, б показана заявка на простое сканирование. Она содержит следующую ин­формацию:

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

номер определителя — это номер определителя в типе;

номер линейки — это номер внутри определителя.

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

На рис. 2, г показана структура ответного слова сканирования. В данном случае при­ведена информация при простом сканировании и сканировании с защитой по заявке. Она содержит:

номер заявителя, т.е. программы или оборудования, которое дало заявку на сканиро­вание;

информацию о точке сканирования, которая представлена в координатах оборудова­ния, т.е. содержит тип комплекта (АК, ИШК и т.п.), номер комплекта, номер точки сканирования в данном комплекте;

информация о типе изменения;

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

Иногда от программы сканирования требуется в результате указать один из двух пере­ходов, например, из исходного состояния в рабочее и наоборот. Тогда с учетом необходи­мости отображать отсутствие изменения для поля типа изменения предусматривается два бита. Они указывают: 00 — нет изменения, 01 — изменение из исходного состояния в рабо­чее, 10 — изменение из рабочего состояния в исходное.

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

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

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

Поэтому принимается несколько другой порядок опроса списков — адреса списков разделя­ются на части, число которых равно числу 10-миллисекундных интервалов, составляющих пе­риод. Так, например, список S2 (период сканирования 20 мс) разделяется на 2 части, список S3 — на четыре части (период сканирования 40 мс). При этом каждый 10-миллисекундный интервал сканируется весь список S Тема: Алгоритмы функций, выполняемых в станциях с программным управлением - student2.ru половина списка S2 четверть S3. Это обеспечивает в каждом интерва­ле относительное выравнивание числа сканируемых линеек (рис. 2.69, б, результирующий гра­фик) и обеспечивает высокую вероятность равномерного поступления заявок в разных циклах.

Тема: Алгоритмы функций, выполняемых в станциях с программным управлением - student2.ru

Рис. 3 Принципы распределения заявок

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

а) при работе с существующим процессом результаты сканирования (в форматах, пока­занных на рис. 3) записываются в соответствующую область памяти процесса, указанную в заявке; вместе с состоянием процесса они являются исходными данными для осуществления перехода;

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

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

Наши рекомендации