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

Раздел 9: Задачи и синхронизация

Выполнение программы на языке Ada состоит из выполнения одной или нескольких задач. Каждая задача представляет собой отдельный поток управления, который выполняется независимо и одновременно между точками, где он взаимодействует с другими задачами. Различные формы взаимодействия задач описаны в этом разделе и включают:
  • активацию и завершение задачи;
  • вызов защищенной подпрограммы защищенного объекта, обеспечивающего эксклюзивный доступ для чтения-записи или одновременный доступ для чтения только для совместных данных;
  • вызов входа, либо другой задачи, позволяющий синхронное взаимодействие с этой задачей, либо защищенного объекта, позволяющего асинхронное взаимодействие с одной или несколькими другими задачами, использующими этот же защищенный объект;
  • временную операцию, включая простое оператор ожидания, временной вызов входа или прием, или временной асинхронный оператор выбора (см. следующий пункт);
  • асинхронную передачу управления в рамках асинхронного оператора выбора, где задача останавливает текущее выполнение и начинает выполнение в другой точке в ответ на завершение вызова входа или истечение срока ожидания;
  • оператор отмены, позволяющий одной задаче вызвать завершение другой задачи.
Кроме того, задачи могут взаимодействовать косвенно, читая и обновляя (незащищенные) общие переменные, предполагая, что доступ должным образом синхронизирован посредством другого вида взаимодействия задач.

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

Свойства задачи определяются соответствующим объявлением задачи и task_body, которые вместе определяют программный блок, называемый блоком задачи.

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

Со временем задачи проходят через различные состояния. Задача изначально неактивна; после активации и до её завершения она либо заблокирована (в рамках какого-либо взаимодействия задач), либо готовым к выполнению. В готовом состоянии задача конкурирует за доступные ресурсы выполнения, необходимые для её работы.
ПРИМЕЧАНИЯ
1 Конкурентное выполнение задач может быть реализовано на многопроцессорных системах или с интерпретируемым выполнением на одном физическом процессоре. С другой стороны, когда реализация может определить, что необходимые семантические эффекты могут быть достигнуты, когда части выполнения данной задачи выполняются разными физическими процессорами параллельно, она может выбрать выполнение их таким образом.


Spec-Zone.ru

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