Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Часть 8.doc
Скачиваний:
38
Добавлен:
02.05.2014
Размер:
22.73 Mб
Скачать

8.5. Критерии назначения приоритетов задачам

Эти критерии помогают выявить высоко- и низкоприоритетные задачи. Час­то приоритетности задач уделяется внимание только на поздних стадиях цикла разработки. Главная причина, по которой мы относим эти вопросы к этапу разби­ения на задачи, состоит в желании выявить критические по времени и некрити­ческие, но связанные с большим объемом вычислений объекты, которые следует рассматривать как отдельные задачи. Приоритеты для большинства задач опре­деляются методом планирования в реальном времени.

8.5.1. Критические по времени задачи. Критической по времени называется задача, которая обязана завершиться к точно установленному сроку. Такая задача должна выполняться с высоким приоритетом. Высокоприоритетные критические по времени задачи необходи­мы в большинстве приложений реального времени.

Рассмотрим ситуацию, когда после исполнения критического по времени объекта задействуется объект, некритический по времени. Можно было бы объ­единить эти объекты в соответствии с критерием последовательной группировки. Но, чтобы гарантировать быстрое обслуживание критического по времени объек­та, предпочтительнее выделить его в самостоятельную высокоприоритетную за­дачу. Такая ситуация типична для асинхронных задач ввода/вывода, управляемо­го прерываниями, когда обработка прерывания критична по времени.

В качестве примера рассмотрим объект Контроль Температуры в Печи. Если температура превышает 100°С, то печь следует выключить. Этот объект отобра­жается на высокоприоритетную задачу, которая должна успеть завершиться в те­чение жестко определенного времени, в противном случае изделие, находящееся в печи, сгорит.

Другие разновидности критических по времени задач – управляющие задачи и асинхронные задачи интерфейса с устройствами ввода/вывода. Управляющая задача исполняет некоторую диаграмму состояний и обязана работать с высоким приоритетом, поскольку переходы состояний должны производиться быстро. Асин­хронной задаче ввода/вывода следует иметь высокий приоритет, чтобы успевать обслуживать прерывания, иначе есть риск пропустить одно из них. Примером вы­сокоприоритетной асинхронной задачи интерфейса с устройством ввода служит задача Интерфейс Ручки Круиз-Контроля на рис.8.1.

8.5.2. Некритические по времени расчетные задачи. Некритическая по времени расчетная задача требует значительных ресурсов процессора, но может выполняться с низким приоритетом. Идея о низкоприори­тетных задачах со сложными вычислениями, которые способны действовать в фо­новом режиме и вытесняться высокоприоритетными задачами, появилась еще в ранних системах мультипрограммирования и обычно поддерживается современ­ными ОС.

Пример некритической по времени расчетной задачи приведен на рис.8.3. Объект Алгоритм Статистики Датчика считывает данные из Хранилища По­казаний Датчика, вычисляет средние значения и стандартные отклонения тем­пературы и давления, а затем передает результаты объекту Интерфейс Дисплея Статистики Датчика (см. рис.8.3а). Поскольку Алгоритм Статистики Дат­чика выполняется с низким приоритетом, он отображается на низкоприоритет­ную фоновую задачу, которая работает, когда процессор не загружен. Вычислен­ная статистика нужна только для справки, так что большой беды не будет, если она несколько устарела. Задача Алгоритм Статистики Датчика изображена на диаграмме параллельной кооперации со стереотипом «некритическая по времени».

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