Непериодичные события

В практических приложениях очень маловероятно, что все задачи периодически активизируются или что все модули запрашивают шинный доступ периодически. Поэтому для любой теории диспетчеризации практически очень важно рассматривать непериодические события и их поступление. Однако, сложность анализа вызвана тем, что для большинства непериодических событий, частота их поступления является неограниченной; то есть они могут поступать пакетами. Поэтому необходимо делать некоторые допущения о моментах поступления запросов на выполнение задачи, если они являются непериодическими.

Между полностью непериодическими задачами (fully nonperiodic tasks), без ограничений во временах поступления, и спорадическими задачами (sporadic tasks), которые имеют ограничения во времени между двумя входами (максимальная частота поступления), существует принципиальное различие. Термин спорадическая задача может быть определен как задача, последующее поступление которой (запроса о выполнении) отделено некоторым минимальным временем.

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

Простейшая методика обработки спорадических задач таким способом представлена впервые. Согласно этой методике, сервер опроса (polling server) использует свободное время процессора (остающееся от использования всеми действительно периодическими задачами), чтобы обрабатывать спорадические запросы. Алгоритм сервера опроса следующий:

Шаг 0. Серверу дают самый высокий приоритет, делая его период самым коротким, используя любую запасную возможность, оставшуюся согласно Теоремам 1 или 2.

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

Шаг 2. Если в настоящее время нет никаких необслуживаемых запросов, сервер приостанавливается до начала следующего периода.

Шаг 3. Если есть необслуживающиеся запросы, сервер обрабатывает их, пока все его время (названное его ресурсом вычисления) не использует.

Шаг 3a. Если все запросы обслужены в пределах доступного ресурса вычисления, сервер приостанавливается до начала следующего периода.

Шаг 3b. Если используется весь ресурс вычисления и все еще есть некоторые не обслуженные запросы (задерживаются непериодические задачи), сервер завершает сеанс до начала следующего периода, когда его квота вычислительного ресурса восстановится. Восстановление вычислительного ресурса называют пополнением.

У сервера опроса есть один недостаток - даже если никакое событие не получено в течение периода, все равно выполняется проверка (забирается вычислительный ресурс), есть ли спорадические задачи ожидающие обслуживания. Также есть более серьезный недостаток - то, что, если запрос на обслуживание поступает после того, как сделан опрос в текущем периоде, то запрос должен ждать до начала следующего периода, даже если часть ресурса вычисления все еще остается неиспользованной. Это означает, что обработка срочных запросов не возможна. Решение этой проблемы состоит в том, чтобы сохранить неиспользованный ресурс вычисления в течение полного периода и позволить всем запросам, поступающим в течение этого периода, быть обработанными, если они прибывают пока остается некоторый ресурс вычисления. Это - методика, используемая задержанным сервером(deferred server). Как и в методике сервера опроса, пополнение ресурса вычисления для задержанного сервера происходит в начале каждого периода.

Проблема с задержанным сервером состоит в том, что это не соответствует одному из фундаментальных предположений теории: то, что задача, которая имеет право на выполнение, должна работать. Задержанный сервер может не требовать выполнения, если ожидает поступления следующей непериодической задачи. Это может повредить более низкоприоритетным задачам, в том смысле, что некоторые из них не смогут завершиться в их критические сроки выполнения.

Другой методикой обращения со спорадическими событиями, которая не имеет недостатков сервера опроса и задержанного сервера, являетсяалгоритм спорадического сервера. Спорадическому серверу задач дают самый высокий приоритет и ресурс вычислений, при которых условия ЧМА Теорем 1 и 2 все еще выполняются. Однако, в отличие от других двух методов, пополнение ресурса вычисления для спорадического сервера не ограничено началом следующего периода. Спорадический сервер делает пополнения, когда обслуживаются фактические запросы, и пополняет только используемое время.

Детальный алгоритм спорадического сервера следующий:

Шаг 1. Если спорадический запрос прибывает, и сервер не может обработать его, потому что уже занят или не имеет свободного ресурса вычислений, запрос будет поставлен в очередь на будущее.

Шаг 2. Если получен спорадический запрос, и сервер может обработать его, он делает следующее:

Шаг 2a. Выполняется до служебного завершения или истощения ресурса вычисления.

Шаг 2c. Уменьшает текущий ресурс вычисления на используемое количество и на столько же увеличивает его ресурс вычисления в точке пополнения. Спорадический сервер может лучше обрабатывать спорадические запросы, потому что он теоретически эквивалентен правильной периодической задаче с частотной функцией критических сроков выполнения [13].


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: