НИР:Планирование задач в системах реального времени — различия между версиями
Материал из Кафедра Автоматики и телемеханики
Mvk (обсуждение | вклад) |
Mvk (обсуждение | вклад) |
||
Строка 25: | Строка 25: | ||
[[Файл:Две задачи, выполняемые на контроллере.png|frame|слева|Рис. 1. Две задачи, выполняемые на контроллере<br /> (Д - датчик; ИУ - исполнительное устройство).]] | [[Файл:Две задачи, выполняемые на контроллере.png|frame|слева|Рис. 1. Две задачи, выполняемые на контроллере<br /> (Д - датчик; ИУ - исполнительное устройство).]] | ||
− | Каждая <math>~i</math>-я задача должна периодически формировать запросы | + | Каждая <math>~i</math>-я задача должна периодически формировать запросы <math>(\tau_{i,1},\,\tau_{i,2},\,...)</math>, и запросу требуется время выполнения (здесь для простоты оно считается постоянным) для формирования очередного воздействия на объект (см. рис. 2). В случае отдельного процессора для каждой задачи проблем не возникает, и они выполняются, как показано на рис. 2. |
[[Файл:Пример выполнения задач в случае отдельных процессоров.png|frame|слева|Рис. 2. Пример выполнения задач <math>\tau_1,\,\tau_2</math> в случае отдельных процессоров.]] | [[Файл:Пример выполнения задач в случае отдельных процессоров.png|frame|слева|Рис. 2. Пример выполнения задач <math>\tau_1,\,\tau_2</math> в случае отдельных процессоров.]] | ||
Строка 33: | Строка 33: | ||
Пусть для разделения процессорного времени между задачами применяется [[НИР:Планирование с фиксированными приоритетами|концепция планирования с фиксированными приоритетами (ПФП)]]. | Пусть для разделения процессорного времени между задачами применяется [[НИР:Планирование с фиксированными приоритетами|концепция планирования с фиксированными приоритетами (ПФП)]]. | ||
− | Пусть [[НИР:Начальное смещение периодической задачи РВ|начальные смещения]] | + | Пусть [[НИР:Начальное смещение периодической задачи РВ|начальные смещения]] <math>(O_1,\,O_2)</math> и [[НИР:Период задачи РВ|периоды]] <math>(T_1,\,T_2)</math> менять нельзя, тогда в рамках [[НИР:Планирование с фиксированными приоритетами|ПФП]] остается лишь менять [[НИР:Приоритеты задач РВ|приоритеты]] <math>(\pi_1,\,\pi_2)</math>. |
− | Поэтому существуют только два варианта планирования: | + | Поэтому существуют только два варианта планирования: <math>~(\pi_1</math> выше <math>~\pi_2)</math>, <math>~(\pi_1</math> ниже <math>~\pi_2)</math>, приводящие к двум вариантам выполнения задач (см. рис. 3). |
[[Файл:Примеры выполнения задач в случае одного процессора.png|frame|слева|Рис. 3. Варианты планирования задач <math>\tau_1,\,\tau_2</math> в случае общего процессора.]] | [[Файл:Примеры выполнения задач в случае одного процессора.png|frame|слева|Рис. 3. Варианты планирования задач <math>\tau_1,\,\tau_2</math> в случае общего процессора.]] | ||
− | Согласно [[НИР:Планирование с фиксированными приоритетами|ПФП]] запрос задачи с более высоким приоритетом прерывает выполнение запроса задачи с более низким приоритетом. На рисунке окружностью отмечается момент | + | Согласно [[НИР:Планирование с фиксированными приоритетами|ПФП]] запрос задачи с более высоким приоритетом прерывает выполнение запроса задачи с более низким приоритетом. На рисунке окружностью отмечается момент <math>~(r_{i,j})</math> [[НИР:Появление запроса задачи РВ|появления запроса]] <math>~\tau_{i,j}</math> в очереди запросов, а прерывание запроса обозначается линией над соответствующей временной осью. |
При этом 1-й вариант на рис. 3 приводит к значительному нарушению строгой периодичности для <math>~\tau_2</math>: видно, что {{nobr|<math>~r_{2,3}\neq{}s_{2,3}</math>,}} где <math>~s_{2,3}</math> - [[НИР:Начало выполнения запроса задачи РВ|начало выполнения]] <math>~\tau_2</math>. | При этом 1-й вариант на рис. 3 приводит к значительному нарушению строгой периодичности для <math>~\tau_2</math>: видно, что {{nobr|<math>~r_{2,3}\neq{}s_{2,3}</math>,}} где <math>~s_{2,3}</math> - [[НИР:Начало выполнения запроса задачи РВ|начало выполнения]] <math>~\tau_2</math>. |
Версия 16:52, 21 января 2012
В системах автоматизации и управления, к которым, в частности, относятся системы автоматизации и управления (САиУ), часто надо осуществлять планирование задач реального времени, что предполагает разделение процессорного времени между этими задачами при условии соблюдения ограничений реального времени.
Определение проблемы планирования задач в системах реального времени
С общих позиций, проблема планирования задач реального времени состоит в обеспечении такого выполнения этих задач, которое гарантирует соблюдение всех ограничений реального времени этих задач.
В монографии [1] приводится следующее определение проблемы планирования.
Система жесткого реального времени должна выполнять множество задач реального времени, соперничающих за ресурсы, так, чтобы все критичные (с точки зрения времени) задачи укладывались в отведенные им крайние сроки. Для выполнения каждой задачи требуются вычислительные ресурсы, ресурсы данных и прочие ресурсы, например, устройства ввода-вывода. Тогда проблема планирования - это проблема такого распределения указанных ресурсов, которое обеспечивает соблюдение всех требований реального времени. |
Немного более детализированное определение используется в монографии [2]. С небольшой переформулировкой и уточнением его можно воспроизвести здесь следующим образом.
Имеется множество из задач , множество из процессоров , а также множество из видов разделяемых ресурсов . Ограничения предшествования между задачами могут быть заданы в виде направленного ациклического графа. С каждой задачей могут связаны ограничения реального времени. Тогда проблема планирования - это проблема обеспечения такого назначения (за счет распределения по временной шкале) процессоров из и ресурсов из всем задачам из , которое обеспечивает завершение (или выполнение) всех задач согласно заданным ограничениям. |
Указанные определения являются довольно общими. В более конкретных условиях формулировка проблемы планирования становится более детализированной и более удобной для решения. Поясним это на следующем простом примере.
Пример проблемы планирования задач реального времени
Пусть на однопроцессорном контроллере в составе САиУ выполняются две задачи реального времени, обозначаемые , для двух независимых контуров управления (см. рис. 1).
Каждая -я задача должна периодически формировать запросы , и запросу требуется время выполнения (здесь для простоты оно считается постоянным) для формирования очередного воздействия на объект (см. рис. 2). В случае отдельного процессора для каждой задачи проблем не возникает, и они выполняются, как показано на рис. 2.
Однако при общем процессоре возникает взаимовлияние.
Пусть для разделения процессорного времени между задачами применяется концепция планирования с фиксированными приоритетами (ПФП).
Пусть начальные смещения и периоды менять нельзя, тогда в рамках ПФП остается лишь менять приоритеты .
Поэтому существуют только два варианта планирования: выше , ниже , приводящие к двум вариантам выполнения задач (см. рис. 3).
Согласно ПФП запрос задачи с более высоким приоритетом прерывает выполнение запроса задачи с более низким приоритетом. На рисунке окружностью отмечается момент появления запроса в очереди запросов, а прерывание запроса обозначается линией над соответствующей временной осью.
При этом 1-й вариант на рис. 3 приводит к значительному нарушению строгой периодичности для : видно, что , где - начало выполнения .
Простое изменение приоритетов приводит ко 2-му варианту на рис. 3, который обеспечивает строгую периодичность для , и небольшое нарушение периодичности для .
Пусть известно, что такое небольшое нарушение для оказывается допустимым. Тогда решением проблемы планирования будет 2-й вариант на рис. 3 с соответствующими значениями , .
Однако в приведенном простом примере имеется всего два варианта планирования, и проблема планирования сводится к выбору одного из этих двух вариантов.
В общем случае проблема планирования совокупности периодических задач жесткого реального времени в случае концепции ПФП сводится к выбору такой совокупности , которая обеспечивает соблюдение ограничений реального времени для всех задач.
Возможность изменения в заданных диапазонах, а также наличие вариантов назначения приоритетов для задач приводят к тому, что полный перебор вариантов становится практически нереализуемым. Нетрудно показать, что указанная проблема планирования является NP-трудной [3].
Поэтому естественный подход к ее решению – это разработка эффективных эвристических алгоритмов, которые за приемлемое время с высокой вероятностью находят значения , обеспечивающие подходящий вариант планирования.
В данном очень простом примере была рассмотрена проблема планирования для концепции ПФП. Но существуют другие концепции планирования задач реального времени, и для каждой из них характерны свои специфические особенности проблемы планирования.
Примечания