Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЦСРС_1 / Grebeshkov_Tehnika_mikroproz_sistem_v_kommutazii_uchebnik_dlya_vuzov_2011

.pdf
Скачиваний:
133
Добавлен:
05.05.2015
Размер:
4.74 Mб
Скачать

Техника микропроцессорных систем в коммутации

характер рассматриваемой задачи;

действия, которые необходимо инициировать;

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

Таблица 3.1

Таблица прерываний процессора CP113с

Прерывания

 

Функции программного и аппаратного

Уровень

Номер

 

обеспечения CP113с

7

 

 

Процедура перезагрузки

6

15

 

Тест шины B:CMY при начальной загрузке

 

14

 

Обработка ошибки аппаратной части МПр.

 

13

 

Периодические программные прерывания

5

12

 

Прерывания системы отладки ПО (зарезервиро-

 

 

 

вано разработчиками ПО)

4

11

 

Объединѐнный тест синхронизации компонентов

 

10

 

Остановка системы для обработки ошибки ПО

 

9

 

Обработка ошибки ПО центральной части CP113

3

8

 

Запрос IOC из BIOS

 

7

 

Слежение за аппаратной частью

2

x

 

Обработка ошибок локального ПО

 

x

 

Выполнение запросов управления

 

6

 

Межпроцессорная связь на уровне операционной

 

 

 

системы

 

5

 

Сканирование генератора системного времени

 

 

 

для контроля ввода/вывода периферийных уст-

 

 

 

ройств CP

1

4

 

Ошибка ввода/вывода

 

3

 

Сообщения от IOP:UNI

 

2

 

Сообщения от IOP:MB

 

1

 

Управление вводом/выводом данных на физиче-

 

 

 

ском уровне

 

0

 

Задание по техобслуживания для диагностики

 

 

 

IOP

0

 

 

Штатная работа CP113, выполнение программ-

 

 

 

ных задач/процессов согласно их приоритетам.

 

 

 

 

3 этап. Обработка прерываний – выполнение задачи на уровнях прерываний от 0 до 7. Способ обработки прерываний определяется индивидуально для каждой задачи и зависит от ее относительной важности для системы управления в целом и уровня прерыва-

191

Техника микропроцессорных систем в коммутации

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

Как отмечалось в подразделе 2.3.1, процессоры BAP и CAP физически присоединяются к обеим шинам В:СМУ через общий интерфейс CI. Общий интерфейс используется как для физического доступа к общей памяти СМУ так и для межпроцессорной связи. В обмене данными может участвовать аппаратный трейсер (отладчик) для реализаций специальных операций по контролю и устранению ошибок. Общий интерфейс CI, по сути, является развитой системой ввода–вывода и содержит следующие компоненты:

регистры сигнализации блока интерфейса CI процессора PU для В:СМУ;

средства обнаружения ошибок блока интерфейса CI процессора PU;

буферы приѐма/передачи для временного хранения адресов и данных;

средства управления (логика) обмена данными.

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

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

специальная зона (область) связи (communication area, СА) между процессорами в общей оперативной памяти СМУ.

Для каждого процессора в CMY имеется таблица указателей с 16-ю адресными зонами; каждая адресная зона связана с 16-ю прерываниями, используемыми для обмена сообщениями между процессорами Число 16 обусловлено максимальным количеством процессоров на рис. 2.7. Связь между процессорами происходит сле-

192

Техника микропроцессорных систем в коммутации

дующим образом (см. рис. 3.4).

 

 

 

 

Процессор 0

 

 

Процессор 9

 

Прерывание 4

….

 

 

Логика

 

 

 

прерывания

 

 

 

 

 

 

 

 

 

 

Инициализация прерывания 4

 

B:CMY

XXXX

 

 

 

 

 

 

 

Передача

 

 

 

 

 

 

 

даных

 

 

 

 

 

 

 

XXXX

Таблица указателей адресных зон

Таблица указателей адресных зон

(прерываний) процессора 0

