Патент на изобретение №2239228
|
||||||||||||||||||||||||||
(54) СПОСОБ РАСПРЕДЕЛЕНИЯ ВРЕМЕНИ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА МЕЖДУ ЗАДАЧАМИ В АВТОМАТИЗИРОВАННЫХ СИСТЕМАХ УПРАВЛЕНИЯ ТЕХНОЛОГИЧЕСКИМИ ПРОЦЕССАМИ
(57) Реферат:
Изобретение относится к вычислительной технике и используется в автоматических системах управления технологическими процессами. Технический результат заключается увеличении производительности автоматических систем. Способ заключается в том, что приоритетность выполнения задач определяют на этапе проектирования системы и задают цикл последовательности переключения задач в соответствии с их приоритетностью, при этом на этапе выполнения в каждом такте цикла по прерыванию от таймера приостанавливают выполнение текущей задачи, контекст прерванной задачи запоминают и загружают контекст следующей задачи в соответствии с заданным циклом последовательности переключения задач, которая в данном такте цикла должна использовать центральный процессор. 4 ил.
Изобретение относится к вычислительной технике и может быть использовано в автоматизированных системах управления технологическими процессами (АСУ ТП). Известны способы распределения времени центрального процессора (CPU) в многозадачных операционных системах (ОС) (см. А. Шоу. Логическое проектирование операционных систем. М.: Мир, 1981, с.243). Как правило, в многозадачных операционных системах переключение задач осуществляется по прерываниям от таймера путем запоминания постоянно находящейся в оперативной памяти частью ОС (ядром ОС) контекста прерванной задачи и восстановления ядром ОС контекста очередной задачи. В ОС реального времени (РВ) общего назначения выбор очередной задачи, владеющей вычислительным ресурсом центрального процессора (CPU), осуществляется по определенному методу. Например, чистое разделение времени, когда каждой задаче выделяется определенный промежуток времени CPU – такт ОС, и задачи переключаются по истечении такта и срабатывании таймера последовательно, не имея преимуществ друг перед другом. Метод хорош своей простотой и детерминизмом, т.е. предсказуемостью. Но за счет этого увеличивается дискретность системы, которая в данном случае определяется интервалом времени между двумя владениями CPU одной задачей, при этом в случае программного опроса внешних устройств могут быть потеряны данные (см. фиг.1). При увеличении количества задач дискретность системы может непомерно возрасти. При использовании планирования переключения задач с помощью статических приоритетов задача с меньшим приоритетом не активизируется до тех пор, пока не выполнится задача с высшим приоритетом. В системах АСУ ТП этот метод неприемлем, т.к. задачи циклические и не отдадут CPU менее приоритетным задачам никогда. В этом случае используют динамические приоритеты, т.е. с каждым тактом ОС приоритет задачи изменяется по определенному алгоритму. За счет этого возможно выполнение низкоприоритетных задач одновременно с высокоприоритетными. При использовании динамических приоритетов можно уменьшить дискретность системы, но при этом мы потеряем детерминизм, т.е. предсказуемость поведения системы. Также к недостаткам этого метода можно отнести потерю производительности системы за счет сложности алгоритмов выбора очередной задачи ядром ОС. Существует метод кооперативного планирования переключения задач (Cooperative) (см. Компакт-диск ProSoft “Каталог продукции” №4.1. Раздел “On Time Informatik GmbH”.). По этому методу каждая задача добровольно передает управление ядру ОС, когда она занята вводом/выводом или выполняет низкоприоритетные функции. При применении этого метода требуется сложный (возможно, интуитивный) расчет мест вставки функций передачи управления ядру ОС, и существует возможность захвата всего процессорного времени одной задачей. Наиболее близким к предложенному является способ, реализованный в операционной системе для встраиваемых приложений RTKernel 4.5 (см. Компакт-диск ProSoft “Каталог продукции” №4.1. Раздел “On Time Informatik GmbH”), в которой используются все вышеперечисленные методы планирования переключения задач. Предложенное изобретение направлено на увеличение гибкости распределения времени CPU, что приводит к увеличению производительности, при высокой предсказуемости поведения и малой дискретности системы АСУ ТП. Для этого в способе распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами, основанном на распределении приоритетов выполнения задач, приоритетность выполнения задач определяют на этапе проектирования системы и задают цикл последовательности переключения задач в соответствии с их приоритетностью, при этом на этапе выполнения, в каждом такте цикла по прерыванию от таймера приостанавливают выполнение текущей задачи, контекст прерванной задачи запоминают и загружают контекст следующей задачи в соответствии с заданным циклом последовательности переключения задач, которая в данном такте цикла должна использовать центральный процессор. На фиг.1 показана временная диаграмма циклов ОС, на фиг.2 показана функциональная схема устройства для реализации способа, на фиг.3 показано распределение оперативной памяти устройства после загрузки системы, на фиг.4 показан один такт работы ОС по предлагаемому способу. На временной диаграмме (см. фиг.1) обозначены: Т1…Тn – такты ОС, выделенные задачам 1…n, Ts – дискретность системы, Тc – цикл ОС. Устройство, реализующее способ (см. фиг.2), состоит из центрального процессора (CPU) – 1, оперативной памяти (RAM) – 2, таймера – 3. Оперативная память (RAM) после загрузки системы (см. фиг.3) может быть распределена следующим образом: одна область оперативной памяти (RAM) занята задачами 1…N, другая область занята диспетчером задач и файлом управления, оставшаяся часть памяти свободна. Сущность изобретения заключается в следующем. В многозадачных системах параллельность выполнения задач обеспечивается переключением областей памяти принадлежащим этим задачам с передачей управления на выбранную область (см. фиг.3). Переключение осуществляет специальная программа, входящая в ОС – диспетчер задач. Диспетчер активизируется по периодическим прерываниям от таймера (см. фиг.2). В системах АСУ ТП приоритетность выполнения задач определяется на этапе проектирования и известна заранее. В связи с этим предлагается определять последовательность распределения тактов ОС (т.е. времени CPU) (см. фиг.1) между задачами на этапе проектирования системы, в виде некоторого сценария. Другими словами, готовится файл управления, в котором расписан один цикл последовательности переключения задач диспетчером по прерываниям от таймера. То есть распределение вычислительного ресурса CPU происходит заранее, на этапе проектирования, а не вычисляется в процессе выполнения. Один такт работы ОС по предлагаемому способу будет выглядеть следующим образом (см. фиг.4). По периодическому прерыванию от таймера приостанавливается выполнение текущей задачи, и управление передается диспетчеру задач, который запоминает в области памяти задачи адрес возврата в прерванную задачу и содержимое регистров процессора (контекст) прерванной задачи. Затем диспетчер считывает номер следующей задачи из файла управления и загружает из области памяти выбранной задачи контекст задачи с этим номером. Далее диспетчер передает управление по загруженному контексту, что эквивалентно продолжению выполнения прерванной в предыдущих тактах задачи с выбранным из файла управления номером, которая становится текущей. И такт повторяется. Например, есть система из 4-х задач. Файл управления для чистого разделения времени будет выглядеть так: 1, 2, 3, 4, т.е. один такт ОС будет выделен первой задаче, затем второй, третьей, четвертой, затем снова первой, и т.д. Для увеличения приоритета задачи достаточно чаще указывать номер задачи в файле управления. Например, если нам нужно увеличить время владения CPU первой задачей в 3 раза, то файл управления будет выглядеть так: 1, 1, 1, 2, 3, 4. Такой же приоритет можно получить, используя такой файл управления: 1, 2, 1, 3, 1, 4, но при этом уменьшится дискретность системы для задачи 1, т.к. она прерывается не более чем на один такт ОС. Таким образом, мы можем получить заданную дискретность системы при высоком детерминизме. При таком подходе мы дополнительно освобождаем ядро ОС от сложных вычислений распределения времени CPU между задачами, т.е. уменьшаем загрузку CPU ядром ОС. Можно подготовить несколько файлов управления. Например, задача диагностики в штатном режиме обычно имеет низкий приоритет – (1, 1, 1, 1, 1, 1, 2), где 1 – расчетная задача, 2 – задача диагностики. При обнаружении какой-либо неисправности мы можем форсировать задачу диагностики заменой файла управления на такой – (1, 2, 2, 1, 2, 2, 1, 2, 2), и после выяснения причин неисправности и устранения их (если это возможно) переключиться на штатный файл управления. Так же могут быть предусмотрены файлы управления для различных режимов работы системы, таких как запуск, сбойные ситуации, останов системы и т.п. Таким образом, планирование переключения задач при помощи файла управления (сценария) позволит увеличить производительность системы путем уменьшения загрузки CPU ядром ОС при высоком детерминизме, малой дискретности и большой гибкости системы. Формула изобретения
Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами при помощи файла управления планированием, основанный на распределении приоритетов выполнения задач, отличающийся тем, что приоритетность выполнения задач определяют на этапе проектирования системы и задают цикл последовательности переключения задач в соответствии с их приоритетностью, при этом на этапе выполнения в каждом такте цикла по прерыванию от таймера приостанавливают выполнение текущей задачи, контекст прерванной задачи запоминают и загружают контекст следующей задачи в соответствии с заданным циклом последовательности переключения задач, которая в данном такте цикла должна использовать центральный процессор. РИСУНКИ
|
||||||||||||||||||||||||||