Spec-Zone.ru › Ada 2012
Справочник Ada 2012

D.13 Профиль Ravenscar

Этот подпункт определяет профиль Ravenscar.
Абзацы 2 и 3 перемещены в 13.12, «Ограничения пragma и профиль pragma».

Правила правомерности

Идентификаторпрофиля Ravenscar является профилем использования (см. 13.12). Для профиля использования Ravenscar не должно быть ассоциаций аргументов pragmaпрофиля.

Статическая семантика

Профиль использования Ravenscar эквивалентен следующему набору директив:
pragma Task_Dispatching_Policy (FIFO_Within_Priorities);
pragma Locking_Policy (Ceiling_Locking);
pragma Detect_Blocking;
pragma Restrictions (
No_Abort_Statements,
No_Dynamic_Attachment,
No_Dynamic_CPU_Assignment,
No_Dynamic_Priorities,
No_Implicit_Heap_Allocations,
No_Local_Protected_Objects,
No_Local_Timing_Events,
No_Protected_Type_Allocators,
No_Relative_Delay,
No_Requeue_Statements,
No_Select_Statements,
No_Specific_Termination_Handlers,
No_Task_Allocators,
No_Task_Hierarchy,
No_Task_Termination,
Simple_Barriers,
Max_Entry_Queue_Length => 1,
Max_Protected_Entries => 1,
Max_Task_Entries => 0,
No_Dependence => Ada.Asynchronous_Task_Control,
No_Dependence => Ada.Calendar,
No_Dependence => Ada.Execution_Time.Group_Budgets,
No_Dependence => Ada.Execution_Time.Timers,
No_Dependence => Ada.Synchronous_Barriers,
No_Dependence => Ada.Task_Attributes,
No_Dependence => System.Multiprocessors.Dispatching_Domains);
Абзац 7 был удален.

Требования к реализации

Этот абзац был удален.

Рекомендации по реализации

В многопроцессорной системе реализация должна поддерживать полностью разделенный подход. Каждый процессор должен иметь отдельные и непересекающиеся очереди готовности.
ПРИМЕЧАНИЯ
42 Эффект ограничения Max_Entry_Queue_Length => 1 применяется только к очередям защищенных записей из-за сопутствующего ограничения Max_Task_Entries => 0.
43 Когда профиль Ravenscar активен (через действие ограничения No_Dynamic_CPU_Assignment), все задачи в разделе будут выполняться на одном процессоре, если программист явно не использует аспект CPU для указания назначений процессоров для задач. Использование нескольких процессоров требует осторожности, поскольку многие гарантии планирования на одном процессоре больше не действуют.
44 Не рекомендуется указывать процессор задачи как Not_A_Specific_CPU, когда активен профиль Ravenscar. То, как выполняется раздел, в значительной степени зависит от назначения задач процессорам.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API