1. Введение: Особенности операционных систем реального времени




страница7/10
Дата20.04.2017
Размер1.03 Mb.
Просмотров1400
Скачиваний0
1   2   3   4   5   6   7   8   9   10
Windows CE создает единое виртуальное адресное пространство в 4GB, которое затем разделяется на две секции – ядро и пользовательское пространство, как и в универсальной ОС Windows. Далее пользовательское пространство делится на 64 слота по 32MB, из которых 32 резервируются для процессов (отсюда ограничение на число процессов в системе). Все процессы разделяют виртуальное адресное пространство, но не имеют доступа друг к другу. В виртуальном адресном пространстве в 32MB находится все, что нужно процессу – программа, данные, область динамической памяти (heap). Если процесс имеет соответствующие права доступа, он может получить память сверх ограничения в 32MB, обратившись к специальному процессу (VirtualAlloc) или используя файлы отображенной памяти (memory mapped files).
Windows CE реализует постраничное управление виртуальной памятью.
Размер страницы зависит от платформы, но по возможности используется размер в 4KB. Есть возможность запретить страничную организацию, что важно для систем реального времени. В этом режиме модуль целиком загружается в память перед выполнением. Таким образом, сбои страничной организации (paging) не повлияют на выполнение приложения.
В обычной конфигурации для защиты ядра и процессов друг от друга используется MMU. Есть возможность сконфигурировать Windows CE без защиты памяти между процессами и ядром, что позволяет достичь большей производительности системы.
В Windows CE механизмы синхронизации можно разделить на две категории:

механизмы защиты от одновременного доступа – критические секции, мьютексы и семафоры,

механизмы взаимодействия – события и очереди сообщений.
В отличие от других ОСРВ Windows CE поддерживает обобщенные функции ожидания для различных типов объектов (мьютексов, семафоров, событий, процессов и потоков). Преимущество таких функций состоит в том, что можно ожидать многие объекты сразу, пока один из них не подаст сигнал.
Критические секции можно использовать только внутри одного процесса.
Вычислительные семафоры и мьютексы могут быть использованы как внутри одного процесса, так и между процессами.
Windows CE использует наследование приоритетов для того, чтобы избежать проблемы инверсии приоритетов.
Windows CE позволяет построить, отладить и внедрить настроенную ОС из предлагаемого набора компонент с помощью инструмента Platform Builder.
Процесс разработки ОС Windows CE показан на рис. 14.
64
Рис.14. Процесс разработки ОС Windows CE.
Ниже приведена архитектура ОС Windows CE.
Рис. 15. Архитектура ОС Windows CE.

65
Введение адаптационного уровня производителя в архитектуру Windows CE позволило повысить ее эффективность.
Хотя Windows CE имеет модульную структуру, которая позволяет создавать минимальные конфигурации для небольших систем, она все-таки остается сложной и требует относительно большого пространства на диске, поэтому она не является хорошим выбором для глубоко встраиваемых систем.
3.3. JavaOS
JavaOS – это семейство небольших по размеру, эффективных операционных систем, оптимизированных для поддержки Java-среды, предназначенных выполняться на тонких клиентах – сетевых компьютерах [SM99]. JavaOS проектировалась для выполнения приложений, написанных на языке Java, и
была создана корпорацией Sun Microsystems для того, чтобы виртуальная машина Java (JVM) непосредственно выполнялась на микропроцессорах, без участия резидентной операционной системы.
По сравнению с реализацией Java над универсальными ОС, JavaOS обеспечивает не только экономию ресурсов (что важно в первую очередь для встраиваемых систем), но и снижение затрат на администрирование (что сулит существенную экономию для корпоративных систем).
Семейство JavaOS включает три разновидности ОС:

JavaOS for Business (развивается совместно с корпорацией IBM);

JavaOS for Consumers,