(прерываний) процессора 9

0

…. 4 ….

15

0

….

….

15

 

Адресная

Область связи, СА

Общая память

 

зона 4

XXXX

 

 

 

 

 

 

 

 

 

 

 

 

CMY

 

Рис. 3.4

– Cхема межпроцессорного обмена

Процессор 9 посылает сообщение процессору 0. Для этого процессор 9 из числа доступных в общей памяти CMY резервирует область связи CA. Область связи представляет собой совокупность ячеек памяти CMY, куда записываются сообщения от одного процессора к другому. В выбранную область связи CA процессор 9 через CMY записывает некоторое сообщение ХХХХ для процессора 0.

Адресная зона, т.е. физический адрес начальной ячейки области связи СА заносится в таблицу указателей адресных зон процессора 0 (в рассматриваемом примере зоной связи назначается адресная зона 4). Далее процессор 9 через B:CMY инициирует прерывание в процессоре 0, причѐм номер прерывания соответствует зоне связи 4. Прерывание 4 инициируется средствами межпроцессорной коммуникации с помощью посылки сообщения. В результате этого прерывания процессор 0 читает начальный адрес области связи СА в ячейке 4 таблицы указателей адресных и считывает сообщение XXXX из соответствующей адресной зоны. Следует отметить, что межпроцессорная связь может иметь место только через общую па-

193

Техника микропроцессорных систем в коммутации

мять СМУ. Итак, процессоры в составе CP113с, не могут напрямую получать доступ к локальной оперативной памяти LMY других процессоров.

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

3.3Операционные системы реального времени

3.3.1 Основные понятия, определения и стандарты

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

ми реального времени. Режим реального времени (real time processing), согласно ГОСТ 15971–90 – это режим обработки информации, при котором обеспечивается взаимодействие системы обработки информации (управляющего комплекса) с внешними по отношению к нему процессами в темпе, соизмеримом со скоростью протекания этих внешних процессов. В системах реального времени существенную роль играет время генерации выходного сигнала. Пусть сигнал на входе управляющего комплекса соответствует ка- ким-то изменениям на управляемом объекте или изменениям физического процесса, например при распространении сигнала электросвязи в физической среде. Выходной сигнал управляющего комплекса должен быть связан с этими изменениями. Поэтому временная задержка от получения входного сигнала до выдачи выходного сигнала должна быть небольшой, чтобы обеспечить приемлемое время

194

Техника микропроцессорных систем в коммутации

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

считаться работающим в реальном времени, если быстродействие управляющего комплекса адекватно скорости протекания физических процессов на узле коммутации [10,23,25]. В свою очередь, стандарт IEEE POSIX 1003.1a даѐт следующее определение: «Реальное время в операционных системах — это способность операционной системы обеспечить требуемый уровень сервиса в определѐнный промежуток времени». Это означает, например, что время отклика программного обеспечения реального времени, включая операционную систему и программные приложения, например появление выходного сигнала в процессе обработки сигнализации составляет от 10 до 100 мс, при обработке вызова – от 100 до 1000 мс, для диалога «человек – машина» от 1 до 3 секунд ([1], стр. 228).

На уровне ОС РВ временные характеристики отклика складываются в основном из двух составляющих – время ответа на прерывание и время ответа на поток управления. Время ответа на прерывание – это промежуток времени между моментом, когда был выставлен запрос на прерывание, и моментом, когда началась обработка прерывания. Это время может включать задержку прерывания

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

195

Техника микропроцессорных систем в коммутации

процесса в неупорядоченную очередь или изъятия из нее, на время увеличения (уменьшения) некоторых счетчиков.

