Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Notice: Выполняемый файл <code>texvccheck</code> не найден; см. math/README — справку по настройке. in /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php on line 65

Warning: Cannot modify header information - headers already sent by (output started at /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php:65) in /storage/mediawiki-1.24.1/includes/WebResponse.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php:65) in /storage/mediawiki-1.24.1/includes/WebResponse.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php:65) in /storage/mediawiki-1.24.1/includes/WebResponse.php on line 37
НИР:Планирование задач в системах реального времени — Кафедра Автоматики и телемеханики
Персональные инструменты

НИР:Планирование задач в системах реального времени

Материал из Кафедра Автоматики и телемеханики

Перейти к: навигация, поиск

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

Пример проблемы планирования задач реального времени

Поясним проблему планирования задач реального времени на следующем простом примере.

Пусть на однопроцессорном контроллере в составе САиУ выполняются две задачи реального времени, обозначаемые , для двух независимых контуров управления (см. рис. 1).

Рис. 1. Две задачи, выполняемые на контроллере
(Д - датчик; ИУ - исполнительное устройство).

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

Рис. 2. Пример выполнения задач в случае отдельных процессоров.

Однако при общем процессоре возникает взаимовлияние.

Пусть для разделения процессорного времени между задачами применяется концепция планирования с фиксированными приоритетами (ПФП).

Пусть начальные смещения () и периоды () менять нельзя, тогда в рамках ПФП остается лишь менять приоритеты ().

Поэтому существуют только два варианта планирования: ( выше ), ( ниже ), приводящие к двум вариантам выполнения задач (см. рис. 3).

Рис. 3. Варианты планирования задач в случае общего процессора.

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

При этом 1-й вариант на рис. 3 приводит к значительному нарушению строгой периодичности для : видно, что , где - начало выполнения .

Простое изменение приоритетов приводит ко 2-му варианту на рис. 3, который обеспечивает строгую периодичность для , и небольшое нарушение периодичности для .

Пусть известно, что такое небольшое нарушение для оказывается допустимым. Тогда решением проблемы планирования будет 2-й вариант на рис. 3 с соответствующими значениями , .

Однако в приведенном простом примере имеется всего два варианта планирования, и проблема планирования сводится к выбору одного из этих двух вариантов.

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

Возможность изменения в заданных диапазонах, а также наличие вариантов назначения приоритетов для задач приводят к тому, что полный перебор вариантов становится практически нереализуемым. Нетрудно показать, что указанная проблема планирования является NP-трудной [1].

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

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

Примечания

  1. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. – М.: Мир, 1982.


.
Warning: Cannot modify header information - headers already sent by (output started at /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php:65) in /storage/mediawiki-1.24.1/includes/WebResponse.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php:65) in /storage/mediawiki-1.24.1/includes/WebResponse.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /storage/mediawiki-1.24.1/extensions/Math/MathInputCheckTexvc.php:65) in /storage/mediawiki-1.24.1/includes/WebResponse.php on line 37