Вход |  Регистрация
 
 
Время электроники Четверг, 23 января
 
 

Это интересно!

Ранее

Выбор ОС реального времени для высокоскоростного контроля и управления

Во многих системах необходимо использование режима полного реального времени. В статье описаны факторы, влияющие на выбор ОС реального времени.

Технологии AdvancedTCA, AdvancedMC и MicroTCA: быстрые интерфейсы и процессоры под соусом стандартизации. Часть 2

Вычислительная мощь системы без учета взаимодействия между различными ее частями зависит от механических и электрических параметров используемых печатных плат. Благодаря увеличенной площади плат, большему расстоянию между платами и повышенному допустимому энергопотреблению каждой платы (до 200 Вт), стандарт AdvancedTCA позволяет создавать и применять вычислительные узлы на базе самых современных процессоров. Во второй части статьи мы продолжаем рассказ об особенностях реализации устройств по стандарту AdvancedTCA.

Выбор подходящего оборудования для систем управления и сбора данных. Часть 1

С проблемой выбора встречается каждый разработчик. Для одних она не представляет большой сложности, но для других может стать предметом долгих размышлений. Выбор правильной аппаратной платформы для контроля и автоматизации процессов на производстве — задача не из легких. В статье обосновываются принципы, упрощающие жизнь разработчику.

 

15 мая

Операционные системы реального времени для цифровой обработки сигнала. Часть 1

В статье рассмотрены основные особенности операционных систем реального времени для цифровой обработки сигналов. Перечислены их характеристики и описаны функциональные возможности. Показана необходимость применения подобных систем, которые обеспечивают разработчику необходимый уровень абстракции от сложной аппаратной части и значительно сокращают время разработки. Статья представляет собой сокращенный перевод [1].





Вы можете скачать эту статью в формате pdf здесь.

