Справочное руководство по языку Ада-83




Глава 9. Задачи


    Глава 9. Задачи
    Содержание СПЕЦИФИКАЦИИ ЗАДАЧ И ТЕЛА ЗАДАЧ ЗАДАННЫЕ ТИПЫ И ЗАДАЧНЫЕ ОБЪЕКТЫ ВЫПОЛНЕНИЕ И АКТИВИЗАЦИЯ ЗАДАЧИ ЗАВИСИМОСТЬ ЗАДАЧ. ЗАВЕРШЕНИЕ ЗАДАЧ ВХОДЫ, ВЫЗОВЫ ВХОДОВ И ОПЕРАТОРЫ ПРИНЯТИЯ ОПЕРАТОРЫ...
    Спецификации задач и тела задач
    Задачный модуль состоит из спецификации задачи и тела задачи. Спецификация задачи, которая начинается зарезервированными словами task type, описывает задачный тип. Значение объекта задачного типа...
    Заданные типы и задачные объекты
    Задачный тип является лимитируемым типом (см. 4). Следовательно, для объектов за-дачного типа не определены ни присваивание, ни предопределенное сравнение на равенство и неравенство; более того, в...
    Примечание
    оПХЛЕПШ: CONTROL : RESOURCE; TELETYPE : KEYBOARDDRIVER; POOL : array(1 .. 10) of KEYBOARDDRIVER; - см. также примеры описаний одиночных задач в 9.1 Пример ссылочного типа, указывающего задачный об...
    Выполнение и активизация задачи
    Тело задачи определяет выполнение всякой задачи, которая указывается задачным объектом соответствующего задачного типа. Начальный этап этого выполнения называется активизацией задачного объекта и...
    Зависимость задач. Завершение задач
    Каждая задача зависит по крайней мере от одного родителя. Родитель это конструкция, являющаяся либо задачей, либо в данный момент выполняемым оператором блока или подпрограммой, либо библиотечным...
    Входы, вызовы входов и операторы принятия
    Вызовы входов и операторы принятия являются основными средствами синхронизации задач и передачи значений между задачами. Описание входа подобно описанию подпрограммы и допустимо только в специфика...
    Операторы задержки, длительность и время
    Выполнение оператора задержки вычисляет простое выражение и приостанавливает дальнейшее выполнение задачи, содержащей данный оператор задержки, по крайней мере на длительность, заданную вычисленны...
    Примечание
    оПХЛЕПШ: delay 3.0; - задержка на 3.0 с declare use CALENDAR; - INTERVAL глобальная константа типа DURATION NEXT_TIME : TIME := CLOCK + INTERVAL; begin loop delay NEXT_TIME - CLOCK; - некоторые де...
    Операторы отбора
    Существует три формы операторов отбора. Одна форма обеспечивает отбор с ожиданием одной или нескольких альтернатив. Две другие обеспечивают условный и временной вызовы входа. оператор-отбора ::= о...
    Условные вызовы входов
    Условный вызов входа производит вызов входа, который отменяется, если рандеву нельзя осуществить немедленно. условный-вызов-входа ::= select оператор-вызова-входа [последовательность-операторов] e...
    Приоритеты
    Каждая задача может (но не обязательно) иметь приоритет со значением подтипа PRIORITY (типа INTEGER), описанного в предопределенном библиотечном пакете SYSTEM (см. 13.7). Меньшее значение приорите...
    Атрибуты задач и входов
    Для задачного объекта или значения Т определены следующие атрибуты: T'CALLABLE Вырабатывает значение FALSE, если выполнение указанной задачи Т либо закончено, либо завершено либо задача аварийная....
    Операторы прекращения
    Оператор прекращения переводит одну или несколько задач в аварийное состояние, предотвращая любые дальнейшие рандеву с такими задачами. оператор-прекращения ::= abort имя-задачи {, имя-задачи}; Пр...
    Разделяемые переменные
    Обычными средствами передачи данных между задачами являются операторы вызова и принятия входов. Если две задачи считывают или изменяют разделяемую переменную (доступную обеим задачам), то ни одна...
    Пример использования задачи
    В следующем примере определена задача буферизации для сглаживания различий между скоростью ввода производящей задачи и скоростью ввода некоторой потребляющей задачи. Например, производящая задача...








Начало    



Книжный магазин