Операционные системы реального времени (ОСРВ)
Операционные системы реального времени ОСРВ ( Real Time Operating Systems — RTOS ) относятся к программным средствам и предназначены для обслуживания цифровых систем в тех случаях , когда:
● система должна обеспечить не только результат обработки поступившей информации, но и длительность времени получения результата. От ОСРВ требуется наряду с получением необходимого результата реализовать заданные временные параметры: интервалы времени между событиями и откликами или заданную частоту приема внешних данных и выдачи результатов;
● система способна выполнять несколько задач одновременно. Типичная мультизадачная операционная система выделяет каждой задаче (программе) одинаковый интервал времени, создавая у пользователя впечатление, что все программы выполняются одновременно.
Операционная система реального времени представляет собой частный случай мультизадачной операционной системы, оптимизированной для реализации процессов управления. Она быстро реагирует на внешние события и позволяет имитировать работу нескольких процессоров, каждый из которых контролирует одно устройство.
Поэтому для управления сложной системой с помощью одного процессора целесообразно использовать ОСРВ, которая способна координировать выполнение различных задач. Примером ОСРВ может служить система управления лифтами.
Принцип работы ОСРВ
При поступлении запроса производится проверка на входные данные для решения задачи. При их наличии задача начинает выполняться.
ЕСЛИ необходимые входные данные отсутствуют, то ОСРВ переходит к следующей задаче (при наличии запроса на ее выполнение). Для получения входных данных и запуска соответствующей задачи используются прерывания.
Запуск задачи обычно производится путем ее пересылки из очереди ожидающих задач в очередь задач, предназначенных для выполнения.
Каждая задача имеет входную очередь сообщений, которые она может обрабатывать только в течение отведенного интервала времени или при запросе на прерывание. Если ответ занимает слишком много времени, то задача помещается обратно в очередь выполняемых команд, и управление передается следующей задаче.
Системные ресурсы (дисковые накопители, таймеры, устройства ввода–вывода и др.) обычно доступны только для определенных задач. Это позволяет организовать очередь запросов к ресурсам таким образом, чтобы предотвратить одновременный доступ к одному ресурсу нескольким задачам.
Требования к ОСРВ
Современные ОС PB должны удовлетворять следующим требованиям:
● малое время отклика (получение результата);
● реализация многозадачного режима с гибким механизмом приоритетов;
● малый объем памяти (достаточный для размещения в резидентной памяти прикладной системы);
● наличие сервисных функций и средств поддержки для разработки прикладных программ и ряд других.
В настоящее время для разработки микроконтроллерных систем используется ОСРВ, имеющие различные характеристики и прошедшие апробацию в таких областях применения, как системы автоматизации производства, контрольно–измерительные системы, телекоммуникационная аппаратура, авиационно–космическая и военная техника, транспорт, системы обеспечения безопасности и др.
Типы ОСРВ
Можно выделить два типа ОСРВ:
● системы жесткого реального времени, которые занимают небольшой объем памяти и имеют минимальные время отклика, но обладают весьма ограниченными сервисными средствами.
Они реализуются по модульному принципу, что позволяет использовать только те средства, которые необходимы в данном приложении.
В результате для конкретного применения достигается существенное сокращение объема необходимой памяти и времени отклика;
● системы мягкого реального времени, которые требуют большего объема памяти, имеют более длительное время отклика, но зато удовлетворяют широкому спектру требований пользователя по режиму обслуживания задач, уровню предоставляемого сервиса. Средства интерфейса систем мягкого реального времени позволяют использовать высокоэффективные отладчики или интегрированные среды разработки.
Система мягкого реального времени
Этот вид систем рассмотрим на примере системы OS–9 фирмы Microwave Systems . В качестве инструментального компьютера OS –9 использует IBM – PC , работающие в среде Windows , или рабочие станции Sun, HP, IBM RS /6000 с операционными системами типа UNIX . Характерные особенности OS –9:
● модульность, которая обеспечивает возможность конфигурации целевой ОСРВ в соответствии с классом решаемых задач. Исключая неиспользуемые модули, можно сократить объем памяти и снизить стоимость системы;
● гибкость структуры, обеспечивающая реконфигурацию системы и расширение ее функциональных возможностей. Функциональные компоненты OS–9:
● ядро реального времени ( OS –9 kernel );
● общие средства ввода/вывода ( I / O man );
● файловые менеджеры;
● средства разработки программ.
Функциональные компоненты OS –9 выполнены в виде автономных модулей, которые могут удаляться или добавляться с помощью простых команд, не требующих повторной компиляции или перекомпоновки. Комбинируя модули, можно создавать целевые операционные системы с различными функциональными возможностями.
Рассмотрим Перечисленные выше функциональные компоненты.
Ядро реального времени
Система содержит два вида ядер:
● ядро Atomic , реализующее минимальное количество сервисных функций (дистанционную загрузку, связь с локальной сетью, управление ведомыми микроконтроллерами). Ядро применяется в системах, встраиваемых в различную аппаратуру, имеет малый объем (24 Кбайт) и обеспечивает минимальное время отклика (3 мкс при тактовой частоте 25 МГц);
● ядро Standard , обеспечивающее выполнение широкого набора функций сервиса и разработки прикладных программ, для реализации которых требуется больший объем памяти (до 512К байт ПЗУ и 38К байт ОЗУ).
Путем изменения функциональных модулей ядра можно реализовать системы различной сложности и назначения: от встраиваемых в аппаратуру контроллеров с резидентным программным обеспечением и простейшими средствами ввода/вывода до сложно функциональных систем класса рабочих станций с развитой сетевой поддержкой и обеспечением разнообразных функций сервиса, включая мультимедиа.
Система OS –9 предоставляет пользователю возможность выбора ядра в зависимости от функционального назначения системы. Общие средства ввода/вывода.
Физический интерфейс OS –9 с разнообразными внешними устройствами обеспечивается большим набором драйверов, созданных как фирмой Microwave Systems , так и многочисленными разработчиками аппаратуры, использующей эту операционную систему для конкретных приложений. Файловые менеджеры.
К ним относятся модули, управляющие логическими потоками данных. Каждый из модулей имеет определенное функциональное назначение и спецификацию. Файловые менеджеры можно разделить на три группы:
● стандартные менеджеры, предназначенные для выполнения таких базовых функций обмена с внешними устройствами как организация очереди поступающих команд, управление байтовым и блочным последовательным обменом и обменом с прямым доступом к памяти;
● сетевые и коммуникационные менеджеры, обеспечивающие работу OS –9 с различными сетями и обмен данными по каналам связи с наиболее распространенными стандартами протоколов обмена;
● менеджеры графического интерфейса и работы с мультимедиа–приложениями. Средства разработки программ.
В составе OS –9 имеется пакет программ (BSP) для поддержки плат развития, который обеспечивает совместную работу OS–9 с целым рядом SBC (Single Board Computer — одноплатный компьютер).
Совместное использование BSP и OS–9 позволяет сконфигурировать целевую систему для конкретного приложения.
Система OS–9 содержит средства поддержки программирования: компиляторы Ultra C/C++, текстовый редактор ЕМ ACS , три вида (в том числе символьных) отладчиков, набор утилит для организации контроля и сборки программных продуктов.
Помимо этого имеется большой набор (совместимых с OS –9) средств поддержки программирования, которые разработаны другими фирмами. Интегрированная среда разработки FasTra к.
Среда FasTrak поставляется совместно с OS–9 и предоставляет пользователю наиболее полный комплект средств программирования и отладки. Часть программных средств FasTrak инсталлируется на инструментальном компьютере, а часть — на целевой системе пользователя.
Среда FasTrak интегрирует все средства, необходимые для поддержки проектирования/отладки целевых систем. Версия среды FasTrak для работы на инструментальном компьютере IBM – PC содержит:
● текстовый редактор, располагающий средствами перекодировки клавиатуры, что позволяет вести редактирование в удобном для пользователя формате;
● компиляторы Ultra C/C++;
● отладчики, обеспечивающие два режима отладки: пользовательский — для создания прикладных программ, и системный — для обслуживания прерываний, системных вызовов и обращения к ядру реального времени;
● средства интерфейса с логическими анализаторами фирмы.
Среда FasTrak обладает широкими функциональными возможностями, что делает ее эффективным средством создания программного обеспечения для различных микроконтроллерных систем.
Фирма Microware Systems поставляет ряд системных пакетов, ориентированных на различные сферы приложения:
● Wireless OS –9 — для разработки устройств беспроводной связи: сотовых телефонов, пейджеров, портативных цифровых ассистентов ( PDA );
● Internet OS –9 — для разработки устройств с доступом к сети Internet ;
● Digital Audio / Video Interactive Decoder ( DAVID ) OS –9 — для разработки распределенных систем цифрового интерактивного телевидения.
Система жесткого реального времени
Особенности этого вида систем рассмотрим на примере системы VxWorks фирмы WindRiver Systems , предназначенной для работы с семействами микропроцессоров многих производителей.
Система VxWorks инсталлируется на отлаживаемой целевой системе и работает совместно с интегрированной средой разработки Tornado , функционирующей на инструментальном компьютере. В качестве инструментального компьютера используются IBM – PC , работающие в среде Windows , или рабочие станции SUN, HP и др.
Краткое описание системы VxWorks. Нижним уровнем иерархической организации системы служит микроядро реального времени, выполняющее базовые функции планирования задач и управления их связью и синхронизацией. Минимальный набор модулей ядра занимает 20–40К байт памяти.
Все остальные функции — управление памятью, вводом/выводом, сетевым обменом и другие, реализуются дополнительными модулями. Для поддержки графических приложений VxWorks располагает графическим интерфейсом VX–Windows.
При ограниченном объеме памяти целевой системы можно воспользоваться графической библиотекой RTGL, которая содержит базовые графические примитивы, наборы шрифтов и цветов, драйверы типовых устройств ввода и графических контроллеров.
В состав VxWorks входят также различные средства поддержки разнообразных сетевых протоколов.
Трассировку заданных событий и их накопление в буферной памяти для последующего анализа выполняют в реальном времени специальные средства отладки, а трассировку системных событий — динамический анализатор WindView .
Анализатор WindView работает аналогично логическому анализатору, отображая на экране временные диаграммы переключения задач, записи в очередь сообщений и другие процессы. Монитор данных Stethoscope позволяет анализировать динамическое изменение пользовательских и системных переменных, включая в себя также профилировщик процедур. В составе VxWorks имеется:
● пакет программ для поддержки плат развития;
● симулятор VxSim , позволяющий моделировать на инструментальном компьютере многозадачную среду VxWorks и интерфейс с целевой системой, а также разрабатывать и отлаживать программное обеспечение без подключения целевой системы.
Для комплексной отладки целевых систем VxWorks обеспечивает интерфейс со схемными эмуляторами и эмуляторами ПЗУ. Интегрированная среда разработки Tornado . В состав Tornado входит система VxWorks 5.
3, включающая ядро реального времени и системные библиотеки, средства программирования, высокоуровневый отладчик и ряд других средств системы. Дополнительные средства среды Tornado обеспечивают управление процессом отладки, визуализацию состояния целевой системы, другие сервисные функции.
Открытая архитектура среды Tomado позволяет пользователю подключать собственные специализированные инструментальные средства и расширять возможности стандартных средств.
Операционная система реального времени VxWorks вместе с интегрированной средой Tornado является мощным средством реализации целевых систем, работающих в условиях жестких ограничений на объем используемой памяти и время отклика на внешние события.
Источник: http://pue8.ru/protsessory/699-operatsionnye-sistemy-realnogo-vremeni-osrv.html
Операционная система реального времени
Отличительные черты ОСРВ от ОС общего назначения
ОС общего назначения, особенно многопользовательские, такие как UNIX, ориентированы на оптимальное распределение ресурсов компьютера между пользователями и задачами. В операционных системах реального времени подобная задача отходит на второй план – все отступает перед главной задачей – успеть среагировать на события, происходящие на объекте.
Другое отличие – применение операционной системы реального времени всегда связано с аппаратурой, с объектом, с событиями, происходящими на объекте. Операционная система реального времени ориентирована на обработку внешних событий.
Операционная система реального времени может быть похожа по пользовательскому интерфейсу на ОС общего назначения, однако устроена она совершенно иначе.Кроме того, применение операционных системах реального времени всегда конкретно.
Если ОС общего назначения обычно воспринимается пользователями (не разработчиками) как уже готовый набор приложений, то операционная система реального времени служит только инструментом для создания конкретного аппаратно-программного комплекса реального времени.
И поэтому наиболее широкий класс пользователей операционных системах реального времени – разработчики комплексов реального времени, люди проектирующие системы управления и сбора данных.
Проектируя и разрабатывая конкретную систему реального времени, программист всегда знает точно, какие события могут произойти на объекте, знает критические сроки обслуживания каждого из этих событий.Система РВ должна успеть отреагировать на событие, произошедшее на объекте, в течение времени, критического для этого события.
Величина критического времени для каждого события определяется объектом и самим событием, и может быть разной, но время реакции системы должно быть предсказано (вычислено) при создании системы. Отсутствие реакции в предсказанное время считается ошибкой для систем реального времени.Система должна успевать реагировать на одновременно происходящие события. Даже если два или больше внешних событий происходят одновременно, система должна успеть среагировать на каждое из них в течение интервалов времени, критического для этих событий.
ОС реального времени | ОС общего назначения | |
Основная задача | Успеть среагировать на события, происходящие на оборудовании | Оптимально распределить ресурсы компьютера между пользователями и задачами |
На что ориентирована | Обработка внешних событий | Обработка действий пользователя |
Как позиционируется | Инструмент для создания конкретного аппаратно-программного комплекса реального времени | Воспринимается пользователем как набор приложений, готовых к использованию |
Кому предназначена | Квалифицированный разработчик | Пользователь средней квалификации |
Системы жёсткого и мягкого реального времени
Различают системы реального времени двух типов – системы жесткого реального времени и системы мягкого реального времени.
Системы жесткого реального времени не допускают никаких задержек реакции системы ни при каких условиях, так как:
- результаты могут оказаться бесполезны в случае опоздания
- может произойти катастрофа в случае задержки реакции
- стоимость опоздания может оказаться бесконечно велика.
Примеры систем жесткого реального времени – бортовые системы управления, системы аварийной защиты, регистраторы аварийных событий.
Системы мягкого реального времени характеризуются тем, что задержка реакции не критична, хотя и может привести к увеличению стоимости результатов и снижению производительности системы в целом.Пример – работа сети.
Если система не успела обработать очередной принятый пакет, это приведет к таймауту на передающей стороне и повторной посылке (в зависимости от протокола, конечно). Данные при этом не теряются, но производительность сети снижается.
Основное отличие между системами жесткого и мягкого реального времени можно выразить так: система жесткого реального времени никогда не опоздает с реакцией на событие, система мягкого реального времени – не должна опаздывать с реакцией на событие
Ядро операционной системы
Ядро́ — центральная часть операционной системы (ОС), обеспечивающая приложениям координированный доступ к ресурсам компьютера, память, внешнее аппаратное обеспечение, внешнее устройство ввода и вывода информации, переводя команды языка приложений на язык двоичных кодов, которые понимает компьютер.
Как основополагающий элемент ОС, ядро представляет собой наиболее низкий уровень абстракции для доступа приложений к ресурсам системы, необходимым для их работы.
Как правило, ядро предоставляет такой доступ исполняемым процессам соответствующих приложений за счёт использования механизмов межпроцессного взаимодействия и обращения приложений к системным вызовам ОС.
Монолитное ядро
Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве.
Это такая схема операционной системы, при которой все компоненты её ядра являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путём непосредственного вызова процедур.
Монолитное ядро — старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство UNIX-систем.
Достоинства: Скорость работы, упрощённая разработка модулей.
Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.
Некоторые старые монолитные ядра, в особенности систем класса UNIX/Linux, требовали перекомпиляции при любом изменении состава оборудования. Большинство современных ядер позволяют во время работы подгружать модули, выполняющие часть функций ядра.
В этом случае компоненты операционной системы являются не самостоятельными модулями, а составными частями одной большой программы, называемой монолитным ядром (monolithic kernel), которое представляет собой набор процедур, каждая из которых может вызвать каждую.
Все процедуры работают в привилегированном режиме.
Микроядро
Микроядро предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Большая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. Решающим критерием «микроядерности» является размещение всех или почти всех драйверов и модулей в сервисных процессах.
Достоинства: Устойчивость к сбоям оборудования, ошибкам в компонентах системы. Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов.
В микроядерной операционной системе можно, не прерывая её работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей операционной системы.
Компоненты ядра операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства.
Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.
Недостатки: Передача данных между процессами требует накладных расходов.
Среда исполнения
Требования, предъявляемые к среде исполнения систем реального времени, следующие:
- небольшая память системы – для возможности ее встраивания;
- система должна быть полностью резидентна в памяти, чтобы избежать замещения страниц памяти или подкачки;
- система должна быть многозадачной – для обеспечения максимально эффективного использования всех ресурсов системы;
- ядро с приоритетом на обслуживание прерывания. Приоритет на прерывание означает, что готовый к запуску процесс, обладающий некоторым приоритетом, обязательно имеет преимущество в очереди по отношению к процессу с более низким приоритетом, быстро заменяет последний и поступает на выполнение. Ядро заканчивает любую сервисную работу, как только поступает задача с высшим приоритетом. Это гарантирует предсказуемость системы;
- диспетчер с приоритетом – дает возможность разработчику прикладной программы присвоить каждому загрузочному модулю приоритет, неподвластный системе. Присвоение приоритетов используется для определения очередности запуска программ, готовых к исполнению. Альтернативным такому типу диспетчеризации является диспетчеризация типа “карусель”, при которой каждой готовой к продолжению программе дается равный шанс запуска. При использовании этого метода нет контроля за тем, какая программа и когда будет выполняться. В среде реального времени это недопустимо. Диспетчеризация, в основу которой положен принцип присвоения приоритета, и наличие ядра с приоритетом на прерывание позволяют разработчику прикладной программы полностью контролировать систему. Если наступает событие с высшим приоритетом, система прекращает обработку задачи с низшим приоритетом и отвечает на вновь поступивший запрос.
Сочетание описанных выше свойств создает мощную и эффективную среду исполнения в реальном времени.
Кроме свойств среды исполнения, необходимо рассмотреть также сервис, предоставляемый ядром ОС реального времени. Основой любой среды исполнения в реальном времени является ядро или диспетчер.
Ядро управляет аппаратными средствами целевого компьютера: центральным процессором, памятью и устройствами ввода/вывода; контролирует работу всех других систем и программных средств прикладного характера. В системе реального времени диспетчер занимает место между аппаратными средствами целевого компьютера и прикладным программным обеспечением.
Он обеспечивает специальный сервис, необходимый для работы приложений реального времени. Предоставляемый ядром сервис дает прикладным программам доступ к таким ресурсам системы, как, например, память или устройства ввода/вывода.
Ядро может обеспечивать сервис различных типов:
- Межзадачный обмен. Часто необходимо обеспечить передачу данных между программами внутри одной и той же системы Кроме того, во многих приложениях возникает необходимость взаимодействия с другими системами через сеть. Внутренняя связь может быть осуществлена через систему передачи сообщений. Внешнюю связь можно организовать либо через датаграмму (наилучший способ доставки), либо по линиям связи (гарантированная доставка). Выбор того или иного способа зависит от протокола связи.
- Разделение данных. В прикладных программах, работающих в реальном времени, наиболее длительным является сбор данных. Данные часто необходимы для работы других программ или нужны системе для выполнения каких-либо своих функций. Во многих системах предусмотрен доступ к общим разделам памяти. Широко распространена организация очереди данных. Применяется много типов очередей, каждый из которых обладает собственными достоинствами.
- Обработка запросов внешних устройств. Каждая прикладная программа в реальном времени связана с внешним устройством определенного типа. Ядро должно обеспечивать службы ввода/вывода, позволяющие прикладным программам осуществлять чтение с этих устройств и запись на них. Для приложений реального времени обычным является наличие специфического для данного приложения внешнего устройства. Ядро должно предоставлять сервис, облегчающий работу с драйверами устройств. Например, давать возможность записи на языках высокого уровня – таких, как Си или Паскаль.
- Обработка особых ситуаций. Особая ситуация представляет собой событие, возникающее во время выполнения программы. Она может быть синхронной, если ее возникновение предсказуемо, как, например, деление на нуль. А может быть и асинхронной, если возникает непредсказуемо, как, например, падение напряжения. Предоставление возможности обрабатывать события такого типа позволяет прикладным программам реального времени быстро и предсказуемо отвечать на внутренние и внешние события. Существуют два метода обработки особых ситуаций – использование значений состояния для обнаружения ошибочных условий и использование обработчика особых ситуаций для прерывания ошибочных условий и их корректировки.
Обзор архитектур ОСРВ
За свою историю архитектура операционных систем претерпела значительное развитие. Один из первых принципов построения, монолитные ОС (рисунок 1), заключался в представлении ОС как набора модулей, взаимодействующих между собой различным образом внутри ядра системы и предоставляющих прикладным программам входные интерфейсы для обращений к аппаратуре.
Основным преимуществом монолитной архитектуры является ее относительная быстрота работы по сравнению с другими архитектурами.
Недостатки монолитной архитектуры.
1. Системные вызовы, требующие переключения уровней привилегий (от пользовательской задачи к ядру), должны быть реализованы как прерывания или специальный тип исключений. Это сильно увеличивает время их работы.
2. Ядро не может быть прервано пользовательской задачей. Это может приводить к тому, что высокоприоритетная задача может не получить управления из-за работы низкоприоритетной.
3. Негибкость и сложность развития: изменение части ядра системы требует его полной перекомпиляции.
Рисунок 1. Архитектура монолитной ОС
В задачах автоматизации широкое распространение в качестве ОСРВ получили уровневые ОС (рисунок 2).Примером такой ОС является хорошо известная система MS-DOS.
В системах этого класса прикладные приложения могли получить доступ к аппаратуре не только посредством ядра системы или ее резидентных сервисов, но и непосредственно. По такому принципу строились ОСРВ в течение многих лет.
По сравнению с монолитными ОС такая архитектура обеспечивает значительно большую степень предсказуемости реакций системы, а также позволяет осуществлять быстрый доступ прикладных приложений к аппаратуре. Недостатком
таких систем является отсутствие в них многозадачности. В рамках такой архитектуры проблема обработки асинхронных событий сводилась к буферизации сообщений, а затем последовательному опросу буферов и обработке. При этом соблюдение критических сроков обслуживания обеспечивалось высоким быстродействием вычислительного комплекса по сравнению со скоростью протекания внешних процессов.
Рисунок 2. Архитектура уровневой ОС
Одной из наиболее эффективных архитектур для построения операционных систем реального времени считается архитектура клиент – сервер. Общая схема ОС работающей по этой технологии представлена на рисунке 3.
Основным принципом такой архитектуры является вынесение сервисов ОС в виде серверов на уровень пользователя, а микроядро выполняет функции диспетчера сообщений между клиентскими пользовательскими программами и серверами – системными сервисами.
Такая архитектура дает массу плюсов с точки зрения требований к ОСРВ и встраиваемым системам. Среди этих преимуществ можно отметить:
1. Повышается надежность ОС, т.к. каждый сервис является, по сути, самостоятельным приложением и его легче отладить и отследить ошибки.
2. Такая система лучше масштабируется, поскольку ненужные сервисы могут быть исключены из системы без ущерба к ее работоспособности.
3. Повышается отказоустойчивость системы, т.к. «зависший» сервис может быть перезапущен без
перезагрузки системы.
Рисунок 3. Построение ОС с использованием архитектуры клиент-сервер
К сожалению на сегодняшний день не так много ОС реализуется по принципу клиент-сервер. Среди известных ОСРВ реализующих архитектуру микроядра можно отметить OS9 и QNX.
Список использованной литературы:
1) http://ru.wikipedia.org/wiki/Операционная_система_реального_времени
2) http://www.asutp.ru/?p=600591
3) http://www.mka.ru/?p=40774
4) http://www.4stud.info/rtos/lecture1.html
5)http://www.ozon.ru/context/detail/id/3092042/
Источник: http://omoled.ru/publications/view/20
Нужна ли вам операционная система реального времени?
ОСРВ обеспечивает разработчика основой, на которой выстраиваются и организуются элементы системы. На самом деле преимущества простираются гораздо шире реально-временного аспекта – даже для систем, не нуждающихся в этом, потому что программа может быть гораздо лучше организована, если основана на ОСРВ.
Интеграция ОСРВ позволяет решить множество проблем, которые могут возникнуть с программой приложения, так как она обеспечивает возможность многозадачности и позволяет разбивать приложение на более мелкие части (задачи).
Каждая задача получает свой собственный приоритет, основанный на её важности, а преимущественное планирование гарантирует, что микроконтроллер будет выполнять задачу, имеющую наивысший приоритет среди задач, готовых к запуску.
В большинстве случаев, добавление задачи с более низким приоритетом не влияет на скорость реакции системы по отношению к высокоприоритетным задачам.
В настоящее время ARM- и Cortex- базируемые микроконтроллеры доступны примерно по той же цене, что и 8-, или 16-битные микроконтроллеры.
Предлагаемая ими дополнительная работоспособность означает, что специализированная система отлично справится с работой ОСРВ. Кроме того, возросшая сложность современных приложений позволит извлечь выгоду из проектов, использующих ОСРВ.
Однако, микроконтроллер должен иметь по меньшей мере от 16 до 32 КВ флэш-памяти или памяти программ, чтобы можно было успешно использовать ОСРВ.
Выбор осрв
ОСРВ – это лишь один компонент полной экосистемы разработки. Подобная сложность, связанная с широким рядом доступных продуктов, вызывает новые вопросы. Разработчик должен решить – какая ОСРВ идеально подходит к приложению и какая ОСРВ идеальна для микроконтроллера.
Хочется надеяться, что в обоих случаях – одна и та же. Вдобавок, разработчик должен выбрать инструменты для программирования и отладки, которые хорошо работают под выбранной ОСРВ.
К счастью, сегодня доступны объективные источники информации для разработчиков, которые помогут им ответить на вышеупомянутые вопросы.
Высокоприоритетные / низкоприоритетные
Основная проблема в системах реального времени – это время, требуемое для отклика на прерывание и запуска пользовательского кода (задачи), чтобы обработать прерывание.
Системы, не использующие ОСРВ, известны как высокоприоритетные/низкоприоритетные (foreground/background) и работают, как показано на рис.1.
Приложение вызывает модули для выполнения желаемых операций: низкоприоритетные модули выполняются последовательно в основном цикле программы, а прерывания обрабатывают асинхронные события с высоким приоритетом.
Типичные приложения будут выполнять много опросов и программа будет становиться беспорядочной, по мере роста приложения. Без ОСРВ также приходится самому реализовывать такие полезные сервисы как временные задержки и таймеры, необходимые для выполнения программы со множеством конечных автоматов.
рисунок 1
МНОГОЗАДАЧНОСТЬ
Многозадачность (multitasking) – это процесс планирования и переключения процессора между несколькими задачами, делящими между собой процессор.
Один из наиболее важных аспектов многозадачности в том, что она позволяет программисту приложения управлять комплексностью, присущей современным приложениям.
ОСРВ может сделать программы приложения проще в проектировании и обслуживании, управляя задачами и передачей информации между ними.
Когда системе нужно запустить другую задачу по причине наступления более важного события, текущее содержимое регистров процессора сохраняется как часть текущей задачи. Контекст новой (более важной) задачи – перед выполнением ее кода восстанавливается в прежнее состояние.
Эту процедуру выполняет так называемый переключатель контекста или переключатель задач. Текущая вершина стека для каждой задачи наряду с другой информацией хранится в структуре данных, называемой блоком управления задачей (Task Control Block), который управляется ОСРВ.
ПЛАНИРОВАНИЕ
Порядок, в котором выполняются задачи, определяется планировщиком (scheduler) или диспетчером (dispatcher). Существует два типа планировщиков: кооперативный (non pre-emptive) и вытесняющий (pre-emptive).
В кооперативном планировщике задачи взаимодействуют (кооперируются) друг с другом чтобы получить контроль над процессором: когда задача освобождает процессор, ядро выполняет код следующей, наиболее важной, готовой к запуску задачи. Асинхронные события всё ещё обслуживаются обработчиками прерываний, которые могут сделать высокоприоритетную задачу готовой к выполнению, но обработчик прерываний всегда возвращается к прерванной задаче. Новая задача с более высоким приоритетом получит доступ к процессору только тогда, когда текущая задача добровольно освободит процессор, как показано на рисунке 2. Когда в вытесняющем планировщике, показанном на рисунке 3, событие, или обработчик прерываний делает задачу с более высоким приоритетом готовой к выполнению, текущая задача немедленно приостанавливается и доступ к процессору получает задача с более высоким приоритетом. Большинство систем реального времени используют вытесняющие планировщики, потому что они реагируют быстрее, нежели кооперативные ядра.
рисунок 3
РЕСУРСЫ
Очевидная выгода от использования ОСРВ в том, что она сокращает время выхода на рынок (time to market), поскольку упрощает разработку, не потребляя при этом большого количества ресурсов процессора.
uC/OS-II от Micrium, например, использует только от 6 до 24 КВ памяти программ и от 1 до 8 КВ памяти данных на ARM- устройствах.
На небольших 8- или 16-битных платформах затраты ещё меньше – только от 4 до 16 КВ памяти программ.
ОСРВ, как правило, имеет детерминированную характеристику, то есть заданный набор критических задач может быть целиком выполнен к установленному сроку. Опрос (polling) избегается благодаря выполнению задач только во время возникновения событий. Задачи, ожидающие события, не потребляют циклы процессора.
Коммерческие преимущества осрв
Некоторые компании используют ОСРВ собственной разработки, но их системы могут страдать от недостатка документации и расширенного тестирования. Собственные ОСРВ обычно не могут быть перенесены на другие процессоры и их код зачастую несовершенен. Хуже того, если проектировщик, который их создал, покидает компанию, может оказаться, что систему невозможно обслуживать.
Коммерческая ОСРВ используется в сотнях, если не тысячах проектов, и базируется на испытанном коде, дающем уверенность в ее работоспособности. uC/OS-II от Micrium имеет сертификат FAA/FDA/IEC, что позволяет использовать ее в авиационной электронике, медицине и других типах приложений, требовательных к безопасности.
Даже если устройство не нуждается в надежности ОСРВ, сертифицированных для авиационной электроники, всё таки приятно знать, что ОСРВ прошла расширенное тестирование. uC/OS-II также в высшей степени мобильна и может работать на более чем 45 различных процессорах. Код приложения может быть легко перенесён (портирован) с 8-битной на 32-битную архитектуру и даже на DSP.
Пользователь обеспечивается полномасштабной поддержкой и документацией.
Большинство сервисов, которые могут потребоваться приложению, уже интегрированы в ОСРВ. Среди них: – Управление временем (time management) – временные задержки и таймеры – Управление задачами (task management) – создание, удаление, приостановка, возобновление – Взаимоисключения – Передача сообщений – Передача сигналов
Преимущества использования ОСРВ подчеркиваются доступностью полного портфолио компонентов встроенного программного обеспечения (ПО), а также промежуточного ПО, включая стек TCP/IP, стек USB, стек CANbus, UART, файловые системы и графический интерфейс пользователя. Конечно, некоторые компоненты могут потребовать большего быстродействия, чем то, которым располагают low-end процессоры.
Два направления в индустрии коммерческих ОСРВ делают начало работы с ними еще проще. Многие ОСРВ, включая uC/OS-II теперь продаются на основе, не требующей авторских выплат, что гораздо выгоднее, чем использование ОСРВ, которые требуют непрерывной уплаты роялти. Зачастую, ОСРВ входит, в случае приобретения лицензии, во многие стартовые наборы (MCU starter kits).
ЗАКЛЮЧЕНИЕ
ОСРВ – бесценный инструмент, упрощающий разработку большинства встраиваемых приложений – реального времени, или нет – и позволяющий добавление новых функций, не требуя больших изменений в ПО. Учитывая небольшие системные издержки, использование ОСРВ в настоящее время оправдано во многих малых 8- и 16-битных встраиваемых системах, а также в системах с 32-х битными или более мощными процессорами.
Источник: http://chipenable.ru/index.php/item/61
Операционные системы реального времени
Источник: https://megapredmet.ru/1-66668.html
Adblockdetector