Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАМММНО-ТЕХНИЧЕСКИЕ КОМПЛЕКСЫ МИКРОПРОЦЕССОРНЫХ СИСТЕМ АВТОМАТИЗАЦИИ И УПРАВЛЕНИЯ.doc
Скачиваний:
62
Добавлен:
01.05.2014
Размер:
10.03 Mб
Скачать

5. 4. Администратор системы

Диаграммы переключения задач были несколько упрощены, поскольку не учитывался администратор системы. Администратор системы, как следует из его названия, управляет системой. Он выполняет следующие функции:

  • Выполнение проверок целостности системы.

  • Контроль за временем цикла классов задач, чтобы удостовериться,

что ни одно из времен не превышено.

  • Предоставление классам задач данных ввода-вывода.

  • Установление порядка выполнения задач внутри класса задач.

Администратор системы выполняется (ему выделяется время) один раз каждые 10 мс, и на его выполнение идет примерно 1 мс (следовательно, его вклад в нагрузку равен 10 %). Рассмотрим последний раз диаграмму переключения задач, включив в нее администратор системы (рис. 5.11).

TC1; время цикла = 10 мс

TC2; время цикла = 70 мс

SYS (администратор системы); время цикла = 10 мс

Рис. 5.11

Времена выполнения задачи. Задача не всегда имеет определенное время цикла. Оно зависит от ветвления и циклов, которые выполняются за данный специфический проход (цикл). При вычислениях нагрузки следует использовать максимальные времена. В Системе Программирования B&R PG2000 имеется инструмент для профилирования (Профилировщик), дающий данные о временах выполнения задач и помогающий оптимизировать время выполнения задачи.

5. 5. Приоритет задачи

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

П

Таблица 5.1

риоритет класса задач установлен и не зависит от времени цикла.Следующая таблица 5.1 показывает относительные приоритеты классов задач и заданные по умолчанию установки для времен цикла:

Администратор системы может прерываться задачами повышенного быстродействия из-за их более высокого приоритета.

Приоритет класса задач установлен и не зависит от времени цикла. Если класс задач с низшим приоритетом имеет более короткое время цикла, это может приводить к проблемам, суть которых рассмотрим ниже.

Пример: TC1 имеет время цикла 20 мс и время выполнения задач 8 мс. TC2 имеет время цикла 10 мс и время выполнения задач 4 мс.

Определим нагрузку процессора.

Нагрузка = (8/20 * 100) + (4/10 * 100) + 10 = 40 + 40 + 10 = 90 %

Рис. 5.12

Нагрузка согласно расчету удовлетворительна. Рассмотрим теперь диаграмму переключения задач (рис. 5.12), где:

SYS; время системного цикла = 10 мс;

TC1; время цикла = 20 мс;

TC2; время цикла = 10 мс;

нарушение времени цикла (Cycle Time Violation).

TC1 может прерывать TC2, несмотря на то, что TC1 имеет более длинное время цикла. За 10 мс задачи в TC2 еще не закончены (выполнена 1 мс; осталось выполнить 3 мс), а они уже должны запускаться на выполнение снова. Необходимо обращать на эти аспекты самое пристальное внимание и не забывать об администраторе системы.

В последнем примере показано явление, называемое нарушением времени цикла. Это значит, что задачи в классе не смогли завершиться в течение установленного времени. Пользователь может отключить проверку времени цикла и установить “предельно допустимое нарушение” времени цикла. Это означает, что нарушение времени цикла игнорируется, и администратор системы пробует снова запускать класс задач на выполнение в соответствующий интервал времени (если обработка класс задач закончена). Надлежащее использование этой особенности позволяет игнорировать систему классов задач, если нет необходимости в расположении задач по приоритетам (или на стадии тестирования). Для этого следует установить малое время цикла для класса задач с очень большим максимально допустимым нарушением времени цикла и поместить все задачи в этот класс задач. В результате выполняются все задачи, после чего класс задач выполняется снова как можно быстрее.

Пример: Имеется ряд одинаковых задач, которые должны помещаться в одинаковый класс задач. Суммарное время выполнения задач равно 41 мс. Время цикла для класса задач установлено равным 10 мс, а максимально допустимое нарушение времени цикла равно 30 с. Нужно использовать класс задач 4, предусмотрев ситуацию, что может появиться необходимость выполнения другой задачи, которая должна иметь более высокий приоритет. На рисунке 5.13 показано переключение задач TC4.

Рис. 5.13

Примечания:

  • Нарушение времени цикла при обработке класса задач отсутствует, хотя за время цикла класса задач (10 мс.) обработка задач не завершается.

  • Когда обработка всех задач класса завершается (46 мс), обработка начинается снова на следующем цикле для данного класса задач (50 мс).

  • Любая задача в другом классе задач может быть приоритетнее, но это не приведет к каким-либо проблемам, пока не превышается максимально допустимое нарушение времени цикла!

Необходимо отметить, что это - очень полезный способ “обхода” системы приоритетов классов задач, прекрасно подходящий для целей тестирования. С его помощью отбрасывается большинство возможностей системы. Однако, использование этой методики для TC4 вместе с другими классами задач - прекрасный способ использования системного времени простоя. Если ничего не происходит при выполнении и после завершения этого класса задач, то его повторное выполнение начинается почти немедленно. Использование подобных методов делает расчет системной нагрузки необязательным.