ЦСРС_1 / Grebeshkov_Tehnika_mikroproz_sistem_v_kommutazii_uchebnik_dlya_vuzov_2011
.pdf
Техника микропроцессорных систем в коммутации
та, занимающимися разработкой соответствующего процесса. За точку отсчета принимается приоритетное выполнение процесса обработки вызовов, как основной задачи узла коммутации.
Таблица 3.3. Процессы и их приоритеты в CP113c
При- |
Процессы/группы процессов |
Доступность |
оритет |
|
приоритета для |
|
|
изменения |
|
|
планировщиком |
|
|
|
15 |
Процесс операционной системы |
Зарезервирован |
14Высокоприоритетный временной процесс для Зарезервирован административного управления таймерами операционной системы, Высокоприоритетный процесс мониторов защиты (область защищѐнных адресов).
13Прочие временные процессы для администраДоступен тивного управления таймерами операционной системы.
Высокоприоритетный процесс технического обслуживания.
8 – 12 |
Процессы ввода/вывода. |
Доступен |
|
Высокоприоритетные процессы администриро- |
|
|
вания, технического обслуживания и эксплуа- |
|
|
тации (OA&M-процессы) |
|
7 |
Обработка вызовов (CALLP) |
Зарезервирован |
|
|
|
2 – 6 |
Низкоприоритетные OA&M-процессы |
Доступен |
|
|
|
1 |
Процессы ревизии |
Доступен |
При назначении приоритетов всем другим процессам необходимо ориентироваться прежде всего на обеспечение наивысшего приоритета процессу обработки вызовов. Чем выше приоритет процесса, тем меньше время ожидания процессом начала выполнения. С другой стороны, время, в течение которого процесс может заменяться (прерываться) другими высокоприоритетными процессами, также уменьшается. Между двумя последовательными полными перезапусками процессы могут существовать постоянно (циклические процессы) или создаваться динамически (запускаться), а затем прекращаться средствами операционной системы.
Циклические процессы загружаются в оперативную память резидентно/постоянно и запускаются один раз в ходе начальной за-
241
Техника микропроцессорных систем в коммутации
грузки программного обеспечения, в том числе и после полного перезапуска (перезагрузки) ПО. Циклические процессы запускаются операционной системой в определѐнном порядке, который определяет разработчик ПО. К циклическим процессам относятся высокоприоритетные системные процессы; процессы обработки вызовов также включаются в эту группу запуска. После запуска циклические процессы сначала выполняют одноразовые предварительные задачи (инициализация), в ходе которых высокоприоритетные процессы создают условия для запуска и выполнения следующих по приоритету процессов. Это продолжается до тех пор, пока, наконец, не будут созданы условия для запуска прикладных (пользовательских) процессов. В этот момент циклические процессы приостанавливают свое выполнение. Приостановка означает, что с момента готовности к запуску пользовательских процессов, циклические процессы готовы выполнять текущие системные задачи в реальном времени и ожидают поступления новых запросов.
Инициализация или начальная загрузка ПО EWSD является критической операцией. Она осуществляется в момент запуска системы коммутации в эксплуатацию или в момент полной перезагрузки ПО EWSD. В случае полной перезагрузки ПО система коммутации с программным управлением временно (от 30 минут до 2 часов) теряет работоспособность. Полная перезагрузка может осуществляться, к примеру, после полного выключения электропитания на АТСЭ, что в производственной обстановке случается достаточно редко.
Динамические процессы запускаются, когда имеется соответствующая задача, например:
отдельные задачи, нечасто выполняемые во время функционирования системы, например обработка ввода/вывода на внешние запоминающие устройства;
задачи, некритичные к времени выполнения процесса, например, запрос персоналом данных о состоянии функциональных блоков.
Динамически запускаемым процессам назначают более низкие приоритеты, чем циклическим процессам. Динамические процессы не находятся постоянно в оперативной памяти ОЗУ. Операцион- ная система временно загружает динамические процессы для вы-
242
Техника микропроцессорных систем в коммутации
полнения соответствующих задач и затем их запускает на исполнение. Для начала процедуры запуска прикладная программа (программа пользователя), которая инициировала процесс, сначала посылает операционной системе запрос на запуск. Как это было описано в подразделе 3.3.2 для ОС РВ QNX, после получения запроса на запуск, операционная система EWSD сначала переводит процесс в состояние ready-to-start (готов к запуску), а затем в состояние ready-to-execute (готов к выполнению). В результате процесс ставится в очередь выполняемых процессов в соответствии с его приоритетом. Если в очереди нет выполняемых процессов более высокого приоритета, то выполняется данный процесс. Продолжим рассмотрение операционной системы реального времени современного узла коммутации на примере распределения ресурсов сетевого контроллера (устройства управления) системы сигнализации ОКС №7 в системе EWSD.
Административное управление (планирование времени) выполнением процессов на основе приоритетов позволяет своевременно обрабатывать срочные задачи. Однако при этом снижается вероятность обработки в заданное время низкоприоритетных задач. Если операционная система постоянно занята выполнением высокоприоритетных процессов, то процессам с более низким приоритетом время на выполнение будет выделяться достаточно редко. Тем не менее, операционная система должна выделять время и для выполнения низкоприоритетных процессов, даже в том случае, если количество высокоприоритетных процессов велико. Особенно важным является поставленная задача в главном процессоре MP (main processor) системы управления ОКС №7 Для решения этой задачи в структуре программного обеспечения проектируются виртуальные
CPU.
Виртуальный CPU определяет наименьшую величину вычислительной мощности/пропускной способности физического процессора MP. Этот показатель называется временным бюджетом CPU. В целом временной бюджет централизованно выделяется всем процессам, закрепленным за этим CPU. В процессе выполнения программы временной бюджет определяется планировщиком операционной системы. Виртуальный CPU может использоваться для нескольких
243
Техника микропроцессорных систем в коммутации
блоков SPU и капсул, а также для нескольких программных оболочек. Отметим, что SPU может содержать процессы, которые принадлежат различным виртуальным CPU. Для того, чтобы обрабатывать процессы, имеющие одинаковый приоритет в рамках одного и того же виртуального CPU, используется процедура квантования времени. Если время выполнения процесса составило определенное количество миллисекунд, и при этом в системе имеются другие, готовые к выполнению процессы с тем же самым приоритетом, то выделение времени первому процессу приостанавливается. По этой причине процессы разрабатываются таким образом, чтобы имелась возможность прерывать их выполнение другими процессами в любом месте исполняемого машинного кода. Это верно даже в том случае, если процессы имеют одинаковый приоритет и принадлежат тому же самому виртуальному CPU. Каждый виртуальный CPU имеет одну очередь процессов для каждого приоритета процесса. Все очереди обрабатываются в соответствии с дисциплиной FIFO.
Планировщик операционной системы в сетевом контроллере системы сигнализации ОКС№7 работает в соответствии с описанным выше принципом квантования времени. В начале каждого интервала времени планировщик ОС вычисляет объем ресурсов, уже использованных каждым виртуальным CPU в процессе выполнения программных задач. Это значение сравнивается с запланированным при проектировании ПО бюджетом времени для этапа выполнения каждого виртуального CPU. В результате для каждого виртуального CPU рассчитывается индивидуальный «кредит времени».
Виртуальному CPU с самым высоким «кредитом» выделяется время на выполнение. Если выбранному виртуальному CPU не требуется весь интервал времени, то остаток времени выделяется виртуальному CPU со следующим по величине «кредитом времени». Эта процедура последовательно повторяется в начале следующего кванта времени. Для того, чтобы не снижать эффективность функционирования системы коммутации и поддерживать реальный режим времени, операционная система позволяет иметь максимум 16 виртуальных CPU. Количество CPU определяется при проектировании программного обеспечения.
244
Техника микропроцессорных систем в коммутации
3.6.3 Базы данных и межпроцессный обмен
В основу организации базы данных положены требования по эксплуатации узла коммутации. Например, с точки зрения содержания, все данные EWSD можно условно разделить на данные по обработке вызовов и административные данные.
Данные по обработке вызовов используются для выполнения процессов обработки вызовов, например для установления коммутируемого соединения «абонент – абонент». Для установления такого соединения должны использоваться различные типы данных:
данные о телефонных номерах абонентов;
данные о станционном оборудовании;
данные о трансляции цифр набора номера;
абонентские данных и данные о подключенных УПАТС;
информация о маршрутах установления соединения и данные о межстанционных соединительных линиях/каналах;
данные о тарифах и данные о стоимости вызовов.
Также могут потребоваться следующие данные по обработке вызовов:
данные по управлению сетью сигнализацией ОКС №7;
данные по управлению сетью электросвязи ТФОП.
К административным данным относятся следующие типы дан-
ных:
данные тестов и испытаний станционного оборудования, линий, каналов и трактов;
данные об обслуживаемом трафике;
переменные станционные данные;
данные об оборудовании системы;
данные об аварийных сигналах.
Рассмотренные типы данных, содержащиеся в базе данных узла коммутации, делятся на три категории. К первой категории относятся постоянные данные, которые описывают неизменные характеристики системы коммутации. Эти данные не изменяют своего значения в течение длительного интервала времени, например за все время функционирования текущей версии ПО. Постоянными данны-
245
Техника микропроцессорных систем в коммутации
ми являются данные начального запуска программного обеспечения управления. К этим данным относятся, например, максимальная длина таблиц данных. Доступ к постоянным данным осуществляется в основном в режиме «только для чтения».
Вторая категория, полупостоянные данные, включают абонентские данные, данные о портах, которые сравнительно редко изменяют своѐ значение в течение рассматриваемого интервала времени. Эти данные, как правило, защищены от записи и модификации. Прикладные программы (например, программы обработки вызовов) могут обращаться к этим данным только в режиме доступа «только для чтения». При необходимости полупостоянные данные могут быть модифицированы авторизованным персоналом по технической эксплуатации путем выполнения соответствующих заданий, инициируемых с помощью команд языка MML.
Третья категория, переменные данные, постоянно изменяют своѐ значение в течение рассматриваемого интервала времени; эти данные описывают текущее техническое состояние узла коммутации и действия по обработке вызовов в реальном времени. К переменным данным относятся, например, информация о рабочих состояниях аппаратных средств, сведения о статусе соединений, сведения о наличии свободных ресурсов. Переменными данными являются результаты действий по обработке вызовов – данные о стоимости соединений, результаты измерения трафика. Перемен-
ные данные не |
защищены от возможности записи. |
Чтение и мо- |
|||||
дификация этих данных в основном осуществляется |
программами |
||||||
обработки вызовов. |
|
|
|||||
Структура |
данных процессора CP113с и контроллера систе- |
||||||
|
|
|
|
|
|
|
|
мы сигнализации ОКС №7 реализована на основе индивидуальноопределяемых модулей данных. Модуль данных обычно состоит из таблицы с данными, относящимися к какой-либо задаче или источнику, а также включает процедуру доступа к этим данным. Процессор CP113с хранит в оперативной памяти CMY все полупостоянные данные и, в зависимости от выполняемых им задач, переменные данные. Процессор CP113 осуществляет управление перечисленными данными. Для обеспечения защиты и сохранности данных на НЖМД хранится актуальная копия всех полупостоянных данных.
246
Техника микропроцессорных систем в коммутации
В локальной оперативной памяти процессоров GP линейной группы LTG содержатся полупостоянные и переменные данные, относящиеся к задачам обработки вызовов и обеспечении. защиты данных. Полупостоянные данные LTG формируются из таблиц данных CP113с. Блок LTG, выполняющий функции блоков цифровых со-
единительных линий, получает полупостоянные данные |
во вре- |
мя загрузки программного обеспечения из CP113с. В |
цифровых |
абонентских блоках DLU прежде всего содержатся полупостоянные данные об абонентских портах. В DLU эти данные загружаются процессорами GP линейных групп LTG. Небольшая часть данных DLU хранится в виде микропрограммного обеспечения. В контроллере MP (EWSD v15) или в CCNC ОКС №7 (EWSD v10) содержатся полупостоянные и переменные данные, необходимые для функционирования пунктов и сетей сигнализации ОКС №7.
Размер и содержимое базы данных узла коммутации определяются целями проекта, режимом использования EWSD (оконечная станция, узловая станция, зоновый транзитный узел), требуемым набором услуг. Изначально таблицы базы данных основной APS представлены в виде пустой структуры с минимальным размером. Для того, чтобы специфичные для АТСЭ данные могли быть введены в указанные таблицы, эти таблицы должны быть расширены до требуемого размера. Для расширения таблиц данных используется специальный программный инструмент разработки – генератор станционных данных (ODAGEN). Эта специальная программа представляет собой часть программного обеспечения узла коммутации, позволяющая расширить функциональные возможности ПО EWSD. Программа ODAGEN расширяет размер таблиц (длину, количество строк) данных, хранящихся на НЖМД. Конкретный размер расширения отдельных таблиц определяется проектируемой конфигурацией и мощностью узла коммутации. Требуемые значения размеров таблиц вводятся в ODAGEN с помощью MML-команд. После этого расширенная основная APS загружается в CMY процессора CP113с. Теперь таблицы данных в общей памяти CMY имеют размер, требуемый для загрузки реальных станционных и абонентских данных. Для передачи данных в таблицы данных используются файлы MML-команд.
247
Техника микропроцессорных систем в коммутации
Рассмотрим пример информации, которую пользователь получает из базы данных системы EWSD в части станционных данных. С помощью терминала технического обслуживания и эксплуатации инженером с терминала техобслуживания и эксплуатации вводится команда STAT SSP (языка MML). В ответ ПО управления генерирует ответ в виде шаблона на рис. 3.12.
LXUNI/A39075D0290/RUSCPZ1V10340757/013 06-03-19 03:07:22
3563 |
OMT-01/SAMUNI |
3080/02056 |
|
|
|||
|
STATSSP; |
|
|
|
|
EXEC’D |
|
|
UNIT |
OST |
UNIT |
|
OST |
UNIT |
OST |
|
------------------ |
------------------ |
------------------ |
||||
|
BAP-0 |
SPR |
BAP-1 |
|
MAS |
CAP-0 |
PLA |
|
CAP-1 |
PLA |
CAP-2 |
|
PLA |
CAP-3 |
PLA |
|
CAP-4 |
PLA |
CAP-5 |
|
PLA |
CAP-6 |
PLA |
|
CAP-7 |
PLA |
CAP-8 |
|
PLA |
CAP-9 |
PLA |
|
IOC-0 |
ACT |
IOC-1 |
|
ACT |
IOC-2 |
PLA |
|
IOC-3 |
PLA |
CMY-0 |
|
ACT |
CMY-1 |
ACT |
|
BCMY-0 ACT BCMY-1 ACT |
|
|
||||
|
IOPMB-32 |
ACT |
IOPMB-33 |
ACT |
IOPMB-40 ACT |
||
|
IOPMB-41 |
ACT |
IOPMB-42 |
ACT |
IOPMB-43 ACT |
||
|
IOPUNI-0 |
ACT |
IOPUNI-1 |
ACT |
IOPTA-0 |
ACT |
|
|
MDD-0 |
ACT |
MDD-1 |
|
ACT |
MTD-0 |
PLA |
|
MOD-0 |
*MBL |
OMT-0 |
|
*UNA |
OMT-1 |
ACT |
END JOB 3563
Рис. 3.12 – Переменные данные о рабочих состояниях аппаратных средств процессора CP113 [данные автора]
Эти данные касаются текущего технического состояния процессора CP113с. Рассмотрим расшифровку значений шаблона на рис. 3.12. В целом рабочее состояние аппаратных компонентов CP113с определяется несколькими возможными видами состояний (атрибутами). Административное состояние, которое может изменяться персоналом станции, записывается в память CMY как полупостоянные данные. Состояние некоторых компонентов обозначено как MBL (maintenance blocked) т.е. «заблокирован для технического обслуживания». В данном случае, например, магнитооптический накопитель MOD готов только для запуска программы проверки и поис-
248
Техника микропроцессорных систем в коммутации
ка неисправностей, но не готов для штатной эксплуатации. Состояние ошибки здесь явно указывает на то, что аппаратный модуль является неисправным. При этом состояние, в которых аппаратный компонент (модуль) считается полностью отказавшим, отличается от состояния, в котором аппаратный компонент (модуль) все еще может функционировать. Например на рис. 3.12 терминал OMT-0 считается не готовым, UNA (unavailable) т.к. на момент ввода команды STAT SSP терминал OMT-0 был выключен, что определяется визуально.
Состояние системы в целом определяется функцией конфигурирования в соответствии с внутренними и внешними событиями. При необходимости, персонал с помощью команд языка MML может изменять состояние системы или отдельных аппаратных компонент. Состояние системы представляют переменные данные, относящиеся к критически важным. Например, на рис. 3.12 процессоры IOC-0, IOC-1, шины BCMY-0, BCMY-1, область памяти CMY-0, CMY-1, процессоры ввода/вывода буфера сообщений IOP:MB, IOP:UNI, IOP:TA, терминал OMT-1, НЖМД MDD-0, MDD-1 технически исправны и находятся в рабочем т.е. активном состоянии ACT (active).
Операционная система может автоматически изменять текущее состояние компонент УК, например процессора BAP. В частности предусмотрено штатное (регламентное) переключение, что изменяет состояния процессоров BAP ведущий (master, MAS) и BAP резервный (spare,SPR) без какого-либо ухудшения обслуживания. В результате переключения состояние MAS может изменяться на состояние SPR, а SPR может изменяться на MAS. Возможно и аварийное переключение, которое происходит в случае отказа одного из BAP, автоматически переходящий в состояние UNA. Это приводит к присвоению резервному, «бывшему» spare, процессору BAP состояния ведущего (MAS) без нарушения в целом непрерывности функционирования узла коммутации. Следует также отметить, что процессоры CAP0…CAP9 на рис. 3.1.2 имеют состояние «запланирован», PLA, planning. Это состояние означает физическую готовность CP113с к дооборудованию дополнительными процессорами, хотя в настоящее время эти процессоры физически не установлены и программно не активизированы. Рассмотрим далее связь между программными процессами.
249
Техника микропроцессорных систем в коммутации
Коммуникация между процессами ПО EWSD осуществляется с помощью операционной системы, которая реализует асинхронную связь между различными элементами ПО. В процессе связи учитывается приоритет того или иного процесса. Два программных процесса могут взаимодействовать между собой используя следующие способы обмена:
межпроцессная коммуникация;
удалѐнный вызов процедуры
использование разделѐнных данных.
Рассмотрим каждый из этих способов подробнее. При межпроцессной коммуникации для посылки и приѐма сообщений операционная система используются буферы приѐма и буферы передачи, как показано на рис. 3.13.
Процесс |
Операционная |
передающий |
система |
S2 |
E1 |
Сообщение |
SEND…. - |
|
обработка |
S1 |
|
Буфер |
RECEIVE - |
передачи |
обработка |
|
B1 |
Процесс |
принимающий |
Область |
приѐма |
B2 |
Буфер |
приѐма |
Рис. 3.13 – Принцип межпроцессной коммуникации
Буферы представляют собой области физической памяти, которые средствами операционной системы назначаются в качестве буферов записи (буфер передачи) и буферов чтения (буфер приѐма). При межпроцессном обмена используются примитивы [7] то есть элементарные процедуры операционной системы. Рассмотрим некоторые из примитивов. Примитив SEND – активизирует асинхронный обмен сообщениями, при котором сообщение помещается в буфер передачи и далее контроль за передачей сообщения передаѐтся операционной системе. С помощью служебных программ передающий процесс может быть информирован о том, насколько доступен
250