Рассмотрим также POSIX – это сокращение от понятия Portable Operating System Interface, интерфейс переносимой операционной системы [26]. Аббревиатуру POSIX предложил Ричард Столлмен (Richard Stallman) для обозначения спецификаций интерфейсов программных средств, создаваемых для описания требований и условий переносимости прикладных программных приложений между различными операционными системами и аппаратными платформами [61]. Таким образом, стандарты POSIX описывают не внутреннее устройство операционной системы, в том числе операционной системы реального времени ОС РВ, а способы программного взаимодействия ОС РВ с системным и прикладным программным обеспечением. В результате исполнения требований и условий спецификаций POSIX формируется стандартный механизм взаимодействия программного приложения и операционной системы. При таком взаимодействии происходит обмен сигналами. В данном случае сигнал является синхронным или асинхронным сообщением, которое ядро операционной системы (kernel) посылает определенному процессу. Кроме того, сигналами могут обмениваться процессы или процесс может посылать сигнал сам себе. Получение сигнала процессом вызывает приостановку текущего выполнения программы и влечѐт за собой выполнение действия в зависимости от установленной алгоритмом реакции на сигнал.

Главная задача операционной системы реального времени – обеспечить гарантированное, заранее установленное время отклика ОС на внешние события. В результате качество функционирования системы реального времени зависит не только от степени эффективности распределения ресурсов, но и от времени, за которое физически производится решение задач управления. Следует отметить, что максимальное время отклика программы на внешнее событие или воздействие достигается максимальным использованием машинным кодом особенностей архитектуры и внутренних инструкций процессора. Например, в случае использования RISC–процессоров целесообразно применять одноили двухадресные команды, чтобы в идеале они выполнялись за одни такт работы МПр.

196

Техника микропроцессорных систем в коммутации

Как уже отмечалось, типовая ОС РВ должна соответствовать стандартам POSIX. Стандарты POSIX разрабатываются совместными усилиями исследовательских групп IEEE (общественная, некоммерческая организация), Американского национального института стандартов ANSI (частная некоммерческая организация), Международной организации по стандартизации ISO (международная организация по стандартизации в рамках ООН), IEC (международная организация по стандартизации) а также Open Group (неправительственная международная организация по стандартизации программного обеспечения, 200 производителей). При реализации ОС РВ должны учитываться как минимум следующие стандарты POSIX семейства

IEEE Std. 1003.x:

Стандарт IEEE 1003.1a OS definitions (определения ОС) –

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

Стандарт IEEE 1003.1b Realtime Extensions (расширения реального времени) – описывает сигналы реального времени, диспетчеризация по приоритетам, таймеры, синхронный/асинхронный ввод/вывод, разделяемая память, сообщения. В частности, ОС РВ должна поддерживать не менее 32-х уровней приоритетов.

Стандарт IEEE 1003.1с Threads (потоки) – определяет правила управления потоками, атрибутами потоков, диспетчеризацию потоков и процессов.

Дополнительно стандарт IEEE 1003.1d-1999 содержит требования к расширенным возможностям ОС РВ, в частности к управлению устройствами и прерываниями, а стандарт IEEE 1003.21 содержит требования к ОС РВ в части функции поддержки распределенного взаимодействия, организации буферизации данных, выполнения синхронных и асинхронных операций, обработки приоритетов сообщений, меток сообщений, и реализаций протоколов. В целом по внутренней архитектуре ОС РВ можно условно разделить на монолитные ОС РВ, объектно-ориентированные ОС РВ и ОС РВ на основе микроядра.

197

Техника микропроцессорных систем в коммутации

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

В многоуровневых ОС РВ предусмотрено разделение функциональности операционной системы на уровни, например уровень управления аппаратным обеспечением, уровень управления памятью, уровень управления процессами, уровень управления коммутацией. В такой ОС РВ практически невозможно удалить ни один уровень, не нарушив при этом корректность функционирования ОС РВ. Известную сложность представляют собой добавление новых функций в ОС РВ. Примером такой ОС РВ можно считать ОС РВ Cisco IOS [15], которая поддерживает функции коммутации и маршрутизации. В состав ОС РВ входят следующие компоненты и соответствующие им уровни:

Ядро системы – осуществляет управление памятью и планирование задач, распределение аппаратных ресурсов между всеми микропроцессорами.