Скрыть/показать html версию статьи
background image
В
с
тр
аи
В
аемые
сис
темы
59
электронные компоненты №5 2008
В статье рассмотрены основные особенности операционных систем
реального времени для цифровой обработки сигналов. Перечислены их
характеристики и описаны функциональные возможности. Показана
необходимость применения подобных систем, которые обеспечивают
разработчику необходимый уровень абстракции от сложной аппарат-
ной части и значительно сокращают время разработки. Статья пред-
ставляет собой сокращенный перевод [1].
ОПераЦиОНые системы реаЛЬНОГО
ВремеНи ДЛЯ ЦиФрОВОЙ
ОБраБОтКи сиГНаЛа. Часть 1
РобеРт ошана (RobeRt oshana), DSP DesignLine
ВВедение
Современные системы обработки
сигнала управляются операционными
системами реального времени (ОСРВ).
Последние обеспечивают многозадач-
ную работу, обрабатывают внешние
прерывания и эффективно управляют
ресурсами системы, например: пря-
мым доступом к памяти, встроенной
памятью, вводом/выводом, периферией.
ОС и, в частности, ОСРВ, загружаются
программой-загрузчиком при включе-
нии процессора и управляют другими
программами, которые называются при-
ложениями или задачами. ОС — элемент
системного программирования. ОС обе-
спечивает инфраструктуру для приклад-
ного ПО и позволяет абстрагироваться
от аппаратного обеспечения (см. рис.1).
Приложения взаимодействуют с
операционной системой, вызывая ее
службы через заданный программный
интерфейс приложений — application
program interface (API). ОС общего назна-
чения предоставляет приложениям сле-
дующие сервисы:
– в многозадачной ОС определяют
порядок выполнения и время, выделяе-
мое каждому приложению;
– ОС управляет распределением
встроенной памяти между несколькими
приложениями;
– ОС обеспечивает обмен данными
с внешними устройствами;
– ОС рассылает приложениям и
пользователям оповещения о статусе
операций и любых ошибках, которые
могут произойти;
– ОС может управлять исполнением
так называемых пакетных задач (batch
jobs), например, печати, освобождая
вызвавшее их приложение;
– при параллельном вычислении ОС
с разделением задач загружает несколь-
ко процессоров одновременно.
По некоторым параметрам практи-
чески любая ОС общего назначения
(например, Windows NT) обладает при-
знаками систем реального времени. Но
мы определим ОСРВ как особый класс
операционных систем, которые гаран-
тируют выполнение определенных
действий за определенный интервал
времени. ОСРВ должна обладать рядом
свойств. Самое важное — ОСРВ должна
быть многопоточной и поддерживать
вытесняющую многозадачность, а также
приоритеты задач. Чтобы ограничить
возможность нарушения приоритетов,
система должна поддерживать насле-
дование приоритетов. Отклонение от
выполнения задачи в реальном времени
(РВ) для управления ресурсами должно
быть крайне небольшим и точно извест-
ным заранее, чтобы было возможно
определить время выполнения задачи
в целом.
Планировщик управляет процессор-
ным временем и функциями РВ про-
цессора. Диспетчер памяти выделяет,
освобождает и защищает память кода
и данных. Драйверы управляют устрой-
ствами ввода/вывода, таймерами,
устройствами прямого доступа к памя-
ти и т.п. Помимо того, небольшая часть
рабочего времени ОСРВ использует для
явного управления ресурсами — чтобы
обеспечить приемлемый уровень пред-
сказания времени выполнения задания.
ВыбоР оСРВ
При выборе надо учитывать всю
процедуру разработки. Эффективность
исполнения операций только часть про-
блемы. Минимальная задержка обра-
ботки прерываний или переключения
контекста не так уж важна, если отсут-
ствие инструментов или поддержки
драйверов выведет проект из графика
на несколько месяцев. Вот несколько
пунктов, которые надо учитывать при
выборе.
1. Предназначена ли ОСРВ для
задач цифровой обработки сигнала?
Некоторые ОСРВ создаются для специ-
альных приложений, таких как цифровая
обработка сигналов или применение в
сотовом телефоне. Другие имеют более
общее назначение.
2. Насколько качественна докумен-
тация и поддержка?
3. Насколько хорошо поддерживает-
ся ОСРВ средствами разработки?
4. Насколько хороша поддержка
оборудования? Есть ли драйверы для
устройств, которые предполагается
использовать, и для тех, поддержка кото-
рых может потребоваться в будущем?
5. Подходит ли ОСРВ для решения
ваших задач? Для ОСРВ модульность
и расширяемость важнее, чем для ОС
общего назначения. Во встраиваемых
системах ядро должно быть компактным,
поскольку объемы ОЗУ и ПЗУ часто огра-
ничены. Поэтому многие ОСРВ построе-
ны на микроядре, которое обеспечивает
только основные функции: планирова-
ние задач, синхронизацию, обработку
прерываний, поддержку многозадачно-
сти.
6. Сертифицируема ли система?
Некоторые системы, для которых безо-
пасность является критичным условием,
требуют обязательной сертификации.
7. Особенности цифровой обработ-
ки сигналов. Выбор ОСРВ, ориентиро-
Рис. 1. Компоненты программного обеспечения
для встраиваемого цифрового сигнального про-
цессора
background image
60
В
с
тр
аи
В
аемые
сис
темы
www. elcp.ru
ванной на цифровую обработку сигна-
лов, имеет ряд особенностей. Типичное
встраиваемое приложение ЦОС состо-
ит из двух основных компонентов —
системного и прикладного.
8. ОСРВ для ЦОС имеют очень
малое время реакции на прерывания.
Поскольку многие системы ЦОС взаи-
модействуют с внешним окружением,
они управляются событиями — или
прерываниями. По тем же причинам
ОСРВ для ЦОС гарантируют, что общее
время, в течение которого прерывания
отключены, минимально. Пока преры-
вания отключены (например, во время
переключения контекста), цифровой
сигнальный процессор не может реаги-
ровать на внешние события.
9. ОСРВ для ЦОС также реализуют
независимые от аппаратуры высокопро-
изводительные функции ввода/вывода.
Они обеспечивают базовые возможно-
сти ввода/вывода для взаимодействия
с другими потоками и устройствами.
Операции ввода/вывода должны быть
асинхронными, иметь малые задержки
и быть детерминированными — в том
смысле, что скорость передачи должна
быть одинаковой для любых объемов
данных.
10. ОСРВ для ЦОС также должна
иметь специализированные средства
управления памятью. Такая система
должна обеспечивать возможности для
эффективного распределения памяти и
ее конфигурирования.
11. Важна возможность распределе-
ния памяти и областей динамических
данных с минимальными потерями
объема. ОСРВ также должна взаимодей-
ствовать с различными типами памяти,
которые могут использоваться в систе-
ме ЦОС, включая статическую и дина-
мическую память, быструю память, раз-
мещенную на кристалле, и т.д.
ПоддеРжка уСтРойСтВ В
СиСтемах Реального ВРемени
для цифРоВой обРаботки
СигналоВ
Частью инфраструктуры поддержки
ОСРВ является ПО для доступа к раз-
личным периферийным устройствам
процессоров. Библиотека поддерж-
ки устройств — Chip Support Library
(CSL) — это динамическая библиотека,
используемая для настройки и управ-
ления встроенными периферийными
устройствами процессора, такими как
кэш, блок прямого доступа к памяти,
внешний интерфейс памяти, многока-
нальный буферизованный последова-
тельный порт, таймеры и т.д. Библиотека
обеспечивает как инициализацию
устройств, так и управление в про-
цессе работы и хорошо вписывается
в пакет ОСРВ для ЦОС, обеспечивая
необходимое абстрагирование от аппа-
ратуры. Производители процессоров
предоставляют такие библиотеки, как
правило, написанные на языке С, уже
оптимизированные по объему кода и
быстродействию.
Поскольку различные цифровые сиг-
нальные процессоры и семейства про-
цессоров используют различные пери-
ферийные устройства, для каждого из
процессоров нужна своя библиотека
поддержки. Абстрагирование от аппара-
туры (см. рис. 2), обеспечиваемое такими
библиотеками, мало влияет на произво-
дительность системы, и в то же время
обеспечивает серьезные преимущества
для разработчика:
– сокращение времени разработ-
ки — от разработчика не требуется
досконально разбираться в большом
количестве регистров процессора, уро-
вень аппаратной абстракции библиоте-
ки поддержки обеспечивает прозрач-
ную работу;
– стандартизация — правильно
разработанная библиотека поддержки
обеспечивает унифицированную мето-
дологию разработки определений про-
граммных интерфейсов (API), предлагае-
мых разработчикам систем;
– инструментальная поддержка —
часто доступна поддержка со стороны
инструментов разработки для цифровых
сигнальных процессоров, упрощающая
генерацию заказных конфигураций и
инициализацию регистров системы;
– управление ресурсами — базо-
вое управление ресурсами для пери-
ферийных блоков, имеющих несколько
каналов, портов, устройств и т.п. суще-
ственно упрощается.
концеПции оСРВ
ОСРВ подразумевают определен-
ную функциональность, необходимую
для эффективного выполнения своей
задачи — выполнения всех операций
в пределах определенных временных
интервалов. В этом разделе описаны
основные функции, реализуемые опера-
ционными системами.
Задачи. Задача — основная единица
программного обеспечения, с которой
имеет дело операционная система. В
разных ОС понятие задачи может незна-
чительно отличаться. Задача реализу-
ет вычислительную работу и является
основным элементом, которым опери-
рует планировщик. Ядро создает зада-
чу, выделяет для нее область в памяти
и переносит код, который требуется
выполнить в рамках задачи в ОЗУ. При
этом создается структура, называемая
блоком управления задачей. Задача —
это некий объем информации, ассоции-
рующийся с работой одного экземпляра
программы, которая может работать с
несколькими пользователями. С точки
зрения программы, задача — это инфор-
мация, необходимая для обслуживания
одного индивидуального пользовате-
ля или конкретный служебный запрос.
Типы задач реального времени:
– периодические — выполняются
регулярно, в соответствии с заранее
рассчитанным графиком;
– спорадические — переключаются
внешними событиями или условиями, с
предопределенной предельной часто-
той;
– спонтанные — дополнительные
задачи, исполняемые в соответствии с
внешними событиями (или возможно-
стями) при наличии свободных ресур-
сов;
– текущие — планируются на осно-
ве разделения времени, то есть, с фикси-
рованной долей процессорного време-
ни.
Многозадачность. Современные
процессоры МП выполняют только одну
инструкцию в каждый момент време-
ни, но из-за высокой производитель-
ности и быстрого переключения между
задачами создается иллюзия, что работа
нескольких программ и обслуживание
нескольких пользователей происходит
одновременно. В системах с приори-
тетным планированием каждой задаче
присваивается приоритет, основанный
на ее относительной важности, количе-
стве потребляемых ею ресурсов и дру-
гих факторов. Существуют три основных
типа многозадачности.
1. Вытесняющая — если высокопри-
оритетная задача готова к выполнению,
она может немедленно вытеснить зада-
чи с низким приоритетом и захватить
процессор без ожидания следующего
интервала планирования. В данном кон-
тексте «немедленно» означает сразу по
окончании текущего периода планиро-
вания. Эта задержка — один из самых
важных характеристик ядра ОСРВ и
главным образом определяет реакцию
системы на внешние воздействия.
2. Кооперативная — если задача
не готова к исполнению, она самостоя-
тельно освобождает управление про-
цессором, чтобы другие задачи могли
выполняться. Такой алгоритм не требует
Рис. 2. Аппаратная абстракция упрощает работу с
периферийными устройствами
background image
В
с
тр
аи
В
аемые
сис
темы
61
электронные компоненты №5 2008
особого планирования и в общем слу-
чае не пригоден для приложений реаль-
ного времени.
3. С разделением времени — имеет
низкую реактивность (ограниченную
длительностью интервала планирова-
ния). В ОСРВ алгоритм планирования
всегда использует разделение времени,
т. к. всегда есть не оперативные задачи,
например, взаимодействие с пользова-
телем, протоколирование и учет инфор-
мации и т.д. Эти задачи имеют низкий
приоритет, и их исполнение планирует-
ся в тех временных интервалах, в кото-
рых нет готовых к выполнению задач с
высоким приоритетом.
Быстрая реакция на прерывания.
Практически все DSP-процессоры и
процессоры общего назначения управ-
ляются прерываниями. Процессор, при-
ступив к исполнению последовательно-
сти инструкций одной программы, будет
продолжать до тех пор, пока задача не
будет выполнена или пока дальнейшее
выполнение не станет невозможным
(например, из-за ожидания системного
ресурса) или пока не будет получен сиг-
нал прерывания.
ОСРВ содержит код, называемый
обработчиком прерываний. Обработчик
прерываний устанавливает приоритеты
прерываний и сохраняет их в очере-
ди, если обработки ожидает несколько
прерываний. Затем планировщик ОСРВ
определяет, какой программе переда-
вать управление. Сигнал запроса преры-
вания — interrupt request (IRQ) — имеет
ассоциированное с ним числовое зна-
чение. Таким образом, процессор полу-
чает информацию, какое именно устрой-
ство послало сигнал запроса и может
выбрать определенную процедуру, обе-
спечивающую необходимую реакцию
на этот запрос. Каждому устройству и
его соединению с процессором должно
быть присвоено уникальное значение.
ПланиРоВание задач В оСРВ
Алгоритм планирования выполнения
задач — одна из самых важных особен-
ностей ОСРВ. Планировщик определяет,
какие задачи могут быть запущены в
данный момент. Планирование выпол-
няется на том же процессоре, что и
пользовательские задачи, и это снижает
эффективность использования ресур-
сов процессора. Существует множество
алгоритмов планирования и характе-
ристик планировщиков, но для систем
реального времени актуальны не все.
Планирование задач основано на систе-
ме приоритетов — задачи с высоким
приоритетом исполняются первыми.
Также планировщик задач должен быть
вытесняющим — если задача с высо-
ким приоритетом готова к исполнению,
она немедленно вытеснит работающую
задачу с более низким приоритетом. Эта
особенность для задач реального вре-
мени является необходимой. Наконец,
ОСРВ для ЦОС должна управляться
событиями и реагировать на внешние
события — такие, как прерывания — а
также и на внутренние события, если
понадобится.
Жаргон многозадачности. Тер-
мино логия часто смущает неопытных
разработчиков, поскольку существу-
ет множество различных технологий и
стратегий разделения процессорного
времени. Определяющие особенности
их заключаются в том, как задаче переда-
ется управление процессором, и как она
его теряет. Хотя с точки зрения разработ-
чика эти аспекты различны, в литературе
и разговорах их часто неявно связывают.
Выполнение задачи может прерываться
одним из следующих способов.
1. По «добровольному согласию» —
совместная (или корпоративная) много-
задачность. Чтобы процессор перешел
от выполнения одной задачи к другой,
останавливаемая задача должна сделать
соответствующий вызов ОС. Такие систе-
мы работают в многозадачном режиме
до тех пор, пока все задачи «доброволь-
но» делятся процессорным временем.
2. Только после выполнения зада-
чи — работа до завершения. С практиче-
ской точки зрения такой стиль требует,
чтобы все задачи имели относительно
малую длительность.
background image
62
В
с
тр
аи
В
аемые
сис
темы
www. elcp.ru
3. По требованию планировщика —
вытесняющая многозадачность. В этом
варианте планировщик задач может
прервать выполнение задачи в любой
момент. В общем случае, вытесняющие
планировщики более пригодны для слу-
чаев с особыми требованиями к вре-
менным параметрам. Если планировщик
переключает задачи с фиксированными
интервалами, такой тип планирования
называется многозадачностью с кванто-
ванием времени.
Выбор задачи для выполнения может
производиться одним из следующих
способов.
1. Поочередно. Используется про-
стая очередь (FIFO) задач. Применяется
очень редко.
2. По очереди в фиксированном
цикле. Малоэффективный циклический
планировщик. Если цикл возможно
начинать заново только с определен-
ным фиксированным интервалом, то
такой планировщик называется цикли-
ческим с постоянной частотой (rate
cyclic scheduler).
3. По истечении определенного
периода времени. Очень формальный
тип разделения процессорного време-
ни, при котором интервалы, или кванты
времени, выделяемые задачам, фикси-
рованы. Если задачи обрабатываются в
порядке очереди (FIFO), то такой тип
называется карусельным (Round-robin).
Если задачи выбираются по другой
схеме, то это планирование с квантова-
нием времени.
4. По приоритету — для выполнения
выбирается задача с приоритетом выше,
чем у прочих.
Не все комбинации вышеперечислен-
ных типов планирования имеют смысл,
но в любом случае важно понимать, что
прерывание выполнения одной задачи
и выбор следующей — это разные меха-
низмы. Некоторые сочетания настолько
обычны (например, вытесняющая много-
задачность с приоритетами), что одна из
особенностей (учет приоритетов) часто
неправильно трактуется как элемент
другой (вытеснения). Фактически наи-
более разумным было бы использовать
невытесняющий (т.е. с выполнением до
завершения) планировщик с приори-
тетами задач. Но по техническим при-
чинам в ОСРВ чаще всего используются
вытесняющие планировщики с приори-
тетами.
Планировщик — основной компо-
нент ядра ОС. Он — как задача — выпол-
няется периодически вне зависимости
от изменений потоков. В однозадач-
ной системе планировщик не нужен,
поскольку в ней нет разделения рабоче-
го времени процессора между задачами.
Многозадачность же подразумевает пла-
нирование разделения процессорного
времени. В большинстве систем реаль-
ного времени планировщик вызывается
через равные интервалы времени, по
периодическому прерыванию тайме-
ра. Период, с которым инициируется
это прерывание, называется «частотой
пульса» системы. На каждом прерыва-
нии таймера ОСРВ обновляет состояние
системы, анализируя выполнение задач,
и делает выводы о предоставлении про-
цессора той или иной задаче.
Состояния задач. Уточнить ситуа-
цию можно, определив для каждой
задачи состояния, отличные от готовно-
сти к выполнению. Основные состояния
типичной ОСРВ перечислены ниже.
1. Спящее — поток переводится в
спящее состояние немедленно после
его создания и инициализации. Поток
запускается (и выходит из спящего
состояния) при возникновении событий
определенного типа (или типов). После
завершения выполнения поток повтор-
но переводится в спящее состояние.
2. Готовность — поток входит в
состояние готовности после того, как он
запущен или вытеснен. В этом состоя-
нии поток находится в очереди готов-
ности и может выполняться. ОСРВ может
иметь несколько очередей готовности.
При планировании с фиксированными
приоритетами для каждого приоритета
строится своя очередь.
3. Исполнение — поток находится в
состоянии исполнения.
4. Приостановленное состояние
(состояние блокирования) — запущен-
ный поток переводится в приостанов-
ленное или блокированное состояние,
когда его выполнение не может быть
продолжено по тем или иным причи-
нам. Ядро помещает приостановленные
потоки в отдельную очередь. Причин
для приостановки ЦПС может быть
несколько. Задача может быть забло-
кирована из-за невозможности досту-
па к ресурсам. Задача может ожидать
синхронизации с другими задачами,
завершения операции ввода/вывода
или установления состояния сигнала.
Задача может исчерпать свой бюджет,
или может возникнуть апериодическая
задача, требующая выполнения. ОСРВ
может поддерживать различные очере-
ди для задач, приостановленных или
заблокированных по различным причи-
нам (например, различные очереди для
задач, ожидающих разных ресурсов).
5. Останов — поток, который не будет
больше выполняться, переходит в оста-
новленное состояние. Остановленный
поток может быть уничтожен.
Различные ОСРВ имеют несколько
различающиеся наборы состояний. На
рисунке 3 показана модель состояний
ОСРВ для ЦОС DSP/BIOS компании Texas
Instruments. Большинство ОСРВ пред-
лагают выбор между карусельным или
последовательным планированием
потоков с равными приоритетами. При
карусельном планировании использу-
ется квантование времени и понятие
бюджета.
На каждое прерывание таймера пла-
нировщик уменьшает бюджет потока на
длительность интервала между преры-
ваниями — период пульса системы. При
необходимости задачи будут выгружены
(поочередный алгоритм планирования
использует бесконечный интервал вре-
мени). С каждым прерыванием таймера
планировщик обновляет очередь готов-
ности и либо передает управление теку-
щей задаче, либо выгружает ее — если
она более не является задачей с наивыс-
шим приоритетом. Из-за предыдущих
действий некоторые потоки могут стать
готовыми (запущенные до завершения
отсчета таймера), и выполнение пото-
ка может быть прервано. Планировщик
соответственно изменит порядок оче-
реди и передаст управление первому
потоку в очереди с высшим приорите-
том.
ядРо оСРВ
Ядро — центральный элемент ОС,
обеспечивает набор базовых сервисов
для остальных частей ОС и реализует
Рис. 3. Модель состояний задач (с вытеснением)для системы реального времени DSP BIOS компании Texas
Instruments
background image
В
с
тр
аи
В
аемые
сис
темы
63
электронные компоненты №5 2008
следующий набор функций.
1. Обработчик прерываний для
управления запросами, претендующими
на использование служб ядра.
2. Планировщик, определяющий,
какие задачи и в какой последователь-
ности будут использовать рабочее
время ядра.
3. Диспетчер ресурсов, управляю-
щий использованием системных ресур-
сов, таких как оперативная или долго-
временная память, и их распределением
между различными задачами в системе.
Операционная система может содер-
жать и другие компоненты, такие как
диспетчер файлов, но они рассматри-
ваются отдельно от основных служб
ядра, необходимых для обеспечения
вычислительных возможностей. Есть
три причины, по которым ядро может
взять управление на себя, приостановив
выполнение текущей задачи:
– ответ на системный вызов;
– выполнение планирования и
работа служебных таймеров;
– обработка внешних прерываний.
Высшим приоритетом обладают аппа-
ратные прерывания. Одно аппаратное
прерывание может прервать обработку
другого. Следующий уровень приорите-
та — программные прерывания. ОСРВ
может поддерживать различные про-
граммные прерывания. Программные
прерывания имеют более низкий при-
оритет, чем аппаратные, а также имеют
внутреннюю систему приоритетов.
Аппаратные прерывания могут вытес-
нять программные. По принципу работы
программные прерывания аналогичны
аппаратным и управляются внутренним
таймером. Программные прерывания
выполняются до завершения и не могут
быть заблокированы или приостановле-
ны. Низший уровень приоритета имеют
задачи. Задачи могут быть вытеснены
программными и аппаратными пре-
рываниями, а также задачами с более
высоким приоритетом. Задачи выполня-
ются до завершения или откладываются,
если произошло блокирование по при-
чине ожидания ресурсов, или добро-
вольно — как, например, в карусельном
алгоритме планирования задач.
СиСтемные ВызоВы
Приложение может получить доступ
к коду и данным ядра посредством про-
граммных интерфейсов приложений
(API). Программный интерфейс — это
специальный метод, предварительно
описанный в ОС или прикладном ПО,
посредством которого программист,
пишущий приложение, может делать
запросы к ОС и другим программам.
Системный вызов — это вызов одной
из функций API. Когда такой вызов
происходит, ядро сохраняет контекст
вызывающей задачи, переключается из
пользовательского режима в режим
ядра (для обеспечения защиты памяти),
выполняет функцию от лица вызвавшей
задачи и возвращается в пользователь-
ский режим.
динамичеСкое РаСПРеделение
Памяти
Динамическое распределение памя-
ти позволяет размещать данные в памя-
ти по различным адресам. Настоящий
адрес в памяти обычно не имеет зна-
чения для приложения. Один из недо-
статков этого способа — возможность
фрагментации памяти. Такое случается,
когда несмотря на наличие достаточ-
ного свободного объема разместить
очередной блок невозможно — из-за
отсутствия достаточно большого непре-
рывного участка памяти.
оПРеделение ПотокоВ
Первый этап при разработке многоза-
дачной системы — это построение архи-
тектуры приложения в виде системы неза-
висимо от исполняемых потоков. Доступны
инструменты, помогающие разработчику
системы на этом этапе. В результате опре-
деления архитектуры получится набор
структурных схем, конечных автоматов,
диаграммы потоков данных. Пример набо-
ра независимых потоков при управлении
электродвигателем с помощью одного
процессора приведен на рисунке 4. В этой
схеме 4 независимых потока: основной
алгоритм управления — периодическая
задача, работающая с частотой 1 кГц;
поток обработки клавиатуры — аперио-
дическая задача, включаемая действиями
оператора; поток отображения на дис-
Рис. 4. Приложение управления двигателем, разделенное на независимые потоки
плее — периодическая задача, выпол-
няющаяся с частотой 2 Гц и поток вывода
данных, работающий как фоновая задача
и передающий данные, когда нет других
вычислительных задач.
Требования к схеме управления сле-
дующие:
– управление скоростью вращения
мотора (частота обновления: 1 кГц);
– прием с клавиатуры команд управ-
ления мотором, обновления дисплея;
– управление простым дисплеем, с
обновлением 2 раза в секунду;
– передача данных по порту RS-232 в
периоды времени, свободные от выпол-
нения других задач.
Определение относительных
приоритетов потоков. Когда опре-
делены основные потоки приложения,
надо установить их относительные при-
оритеты (см. табл. 1). Так как этот при-
мер системы управления — система
реального времени (есть жесткие вре-
менные параметры выполнения крити-
ческих операций), выполнение потоков
должно подчиняться приоритетам. В
данном примере есть один поток жест-
кого реального времени — алгоритм
управления мотором, который должен
выполняться с частотой 1 кГц. Также в
системе есть задачи мягкого реального
времени. Обновление дисплея с часто-
той 2 Гц — задача мягкого реального
времени. Обработка сигналов с клавиа-
туры — также задача мягкого реально-
го времени, но поскольку это — основ-
ной способ внешнего управления, у
задачи приоритет должен быть выше,
чем у обновления дисплея. Поток выво-
да наружу — фоновый, выполняется
Таблица 1. Приоритет задач
Задача
Частота
прерываний
Приоритет
Периодическая
или
апериодическая
Механизм
активации
Управление
электродвигателем
1 кГц
1
Периодическая
Аппаратное
прерывание
Управление
клавиатурой
5 Гц
2
Апериодическая
Аппаратное
прерывание
Управление дисплеем
2 Гц
3
Периодическая
Программное
прерывание
Вывод данных через
порт
Фоновая задача
4
Апериодическая
Цикл бездействия
(выполняется в
фоновом режиме)
background image
64
В
с
тр
аи
В
аемые
сис
темы
www. elcp.ru
только когда нет других работающих
задач.
Использование аппаратных пре-
рываний. Система управления двигате-
лем разрабатывается с использованием
аппаратных прерываний для контроля
потока управления двигателем. У пре-
рываний время переключения контек-
ста ниже, чем у переключения контек-
стов потоков, и прерывания могут быть
генерированы таймером процессора.
Приоритет задач в примере схемы управ-
ления мотором показан в таблице 1. Это
редкий пример монотонного распреде-
ления приоритетов: чем короче период
потока, тем выше его приоритет. Вместе
с приоритетами, описывается механизм
активации задач. Поток управления дви-
гателем с высшим приоритетом исполь-
зует аппаратное прерывание для запуска
исполнения. Аппаратные прерывания
имеют наибольший приоритет при пла-
нировании в большинстве ОСРВ. Работы
с клавиатурой также будет использовать
аппаратное прерывание, но его приори-
тет будет ниже, чем у прерывания управ-
ления двигателем. Поток управления дис-
плеем будет использовать программное
прерывание для обновления дисплея с
частотой 2 Гц. Задача с низшим приори-
тетом — вывод данных — будет рабо-
тать в непрерывном цикле в фоне, пока
не работают другие потоки с высшим
приоритетом.
Периодичности потоков. Поток
управления мотором — периодический.
Как и многие приложения цифровой
обработки сигналов, он обрабатывает
данные с некоторой периодичностью,
в данном случае — с частотой 1 кГц.
Рассматриваемый пример — система с
несколькими периодическими опера-
циями, в том числе управление мото-
ром и работа с дисплеем. Эти пото-
ки работают с разными скоростями.
ОСРВ для ЦОС позволяют одновремен-
ную работу нескольких периодических
потоков. Разработчик должен запро-
граммировать таймер процессора
таким образом, чтобы при наступле-
нии момента включения потока гене-
рировалось прерывание. Большинство
ОСРВ имеют стандартный диспетчер
таймеров и соответствующие функции
интерфейса для настройки параметров
таймеров.
заключение
Сложность ОСРВ возрастает. В то
время как программисты ЦОС пере-
ходят от модели «программирования в
малом», когда приложение ЦОС выпол-
няет одну задачу, к «программирова-
нию в большом», когда приложение
выполняет несколько сложных задач,
задача оптимального распределения
системных ресурсов становится все
более сложной. ОСРВ обеспечивает
необходимый уровень абстракции от
сложности систем. ОСРВ может быть
сконфигурирована разработчиком
ЦОС так, чтобы планировать зада-
чи в системе на основе набора пра-
вил, обрабатывать внешние события
быстро, эффективно распределять и
управлять системными ресурсами.
Коммерческие ОСРВ для ЦОС удобны
и полезны для разработчиков. Они
поставляются уже отлаженными, с
хорошей документацией и инструмен-
тальной поддержкой. Они оптимизи-
рованы, чтобы обеспечивать минимум
собственного потребления ресурсов
и максимум производительности для
ключевых функций, таких как пере-
ключение контекстов и обработка пре-
рываний.
Наиболее популярные ОСРВ для
ЦОС используют вытесняющие поли-
тики планирования с приоритетами.
Системы, основанные на таком подхо-
де к планированию, популярны в обла-
сти задач реального времени потому,
что они более легко анализируются,
чем более сложные механизмы плани-
рования.
Литература
1. Robert Oshana. Real-Time Operating
Systems for DSP// www.dspdesignline.com/howto/
199703749;jsessionid=PBNP00WGKAQVCQSNDLPS
KH0CJUNN2JVN?pgno=1.
Оцените материал:

Автор: Роберт Ошана (Robert Oshana), DSP DesignLine



Комментарии

0 / 0
0 / 0

Прокомментировать





 

Горячие темы

 
 




Rambler's Top100
Руководителям  |  Разработчикам  |  Производителям  |  Снабженцам
© 2007 - 2020 Издательский дом Электроника
Использование любых бесплатных материалов разрешено, при условии наличия ссылки на сайт «Время электроники».
Создание сайтаFractalla Design | Сделано на CMS DJEM ®
Контакты