JavaOS for network computers.
Вообще говоря, для обеспечения конфигурации JavaOS имеет базу данных, состоящую из именованных Java-объектов. Эта база данных помогает поддерживать динамическую реконфигурацию.
Характерной чертой JavaOS является стремление к максимальной независимости от платформы. Такая независимость способствует мобильности самой JavaOS и построенных на ее основе программных систем, что очень важно в условиях большого разнообразия аппаратных модификаций и частой смены моделей. Для достижения независимости от платформы внутри JavaOS выделены технологические интерфейсы – с платформой (JavaOS Platform
Interface, JPI) и периферийными устройствами (JavaOS Device Interface, JDI).
Все, что выше этих интерфейсов, может быть написано на Java и сделано мобильным.
JavaOS построена по принципу многослойной архитектуры, в которой каждый слой может обновляться независимо от всех остальных. Архитектура JavaOS состоит из микроядра и диспетчера памяти, драйверов устройств, виртуальной машины Java, систем JavaOS Graphics и JavaOS Windowing, сетевых классов и средств поддержки всех интерфейсов прикладного программирования (API)
Java. Приложения, написанные для JavaOS, совместимы с браузерами и операционными системами, соответствующими стандартам Java.
66
Многослойная архитектура JavaOS разделяет коды на платформенные и платформенно-независимые. Платформенный код, который компилируется в исходный, состоит из ядра и виртуальной машины Java. Платформенно- независимая часть JavaOS (написанная на Java) состоит из систем JavaOS
Window и Graphics, драйверов устройств JavaOS и сетевых классов JavaOS.
Микроядро JavaOS поддерживает начальную загрузку, управление прерываниями, многопоточность, управление перехватами и распределением динамической памяти. Микроядро также поддерживает ряд сервисов сеанса работы, которые включают Java виртуальную машину, сборщик мусора и сервисный загрузчик.
Рис. 16. Многослойная архитектура JavaOS.
Драйверы устройств JavaOS написаны на языке Java и являются переносимыми и расширяемыми. Сетевые классы JavaOS, также написанные на Java, вклю- чают стандартные промышленные сетевые протоколы, такие как TCP/IP и др.
Уменьшение объемов платформенно-зависимых частей JavaOS упрощает администрирование корпоративных конфигураций, делая их более однородными. Это важное средство снижения общей стоимости владения клиентскими частями информационных систем.
Стоит отметить, что микроядро JavaOS для эффективной привязки к аппаратному обеспечению или к другой операционной системе создается на языке C и соответствующем языке ассемблера.
Для JavaOS характерна распределенная работа ее компонентов, безопасность данных, а также контроль использования ресурсов, как сервера, так и клиента.
JavaOS перенесена на системы с микропроцессорами SPARC, x86 и ARM. Для полной сетевой реализации с поддержкой рабочей среды Java (Java Runtime
Environment) нужно 2.4 MB памяти. JavaOS с браузером HotJava требует минимального объема памяти в 4 MB.