Буферы пакетов – буферы оперативной памяти (области оперативной памяти), предназначенные для хранения используемых маршрутизируемых сетевых пакетов.

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

Программное обеспечение быстрого переключения (коммутации) пакетов – набор программных функций для быстрого переключения путей следования пакетов в процессе обработки.

Особое место в ОС РВ Cisco IOS занимают процессы. Процесс здесь включает по крайней мере один поток. Поток представляет собой реализацию программы или подпрограммы обеспечения работоспособности системы, программы коммутации сетевых пакетов, про-

198

Техника микропроцессорных систем в коммутации

граммы поддержки протоколов маршрутизации и соответствующие данные. Для повышения скорости обработки пакетов, ОС РВ Cisco IOS была спроектирована таким образом, чтобы снизить затраты машинного (процессорного) времени на обслуживание служебных функций ОС РВ. В частности, в ОС РВ Cisco IOS отсутствует механизм защиты внутрипотоковой памяти, в результате чего процесс может занимать не только отведенную ему область памяти, но и обращаться к областям памяти соседних процессов. Также для повышения производительности используется планирование запуска процессов без использования приоритетных прерываний. Указанные упрощения работы ОС РВ объясняются разработчиками тем, что переключение потоков осуществляется достаточно редко.

Для обеспечения управления оперативной памятью, внешними запоминающими устройствами в ОС РВ Cisco IOS используются т.н. менеджеры. Менеджеры – это специализированные системные программные модули для обеспечения управления ресурсами в интересах отдельных задач и процессов в рамках многозадачности. В частности, менеджер памяти осуществляет управление всей доступной памятью, менеджер пакетного буфера управляет областями памяти для временного хранения пакетов в процессе их обработки.

Объектно-ориентированные операционные системы реального времени имеют в основе своей структуры ядро. Ядро реализует основные функции ОС РВ, а прочие функции реализуются сервисными модулями. Объектно-ориентированная ОС РВ разрабатывается с использованием объектно-ориентированного подхода, а ядро такой ОС РВ разрабатывается с использованием объектноориентированного языка программирования. Все компоненты объ- ектно-ориентированной ОС РВ условно поддерживают архитектуру «клиент-сервер» и в силу этого разделяются на поставщиков услуг и потребителей услуг. Поставщики условные «серверы» выполняют определенные действия по запросам «клиентов» – потребителей услуг ОС РВ. Одна и та же компонента может быть одновременно сервером по отношению к одному виду услуг и клиентом по отношению к другому виду услуг. Клиенты и серверы не общаются напрямую, запрос посылается с помощью соответствующего сообщения диспетчеру в составе ядра(микроядра) операционной системы. Получив за-

199

Техника микропроцессорных систем в коммутации

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

Примером объектно-ориентированной ОС РВ можно считать российскую ОС РВ ос2000, а также ОС РВ «Багет 2.0» и «Багет 3.0». Операционная система ос2000 разработана Научноисследовательским институтом системных исследований Российской академии наук (НИИСИ РАН, www.niisi.ru) по заказу Министерства обороны России для МПр Intel и RISC–процессоров. Операционная система ос2000 выполнена в соответствии со стандартами POSIX 1003.1 и стандартами разработки ПО на языке Си, прошла государственные испытания, рекомендована для применения в частях и подразделениях Министерства обороны России. разработанные для использования в системах военного и специального назначения.

Операционная система ос2000 состоит из ядра и системных потоков управления. Ядро ОС РВ выполняет функции планирования, синхронизации и взаимодействия потоков управления, а также низкоуровневые операции ввода/вывода. Микроядро представляет собой небольшую часть ядра ОС, функции микроядра использую другие компоненты ОС. Микроядро осуществляет функции планировщика потоков управления и синхронизацию при многопоточном режиме (взаимоисключения). Синхронизация позволяет исключить запись двух потоков в одну и ту же область памяти. Прочие функции, на-

200