Система приоритетов и алгоритмы диспетчеризации.
Базовыми инструментами разработки сценария работы системы являются система приоритетов процессов (задач) и алгоритмы планирования (диспетчеризации) операционных системах реального времени. В многозадачных ОС общего назначения используются, как правило, различные модификации алгоритма круговой диспетчеризации, основанные на понятии непрерывного кванта времени («time slice»), предоставляемого процессу для работы. Планировщик по истечении каждого кванта времени просматривает очередь активных процессов и принимает решение, кому передать управление, основываясь на приоритетах процессов (численных значениях, им присвоенных). Приоритеты могут быть фиксированными или меняться со временем – это зависит от алгоритмов планирования в данной ОС, но рано или поздно процессорное время получат все процессы в системе [9]. Алгоритмы круговой диспетчеризации неприменимы в чистом виде в операционных системах реального времени. Основной недостаток – непрерывный квант времени, в течение которого процессором владеет только один процесс. Планировщики же операционных систем реального времени имеют возможность сменить процесс до истечения «time slice», если в этом возникла необходимость [9]. Один из возможных алгоритмов планирования при этом «приоритетный с вытеснением». Мир операционных систем реального времени отличается богатством различных алгоритмов планирования: динамические, приоритетные, монотонные, адаптивные и пр., цель же всегда преследуется одна – предоставить инструмент, позволяющий в нужный момент времени исполнять именно тот процесс, который необходим.
Механизмы межзадачного взаимодействия.
Другой набор механизмов реального времени относится к средствам синхронизации процессов и передачи данных между ними. Для операционных систем реального времени характерна развитость этих механизмов. К таким механизмам относятся: семафоры, мьютексы, события, сигналы, средства для работы с разделяемой памятью, каналы данных (pipes), очереди сообщений. Многие из подобных механизмов используются и в ОС общего назначения, но их реализация в операционных системах реального времени имеет свои особенности – время исполнения системных вызовов почти не зависит от состояния системы, и в каждой операционной системе реального времени есть по крайней мере один быстрый механизм передачи данных от процесса к процессу [9]. Средства для работы с таймерами.
Такие инструменты, как средства работы с таймерами, необходимы для систем с жестким временным регламентом, поэтому развитость средств работы с таймерами – необходимый атрибут операционных систем реального времени. Эти средства, как правило, позволяют: · измерять и задавать различные промежутки времени (от 1 мкс и выше), · генерировать прерывания по истечении временных интервалов, · создавать разовые и циклические будильники Здесь описаны только базовые, обязательные механизмы, использующиеся в ОСРВ. Кроме того, почти в каждой операционной системе реального времени вы найдете целый набор дополнительных, специфических только для нее механизмов, касающийся системы ввода-вывода, управления прерываниями, работы с памятью [9]. Каждая система содержит также ряд средств, обеспечивающих ее надежность: встроенные механизмы контроля целостности кодов, инструменты для работы с Watch-Dog таймерами.
Классы систем реального времени. Количество операционных систем реального времени, несмотря на ихспецифику, очень велико. В последнем обзоре «Real-Time Magazine» (NN 2-3,97) было упомянуто около шестидесяти систем. Однако сама специфика применения операционных систем реального времени требует гарантий надежности, причем гарантий в том числе и юридических – этим, видимо, можно объяснить тот факт, что среди некоммерческих систем реального времени нет сколько-нибудь популярных.
Среди коммерческих систем реального времени можно выделить группу ведущих систем - по объемам продаж и по популярности. Эти системы: VxWorks, OS9, pSOS, LynxOS, QNX, VRTX [7]. Исполнительные системы реального времени.
Признаки систем этого типа – различные платформы для систем разработки и исполнения. Приложение реального времени разрабатывается на host- компьютере (компьютере системы разработки), затем компонуется с ядром и загружается в целевую систему для исполнения. Как правило, приложение реального времени – это одна задача и параллелизм здесь достигается с помощью нитей (threads). Системы этого типа обладают рядом достоинств, среди которых главное – скорость и реактивность системы. Главная причина высокой реактивности систем этого типа – наличие только нитей(потоков) и, следовательно, маленькое время переключения контекста между ними (в отличие от процессов) [7]. С этим главным достоинством связан и ряд недостатков: зависание всей системы при зависании нити, проблемы с динамической подгрузкой новых приложений. Кроме того, системы разработки для продуктов этого класса традиционно дороги. Хотя, надо отметить, что качество и функциональность систем разработки в этом классе традиционно хороши, так как они были изначально кроссовыми. Наиболее ярким представителем систем этого класса является операционная система VxWorks. Область применения – компактные системы реального времени с хорошими временами реакций.
Ядра реального времени.
В этот класс входят системы с монолитным ядром, где и содержится реализация всех механизмов реального времени этих операционных систем. Исторически системы этого типа были хорошо спроектированы. В отличие от систем других классов, которые появлялись как временные компромиссы и затем «наращивали мускулы» благодаря первым удачным реализациям (исполнительные системы реального времени и UNIX'ы реального времени), разработчики систем этого класса имели время для разработки систем именно реального времени и не были изначально ограничены в выборе средств (например фирма «Microware» имела в своем распоряжении три года для разработки первого варианта OS-9) [7].
Системы этого класса, как правило, модульно, хорошо структурированы, имеют наиболее развитый набор специфических механизмов реального времени, компактны и предсказуемы. Наиболее популярные системы этого класса: OS9, QNX. Одна из особенностей систем этого класса – высокая степень масштабируемости. На базе этих ОС можно построить как компактные системы реального времени, так и большие системы серверного класса. Как правило, ядра реального времени имеют два типа систем разработки – кроссовую и резидентную.
UNIX'ы реального времени.
Исторически системы реального времени создавались в эпоху расцвета и бума UNIX'а и поэтому многие из них содержат те или иные заимствования из этой красивой концепции операционный системы (пользовательский интерфейс, концепция процессов и т.д.). Часть разработчиков операционных систем реального времени попыталась просто переписать ядро UNIX, сохранив при этом интерфейс пользовательских процессов с системой, насколько это было возможно. Реализация этой идеи не была слишком сложной, поскольку не было препятствия в доступе к исходным текстам ядра, а результат оказался замечательным. Получили и реальное время и сразу весь набор пользовательских приложений – компиляторы, пакеты, различные инструментальные системы. В этом смысле создателям систем первых двух классов пришлось потрудиться не только при создании ядра реального времени, но и продвинутых систем разработки. Однако Unix'ы реального времени не избавлены от следующих недостатков: системы реального времени получаются достаточно большими и реактивность их ниже, чем реактивность систем первых двух классов [9]. Наиболее популярным представителем систем этого класса является операционная система реального времени Lynx OS [9].
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|