67
3.4. Jbed
Система Jbed фирмы Oberon Microsystems, является ОСРВ с ядром, ориентированным на Java технологию [Jbed98], и может рассматриваться как
Java платформа для встроенных систем и систем реального времени. Другими кандидатами Java платформ являются такие системы, как EmbeddedJava и
JavaCard. В основном они различаются средствами поддержки потоков, сбора мусора, чисел с плавающей запятой и т.п. В Jbed ядро в действительности и есть Java машина, которая также называется runtime системой. Jbed runtime система как минимально возможная система обеспечивает планирование потоков, распределение памяти и сбор мусора. Такая конфигурация требует
64KB оперативной памяти. Другие возможные конфигурации могут включать минимальную систему с TCP/IO и веб-сервером (что требует 128KB) и минимальную систему с сетевым загрузчиком и компилятором для трансляции
Java-кода в машинный код целевого компьютера (что требует 256KB). В терминах настраиваемости операционных систем это означает, что компоненты ядра обладают крупным уровнем детализации, и к тому же в Jbed отсутствует возможность динамической конфигурации на уровне ядра.
Микроядро Jbed обладает специфическими особенностями, необходимыми для встроенных систем и систем реального времени, такими как малое количество требуемой памяти, поддержка потоков реального времени и управление дедлайнами.
Над ядром выстраиваются такие компоненты, как драйверы периферийных устройств, драйверы устройств связи, сетевые загрузчики, библиотеки. Эти компоненты называются встроенными приложениями и подгружаются они по требованию. Таким образом, на этом уровне Jbed обеспечивает динамическую настраиваемость. Кроме того, уровень приложений поддерживает клиент- серверную модель. На этом уровне такие приложения, как управление процессами, удаленная диагностика и система сигнализации, называются клиентами. Серверные программы управляют клиентскими компонентами
(встроенными приложениями), которые могут осуществлять отладку, удаленное управление или работать как веб-серверы. Серверы позволяют клиентам удаленно диагностировать встроенные приложения, замещать компоненты и удаленно управлять встроенными системами с некоторого персонального компьютера. Однако эти возможности не доступны на уровне ядра операционной системы. Получается, что на уровне ядра конфигурация заключается просто в выборе одной из упомянутых выше конфигураций.
3.5. Nucleus RTOS
Операционная система Nucleus, разработанная корпорацией Accelerated
Technology, предназначена для встраиваемых приложений [NUCLEUS].
Nucleus является кросс-системой, т.е. программный продукт создается на одной программно-аппаратной платформе, а выполняется на другой. ОСРВ
Nucleus поставляется вместе с открытым кодом.
68
Ядро ОСРВ Nucleus, Nucleus PLUS, обеспечивает многозадачную обработку, является переносимым и масштабируемым. Ядро реализовано как библиотека функций на языке C. Nucleus PLUS предоставляет такие возможности как управление взаимодействием задач (почтовые ящики, очереди, конвейеры, семафоры, события, сигналы), а также управление памятью, таймерами, прерываниями. Планирование задач осуществляется на основе приоритетов, а также по алгоритму FIFO. При выполнении системного вызова выполнение задачи может приостанавливаться на неопределенное время, на заданный интервал, или не приостанавливаться. Все объекты в системе могут создаваться и удаляться динамически.
3.6. EMERALDS
EMERALDS (Extensible Microkernel for embedded, ReAL-time, Distributed
Systems) [ZS01] – это микроядро реального времени, написанное на языке C++, которое предназначено для малых и средних по размеру встраиваемых систем.
Система EMERALDS является научной разработкой Мичиганского университета (University of Michigan).
EMERALDS обеспечивает обработку многопоточных процессов. Процесс в
EMERALDS является пассивной сущностью, характеризующейся защи- щенным адресным пространством, в котором выполняются потоки. Каждый поток имеет приоритет, присвоенный ему пользователем, на основе которого ядро осуществляет его планирование. Ядро также снабжено системным вызовом, способным изменить приоритет потока во время выполнения. Для обеспечения эффективной защиты памяти ядро отображает себя в адресное пространство каждого процесса. При таком отображении переключение из приложения в ядро вызывает прерывание (TRAP), которое переключает центральный процессор из приложения в режим ядра, и совершается переход на соответствующий адрес внутри того же адресного пространства.
Ядро обеспечивает такие сервисы, как семафоры, таймеры, управление памятью и пр. В качестве механизма взаимодействия процессов EMERALDS
использует обмен сообщениями через почтовые ящики, как для внутри- процессного, так и для межпроцессного взаимодействия. Проблема инверсии приоритетов решается с помощью введения наследования приоритетов.
3.7. CORTEX
CORTEX – это многозадачная ОСРВ для встраиваемых приложений, разработанная корпорацией ARTESYS (Australian Real Time Embedded
Systems). Исходный код системы находится в свободном распространении для образовательных и некоммерческих целей.
Управление задачами включает временную поддержку, реентерабельность, вытеснение, основано на управлении событиями, является детерминированным и поддерживает приоритеты. Доступны три разных политики планирования.
Поддерживается 62 уровня приоритетов для задач. Приоритетное прерывание обслуживания может осуществляться непосредственно через сервисы

