КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Структура процессов
Третьей из ряда важнейших для системы А-7Е архитектурных структур является структура процессов. Модуль расширения компьютера содержит виртуальный интерфейс программирования с поддержкой мультипроцессорной обработки, хотя собственно бортовой компьютер А-7Е такой возможности не имеет. Предполагалось, что в определенный момент его заменят мультипроцессорным компьютером. Исходя из этого предположения, программное обеспечение было реализовано в виде набора сотрудничающих последовательных процессов, которые путем синхронизации (для взаимодействия друг с другом) получали возможность обращаться к совместно используемым ресурсам. При помощи неоперативного (пред-прогонного) планирования этот набор удалось сформировать как одиночный исполняемый поток, который впоследствии должен был загружаться на базовый компьютер. Процессом называется набор программных шагов, повторяющихся в ответ на запускающее событие или временное ограничение. У него собственный поток управления, а в ожидании события он сам себя приостанавливает (обычно для этого вызывается одна из программ сигнализации о событиях интерфейса данного модуля). Процессы в системе А-7Е создаются с двумя целями. Во-первых, с их помощью драйверы функций вычисляют для авиационной программной системы выходные значения. Исполняться они должны либо с определенной периодичностью (например, для беспрерывного обновления позиции символов на проекционном бортовом индикаторе), либо в ответ на какое-то запускающее событие (например, после нажатия пилотом кнопки сброса снаряда). Реализовывать эти действия в виде процессов вполне естественно. Обобщенно структуру процессов управления функциями можно представить следующим образом: ♦ Периодический процесс: запускается каждые 40 мс. - В целях сбора всех значимых входных значений вызывает процедуры доступа других модулей. - Вычисляет конечное выходное значение. - Для отправки выходного значения окружению вызывает процедуру со- ответствующего модуля интерфейса устройства. ♦ Периодический процесс завершается. ♦ Процесс по требованию. - Ожидание запускающего события. - Процесс вычисляет конечное выходное значение. - С целью запуска действия в окружении процесс запускает соответству- ющую процедуру модуля интерфейса устройства. 4- Процесс по требованию завершается. Несколько реже процессы запускаются в целях реализации отдельных процедур доступа. Если издержки вычисления значения, возвращаемого процедурой доступа, оказываются непозволительно высокими, то, для того чтобы выдержать временные рамки, программист может организовать непрерывное фоновое вычисление значений и при вызове процедуры доступа возвращать последнее из них. К примеру, это может выглядеть так: ♦ Процесс: запускается каждые 100 мс. - Для подсчета значения собирает входные данные. - Подсчитывает значение. - Сохраняет его в переменной most_recent. ♦ Процесс завершается. ♦ Процедура get_value(р!) pi:= most_recent. return ♦ Процедура завершается. Итак, структура процессов состоит из набора программных процессов. Характерное для нее отношение «синхронизируется с...» основывается на событиях, о которых одни процессы сигнализируют, а другие этого ожидают. На этом отношении, в свою очередь, базируются операции планирования, и в том числе — предотвращение взаимоблокировки. Методики неоперативного планирования, задействованные в программном обеспечении А-7Е, мы обсуждать не будем; сказать о них нужно лишь следующее: во-первых, они позволяют избежать непроизводительных издержек, свойственных оперативному планированию; во-вторых, они не могут существовать без информации, содержащейся в структуре процессов. Последняя также предусматривает оригинальный прием оптимизации — путем слияния двух, по большому счету несвязанных, процессов планирование во многих ситуациях упрощается, а издержки контекстного переключения, которые имеют место при приостановке одного процесса и возобновлении другого, сводятся на нет. Эта методика, применяемая автоматически в период конструирования системы, скрыта от программистов. Роль структуры процессов в архитектуре А-7Е сформулирована в табл. 3.5. Структура процессов появилась последней — уже после проектирования остальных структур. Процедуры модулей управления функциями были реализованы в виде процессов. Другие процессы в фоновом режиме выполняли продолжительные вычисления, обеспечивая готовность соответствующих значений. В структуре процессов зафиксирована информация двух видов. Первый вид — это документация по процедурам, включенным в тела процессов. Она дает представление о проходящих через систему потоках и сообщает конструкторам перечень процедур, требующих реентерабельного кодирования (кодирования в расчете на способность одновременного ведения нескольких потоков управления), — для этого применяются защищенные хранилища данных или взаимное исключение. Кроме того, эта информация позволила проектировщикам понять, какие процедуры впоследствии будут запускаться чаще других, и, соответственно, определить области, перспективные в плане проведения оптимизации. Второй вид информации в рамках структуры процессов предполагает документирование процессов (или последовательных сегментов потоков процесса), которые не могут исполняться одновременно. На самом деле области взаимного исключения окончательно фиксируются только после завершения кодирования процессов; и все же, исходя из выявленных на раннем этапе отношений «исключения» между объектами, участники группы планирования могут установить отдельные количественные требования к неоперативному планировщику и приступить к планированию в областях, в которых автоматизация должна была принести наибольший эффект. УСПЕХ ИЛИ ПРОВАЛ? В своей колонке редактора The Journal of Systems and Software за ноябрь 1998 года [Glass 98] Боб Гласс (Bob Glass) высказывает мнение, что проект А-7Е в конечном итоге провалился, поскольку рассмотренная в этой главе программная система так никогда и не заработала. Я очень уважаю Боба как личность и как специалиста, но в данном случае, уверен, он ошибается, пытаясь оценивать исследовательскую систему по коммерческим стандартам. Что я имею в виду? У научного и предпринимательского сообществ разные культуры и разные критерии успеха. Взять хотя бы то, как представители этих сообществ «подают» себя клиентам. Предприниматели делают упор на надежность поставок, соблюдение временных
и финансовых ограничений. Вполне законными были бы претензии покупателя, если бы заказанный им автомобиль доставили в автосалон позже оговоренного срока, за более высокую цену и с нежелательными характеристиками. Исследователи «выставляют на продажу» свои концепции. Так, в любом научно-исследовательском проекте описывается, каким образом в случае открытия финансирования этот проект изменит окружающий мир. Если окажется, что аналог результата исследований можно купить в соседнем супермаркете, у спонсора будут все основания выказывать недовольство. Обычно если спонсор видит, что выработанные в результате проведенных исследований идеи действительно способны в каком-то отношении изменить мир, он остается доволен. Пусть эти характеристики немного шаблонны, но они, по большому счету, довольно точны. Потребителям коммерческих изделий часто нужны инновации. Заказчики научных исследований почти всегда хотят получения результатов. Представители обоих сообществ, стремясь обеспечить заключение контрактов, иногда прибегают к заведомо невыполнимым обещаниям. И тем не менее, по своей сути, представленные характеристики верны. Назначение описанного в этой главе проекта А-7Е состояло в том, чтобы продемонстрировать всем скептикам жизнеспособность «объектно-ориентированных методик» (правда, назывались они в то время по-другому) применительно к конструированию высокопроизводительных программных систем реального времени. Это — задача, поставленная перед исследовательским проектом. Требовалось изменить тогдашнее видение мира. Успех программы по снижению стоимости программного обеспечения систем ВМС США (разработка системы А-7Е была его составной частью) с научной точки зрения не подлежит сомнению — доказательством тому сотни отзывов в профильных изданиях. Такую реакцию можно воспринимать как одобрение революционных по тем временам принципов инкапсуляции и сокрытия информации. Итак, с коммерческой позиции система А-7Е потерпела неудачу, но по исследовательским меркам — это успех. Возвращаясь к утверждениям Боба Гласса, вопрос нужно поставить следующим образом: получило ли военно-морское ведомство тот результат, на который рассчитывало? Ответ зависит от того, о чем изначально шла речь: о производственной системе или о научной работе? Поскольку разработки проводились в научно-исследовательской лаборатории ВМС США, надо думать, что проект А-7Е следует оценивать по стандартам научного сообщества. -LJB
Дата добавления: 2015-04-25; Просмотров: 1150; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |