Лекция Тема Информационные системы реального времени. Содержание 5.Информационные системы реального времени. 5.1. Многопроцессорные архитектуры 5.2.1. Индустриальные применения 5.2.2. Решение STD МРХ 5.2.3. Решение STD32-STAR 5.3.1. Операционная система Spox 5.3.3. Операционная система Multiprox 5.3.4. Операционная система DEASY 5.Информационные системы реального времени. Компьютерные системы реального времени находят применение в различных областях науки и техники: экспериментальные научные исследования, измерительная техника, автоматизированные системы управления, медицина, ядерная энергетика, военная техника и т.д. Формальное определение систем реального времени можно дать в следующем виде: система реального времени – это система типа возбуждение – отклик (причина – следствие), в которой время реакции на возбуждение (отклик или следствие) либо ограничено возникновением любого другого возбуждения, либо проходит параллельно с новым возбуждением. Часто под вычислительной системой реального времени понимается аппаратно-программный комплекс, позволяющий сформировать определенные сигналы или параметры в темпе времени, соответствующем изменению данных на входе. Системы реального времени сильно привязаны к окружающим событиям. Любое действие или бездействие такой системы не остается без последствий. Достаточно сложным является организация действий системы на параллельные запросы, поэтому особое внимание в работе уделяется синхронизации процессов. Для программ реального времени особенно важной проблемой становится распределение ресурсов и их управляемость. Создание программного обеспечения для ИС реального времени достаточно сложная задача. Анализ результатов работы в жестких временных ограничениях и условиях параллелизма значительно труднее, чем в последовательных системах. В случае обнаружения ошибки в работе ИС реального времени достаточно сложно бывает обнаружить причину ошибки. Операции, выполняемые в реальном времени и в режиме многозадачности, играют важную роль в любой системе сбора информации и управления, но основным препятствием к их реализации является несовершенство операционной системы компьютера (особенно персонального). Необходимость режима реального времени объясняется тем, что требуется мгновенно распознавать процессы и реагировать на них. Нет никакого смысла регистрировать возмущения процесса и анализировать их после события. Кроме того, система должна обладать способностью выполнять одновременно несколько задач. Например, может возникнуть аварийная ситуация, требующая регулировки исполнительного устройства и получения отчетных данных, описывающих событие. После завершения сбора данных может возникнуть необходимость вывести их в графической или табличной форме, выполнить преобразования или расчеты, получить печатные документы или записать данные на диск. Многозадачность в реальном времени позволяет операторам, техникам и инженерам принимать решения во время работы системы, основываясь на значащей информации. Кроме того, она позволяет анализировать данные ретроспективно как для того, чтобы вернуться к событию, которое произошло очень быстро, так и для того, чтобы провести статистический анализ и сравнение на более высоком уровне, не прерывая сбора данных. Автоматизированное управление процессами может быть прямым либо диспетчерским. Прямое управление: ИИС имеет средства прямого управления, и регулирующие воздействия формируются на основе оценки параметров процессов и их сравнении с установленными или расчетными значениями. ИК осуществляет регулировки, которые зависят от установленных пределов или являются результатом выполнения определенного алгоритма. Пример – система автоматического поддержания климата, охраны и сигнализации в здании. В каждом помещении установлены датчики и приборы поддержания климата и охраны. Компьютер опрашивает датчики, сравнивает показания с установленными пределами, проверяет права доступа и формирует управляющие сигналы, соответствующие интерфейсу приборов поддержания климата и охраны. Диспетчерское управление: компьютер ИИС не выполняет прямых действий по измерению параметров процессов и управлению исполнительными устройствами. Компьютер служит лишь диспетчером для автономных контроллеров, соединенных цифровой магистралью. Компьютер загружает значения аварийных пределов, контрольные интервалы, константы и профили выполнения регулировок – информацию, необходимую контроллерам для осуществления регулировок и измерений. После этого контроллеры работают автономно. В приведенном выше примере компьютер лишь формирует профили управления и контрольные интервалы с отображением состояния датчиков. ИС реального времени необходимы как для прямого, так и для диспетчерского управления. Одна из наиболее серьезных проблем в процессе создания систем реального времени – производительность системы. Необходимы не только быстрые алгоритмы обработки данных, но и организация истинной синхронизации различных частей системы. Нет необходимости в быстрых алгоритмах обработки, если пользователь ИИС будет ожидать обновления данных. Части программ, которые работают в однопроцессорной системе, могут оказаться неэффективными или просто не работать в многопроцессорной системе. Системы реального времени очень требовательны к ресурсам компьютера, поэтому все чаще в ИИС реального времени используется несколько процессоров. Еще одна проблема, возникающая в процессе создания систем – доступ к промежуточным результатам (например, оценка и отображение на экране параметров регистрируемых сигналов). Само по себе получение их может оказаться сложной задачей, а делать это в ограниченных временных рамках с возможностью их отображения и сохранения не всегда удается. Трудоемкость построения систем реального времени во многом связана с жесткой привязкой к конкретным процессорам. Независимость от аппаратуры может быть реализована на уровне операционной системы и (или) за счет перекодирования программ. Если программа позволяет пользователю распределять задачи по процессорам (определять, какой блок программы выполняется тем или иным процессором) и определять временные интервалы (соотношение работа/ожидание для определенного процессора), то пользователь может скорректировать распределение программных модулей между процессорами. Разработка таких систем непосредственно связана с новым направлением – параллельные вычисления с использованием объектно-ориентированного подхода и представляет большой интерес для развития ИИС реального времени. Использование языков высокого уровня в процессе создания систем реального времени позволяет облегчить создание ПО и повысить его надежность. В настоящее время для обеспечения синхронизации при использовании нескольких процессоров в основном используются низкоуровневые методы, основанные на прерываниях и сообщениях (статическое распределение задач). Все чаще в ИИС реального времени стали применяться программные средства, позволяющие организовать потоки (или нити), которые как нельзя лучше подходят для систем реального времени и реализуются на уровне операционной системы (динамическое распределение задач между процессорами). Суть их состоит в том, что, инициализировав какую-то часть программы как поток, мы позволяем операционной системе выполнять ее на свободном в данный момент процессоре. Для обеспечения полной параллельности необходимы не только специализированные алгоритмы, но и инструментальные средства программирования, а также операционные системы реального времени. На рис. 5.1 и 5.2 представлены два упрощенных варианта организации обработки в системе реального времени. CPU 1 получает необработанные данные CPU 2 устанавливает связь с оператором CPU 4 осуществляет вычисления CPU 3 выполняет обработку , критичную по времени CPU 5 выводит данные на экран и на диск Рис. 5.1. Схема многозадачности, реализованная аппаратными средствами (соединение нескольких микропроцессоров) Interrupt 1 поступление необработанных данных Interrupt 2 поступление данных от оператора CPU выполняет всю обработку Interrupt 3 реакция на действия , критичные по времени Extra time вывод данных на экран и ожидание Рис. 5.2. Многозадачность, реализованная программными средствами 5.1. Многопроцессорные архитектуры Еще несколько лет назад многопроцессорные ВК были экзотикой, которой могли насладиться только в исследовательских лабораториях. С появлением компьютера Cray XMP наличие нескольких процессоров стало обязательным атрибутом всех суперкомпьютеров. Но увеличение объемов вычислений, возросшая сложность прикладных задач и удешевление аппаратных средств привели к появлению многопроцессорных систем. Сначала многопроцессорными стали серверы, затем рабочие станции и ВК. Процессоры могут быть объединены в систему различными способами в соответствии с конкретной архитектурой параллельной обработки. Существуют также различные методы программирования для таких систем. Различают следующие типы параллельных архитектур. Множественные потоки команд, один поток данных (МКОД) – несколько процессоров одновременно выполняют различные команды над одним потоком данных; типичный пример такой архитектуры – конвейерные системы. Один поток команд, множественные потоки данных (ОКМД) – несколько процессоров одновременно выполняют одну и ту же команду над различными потоками данных; примером такой архитектуры являются матричные процессоры. Множественные потоки команд, множественные потоки данных (МКМД) – каждый процессор может выполнять различные потоки команд над различными данными. Эта архитектура считается наиболее перспективной. Наиболее часто используется (особенно в серверах ЛВС) архитектура МКМД – множественные потоки команд, множественные потоки данных. В рамках этой архитектуры имеется два класса систем: с симметричной многопроцессорной обработкой – СМО и асимметричной многопроцессорной обработкой – АМО. СМО: все процессоры функционально идентичны, каждый может обмениваться данными со всеми остальными через общую оперативную память; симметричны память (все процессоры используют общее пространство ОЗУ и могут исполнять единую копию операционной системы) и подсистема ввода-вывода (все процессоры имеют доступ к одним и тем же устройствам ввода-вывода и любой процессор может получить прерывание от любого источника); работа всех прикладных программ не зависит от числа процессоров в ВК. Трудно обеспечить параллельную работу процессоров, т.к. используется динамический параллелизм, который обеспечивается на уровне операционной системы. АМО: каждый процессор имеет свою собственную память и внешние устройства; используется статический параллелизм – процессы распределяются между процессорами до начала их исполнения (на этапе компиляции прикладных программ); взаимодействие между процессорами осуществляется через механизм передачи сообщений. Недостаток – невозможно оперативно переназначать задачи процессорам, поскольку это требует внесения изменений в программный код, трудно масштабировать, и модернизация – сложная задача. Преимущество – больше возможностей для создания специализированных производительных алгоритмов с использованием особенностей специальных вычислителей (ЦОС, обработка изображений, векторные процессоры), легче программировать параллельные процессы при небольшом количестве процессоров (но трудно обеспечить эффективное взаимодействие без “простаивания” процессоров). Может функционировать несколько копий ОС и несколько копий прикладных программ, что позволяет, работая с одним набором данных, решать одновременно разные задачи. Больше подходит для бесприоритетных ОС, когда не происходит перераспределения процессов в ходе выполнения. Распределение задач между специализированными процессорами обеспечивает асимметричной модели существенный выигрыш в производительности. 5.2. Многопроцессорные архитектуры и промышленные системы В сфере компьютерной техники малых форм (ПК) решений, обеспечивающих многопроцессорную работу, совсем немного. Популярна и знакома СМО от Intel (в оригинале SMP – Symmetrical Multi Processing). SMP сегодня – неотъемлемая принадлежность сервера и благодаря Windows NT Workstation может применяться на ПК. Это уже давно не дорогостоящая утопия – системные платы с парой Pentium или Pentium Pro (II) предлагаются многими известными поставщиками и вполне доступны. Работа нескольких процессоров поддерживается операционной системой. Запускать такую машину под MS-DOS или Windows версий от 3.1 до 95 – пустая трата времени и денег. В пределах архитектуры SMP популярны двух- и четырехпроцессорные системы (есть шестипроцессорная версия сервера ALR серии Revolution). Второй путь – кластеризация, он связан с операционной средой не менее чем SMP. Эффективность объединения нескольких машин в одну систему существенно зависит от качества и мощности коммуникаций между ними и значительно в меньшей степени зависит от мощности вычислителей. К примеру, оригинальная архитектура серверов компании Sequent является кластерным набором четырехпроцессорных сборок SMP, объединенных магистралью передачи данных в одном корпусе под управлением уникальной ОС. Sun для своих кластеров использует скоростной Fiber Channel, DEC – магистраль FDDI. Кластерные решения очень громоздки, сложны и дороги. Далеко не каждый администратор рискнет сегодня использовать кластерные методы организации сетей, несмотря на все их преимущества. Технологию SMP принято относить к “сильно связанным” мультипроцессорным архитектурам, а кластеры соответственно – к “слабосвязанным”. С точки зрения потребительских качеств и отказоустойчивости разница очевидна: грубый электрический дефект одного процессора многопроцессорной сборки SMP выводит из строя всю сборку, отказавший же узел кластера не препятствует дальнейшему функционированию всего кластера. Живучесть кластеров, бесспорно, вне конкуренции, и только исключительная сложность и дороговизна их организации тормозят быстрое распространение этой технологии. 5.2.1. Индустриальные применения Известны следующие конструктивы ВМ: индустриальные ПК и рабочие станции; миниатюрные ПК (мини-ПК) для установки в панели управления; панельные ПК в конструктиве “открытая рама”; одноплатные ПК для промышленного применения. Области применения: встраиваемые системы, торговые автоматы, средства связи, медицинское оборудование, банковские системы, АСУТП, системы охраны, пульты управления аттракционов, бортовые системы на транспорте, лабораторные системы автоматического управления и контроля, измерительные системы, переносные диагностические комплексы. В любом исполнении (за исключением одноплатных ПК) индустриальные машины построены в основном на пассивных интерфейсных соединителях и активных процессорных картах. Этим практически и исчерпывается общее конструктивное отличие промышленных машин от конторских персоналок. Поэтому на уровне рабочих станций (мощных управляющих и диспетчерских компьютеров) нет препятствий для использования тех же мультипроцессорных решений, которые упоминались выше. Дальнейшее увеличение числа “голов” в одной компьютерной системе маловероятно, используемые стандартные интерфейсные магистрали ISA, EISA или даже РСI не допускают наличия на магистрали нескольких “ведущих вычислителей”. При попытке механически установить в промышленную машину второй процессорный модуль система “повиснет”, не в силах решить вопрос приоритета (ввиду отсутствия аппаратного арбитра). Высокая надежность, отказоустойчивость, готовность, саморезервирование и самовосстановление в большинстве промышленных приложений есть суровая и осознанная необходимость. Существует много аппаратных решений для вычислительных систем (сетей), однако самое надежное из них – использование универсальной платформы. Экспансия ПК – совместимых систем в области, где ранее и представить их было немыслимо, носит глобальный характер. Производители технологического программного обеспечения активно переносят свою продукцию на платформу Windows NT, оценив высокую работоспособность и живучесть этой операционной среды. Компания OR Technology доработала NT до требований к системам реального времени. NT в версии OR вполне отвечает всем жестоким индустриальным канонам и может называться системой реального времени, ни в чем не уступающей признанным WinWorks или QNX. Конечно, NT весьма требовательна к аппаратным ресурсам, даже, можно сказать, прожорлива; однако трудно конкурировать с объемом пользовательского сервиса, предоставляемого Microsoft. NT постепенно выживает из АСУТП специализированные ОС, как Intel х86 выживает специализированные аппаратные процессорные архитектуры. 5.2.2. Решение STD МРХ Технология STD80 была спроектирована как модифицированная и адаптированная промышленная версия интерфейсной магистрали первых IBM PC. Внешне разъем STD выглядит близнецом разъема IBM XT (8битовая секция разъемной пары, составляющей магистраль ISA). Логическое сходство также полное: протокол обмена (handshake) данными и адресами идентичен ISA. Поэтому данный интерфейс относится к ПКсовместимым; программы, работающие с памятью и устройствами ввода-вывода, чувствуют себя комфортно и в конструктивах STD, и в обычных ПК. По-другому исполнена система прерываний, она универсализирована и реализует несколько механизмов приоритетности устройств и каскадирования (система прерываний STD более гибка, чем оригинальная). Модифицирована также система приоритетов доступа к системной магистрали периферийных устройств (мастер-режим). Для обеспечения всех дополнительных свойств интерфейс STD располагает 7 специальными сигнальными линиями, отсутствующими у шины ISA. Те же семь сигналов плюс линия синхронизации обеспечивают функционирование от одного до семи процессорных блоков на одной интерфейсной магистрали, фактически в одном корпусе. Методика мультипроцессорного сосуществования описана стандартом STD-MPX Version 1.0 (Multi Processing extensions), который является неотъемлемой частью общего стандарта STD, увековеченного документом IEEE 961. Несколько процессоров используют последовательный (цепочный) механизм приоритета доступа к шине, а соответственно – и ко всем периферийным устройствам на ней. Механизм арбитража реализован аппаратно и не требует модификации программного обеспечения. Цепочный механизм обеспечивает высший приоритет для самого правого (по месту установки) процессорного модуля; затем приоритет убывает влево. При попытке обращения к устройствам на шине STD процессор, занимающий в данный момент шину (беседующий с каким-либо устройством), вынудит инициатора подождать. Это вносит в систему предсказуемость, так как максимальная задержка доступа к шине для процессорного модуля с данным (известным после установки) приоритетом легко учитывается, что необходимо для работы задач реального времени. Для интеллектуальной координации работы процессоров обычно используется глобальная память (двухпортовая Dual Ported Memory), доступная всем процессорам через шину STD, своего рода ОЗУ общего пользования. Физически двухпортовая память – обычная карта (модуль STD), занимающая одно место (слот). Область глобальной памяти отображается на адресное пространство каждого процессора и присутствует там как “собственная”. Обращение к такой памяти ничем, кроме скорости, не отличается от обычного режима и для пользовательских программ прозрачно. Окно (frame), появившееся в памяти каждого из процессоров, одновременно видно всем (для чтения) и доступно для записи в порядке общей очереди приоритетов. Двухпортовая память используется для обмена сообщениями не только между процессорами, установленными в одной аппаратной раме (корпусе), но и между двумя или более автономными системами. В этом случае коммуникация очень напоминает упрощенное сетевое взаимодействие с очень высокой скоростью, но на очень коротких дистанциях (не более метра). Сравнивая STD МРХВ с ЛВС, можно отметить высокую скорость обмена информацией (около 60 Мбит) с периферийными устройствами в качестве разделяемой (совместно используемой – shared) сетевой периферии и полное отсутствие сетевых операционных систем и драйверов. Могут использоваться любые маломощные процессоры под управлением обычных версий MS-DOS от 3.3 до 6.22. Наличие арбитражной логики не является обязательным для любого процессорного модуля стандарта STD. Совместное использование процессорных модулей, оборудованных арбитражной логикой и свободных от нее, в одной аппаратной раме недопустимо, как для традиционных (ПКсовместимых), так и промышленных компьютеров. 5.2.3. Решение STD32-STAR 32-разрядная версия технологии STD названа STD32. Обеспечена совместимость вниз: конструктивы STD32 прекрасно принимают и понимают 8-битовые модули STD80 (оригинальный формат) и 16-разрядные модули STD. STD80 и STD являются логическими аналогами магистрали ISA в восьми- и шестнадцатиразрядном виде, а STD32 – это промышленная версия магистрали EISA, от которой она унаследовала также механизм арбитража мастер-устройств (инициативных периферийных устройств, захватывающих шину для операций ввода-вывода, минуя центральный процессор). STD32 унаследовала от STD и геометрический размер, и суровый промышленный характер: стойкость, надежность и живучесть. Однако многопроцессорный вариант выполнен существенно иначе, чем STD МРХ – на более высоком уровне, отвечающем потребностям и возможностям 32-разрядных систем. Разработчики из Ziatech именовали эту технологию STAR (Звезда). Техника STD32 как явление достаточно нова и отвечает современному состоянию программного обеспечения: она ориентирована на Windows вплоть до NT, а также популярную операционную систему реального времени QNX. Модуль-арбитр контролирует 15 левых слотов, где и должны быть расположены все входящие в систему STAR процессоры в количестве от двух до семи. Арбитр фиксирует номер процессора, а также идентифицирует внешние запросы от процессоров на передачу информации через каналы прямого доступа DMA и запросы к системе прерываний. Сигналы идентификации запросов прерываний (IRQ) и DMA выводятся на внешние линии и могут быть использованы для чего угодно, в том числе для прямой переадресации процессорам. Все процессоры, присутствующие в системе, снаряжены модифицированной версией Базовой Системы Ввода-Вывода (BIOS – STAR). “Звездный” BIOS делает мультипроцессорную работу абсолютно прозрачной и не требует никакой программной адаптации. Некоторая аппаратная специализация касается лишь одного, самого левого процессорного модуля: он считается первичным (primary master) и отвечает за синхронизацию шины (таймерные импульсы), а также за инициализацию периферийных устройств, то есть приведение всей системы в работоспособное состояние. Все процессоры в системе равноправны и автономны. На каждом процессоре может быть загружена своя операционная система: MS-DOS, MS Windows или QNX со стартовой программой. При отсутствии информационного взаимодействия между процессорами каждый работает как самостоятельная персоналка (в терминологии Ziatech – виртуальный ПК). STAR поддерживает уникальный механизм переключения операторских консолей. Видеоадаптер с контроллером клавиатуры, собранный на одном из процессоров системы, простым нажатием комбинации клавиш Ctrl-Alt-Space полностью переключается на другой процессор и становится его полноценной консолью (другой виртуальный ПК). Еще интереснее выглядит комплект утилит и драйверов Star Windows, обеспечивающий механизм DDE (Динамический Обмен Данными) не только между задачами одного процессора, но и между процессорами (задачами, решаемыми на различных процессорах). Виртуальная же консоль под Star Windows выглядит так, что пользователь может открыть все семь консолей на одном экране, в разных “окошках”, контролируя все задачи и все процессоры. STAR поддерживает все современные версии Windows. Магистраль STD32 рассматривается ОС QNX как локальная сеть, а любой сетевой адаптер, обеспечивающий подключение к внешней сети, рассматривается как соответствующий мост (bridge) между сегментами сети. Со стороны внешней сети такая QNX-система выглядит аналогично – как несколько адресуемых QNX-хостов. 5.3. Операционные системы реального времени для ИИС Для создания многопроцессорных систем, работающих в режиме реального времени (РВ), необходимо базовое программное обеспечение, а именно операционная система. ПО этого направления делится на две большие группы. К первой группе можно отнести небольшие модули, загружаемые на ЦОС-процессоре, а также библиотеки подпрограмм для основного процессора, позволяющие реализовать обмен данными. ЦОС-процессор в такой системе является подчиненным процессором, управляемым основным (host-процессором). Организация функций систем РВ основана на обработке прерываний и механизме обмена сообщениями. Главное достоинство этих систем – небольшая цена. К системам этого типа можно отнести VCOS и DEASY. Вторая группа операционных систем – это операционные системы реального времени типа Spox или Multiprox. Цена этих систем составляет порядка 20-40 тыс. долларов, но возможности их значительно выше. Операционная система Spox фирмы Spectron Microsystems – одна из ведущих систем, используемых в системах РВ для различных применений, в том числе на платформах с модулями ЦОС. Spox – это специализированная операционная система реального времени, создающая операционное окружение для приложений по обработке данных в реальном режиме. Другая система – Multiprox фирмы Comdisco. Multiprox – это система разработки, которая позволяет инженерам графически формировать приложения и разделять ЦОС-задачи для нескольких ЦОС-процессоров. 5.3.1. Операционная система Spox Spox (создана фирмой Spectron в 1987 г.) – это обрабатывающая сообщения операционная система, структурированная для обработки сигналов и приложений с интенсивной математикой. Это высокоуровневое окружение для приложений имеет простые в использовании свойства, включая независимый от устройств ввод-вывод, удобные установки процессора и интерфейс с основной машиной (имеется в виду основная ОС). Spox обеспечивает объектно-ориентированную модель для ЦОС и математической обработки. В последние годы Spectron ввела OSPA (открытая архитектура обработки сигналов) – расширение к Spox для ЦОС-приложений на основной машине. Запускаясь под MS Windows, OSPA обеспечивает интерфейс на уровне основной машины. Используя этот интерфейс, host-приложения могут планировать и контролировать работу многочисленных программ на ЦОСсопроцессорах (но это не параллельная обработка). OSPA является своего рода интерфейсом API (интерфейсом прикладных программ), который облегчает интеграцию ЦОС-обработки в интерактивное приложение. Spectron изначально развивал Spox для TMS320C30, но сейчас операционная система запускается также и на Motorola 96002, TI C40 и Analog Device 21020. Spectron также выпускает версию Spox для параллельной обработки. Используемая модель обработки сообщений поддерживает многозадачность. Многозадачное расширение построено вокруг примитивов, основанных на сообщениях, и может обеспечить высокоскоростную передачу данных через каналы ввода-вывода. Spox позволяет совместно использовать память, установленную на отдельном модуле. SPOX поставляется в четырех основных конфигурациях. Однородные встраиваемые системы. Процессор ЦОС играет роль как общецелевого, так и специализированного процессора. По существу, ЦОСпроцессор замещает специализированный контроллер. Со SPOX ЦОСпроцессор одновременно выполняет алгоритмы обработки сигналов вместе со сложным контролем по связи задач, прежде выполняемых на специализированных контроллерах. Для приложений, требующих дополнительных мощностей, можно просто использовать дополнительные ЦОСпроцессоры. SPOX поддерживает многопроцессорность. Разнородные встраиваемые системы. Встроенные компьютерные системы реального времени с полными чертами операционной системы (например, VXWorksÔ, OS-9Ô, LynxOSÔ) выполнены на основе ЦОС-подсистем. Это традиционная конфигурация, где ЦОС-подсистема прибавляется к встраиваемой компьютерной системе. Извлекая выгоду из приложений ЦОС в этих системах, Spectron предлагает сбалансированный подход, объединяющий традиционные встраиваемые компьютерные системы (используемые в промышленности) и DSP. Это открывает новый диапазон возможностей для проектирования встроенного управления. Компьютерные интегрированные системы. В данной конфигурации рабочие станции контролируют ЦОС-подсистемы. Приложение ЦОС запускается в привычном интерактивном окружении (MS-WinowsÔ, UnixÒ, DOS), выполняя приложение как тест или измерение, мониторинг контроля процесса, медицинские представления, сбор данных. Здесь приложение имеет ресурсы как основной, так и ЦОС-системы, действуя под управлением рабочей станции. Мультимедиа системы. Компьютер требует мощных вычислительных затрат по воспроизведению мультимедийных приложений, что соответствует задачам ЦОС: аудиозапись и воспроизведение, видео в реальном режиме, распознавание речи, синтез звука, телекоммуникационные функции, такие, как факс, модем. ЦОС-модуль размещается либо на материнской плате, либо на дополнительной плате, а SPOX усиливает возможности мультимедиа в привычном пользовательском окружении. SPOX поддерживает высокопроизводительную многозадачность, обработку прерываний, управление памятью, ввод-вывод в реальном времени и большой набор функций по обеспечению взаимосвязи между задачами и процессорами. SPOX имеет математическую и специализированную ЦОСбиблиотеку функций, многие из которых написаны на ассемблере для повышения производительности. SPOX поддерживает модель объектноориентированного программирования над векторами, матрицами и фильтрами. Для обеспечения этого имеется символьный отладчик и компиляторы языков высокого уровня, таких, как Си. Библиотека SPOX может использоваться на различных платформах, позволяя сосредоточиться на создании собственного приложения, не отвлекаясь на зависимость от платформы. 5.3.3. Операционная система Multiprox Второе направление в развитии ПО – это Multiprox фирмы Comdisco, – пакет, который является новым выбором SPW (Signal Processing Workstation). Используя инструментальное множество, инженеры могут определять ЦОСприложения графически, используя графические объекты, которые представляют компоненты ЦОС- обработки. Multiprox позволяет инженерам выделять разделы среди потоков данных, рисовать диаграмму течения данных и определять порции, работающие на разных процессорах. Дополнительно SPW-инструментальное множество и Multiprox автоматически преобразуют диаграммы к процессорно-зависимому Си-коду и встраивают в ПО связи или межпроцессорную коммуникацию, чтобы передавать данные от одного процессора другому. Диаграммы потоков данных преобразуются в Си-программу, содержащую подпрограммы, некоторые из которых написаны на ассемблере и вручную оптимизированы. Таким образом, инженер может использовать инструменты, чтобы распределять высокоуровневое ПО на различные процессоры или смешивать процессоры. 5.3.3. Операционная система VCOS VCOS (Visible Caching Oparating System) делает процессоры ЦОС сопроцессорами. VCOS – переносимая, многозадачная и многопроцессорная операционная система реального времени. VCAS (VCOS Application Server) – резидентная на host-системе программа, загружает и связывает ЦОС-задачи и обеспечивает управление памятью и буфферизацию ввода-вывода между host- и ЦОС-процессорами. VCOS является “минимальной” операционной системой – она занимает менее 400 32разрядных слов в памяти процессора. ОС использует память hostсистемы для запоминания программы и данных. Она использует ее как ресурс, чтобы кэшировать данные и код для более быстрой обработки на процессоре. VCOS является “подчиненной” по отношению к host ОС, которая располагает и контролирует VCOS структуры данных, избегая таким образом соперничества между подсистемами при доступе к памяти. VCOS выполняется в высоко приоритетном режиме. VCOS поставляется вместе с полной библиотекой ЦОС-функций для мультимедийных приложений. Эти приложения включают V.32 модем, V.29 FAX модем, видеозапись, обработку речи, графику, функции сжатия аудио- и видеоинформации. 5.3.4. Операционная система DEASY Операционная система DEASY предназначена для разработки, отладки и выполнения программ ЦОС для процессорных модулей DSP3x фирмы “Инструментальные системы”. DEASY – однозадачная система реального времени. Ни одна из системных функций не блокирует обработку внешних событий (прерываний процессора) на величину более 500 нс. Основная концепция при разработке программ с использованием DEASY заключается в том, что вокруг сигнального процессора создается виртуальная операционная среда, позволяющая ему играть роль центрального процессора для всего вычислительного комплекса, построенного на базе ПК. Таким образом, обеспечивается прозрачный доступ процессора ЦОС ко всем ресурсам ПК, включая экран монитора, клавиатуру, дисковые устройства, память, порты ввода-вывода и т.д. При этом облегчается процесс переноса программ из другой среды программирования и быстрое прототипирование программ обработки сигналов с использованием традиционных способов. Операционная система DEASY включает набор библиотек и утилит для составления и отладки прикладных программ ЦОС. Библиотека System.a30 содержит набор функций для управления процессором TMS320C30 и доступа к его внутренним регистрам из Сипрограмм. Библиотека Host.lib состоит из функций для инициализаций, загрузки, управления и обмена информацией между платой ЦОС и ПК. Библиотека Deasy.a30 содержит набор функций-аналогов библиотеки компилятора Borland C и используется для “прозрачного“ доступа к ресурсам ПК из прикладной программы, выполняемой на плате ЦОС. Библиотека Bgi.a30 включает в себя функции-аналоги графической библиотеки компилятора Boland C и используется для доступа к графическим ресурсам IBM PC. Исполняющая среда Deasy.exe предназначена для загрузки и выполнения прикладных программ, составленных с использованием приведенных выше библиотек. Она также содержит простейший диалоговый монитор интерактивного взаимодействия с платой ЦОС. Символьный отладчик Kg30.exe, или символьный отладчик Cq30.exe, предназначен для отладки прикладных программ, выполняемых на плате ЦОС. Библиотеки системных функций System и Host. Для организации работы многозадачного режима необходимо обмениваться сообщениями, которые отображают текущее состояние работы программ. Например, после окончания вычислений на одном процессоре (DSP) необходимо сообщить центральному процессору (CPU) о том, что он может забрать данные. При пересылке данных с CPU на DSP необходимо сообщить DSP, что он должен производить расчет. Библиотеки системных функций System и Host позволяют организовать обмен сообщениями и данными. Библиотека System предназначена для компоновки с программами пользователя, написанными на языке Си или на Ассемблере для процессора TMS320C30. Библиотека Host предназначена для управления платой DSP со стороны ПК из программы пользователя, написанной на языке Си. Данная библиотека поставляется для компиляторов: Borland C/C++, Microsoft C, Watcom C.