69 управления вытеснением или косвенно с помощью взаимодействия между задачами и примитивов синхронизации. Поддерживается механизм наследования приоритетов.
Синхронизация задач и их защита осуществляется через рекурсивные блокировки ресурсов, мьютексы и условия, мониторы и условия, вычислительные семафоры, события.
3.8. DeltaOS
DeltaOS является ОСРВ для встраиваемых приложений, разработанной китайской корпорацией CoreTek Systems. Система поддерживается для наиболее популярных семейств микропроцессоров, таких как PowerPC, Intel
X86, ARM, MIPS. DeltaOS настраивается и масштабируется в широком диапазоне систем реального времени и может применяться как в простых автономных устройствах, так и в сложных отказоустойчивых многопроцессорных системах.
DeltaOS основана на ядре DeltaCore, которое построено на надежной технологии реального времени, включающей приоритетное прерывание обслуживания, реентерабельность, многозадачность и детерминированное поведение. Ядро проектировалось на основе объектно-ориентированной парадигме. Объектами, которыми оперирует DeltaOS, являются задачи, семафоры, события, таймеры, очереди сообщений, сегменты памяти.
Планирование основано на приоритетах. Поддерживается планирование с вытеснением, циклическое и на основе разделения времени. Обработка прерываний осуществляется через ISRs вне ядра. Для обеспечения быстрой обработки прерывания можно передавать непосредственно в ISRs. Системные вызовы, сделанные из ISR возвращают управление в ISR, таким образом сокращая временные затраты механизма планирования в ядре.
3.9. Palm OS
Операционные системы серии Palm OS (корпорация PalmPC) являются одним из популярных программных продуктов для портативных устройств и смартфонов [PALMOS]. К последним разработкам относятся Palm OS Garnet и
Palm OS Cobalt 6.1.
Palm OS Garnet – это усовершенствованная версия системы Palm OS 5, которая обеспечивает дополнительные возможности, такие как динамическая область ввода, улучшенное сетевое взаимодействие и поддержка для широкого диапазона разрешающей способности экрана.
Palm OS Cobalt 6.1 – это следующее поколение системы Palm OS. Эта система позволяет создание новых классов устройств для коммуникации, предприятий, обучения и развлечений. Palm OS Cobalt 6.1 обеспечивает интегрированные телефонные функции, поддержку для сетей типа WiFi и Bluetooth и расширенные возможности для пользовательского интерфейса.
70
3.10. Symbian OS (EPOC)
EPOC – это операционная система от корпорации Psion Software, разработанная специально для мобильных, основанных на ROM-памяти (read- only memory), компьютерных устройств [EPOC]. EPOC16 – устаревшая 16- битовая версия этой ОС. EPOC32 – более современная 32-битовая ОС, которая поддерживает многозадачный режим с приоритетами. ОС EPOC распространяется корпорацией Symbian и часто выступает под названием
Symbian OS, поскольку Symbian является совместным предприятием фирм
Psion, Ericsson, Motorola и Nokia. ОС EPOC является ближайшим конкурентом
Windows CE на рынке устройств PDA (personal digital assistant).
4. Настраиваемость операционных систем
Рассмотрим более подробно основные подходы к настраиваемости операционных систем. В первую очередь здесь обсуждаются вопросы ОС под набор приложений, хотя упоминаются и вопросы настройки на аппаратную платформу.
При обсуждении настраиваемости ОС часто применяются понятия распространения (spread) и уровня детализации настройки.
4.1. Адаптация, осуществляемая человеком
Системы в категории статической адаптации являются, по сути, каркасами операционных систем (framework), которые проектировщик может настраивать в соответствии с целями будущей ОС. Если область приложений, которые будут использовать создаваемую ОС, заранее известна, можно создать специфическую
ОС, которая будет поддерживать необходимую функциональность и ничего более. Такой подход приводит к созданию высокопроизводительной специфической ОС. После компоновки такой системы ее функциональность и политики фиксированы. Эта форма адаптации применяется к встроенным ОС для устройств со специфической функциональностью и более или менее стабильной деятельностью.
Динамическая адаптация от имени администратора возможна в большинстве промышленных ОС – как во время загрузки, так и во время работы. Во время загрузки ядру передаются параметры настройки и конфигурационные установки, во время работы администратор может инсталлировать и подгружать новые модули ядра, а также отслеживать параметры производительности и настраивать операционную систему.
4.1.1. Статическая адаптация, инициированная проектировщиком
В ОС этой категории все системные функции и политики определяются на этапе проектирования, а все системные сервисы встроены в ядро. Основное предназначение таких ОС – это специфическая операционная система, возможно даже для единственного приложения. Инициатором адаптации является проектировщик, функциональность и требования хорошо известны и понятны уже на этапе проектирования. Такой подход ведет к обедненным и

