PSOS
pSOS (Portable Software On Silicon) — операционная система реального времени (ОСРВ), созданная примерно в 1982 году Альфредом Чао и разработанная / продаваемая компанией Software Components Group (SCG). В 1980-х годах завоевал рынок встроенных систем, основанных на архитектуре семейства Motorola 68000, поскольку она была написана на ассемблере 68000 и была сильно оптимизирована под него. Он также был модульным, с ранней поддержкой отладки с учётом ОС, подключаемых драйверов устройств, стеков TCP/IP, языковых библиотек и дисковых подсистем. Позже появилась отладка на уровне исходного кода, поддержка многопроцессорных систем и дополнительные сетевые расширения. ИсторияПервый выпуск состоялся примерно в 1982 году. В 1991 году Integrated Systems Inc. (ISI) продолжила разработку pSOS — теперь рестайлингового pSOS+ — для других семейств микропроцессоров, переписав большую её часть на C. Внимание также уделялось поддержке последовательно более интегрированных среда разработки, кульминацией которой является PRISM+. В июле 1994 года компания Integrated Systems приобрела у Novell модульную многозадачную операционную систему FlexOS в режиме реального времени, которая в некоторой степени повлияла на развитие данной ОС. В 1995 году компания Integrated Systems предложила пакет pSOSystem / NEST для технологии встроенных систем Novell (NEST). В феврале 2000 года Integrated Systems Inc. была приобретена Wind River Systems, создателем конкурирующей RTOS VxWorks. Несмотря на первоначальные сообщения о том, что поддержка pSOS будет продолжаться, разработка была остановлена. Wind River объявила о планах «конвергентной» версии VxWorks, которая будет поддерживать системные вызовы pSOS, и что дальнейшие выпуски самой pSOS не будут производиться. NXP Semiconductors приобрела pSOS для TriMedia у Wind River и продолжала поддерживать эту ОС для ядра TriMedia VLIW. В марте 2000 года конкурирующая компания Express Logic выпустила свой Evaluation Kit для пользователей pSOS+, предназначенный для обеспечения перехода к её RTOS ThreadX. В августе 2000 года MapuSoft Technologies Inc. выпустила комплект переноса pSOS OS Changer, который может плавно перемещать программное обеспечение на несколько ОС, таких как Linux, VxWorks и другие. Он включает в себя оптимизацию IDE и API, а также инструмент профилирования для измерения синхронизации API на целевых платах. В августе 2007 года RoweBots, бывший партнёр SCG и ISI, открыли исходную версию своей совместимой с pSOS+ версии под названием Reliant. ОсобенностиОСРВ pSOS была разработана корпорацией Integrated Systems. В настоящее время она принадлежит корпорации WindRiver, которая её купила, видимо для того, чтобы она не мешалась на рынке сбыта ОСРВ. Имя pSOSsystem присвоено операционной системе, имя pSOS+ — её ядру. pRISM+ — это интегрированная среда разработки для создания приложений. pSOS+ — это маленькое ядро встраиваемых приложений, представляющее собой некий вариант клиент-серверной архитектуры. Однако оно не имеет протокола взаимодействия, основанного на сообщениях. Для взаимодействия модулей используется программная шина (software bus). Есть возможность выбрать и встроить модули в систему во время компиляции. Такими модулями могут быть файловая система (pHILE+), отладчик (pROBE+), сетевые протоколы (pNA+), библиотека удалённых вызовов процедур (pRPC+) и стандартная библиотека ANSI C (pREPC+). Вызовы различных приложений осуществляются через программные прерывания. pSOS+m является многопроцессорной версией ядра pSOS+. Она требует, чтобы один узел был главным, а остальные — подчинёнными. К этому ядру добавлены системные вызовы, позволяющие оперировать через границы процессора. В pSOS+ не используется понятие процесса, вместо этого она оперирует задачами, что соответствует понятию потоков, выполняющихся в одном процессе. Все системные объекты разделяются между всеми потоками. Так как все потоки разделяют один и тот же контекст, время переключения потоков становится очень малым. pSOSsystem имеет несегментированную модель памяти. Защита памяти может быть обеспечена через библиотеку управления памятью. Код, данные и стеки можно защитить с помощью определения отображений защиты памяти для каждой задачи. При этом ответственность ложится на разработчика приложений, а это является непростой задачей. pSOSsystem предлагает две абстракции для управления памятью — регионы и разделы. Регионы — это куски памяти нефиксированного размера, в то время как разделы — куски фиксированного размера. Управление памятью с помощью разделов обеспечивает быстрое выделение памяти. Управление прерываниями в pSOSsystem довольно примитивное. Кроме того, отсутствуют мьютексы и механизм наследования приоритетов, что может привести к инверсии приоритетов. Область примененияПрименение ОСРВ всегда конкретно. Если ОС общего назначения обычно воспринимается пользователями (не разработчиками) как уже готовый набор приложений, то ОСРВ служит только инструментом для создания того или иного аппаратно-программного комплекса реального времени. И поэтому наиболее широкий класс пользователей ОСРВ составляют разработчики таких комплексов — люди, проектирующие системы управления и сбора данных. Проектируя и разрабатывая конкретную систему реального времени, программист всегда знает точно, какие события могут произойти на объекте, знает критические сроки обработки каждого из этих событий. Назовём системой реального времени (СРВ) аппаратно-программный комплекс, реагирующий в течение предсказуемого времени на непредсказуемый поток внешних событий. Это определение означает следующее. Во-первых, система должна успеть отреагировать на событие, произошедшее на объекте, в течение времени, критического для этого события (meet deadline). Критическое время для каждого события определяется объектом и самим событием и, естественно, может быть разным, но время реакции системы должно быть предсказано (вычислено) при создании системы. Отсутствие реакции в течение предсказанного времени считается ошибкой для СРВ. Во-вторых, система должна успевать реагировать на одновременно происходящие события. Если два или несколько внешних событий происходят одновременно, ей нужно успеть среагировать на каждое из них в течение интервалов времени, критических для этих событий. Различают системы реального времени двух типов — системы жёсткого реального времени и системы мягкого реального времени. Системы жёсткого реального времени не допускают никаких задержек реакции системы ни при каких условиях:
К системам жёсткого реального времени относятся бортовые системы управления, системы аварийной защиты, регистраторы аварийных событий. Системы мягкого реального времени характеризуются тем, что задержка реакции не критична, хотя и может привести к увеличению стоимости результатов и снижению производительности системы в целом. Примером может служить работа сети. Если система не успеет обработать очередной принятый пакет, это приведёт к вынужденному перерыву на передающей стороне и, например, повторной посылке. Данные при этом не теряются, но производительность сети снижается. Основное различие между системами жёсткого и мягкого реального времени можно сформулировать так: если система жёсткого реального времени никогда не опоздает с реакцией на событие, то система мягкого реального времени не должна опаздывать с реакцией на событие. Назовём операционной системой реального времени такую систему, которая может быть использована для построения систем жёсткого реального времени. Это определение выражает отношение к ОСРВ как объекту, содержащему необходимые инструменты, но подразумевает также, что этими инструментами необходимо правильно воспользоваться. Источники
|