Критерии назначения приоритетов задачам
Эти критерии помогают выявить высоко- и низкоприоритетные задачи. Часто приоритетности задач уделяется внимание только на поздних стадиях цикла разработки. Критической по времени называется задача, которая обязана завершиться к точно установленному сроку. Такая задача должна выполняться с высоким приоритетом. Высокоприоритетные критические по времени задачи необходимы в большинстве приложений реального времени.
Некритическая по времени расчетная задача требует значительных ресурсов процессора, но может выполняться с низким приоритетом. Идея о низкоприоритетных задачах со сложными вычислениями, которые способны действовать в фоновом режиме и вытесняться высокоприоритетными задачами, появилась еще в ранних системах мультипрограммирования и обычно поддерживается современными ОС.
Критерии группировки задач
Критерии группировки задач, или критерии слияния задач (task cohesion criteria), помогают установить, какие из задач, выявленных на первой стадии процесса разбиения на задачи, удобно объединить для уменьшения общего числа задач.
Задачи, определенные на первой стадии (с помощью критериев выделения задач ввода/вывода, внутренних задач и критериев назначения приоритетов), называются задачами-кандидатами. Критерии группировки предлагают средства для анализа природы параллелизма в задачах-кандидатах, что дает возможность решить, следует ли объединять кандидатов в одну физическую задачу и как именно. Так, если две задачи-кандидата должны исполняться строго последовательно, объединение их в одну физическую задачу обычно упрощает проект.
|
|
Темпоральная группировка.
Некоторые задачи-кандидаты могут активизироваться одним и тем же событием, например событием таймера. При каждой активизации задача выполняет некоторую деятельность. Если между последовательными задачами-кандидатами нет никакой зависимости, то есть порядок выполнения не имеет значения, их можно объединить в одну задачу, применив критерий темпоральной группировки. Когда такая задача активизируется, по очереди выполняются все сгруппированные деятельности. Поскольку никакой зависимости между ними не существует, проектировщик вправе выбрать любой порядок выполнения.
Темпоральная группировка обычно применяется к кандидатам, которые активизируются периодически. Например, удобно объединить те задачи-кандидаты, которые активизируются одним и тем же периодическим событием с одной и той же частотой. В темпоральную группу рекомендуется объединять взаимосвязанные задачи. Группировать периодические задачи, которые функционально никак не связаны с точки зрения проектирования нежелательно, хотя иногда это допустимо в целях оптимизации, если накладные расходы на организацию многозадачности становятся слишком высокими.
|
|
Последовательная группировка.
Бывает так, что некоторые задачи приложения необходимо выполнять строго последовательно. Первая в цепи таких задач активизируется асинхронным или периодическим событием, а все остальные исполняются после нее одна за другой. Такие задачи можно объединить, применив критерий последовательной группировки.
Группировка по управлению.
Управляющий объект, который исполняет последовательную диаграмму состояний, отображается на управляющую задачу. В некоторых случаях эту задачу можно объединить с другими объектами, которые выполняют действия, срабатывающие при переходе или начинающиеся в момент перехода деятельности. Такой вид группировки называется группировкой по управлению.
В аналитической модели зависящий от состояния управляющий объект определяется с помощью последовательной диаграммы состояния. Такому объекту следует сопоставить отдельную управляющую задачу, поскольку выполнение диаграммы состояния по определению строго последовательно. Но эта задача может выполнять в своем потоке управления другие зависящие от состояния действия или деятельности. Рассмотрим подобные случаи:
|
|
– зависящие от состояния действия, запускаемые управляющим объектом в момент перехода состояний.
– зависящие от состояния деятельности, которые начинаются или заканчиваются управляющим объектом в результате перехода состояний.
– зависящие от состояния деятельности, которые запускаются управляющим объектом в результате перехода состояний и исполняются, пока объект находится в данном состоянии.
Дата добавления: 2018-08-06; просмотров: 513; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!