71 высокопроизводительным системам, в которых может присутствовать только строго ограниченная функциональность, а все сервисы оптимизируются статически под вполне определенное приложение. Ясно, что новая функциональность и приложения другой категории не могут поддерживаться такой системой. Это значит, что для каждого приложения должна проектироваться и реализовываться новая система, и что один тип устройств или компьютеров будет поддерживать только одно приложение (или ограниченного число приложений) [KLM93]. Появляются каркасы (framework)
ОС общего назначения, которые помогают избежать проектирования каждой новой ОС с нуля.
Flux OSKit – это система, состоящая из каркаса и библиотечных модулей
[FBB97]. Каркас OSKit представляет собой набор библиотек, из которых компонуется ядро ОС. Все компоненты состоят из модулей. Используются интегрирующие (glue) слои, через которые осуществляется взаимодействие между компонентами и сервисами. Вообще говоря, компоненты скорее обладают крупным уровнем детализации, и являются, в основном, подсистемами, такими как файловая система, стек сетевого протокола или набор драйверов устройств.
Scout – это каркас для операционных систем, обслуживающих устройства в сети [MMO95]. ОС, созданная с помощью Scout состоит из модулей, связи между которыми представляются в виде графа модулей. Этот граф фиксируется на этапе проектирования. Связанные модули должны обеспечивать общий интерфейс.
Термин маршрут (path) означает поток данных от источника ввода/вывода, через систему, к стоку ввода/вывода. Это понятие можно рассматривать как последовательность решений о маршрутизации внутри модульной системы.
Маршрут состоит из двух частей – последовательности модулей, которые определяют семантику (надежность, безопасность и согласование по времени), и требований на ресурсы, необходимых для обработки и прохождения данных.
Маршруты через граф модулей создаются и разрушаются в динамике. Такое понятие маршрута хорошо подходит для распределения ресурсов и оптимизации производительности, т.к. маршрут обеспечивает нелокальный контекст, который не доступен внутри отдельного модуля.
В работе Спатчека и Петерсона [SP97] определяется архитектура безопасности, которая дает возможность проектировщику устанавливать политику безопасности для операционной системы Scout. Эта архитектура безопасности добавляет в Scout также многочисленные домены защиты, которые иначе находились бы в едином адресном пространстве.
Choices – это объектно-ориентированная, настраиваемая ОС, которая для настраиваемости использует каркасную технологию и подсистемы [CRJ87,
CIR93]. Основное предназначение Choices – обеспечить возможность пользователям легко оптимизировать и адаптировать систему в соответствии с поведением приложений и рабочей нагрузкой. Система Choices спроектирована как иерархия каркасов, представляющая удобную организацию операционной
72 системы по слоям. В Choices каркас состоит из набора классов, представляющих системные сущности, такие как диски, память, планировщики и т.д. Различные подсистемы ОС, такие как управление памятью, управление процессами, файловое запоминающее устройство, управление исключительными ситуациями и т.д. создаются непосредственно из объектно-ориентированных каркасов.
Ресурсы системы, механизмы и политики представляются как экземпляры классов, принадлежащих некоей иерархии классов, где настройка осуществляется через использование наследственности. Таким образом, специфическая ОС создается путем конкретизации классов и реализации набора объектов, которые вместе формируют данную ОС. Интерфейсом приложения является совокупность объектов ядра, экспортируемых через уровень защиты приложение/ядро.
Система Choices обладает слабой формой динамической адаптации. Когда приложению нужен какой-либо сервис, происходит динамическая загрузка соответствующего класса. Таким образом, нельзя сказать, что адаптация производится непосредственно через приложение, к тому же любое возможное поведение определяется статически.
Pebble является ОС, основанной на компонентах [MBG00]. В то же время
Pebble можно назвать как каркасом ОС общего назначения, так и микроядром для узла, исполняющего роль портала (в последнем качестве она рассматривается в разделе о портал-оринентированных ОС). Эта система обеспечивает некоторый набор абстракций операционных систем, реализуемых удостоверенными компонентами пользовательского уровня. Эти компоненты могут наращиваться, замещаться или разбиваться по слоям, что позволяет измененным абстракциям сосуществовать с прежними или полностью заместить стандартный набор. Pebble дает возможность создавать модульные ОС из компонент многократного использования. В отличие от подобных систем, системные сервисы не интегрируются в ядро. Они предоставляются в виде удостоверенных серверных компонент, которые выполняются в защищенных доменах на уровне пользователя.
Система PURE (Portable Universal Runtime Executive) является хорошо конфигурируемой системой и предоставляет средства для подбора требуемой функциональности [Beu99]. Хотя применение PURE и не ограничено какой- либо областью приложений, все же ее главное предназначение находится в области глубоко встроенных систем. Проектирование PURE основано на двух концепциях – концепции семейства программ и объектно-ориентированного подхода. Концепция семейства программ обеспечивает иерархическую структуру системы, в которой минимальный набор системных функций используется как платформа для реализационных или системных расширений.
Объектно-ориентированный подход служит основой для реализации. Мини- мальным компонентом является класс, т.е. систему PURE можно рассматривать как библиотеку классов. Например, компонент, реализующий управление потоками, состоит из 45 классов, выстроенных в 14-уровневую иерархию.

73
Компоненты PURE упорядочиваются в структуру, состоящую из ядер и их расширений. Ядра, так называемые CORE (concurrent runtime executive), отвечают за реализацию минимального набора системных функций, управ- ляющих прерываниями и потоками. Дополнительные возможности, назы- ваемые минимальными системными расширениями, добавляются в систему с помощью ядерных расширений, называемых NEXT (Nucleus Extension).
Система

Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   10


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал