Spec-Zone.ru › Ada 2022
Руководство по Ada (Ada 2022)

Точность задержки

В этом подпункте приводятся требования к производительности для оператора_задержки. Правила применяются как к оператору_задержки_относительно, так и к оператору_задержки_до. Аналогично, они одинаково применяются к простому оператору_задержки и к оператору, который появляется в альтернативе_задержки.

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

Эффект оператора_задержки для Real_Time.Time определяется в терминах Real_Time.Clock:
  • Если C1 – значение Clock, прочитанное перед выполнением задачей оператора_задержки_относительно с продолжительностью D, и C2 – значение Clock, прочитанное после возобновления выполнения задачи после этого оператора_задержки, то C2 – C1 >= D.
  • Если C – значение Clock, прочитанное после возобновления выполнения задачи после оператора_задержки_до со значением Real_Time.Time T, то C >= T.
Простой оператор_задержки с отрицательным или нулевым значением времени истечения не приводит к блокировке вызывающей задачи; тем не менее, это потенциально блокирующая операция (см. 9.5.1).
Когда оператор_задержки появляется в альтернативе_задержки вызова_входа_с_временным_ограничением, выбор вызова входа выполняется независимо от указанного времени истечения. Когда оператор_задержки появляется в альтернативе_выбора, и вызов помещен в очередь одного из открытых входов, выбор этого вызова входа выполняется независимо от значения выражения задержки.

Требования к документации

Реализация должна документировать минимальное значение выражения задержки оператора_задержки_относительно, которое приводит к фактическому блокированию задачи.
Реализация должна документировать минимальную разницу между значением выражения задержки оператора_задержки_до и значением Real_Time.Clock, которая приводит к фактическому блокированию задачи.

Метрики

Реализация должна документировать следующие метрики:
  • Верхняя граница времени выполнения, в тактах процессора, оператора_задержки_относительно, значение выражения задержки которого меньше или равно нулю.
  • Верхняя граница времени выполнения, в тактах процессора, оператора_задержки_до, значение выражения задержки которого меньше или равно значению Real_Time.Clock в момент выполнения оператора. Аналогично для Calendar.Clock.
  • Верхняя граница опоздания оператора_задержки_относительно для положительного значения выражения задержки в ситуации, когда задача имеет достаточный приоритет для прерывания процессора, как только она станет готовой, и может продолжить работу без ожидания других ресурсов выполнения. Верхняя граница выражается как функция от значения выражения задержки. Опоздание получается путем вычитания значения выражения задержки из фактической продолжительности. Фактическая продолжительность измеряется с момента непосредственно перед выполнением задачей оператора_задержки до момента непосредственно после возобновления выполнения задачи после этого оператора.
  • Верхняя граница опоздания оператора_задержки_до в ситуации, когда значение запрошенного времени истечения после времени, когда задача начинает выполнение оператора, задача имеет достаточный приоритет для прерывания процессора, как только она станет готовой, и может продолжить работу без ожидания других ресурсов выполнения. Верхняя граница выражается как функция от разницы между запрошенным временем истечения и значением часов в момент начала выполнения оператора. Опоздание оператора_задержки_до получается путем вычитания запрошенного времени истечения из реального времени возобновления выполнения задачи после этого оператора.


Spec-Zone.ru

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