Ада-95. Компилятор GNAT



         

Создание задачи


Напомним, что тип задачи может рассматриваться как шаблон для создания реальных объектов-задач.

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

Для любого типа задачи, спецификация и тело должны быть описаны вместе, в одном и том же модуле (тело задачи, как правило, помещается в конце описательной части).

Объект задачи может быть создан в процессе элаборации описания какого-либо объекта, расположенного где-либо в описательной части, или в процессе обработки аллокатора (выражение в виде "new ...").

Все задачи, которые созданы в результате элаборации описаний объектов, расположенных в одной описательной части (включая внутренние компоненты описываемых объектов), активируются вместе.

Подобным образом, все задачи созданные в процессе обработки одиночного аллокатора, также активируются вместе.

Выполнение объекта-задачи имеет три основные фазы:

Активация - элаборация описательной части тела задачи, если она есть (локальные переменные для тела задачи создаются и инициализируются в процессе активации задачи). Активатор идентифицирует задачу, которая создала и активировала задачу.

Нормальное выполнение - выполнение инструкций, видимых внутри тела задачи.

Завершение - выполнение любого кода завершения (finalization), ассоциированного с любым объектом в описательной части задачи.

Вновь созданная задача находится в неактивированом (unactivated) состоянии.

Затем, система времени выполнения осуществляет ассоциирование с этой задачей потока управления (thread of control).

Если элаборация задачи терпит неудачу, то задача сразу переходит в прекращенное (terminated) состояние.

В противном случае, задача переходит в работоспособное (runnable) состояние и начинает выполнять код инструкций тела задачи.

Если этот код выполняет некоторые операции, которые блокируют выполнение задачи (рандеву, защищенные операции, задержки выполнения...), то задача переходит в приостановленное (sleep) состояние, а затем возвращается обратно в работоспособное состояние.




Содержание  Назад  Вперед