Отключаемые счетчики электроэнергии на пульте. Все с документами пломбами, гарантией и без посредников!

Особенности работы ОСРВ

Особенности работы ОСРВ

В ходе работы ОСРВ могут возникнуть некоторые проблемы синхронизации, которые ни когда встретятся при программировании по традиционной технологии. Дело в том, что всегда будут существовать разделяемые ресурсы, одновременно доступные из любой точки программы. Это РВВ и глобальные переменные, через которые происходит взаимодействие между задачами. Теперь представим себе следующую ситуацию. Под управлением ОС работает две задачи. Первая заполняет данными буфер для индикации, а вторая выводит эти данные на дисплей. Если в ходе выполнения первой задачи прерывание произойдет в тот момент, когда происходит запись, то данные в буфере индикации не успеют полностью обновиться и, начав свою работу, вторая задача отобразит ошибочную информацию. Подобное может случиться и при обращении к портам ввода-вывода. Избежать таких неприятностей можно, если на время выполнения операций с глобальными переменными программы запретить прерывание от таймера ОСРВ, либо использовать дополнительные флаги для синхронизации доступа.

Прежде чем приступить к написанию программы необходимо решить несколько вопросов связанных с тем, как правильно распределить процессорное время между всеми задачами системы. Допустим, что существует 3 задачи, каждая из которых для своего выполнения требуют выделить ей свою долю времени. Первая производит опрос кнопочной клавиатуры, вторая выводит данные на индикатор, третья занимается обработкой результатов измерения. Пусть доля времени первой T1 = 10%, второй – T2 = 30%, третей – T3 = 60%. Однако период их выполнения может быть самым различным. Если, взять его, например, равным 10 мс (T1 = 1 мс, T2 = 3 мс, T2 = 6 мс), то, можно будет достигнуть высокой скорости реакции системы на внешние запросы и даже применить динамическую индикацию, где частота переключения светодиодных сегментов должна быть не ниже чем 48…50 Гц. Но при этом возрастут потери времени из-за частых переключений контекста (для рис.3 в среднем 165 машинных циклов на одно переключение). Если взять период повторения 100 мс (T1 = 10 мс, T2 = 30 мс, T2 = 60 мс), то понадобится уже “интеллектуальный” индикатор с памятью. Зато в этом случае скорей всего снизится нагрузка на процессор, что позволит использовать более низкую тактовую частоту, а в моменты простоя переводить ядро в спящий режим работы. Таким образом, здесь все будет зависеть от конкретных условий работы. Для приложений, где необходимо обеспечить пользовательский ввод и отображение информации период, очевидно, должен находиться в пределах 10…200 мс. Когда устройство работает автономно и контролирует инертные процессы, то возможны и другие его значения, плоть до нескольких секунд.

В заключение необходимо сказать несколько слов и о недостатках, присущих всем без исключения системам с переключением задач.  ОСРВ имеют ограниченное применение или вообще не могут быть использованы в тех областях, где требуется максимально быстрая реакция на какое либо воздействие. Сама сущность ее работы не позволяет уделять постоянное внимание только одному объекту. Конечно, для оповещения о срочных событиях можно использовать прерывания, но в ходе работы самой ОСРВ их обработку все равно придется отложить (допускать вложенные прерывания крайне не желательно). Кроме того из-за сложности программирования и большого расхода памяти применение ОСРВ может оказаться просто не оправданным для многих встраиваемых приложений. Поэтому основными сферами ее использования являются управляющие системы на основе мощных процессоров (автомобильная электроника, управление микроклиматом, технологическими процессами и мн.др.), которые выполняют функции ведущего, а контроль над остальными участками объекта возлагается на небольшие микроконтроллеры или программируемую логику.


Категория: Микроконтроллеры
Метки:

Написать коментарий

*
= 4 + 0

Добавить изображение

Последние статьи