9.12 приоритеты задачКаждая задача может иметь приоритет, который задается с помощью прагмы PRIORITY: pragma PRIORITY( Выражение); Использование данной прагмы разрешено непосредственно в спецификации задачи, защищенного модуля или описательной части подпрограммы. Выражение должно иметь подтип Priority целого типа, определенного в пакете System. Приоритет задачи определяет ее поведение при состязании с другими задачами за системные ресурсы, например центральный процессор. Задача, имеющая больший приоритет, получает преимущества. Если две задачи с разными приоритетами готовы к выполнению, то первой выполняется задача с более высоким проиоритетом. Если задачи имеют одинаковый приоритет ( или он не задан), то порядок выполнения таких задач не определен. В Аде 83 приоритет задачи фиксировался при ее описании и не мог меняться, то есть был статическим. В Аде 95 приоритет задачи может быть изменен в процессе ее существования ( кроме приоритета, определенного для подпрограммы), то есть является динамическим. 102 103 Глава 9. Задачи Ада 95. Введение в программирование
Р Например : task Police is pragma Priority (10); end Police; task Save is entry Receive (X : in Elem ); pragma Priority ( N + 2 ); end Save; Развитый механизм планирования выполнения задач, основанный на использовании статических и динамических приоритетов, в языке обеспечивается средствами, определенными в Приложении "Системы реального времени". УПРАЖНЕНИЯ: • Используя прагму Priority , исследуйте порядок запуска задач. СОВЕТЫ: * Используйте задачи для описания параллельных алгоритмов. * Не полагайтесь на прагму Priority ; отдавайте предпочтение средствам языка для разработки систем реального времени ИЗМЕНЕНИЯ: О Спецификация задачного типа может иметь приватную часть. О В описании задачного типа можно использовать дискриминант. О Новый оператор Requeue. О Новая форма оператора отбора Select. О Новая форма оператора завершения Abort. CJ Новая форма оператора задержки Delay until. О Новые прагмы для разделяемых переменных : Atomic и Volatile. О Изменены праила работы с приоритетами задач. |
| Оглавление| |