ЖУРНАЛ СТА 1/1996

Программное обеспечение Естественно, специфика промыш- ленных применений наложила свой отпечаток на используемое про- граммное обеспечение. Конечно, это тема для отдельной большой статьи, поэтому здесь я приведу основные, на мой взгляд, требования к про- граммному обеспечению и неболь- шой обзор основных продуктов в этой области. ● Первым требованием является на- дежность программного обеспече- ния. Действительно, одно дело, ког- да у вас «зависает» редактор текста в офисе, а другое дело, когда непра- вильно работает программа, управ- ляющая ядерным реактором или космическим кораблем. В конечном счете, многие новации последнего времени, типа структурного про- граммирования, объектно-ориенти- рованных языков, CASE-технологий, появились в результате стремления писать все более сложные програм- мы с меньшим количеством ошибок. ● Вторым требованием является быс- трое реагирование на какие-либо внешние события или изменения в параметрах управляемых процессов. Системы, работающие в соответст- вии со вторым требованием, часто на- зывают системами реального време- ни. Разумеется, понятие «быстрый» является относительным. Типовое время реагирования на внешние воз- действия, необходимое современным индустриальным системам, составля- ет десятки микросекунд. В то же вре- мя существует много задач, где инер- ционность протекающих процессов позволяет реагировать с задержкой в десятки, а то и в сотни миллисекунд. В этом случае часто применяется по- нятие «мягкое реальное время». Строго говоря, отождествление по- нятий «реальное время» и «быстрый» не является верным. Например, если ваша система регистрирует уровень грунтовых вод, то и одно измерение в час соответствует требованиям ре- ального времени для этого процесса. ● И третьим требованием, часто предъявляемым к программному обеспечению систем управления, является многозадачность. Это требо- вание проистекает из подчас чрезвы- чайно сложной и многоуровневой природы управляемых процессов, когда необходимо одновременно ре- ализовать сложные алгоритмы уп- равления различными аспектами или частями реального объекта. Каждая задача выполняет свою долю работы по управлению объектом, и все они делят между собой ресурсы вычислительной системы в зависи- мости от своего приоритета и от внешних и внутренних событий, свя- занных с конкретной задачей. Сущес- твует целый ряд алгоритмов распре- деления ресурсов между задачами, рассмотрение которых, впрочем, вы- ходит за рамки данной статьи. Дру- гим тесно связанным с многозадач- ностью понятием является многопо- точность. Хотя терминология здесь не совсем устоялась, под многопо- точностью, как правило, понимают возможность выполнения в рамках одной задачи нескольких независи- мых процессов (потоков команд), ко- торые, в отличие от задач, пользуют- ся общими участками кода и данных. Названным требованиям должны удовлетворять все уровни программ- ного обеспечения системы. Условно можно разделить программное обес- печение на три уровня: 1. Базовая система ввода-вывода (BIOS). 2. Операционная система и драйве- ры (OС). 3. Собственно прикладные программы. BIOS осуществляет непосредствен- ный интерфейс между аппаратурой и программным обеспечением верхних уровней. Ведущие фирмы-поставщики BIOS ориентируются в основном на рынок офисных компьютеров и не применяют специальных мер для обес- печения требований индустриальных приложений. Основная опасность при обращении к BIOS — это возможность запрета прерываний на достаточно долгое время, в результате чего может быть пропущена важная информация от быстродействующих датчиков или телекоммуникационных устройств. Вот почему, с одной стороны, есть фирмы, предлагающие BIOS, ориенти- рованные на приложения «жесткого» реального времени, а с другой стороны, многие операционные системы ми- нимизируют взаимодействие с BIOS или не обращаются к ней вообще. Операционная система выполняет базовые функции по интерфейсу с оператором, запуску программ, рас- пределению памяти, поддержке фай- ловой системы и т. п. Наиболее рас- пространенной операционной систе- мой, конечно, является MS-DOS фир- мы Microsoft и другие совместимые с ней. Последние версии обладают при- емлемой надежностью, однако нет ни- какой поддержки многозадачности, а попытки реализовать ее в виде над- стройки наталкиваются на необходи- мость решения проблемы нереентера- бельности DOS. Создатель системы ав- томатизации, как правило, встает пе- ред выбором: или использовать много- задачное ядро реального времени, ра- ботающее над DOS, или перейти на другую операционную систему. В пер- вом случае используются самодельные или коммерчески распространяемые библиотеки программ, реализующие функции многозадачной ОС, напри- мер C-TASK или RT-Kernel. Во втором случае открывается богатый выбор операционных систем, разработан- ных специально для применения в системах «жесткого» реального вре- мени. Эти ОС часто так и называют операционными системами реально- го времени. На рынке существует не- сколько десятков операционных сис- тем реального времени. У нас извест- ны такие ОС, как QNX, OS-9000, VxWorks, iRMX, VRTX, Nucleus и другие. Существует два подхода к переноси- мости программного обеспечения: первый — это поддержка одной ОС одновременно нескольких аппаратных платформ, второй — это обеспечение стандартногоинтерфейсамежду прик- ладными программами и ОС. В качест- ве такого стандарта часто используют программный интерфейс, разрабо- танный для UNIX подобных операци- онных систем и получивший назва- ние POSIX (Portable Operating System Interface for UNIX). То есть ваша про- грамма, написанная в соответствии со стандартом POSIX, должна надежно работать на любой аппаратной плат- форме при условии применения POSIX совместимой операционной системы. При проектировании ОС реально- го времени все чаще используется идеология микроядра, которая уве- личивает надежность программного обеспечения и позволяет использо- вать только те компоненты операци- онной системы, которые необходимы в каждом конкретном случае. Так, на- пример, микроядро одной из самых распространенных операционных сис- тем QNX имеет размер менее 10 кбайт. Модуль, ответственный за файловую систему, например, запускается как одна из задач и может быть легко уда- лен. Все драйверы также функциони- руют как независимые задачи. То есть, если в вашей встроенной системе не используются файловые операции или отсутствуют интерфейсы с какими- либо внешними устройствами, вы можете просто не включать в состав операционной системы, функциони- рующей в вашем изделии, соответ- ствующие модули, высвобождая тем самым память для более эффектив- ного выполнения приложений. «А как же многозадачные и многопо- точные Windows NT и OS/2?» — резон- но спросит читатель. Да, эти новейшие операционные системы оказывают определенное давление на рынок опе- рационных систем реального време- ни. Тем не менее обе системы ориен- тированы на офисные применения и ОБЗОР Аппаратные средства 1/96 12

RkJQdWJsaXNoZXIy MTQ4NjUy