ЦСРС_1 / Grebeshkov_Tehnika_mikroproz_sistem_v_kommutazii_uchebnik_dlya_vuzov_2011
.pdf
Техника микропроцессорных систем в коммутации
J9 (компания IBM), Webshere Embedded Environment,
совместимую с Java2 Mobile Edition (производство Sun Microsystems/Oracle, США);
поддерживает асинхронный обмена сообщениями;
поддерживает интерфейс USB 2.0;
поддерживает ОЗУ ѐмкостью до 4 Гбайт;
встроенная поддержка языков программирования Java, Си. В настоящее время в QNX Neutrino версии 6.X используется
мультиядерная структура, представленная на рис. 3.8.
|
Ввод/ |
Ввод/ |
IP-сеть |
вывод |
вывод |
|
сети |
аудио |
|
Менеджер |
Ввод/ |
|
процессов |
вывод |
|
|
графики |
Микроядро
(microkernel)
Шина передачи сообщений
Мост для |
|
Программные |
|
обмена |
Менеджер |
||
приложения |
|||
процессов |
|||
сообщениями |
|
||
|
|
Микроядро
(microkernel)
Ввод/ |
Программные |
|
вывод |
||
приложения |
||
узла сети |
||
|
Рис. 3.8 – Мультиядерная структура ОС РВ QNX Neutrino 6.2
Обмен сообщениями между микроядрами здесь осуществляется с помощью усовершенствованного механизма IPC в виде виртуальной шины передачи сообщений. Передача данных с помощью виртуальной шины может быть реализована с помощью протокола Ethernet и стека протоколов TCP/IP. Достоинством технического решения на рис.3.8 является возможность подключения к шине доста-
211
Техника микропроцессорных систем в коммутации
точно широкого набора устройств. При этом подключенные устройства становятся доступными всем процессам и микроядрам. Менеджеры процессов осуществляют дополнительные функции, в частности управления памятью и управление каталогами (деревом каталогов), а также дескрипторами файлов.
Существуют различные виды менеджеров ОС РВ QNX, осуществляющих управление на уровне процессов. Менеджер процессов (Proc) отвечает за создание новых процессов и управление наиболее фундаментальными ресурсами, связанными с процессами. Менеджер процессов (Proc) оперативно управляет созданием, выполнением, завершением процессов. Процессы могут иметь символические имена. Также менеджеры процессов осуществляют поддержку работы таймеров и обработку прерываний.
Менеджер файловой системы (Fsys) – обеспечивает стандартизированные средства хранения данных на НЖМД и НОД. Менеджер Fsys отвечает за обработку всех запросов на открытие, закрытие, чтение и запись файлов в форматах FAT, FAT32, NTFS, UNIX. В результате один и тот же НЖМД может использоваться различными ОС. Менеджер файловой системы поддерживает каталоги, каналы ввода/вывода в части специального файла для обмена между процессами, блок загрузчика ОС РВ, корневой каталог, битовую карту накопителя на жѐстком диске.
Менеджер устройств (Dev) – управляет взаимодействием с устройствами с помощью специальных драйверов. Услуги ввода-вывода обеспечиваются процессами, которые могут быть вызваны/активированы динамически во время работы системы. Все драйверы выполняются как пользовательские потоки и не относятся к процессам микроядра. В результате сбой драйвера не влияет на функционирование ОС РВ. Менеджер сети (Net) ответственен за распространение сообщений QNX по локальной вычислительной сети и в IP-сети (сети Интернет). На рис. 3.8 показано, как программный процесс, поддерживаемый одним микроядром, обрабатывает данные, полученные через порт ввода/вывода, поддерживаемый другим микроядром. При этом каждое микроядро может функционировать на отдельном процессоре. В итоге реализуется унифицированный доступ ко всем аппаратным средствам и программным ре-
212
Техника микропроцессорных систем в коммутации
сурсам микропроцессорной системы, причѐм без проверки прав доступа. Для рассматриваемой схемы характерен быстрый обмен сообщениями между микроядрами, поскольку это встроенная функция операционной системы. Предлагаемая ОС РВ может использовать в качестве аппаратного обеспечения двух– и более ядерный процессор, причѐм каждое микроядро может запускаться на отдельном аппаратном ядре процессора. Подробнее о многоядерных процессорах см. главу 5. Схема на рис. 3.8 позволяет реализовать распределенные вычисления со следующими функциональными и технологическими возможностями:
поддержка стандартов POSIX;
динамическое взаимодействие между аппаратным и программным обеспечением на удаленных системах коммутации;
поддержка службы глобальных имен для обнаружения нового оборудования и программных приложений;
останов исполнения программного приложения на одном узле коммутации и перезапуск программного приложения на другом управляющем комплексе без необходимости перезагрузки всего комплекса программного обеспечения в целом.
Далее рассмотрим пример использования ОС РВ для решения практических задач управления узлами коммутации и сетями связи.
3.3.3Использование ОС РВ для организации управления сетями связи
Рассмотрим в качестве примера использование ОС РВ для организации управления сетями связи [2]. Для этого рассмотрим особенности применения исполняющей программы реального времени для мультипроцессорных систем, ОС РВ RTEMS (Real-Time
Executive for Multiprocessor Systems). Это некоммерческая ОС РВ,
ориентированная на использование в относительно небольших и средних встраиваемых системах управления, контроля и диагностики. Система ОС РВ RTEMS реализована на языке программирования Си, разработчиком является компания OAR (On-line Applications
213
Техника микропроцессорных систем в коммутации
Research Corporation), США. Система была создана по заказу министерства обороны США для использования в системах управления ракетными комплексами. На данную ОС РВ отсутствуют какие-либо экспортные ограничения, она свободно распространяется в исходных кодах через Интернет на сайте www.rtems.com. Компания OAR обеспечивает поддержку, обучение специалистов и разработку программного обеспечения по заказам. ОС РВ RTEMS находится под защитой модифицированной версии публичной лицензии GNU (GNU
General Public License). В качестве стека TCP/IP в RTEMS использу-
ется версия стандартного стека сетевых протоколов FreeBSD, которая не накладывает каких-либо ограничений на используемые программные приложения.
Базовой средой разработчика при работе с RTEMS является ОС Linux (UNIX). ОС РВ RTEMS обеспечивает высокоэффективную среду исполнения для «глубоко встраиваемых» систем (deeply embedded segment), в которых не предполагается частая перенастройка или смена алгоритмов функционирования. Это могут быть приложения для портативных устройств (например, сотовые телефоны), в которых используются аппаратные средства с ограниченными ресурсами (микроконтроллеры). Соответствуя специфике разработки и применения систем данного класса, RTEMS отличается модульностью, масштабируемостью и предсказуемостью поведения, а также поддерживает мультипроцессорные конфигурации. Операционная система RTEMS соответствует стандартам POSIX 1003.1b, поддерживает стандартный стек сетевых протоколов TCP/IP, который основан на реализации аналогичного стека операционной системы FreeBSD, который включает в себя следующие протоколы:
UDP, TCP, FTP, HTTP.
Операционная система RTEMS обеспечивает возможность использования набора средств и методов отладки. Средства отладки свободно распространяются и могут быть получены с сайта www.gnu.org. Операционная система реального времени RTEMS написана на языке высокого уровня, поэтому ее перенос на различные процессорные платформы теоретически производится с минимальными трудозатратами.
Характерные особенности микроядра RTEMS следующие:
214
Техника микропроцессорных систем в коммутации
поддержка многопроцессорных (мультипроцессорных) систем;
распределение машинного времени на основе управления событиями в соответствии с приоритетами для чего используется динамический алгоритм диспетчеризации;
использование менеджера задач, который позволяет изменять минимальный размер кванта времени, выделенного задаче;
управление прерываниями, обеспечивающее своевременное обнаружение запросов внешних устройств, оперативный вызов программ обработки, гарантия максимального времени вызова анализатора причины прерываний;
несколько механизмов взаимодействия и синхронизации задач;
динамическое выделение памяти для приоритетных задач. Микроядро реального времени RTEMS поддерживает 255
уровней приоритетов. Чем больше значение приоритета данной задачи, тем более привилегированной она является. Количество задач, имеющих одинаковый приоритет, не ограничено. Каждая задача всегда имеет какой-либо уровень приоритета, начальное значение которого присваивается при создании задачи и в дальнейшем может быть динамически изменено. Операционная система RTEMS применяется в рамках системы управления сетевыми коммутаторами. Для реализации такой системы управления используются коммуникационные контроллеры (сетевые процессоры) типа MC68EN360 компа-
нии Motorola.
Управление осуществляется с использованием протокола SNMP, который обеспечивает возможность управления объектами с помощью стандартных средств мониторинга и контроля [21]. Программное обеспечение SNMP-агента (рис. 3.9) представляет собой набор задач и служб, каждая из которых выполняется независимо и одновременно с остальными задачами.
215
Техника микропроцессорных систем в коммутации |
|
|
||
|
SNMP-агент |
|
|
|
Главная |
|
|
|
обеспечение |
программная |
|
Служба таймера |
||
|
|
|
||
задача Init |
|
TimerSrv |
|
|
|
|
|
||
Ядро |
|
|
|
|
RTEMS |
|
|
|
|
Поддержка |
Консоль для |
Служба работы с |
||
функций SNMP |
доступа к |
терминалом |
|
|
|
Программное |
|||
SNMPSrv |
коммутатору |
коммутатора |
||
|
ConsoleSrv |
TerminalSrv |
|
|
Менеджеры RTEMS |
|
|
|
|
|
|
|
|
|
Драйвер Ethernet |
Терминальный драйвер |
|
|
|
|
Коммуника- |
|
|
|
|
ционный |
Аппаратное обеспечение |
||
|
модуль |
|||
Сеть |
|
|
||
Ethernet |
|
|
||
|
Терминал |
Управляемый |
||
|
|
|
||
|
управления |
IP-коммутатор |
|
|
Рис. 3.9 – Реализация агента SNMP с помощью RTEMS
Программное обеспечение системы управления сетевыми коммутаторами, использующее в качестве операционной системы RTEMS, позволяет реализовать SNMP-агента со следующими функциями:
поддержка базы информации управления SNMP (MIB II);
обработка запросов SNMP-менеджера и трансляция команд
SNMP;
обмен данными между терминалом управления на базе персонального компьютера и коммуникационным модулем с использованием интерфейса RS-232;
контроль прохождения команд с терминала управления на коммуникационный модуль и пересылка ответов в обратном
216
Техника микропроцессорных систем в коммутации
направлении;
хранение необходимых административных данных (пароли,
адреса менеджеров и т.п.) в энергонезависимой памяти ПЗУ.
В программном обеспечении управления реализованы следующие задачи и службы:
Init – главная программная задача, которая производит инициализацию коммуникационного модуля и запускает остальные задачи;
TimerSrv – служба таймера, посылает периодические запросы и совершает другие действия, связанные с временем;
SNMPSrv – осуществляет функции протокола SNMP и реализован на основе сетевого протокола UDP;
ConsoleSrv – служба работы с терминалом управления для доступа к программному обеспечению IP-коммутатора;
TerminalSrv – служба работы с терминальным оборудованием коммутатора.В качестве аппаратного обеспечения в системе управления использован отдельный коммуникационный модуль, который включает 32-разрядный микроконтроллер MC68EN360, оперативную память, блок последовательного обмена данными, разъем расширения и порт отладки. Этот модуль имеет также два выхода по стандарту RS-232, к одному из которых подключается IP–коммутатор, а к другому терминал управления на базе персонального компьютера. Для обмена с внешними сетями и устройствами используется протокол Ethernet, с помощью которого передаются сообщения и команды SNMP для системы управления сетью связи, NMS.
Выбор операционной системы RTEMS для описанной реализации агента протокола SNMP производился в соответствии со следующими критериями: компактность программного кода, надежность функционирования, наличие эффективных средств работы с внешними устройствами, а также возможность полного контроля над программным продуктом, что предполагало необходимость применения систем с открытыми исходными текстами. Кроме того, RTEMS имеет встроенный стек TCP/IP, что значительно сокращает время разра-
217
Техника микропроцессорных систем в коммутации
ботки и отладки программного обеспечения.
В рассмотренной ОС РВ используются менеджеры RTEMS; понятие «менеджер» в данном случае соответствует менеджеру ОС РВ QNX, а не менеджеру протокола SNMP. Рассмотрим эти менеджеры ОС РВ. Менеджер ввода/вывода обеспечивает работу драйверов внешних устройств, не накладывая ограничений на внутреннюю структуру внешних устройств. Менеджер доступа к физической памяти включает менеджера разделов и регионов. Раздел – это область памяти, состоящая из буферов (разделов) фиксированной длины. Каждый из этих буферов может быть выделен для использования задачей или процессом с помощью команд менеджера разделов. При запросе на выделение буфера он выделяется из начала последовательности свободных буферов. Когда буфер освобождается, то он циклически помещается в конец последовательности. Регион (в данном случае) – область памяти переменной длины, кратной размеру физического сегмента. Регион состоит из сегментов различного размера. При поступлении запроса на выделение сегмента, размер запрошенного сегмента округляется до целого количества физических страниц и, при наличии, свободного сегмента соответствующего размера этот сегмент выделяется операционной системой под требуемую задачу или процесс.
Менеджер доступа к памяти реализует следующий набор функций: создание, удаление, установка значений переменных; освобождение, занятие областей регионов/разделов и буферов, содержащихся в них. Для регионов реализуется возможность добавления необходимого объѐма памяти.
Менеджер таймеров обеспечивает следующие функции работы с таймерами: создание и удаление таймеров, доступ к таймерам, запуск подпрограмм по событию/сигналу от таймера. Менеджер часов реального времени применяется для информирования пользователя о текущей дате. Этот менеджер обеспечивает также формирование и обработку сигналов об истечении минимальных промежутков времени, которые задаются на этапе конфигурирования системы и равны целому числу микросекунд.
Менеджер инициализации отвечает за запуск и остановку работы ОС РВ RTEMS. Запуск ОС РВ RTEMS производится путем созда-
218
Техника микропроцессорных систем в коммутации
ния и загрузки всех инициализирующих задач и процедур для каждого драйвера внешнего устройства. В случае мультипроцессорной системы происходит также инициализация механизмов межпроцессорного взаимодействия.
Менеджер прерываний позволяет оперативно реагировать на прерывания, обеспечивая возможность «вытеснения» (временного останова или завершения) задачи сразу после окончания процедуры обработки прерывания. Менеджер прерываний дает также возможность внешней программе пользователя подключить процедуру обработки прерывания к соответствующему вектору прерывания. При выполнении определенных команд в ОС РВ RTEMS может возникнуть необходимость отключения обработки прерываний, чтобы обеспечить непрерывное выполнение критических задач. Максимальное время отключения прерываний различно для разных процессоров и указывается в документации ОС РВ RTEMS для соответствующего процессора.
Достоинством RTEMS является возможность ее конфигурирования с учетом реальных требований программного приложения. Например, для увеличения надежности и повышения компактности результирующего программного кода в системе управления IPкоммутатором были исключены все неиспользуемые менеджеры и библиотеки, из 16 менеджеров оставлены только 10.
Вчастности, исключены менеджеры двухпортовой памяти, менеджеры разделов и регионов, менеджеры сообщений и событий. В результате суммарный объем загружаемого в оперативную память программного кода вместе с приложением, стеком сетевых протоколов и областями данных составил около 270 Кбайт. Система имела возможность использовать всю оперативную память, имеющуюся на модуле.
Витоге, полученный программный продукт для поддержки управления IP-коммутатором содержит пять независимых пользовательских процессов и набор необходимых менеджеров ОС РВ. Блокировка одного из процессов не приводит к остановке остальных, что повышает надѐжность системы управления в целом.
219
Техника микропроцессорных систем в коммутации
3.4Исполнение программ многопроцессорными системами
Рассмотренные в разделе 2.2 особенности построения многопроцессорных систем управляющих комплексов затрагивали, в основном, вопросы аппаратного комплексирования. Между тем существует и программное комплексирование – способ организации исполнения программ на многопроцессорных комплексах, например на симметричной многопроцессорной системе. Симметричная много-
процессорная система, SMP (symmetrical multiprocessing) состоит из двух или более тесно взаимодействующих МПр, которым доступны такие общие ресурсы, как оперативная память общие системные шины, локальные шины доступа к общей оперативной памяти. В схеме SMP каждый МПр может самостоятельно выполнять многопоточную обработку данных, включая машинный код микроядра, машинный код приложений, обработку прерываний. При использовании SMP нет необходимости в том, чтобы каждый процессор был жѐстко запрограммирован на выполнение одной задачи, например только на обработку приложения, драйвера или стека протоколов. При многопоточной обработке каждый процессор может выполнять обработку отдельного потока заданий, причѐм в разные моменты времени есть возможность переключаться с выполнения одного потока заданий на другое.
Особенностью архитектуры SMP является наличие общей оперативной памяти, разделяемой между всеми процессорами, как в ранее рассмотренной схеме CP113c. Оперативная память одновременно может являться средой для передачи сообщений между процессорами. Все МПр при обращении к оперативной памяти имеют равные права и одну и ту же адресацию для всех ячеек памяти. Это позволяет эффективно обмениваться данными с другими МПр. Вся система работает под управлением единой ОС или ОС РВ, которая в реальном времени автоматически распределяет процессы и потоки заданий по процессорам. В некоторых случаях возможна и явная привязка процессора к выполнению конкретного процесса.
Основным преимуществом SMP-систем является простота и универсальность, прежде всего для программирования. Здесь нет
220
