ЦСРС_1 / Grebeshkov_Tehnika_mikroproz_sistem_v_kommutazii_uchebnik_dlya_vuzov_2011
.pdf
Техника микропроцессорных систем в коммутации
можно отнести высокую скорость переключения с обработки одного потока на обработку другого потока. В большинстве современных высокопроизводительных операционных систем, таких как UNIX, VAX/VMS, реализован именно вытесняющий режим распределения процессорного времени.
Итак, из рассмотренных способов обработки данных ни один в полной мере не удовлетворяет основной цели программной системы управления узла коммутации – обработки вызовов от максимального числа пользователей с заданным качеством. Для достижения указанной цели применяются операционные системы реального времени, которые будут подробно рассмотрены в разделе 3.3.
Рассмотрим заключительный раздел классификации – количество обслуживаемых процессоров. Однопроцессорная ОС управляет и распределяет ресурсы только одного физического процессора, таковой является, например, устаревшая дисковая операционная система типа MS-DOS. Сложнее обстоит дело с классификацией многопроцессорных операционных систем. В современном узле коммутации процессоры в составе управляющих устройств, как правило, располагаются в нескольких функциональных блоках. Эти функциональные блоки, и соответственно процессоры, могут быть подключены к единой общестанционной шине. В этом случае обеспечивать использование ресурсов этих МПр может т.н. сетевая операционная система. Отличительными признаками сетевой операционной системы является объединение нескольких УУ в единый управляющий комплекс с помощью многозадачной операционной системы. При этом каждое УУ в составе управляющего комплекса может поддерживать собственный экземпляр операционной системы, а специально назначенное УУ, выполняющее функции сервера в информацион- но-вычислительных сетях, может поддерживать экземпляр сетевой операционной системы, которая обеспечивает координацию и взаимодействие всех УУ комплекса. Таким образом, сетевая ОС обеспечивает как управление локальными ресурсами данного УУ, так и управления общими сетевыми средствами, а именно:
локальными ресурсами УУ, предоставляемых в общее пользование; общими ресурсами системы управления – оперативной
181
Техника микропроцессорных систем в коммутации
памятью системы, общими устройствами ввода/вывода, общими запоминающими устройствами;
коммуникационными протоколами для поддержки обмена сообщениями между УУ.
Сетевая операционная система определяет взаимосвязанную группу протоколов верхних уровней модели взаимосвязи открытых систем, обеспечивающих адресацию объектов, функционирование сетевых служб, безопасность данных, решение конфликтов доступа. Достоинством рассмотренного решения является наличие координации и способность выполнять заявленные функции УУ. Недостаток заключается в том, что при отказе УУ, выполняющего функции сервера, управляющий комплекс теряет возможность координации составляющих его УУ.
С учѐтом тенденции децентрализации функциональной архитектуры управляющего комплекса узлов коммутации, повышения автономности отдельных функциональных блоков в телекоммуникациях применяются распределенные ОС. Распределенная ОС существует как единое целое в пределах узла коммутации, каждое УУ в пределах узла коммутации выполняет часть функций этой общей операционной системы. Распределенная система позволяет обеспечить эффективное использование всех ресурсов управляющего комплекса – как локальных ресурсов каждого УУ так и общих ресурсов управляющего комплекса в целом. Начальной стадией функционирования распределенной ОС является поддержка УУ самостоятельных экземпляров операционной системы. Достоинством рассмотренного решения является повышение надѐжности управляющего комплекса за счѐт исключения УУ, выполняющего функции сервера. К недостаткам можно отнести сложность создания такой ОС, необходимость координации множества задач, процессов и потоков, что увеличивает вероятность сбоев системы.
В рамках управления доступом к ресурсам возможно создание т.н. гипервизора или виртуальной машины – способа организа-
ции функционирования операционной системы, при котором прикладные программы или внешние устройства получают доступ к ресурсам системы через посредство специальной промежуточной про- граммы или программно-аппаратного средства, которое скрывает
182
Техника микропроцессорных систем в коммутации
архитектуру и ресурсы микропроцессора. Цель создания виртуальной машины (гипервизора) – повышение эффективности функционирования системы программного управления узла коммутации. Пример структурной схемы виртуальной машины представлен на рис.
3.3.
Программная система управления УК
Программное приложение 1 |
Программное приложение 2 |
Операционная |
система А |
Программное приложение 2 Программное приложение 3
Операционная система Б
Гипервизор (виртуальная машина)
Аппаратное и микропрограммное обеспечение микропроцессора
Рис. 3.3 – Структурная схема виртуальной машины
Виртуальная машина позволяет представить один физический МПр как несколько независимых «виртуальных» процессоров, доступных для каждой операционной системы и соответствующего программного приложения. Функции «виртуальной машины» может выполнять и сама операционная система, которая по сути является посредником между аппаратными ресурсами и программными приложениями управления. К примеру, в системе 5ESS сама структура программного обеспечения имеет иерархию виртуальных машин. Операционная система общего назначения UNIX-RTR (надежность в реальном времени), функционирующая в УУ административного функционального блока и создает виртуальные машины, скрывающие аппаратное обеспечение процессора 3B20D от остального программного обеспечения. Ядро данной ОС функционирует в УУ коммутационного функционального блока. Выше уровнем находится операционная система для распределенной коммутации, которая формирует следующие виртуальные машины:
183
Техника микропроцессорных систем в коммутации
виртуальная машина управления периферийным оборудованием;
виртуальная машина выбора маршрута и установления терминала для управления установлением соединения в узле коммутации;
виртуальная машина управления базой данных, обеспечивающая доступ к базе других модулей программного обеспечения;
виртуальная машина административных услуг, обеспечивающая поиск и накопления данных.
Различают процессную виртуальную машину и системную виртуальную машину [59]. Процессная виртуальная машина используется для выполнения одного процесса, она функционирует с момента активизации (запуска) процесса и останавливается после завершения выполнения (останова) процесса. В процессной виртуальной машине используются специальные программные интерфейсы на границе между операционной системой и аппаратным оборудованием. В системной виртуальной машине программное обеспечение виртуализации соответствует схеме на рисунке 3.3, где между программным приложением и аппаратным обеспечением присутствует не только операционная система, но и виртуальная машина. Примером процессной виртуальной машины является реализация многозадачной операционной системой с разделением по времени, где каждая прикладная задача будто бы «единолично» владеет ресурсами. Также процессные виртуальные машины поддерживают переносимость программного обеспечения, когда программа для ЭВМ может выполняться на нескольких типах МПр. В узлах коммутации может использоваться как процессная, так и системная «виртуальная машина», но системная виртуальная машина применяется чаще.
Таким образом, в системе коммутации 5ESS функции виртуальной машины выполняет сама операционная система. Однако в случае функционирования в рамках узла коммутации нескольких операционных систем, может потребоваться применение отдельной «виртуальной машины» и в результате формируется сложная системная операционная среда. Примером применения такой виртуаль-
184
Техника микропроцессорных систем в коммутации
ной среды является операционная среда RX-UX/VR в АТСЭ типа NEAX-61Σ, в которой одновременно работают операционная система реального времени RTOS и операционная система UNIX. Диспетчер операционной системы в составе RX-UX/VR выполняет функции оперативного предоставления ресурсов по запросам той или иной операционной системы, а обе ОС выполняют функции виртуализации в отношении аппаратных ресурсов, а именно:
управление файловой системой;
доступ к устройствам ввода–вывода;
управление обменом информацией и устройствами, относящимся к организации разговорного тракта;
управление записью/считыванием в память узла коммутации.
Таким образом, вне зависимости от особенностей организации, «виртуальная машина» позволяет оптимизировать использование аппаратных ресурсов управляющего комплекса узла коммутации.
3.2.3 Прерывания, их организация и назначение
Согласно ГОСТ Р 50304–92, под прерыванием понимается операция процессора, состоящая в регистрации предшествующего прерыванию состояния процессора и установление нового состояния. С учѐтом ГОСТ 15971–90, прерывание является реакцией процессора на некоторые условия, возникающие как в самом процессоре так и вне его. Прерывания могут генерироваться внешними устройствами по отношению к МПр. Такие прерывания называют аппаратными. Также прерывания могут генерироваться при выполнении специальных команд в процессе исполнения программ для ЭВМ. Различают несколько виды прерываний [55].
Внутрипроцессорные прерывания – синхронно возникают при попытке МПр выполнить операцию с ошибочным кодом (деление на 0, обращение к несуществующему адресу памяти) или в результате аппаратного сбоя компонентов микропроцессора.
Внутрисистемные прерывания – асинхронно, случайно возникают в случае тех или иных событий на внешних устройствах, не входящих непосредственно в состав МПр, например прерывания
185
Техника микропроцессорных систем в коммутации
от системного таймера, прерывания от устройств ввода-вывода, прерывания, обусловленные отсутствием электропитания, прерывания, вызванные ошибками при обращении МПр к системной шине.
Программные прерывания, в том числе планируемые прерывания, периодические программные прерывания, прерывания, намеренно заложенные в программу – формируются в предсказуемых местах программы в результате выполнения МПр специальной команды, имитирующей прерывание В результате МПр переходит к выполнению новой последовательности команд. Это особенно важно при поддержке в системе таймеров выдержки времени, ограничивающих время выполнения программных задач и процессов при обработке вызовов в реальном времени. Планируемые прерывания также часто применяются программистами для отладки программного обеспечения. Межпроцессорные прерывания – асинхронно применяются для упорядочивания обмена данными между различными МПр.
Обработку прерываний выполняют модули операционной системы с помощью специальной процедуры обслуживания прерываний. Разработчики программного обеспечения системы управления узла коммутации приписывают прерываниям определенный приоритет, который определяет срочность и важность обработки данного прерывания. Как правило, максимальный приоритет получают внутрисистемные прерывания, генерируемые аппаратным обеспечением МПр. Аппаратные прерывания могут обслуживаться специальными модулями ядра операционной системы, а программные прерывания обслуживаются процедурами операционной системы, обслуживающими системные вызовы. Для обработки прерываний в составе операционной системы может использоваться т.н. диспетчер прерываний, координирующий обработку всех прерываний. Устройство или программный процесс формирует запрос на прерывание, который обрабатывается ОС и МПр, в результате чего работа ОС и МПр прерывается для запуска новой последовательности команд, соответствующей поступившему прерыванию. Таким образом, механизм прерываний позволяет ОС и МПр, системе управления в целом, реагировать на внутренние или внешние события.
186
Техника микропроцессорных систем в коммутации
В микропроцессорных системах обычно используется одноуровневая система прерываний, т.е. сигнал «Запрос на прерывание» от всех внешних устройств поступают на один вход (порт) процессора. Поэтому возникает проблема идентификации внешнего устройства, запросившего обслуживание по прерывания. Возникает также задача реализации заданной очередности (приоритета) обслуживания внешних устройств при одновременном поступлении нескольких сигналов прерывания.
Существуют два основных способа идентификации внешних устройств, запросивших обслуживания по прерыванию:
программный опрос регистров состояния, в частности проверка состояния разряда «Готовность внешнего устройства» контроллеров всех внешних устройств;
использование векторов прерывания.
При программном опросе регистров состояния в конце машинного цикла выполнения очередной команды процессор проверяет наличие требования прерывания от внешнего устройства. Начинается опрос регистров состояния контроллеров всех внешних устройств, работающих в режиме прерывания. Если сигнал прерывания существует и в микропроцессоре данное прерывание разрешено, то микропроцессор переключается на выполнение подпрограммы обработки прерываний. Как только подпрограмма обнаружит готовое к обмену внешнее устройство, выполняются действия по его обслуживанию. Программный опрос используется только в тех случаях, когда отсутствуют жесткие требования на время обработки сигналов прерывания внешних устройств. Приоритет внешних устройств определяется порядком их опроса.
При использовании векторов прерывания в ОЗУ существует таблица, где хранятся адреса процедур обработки прерывания. Эта таблица называется таблицей векторов прерываний. Как только сигнал прерывания получен, МПр выполняет команду перехода (безусловного или условного) на строку таблицы, соответствующей данному прерыванию. Затем по адресу, полученному из таблицы, производится переход в ту область памяти, где хранится подпрограмма обработки прерывания. При использовании векторов прерывания для обработки прерываний может использоваться специальное ап-
187
Техника микропроцессорных систем в коммутации
паратное устройство – программируемый контроллер прерываний, PIC. Это устройство назначает приоритеты поступающим запросам на прерывание, выявляет запросы с наивысшим приоритетом. В случае поступления запроса на прерывание от внешнего устройства, программируемый контроллер прерываний формирует сигнал запроса прерывания IRQ в сторону МПр. Если запрос обозначает прерывание, допустимое для данного типа МПр, то процессор генерирует в сторону программируемого контроллера прерываний сигнал под-
тверждения прерывания INTA (interrupt acknowledgement). Програм-
мируемый контроллер прерываний передаѐт на шину данных МПр вектор (код) прерывания, который считывается МПр. МПР определяет физический адрес ячейки памяти, начиная с которого следует считать программу, обслуживающую прерывание. При необходимости обслуживания большого числа источников запросов прерываний существует возможность каскадной схемы включения программируемых контроллеров прерываний, причѐм один из контроллеров будет ведомым, а остальные – ведомыми.
Взаключение рассмотрим общую последовательность обработки прерываний. Пусть прерывание генерируется устройством узла коммутации. При формировании сигнала прерывания сначала проводится идентификация устройства, которое сгенерировало запрос на данное прерывание. В результате обработки запроса на прерывание вырабатывается сигнал, передаваемый по специальным линиям прерывания в процессор. Линии прерывания служат для того, чтобы через контроллер общей системной шины, который транслирует прерывания шины во внутренние прерывания процессора, аппаратно сигнализировать процессору, что на шине произошло некоторое событие. Если приоритет вновь поступившего прерывания больше, чем приоритет текущей задачи, МПр переключается с выполнения текущей задачи на обработку события, вызвавшего прерывание.
Вслучае, если запрос на прерывание удовлетворен, то микропроцессор автоматически записывает в специальные регистры значение счѐтчика команд. Текущее состояние рабочих регистров сохраняется с помощью специального модуля операционной системы. Это необходимо, чтобы по окончании обработки прерывания вер-
188
Техника микропроцессорных систем в коммутации
нуться к выполнению прерванной программы. Потом происходит собственно обработка прерывания. Для этого запускается программа обработки прерываний, диспетчер прерываний выбирает следующий процесс для запуска, из памяти загружается и исполняется соответствующая программа с процессом, соответствующие содержанию поступившего запроса на прерывание. По окончании обработки прерывания и в отсутствие прерываний с высшим приоритетом, чем текущий, восстанавливаются состояния рабочих регистров и счѐтчика команд до поступления запроса на прерывание, в результате чего продолжает исполняться прерванная программа.
Рассмотри организацию прерываний в системе коммутации EWSD, работающей в режиме реального времени. Поэтому все запросы на прерывание, посылаемые в CP113с, должны обрабатываться за минимальное время после их получения. С точки зрения процессора CP113с, поступающие запросы на прерывания должны инициировать соответствующие задачи, подлежащие исполнению. Запросы на прерывание могут инициироваться в самом процессоре CP113с или за его пределами. Примером внешнего запроса на прерывание является реакция аппаратного и программного обеспечения на снятие абонентом микротелефонной трубки. Контроллер модуля абонентских линий (выполняет функции ИУУ), контроллер цифрового абонентского блока DLU (выполняет функции ИУУ или ГУУ), процессор GP блока LTG (выполняет функции ГУУ) последовательно обнаруживают и обрабатывают запрос пользователя на установление соединения. В результате процессор GP посылает в CP113 запросы для прерывания текущих задач и запуска коммутационной программы обработки поступающего вызовов. В процессе обработки вызова идентифицируется вызывающий абонент, происходит приѐм и обработка цифр набора номера согласно процедурам [70], инициируются следующие этапы процесса установления соединения. Примером внутреннего запроса является, например, прикладной процесс, инициирующий вывод данных на внешний носитель для целей сохранения и обеспечения надѐжности. В результате операционная система выполняет задачу вывода данных. Внутренние запросы также представлены программными прерываниями, которые инициируются процессами с помощью вызовов супервизора/планировщика.
189
Техника микропроцессорных систем в коммутации
Проблема состоит в том, что в системе коммутации одновременно могут существовать несколько запросов (задач), подлежащих обработке. Последовательность и приоритет обработки задач определяется процессором CP113 на основе уровней прерывания, задаваемых для отдельных задач. Здесь прерывание представляет собой операцию процессора, состоящую в регистрации предшествующего прерыванию состояния и установление нового состояния. Прерывание инициализируется по зарегистрированному в системе сигналу от программно-аппаратных компонентов узла коммутации. В результате обработки прерывания запускается на исполнение соответствующая программная задача. Каждой задаче назначается уровень прерывания, указывающий относительную важность задачи (весовой коэффициент задачи) в рамках главной программы управления EWSD.
В системе EWSD определено 8 уровней прерывания (пронумерованных от 0 до 7), причем уровень прерывания 7 является самым высоким, а 0 – самым низким. При поступлении новой задачи программа, выполняющаяся в текущий момент, может прерваться, а новая задача начинает обрабатываться, если еѐ уровень прерывания выше чем у текущей задачи. Запрос на выполнение задачи процессором CP113с называется «запросом на прерывание».
Процесс обработки прерываний происходит в три этапа, которые можно определить следующим образом:
1 этап. Запрос на прерывание – включает обнаружение новой ожидающей обработки задачи. Здесь процессор CP113с обнаруживает, что внутренний или внешний запрос на прерывание (и соответственно, новая задача) ожидает обработки. Процессор прерывает программу, выполняющуюся в текущий момент времени, выдает запрос на прерывание и запускает обработчик прерываний.
2 этап. Анализ прерывания – анализ ждущей обработки задачи и назначение уровня прерывания для обработки задач. Здесь обработчик прерываний принимает ожидающую обработки задачу и выполняет ее предварительный анализ для определения следующей информации:
определение уровня прерывания, связанный с запросом на прерывание;
190
