RU2239228C2 - Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами - Google Patents

Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами Download PDF

Info

Publication number
RU2239228C2
RU2239228C2 RU2001118437A RU2001118437A RU2239228C2 RU 2239228 C2 RU2239228 C2 RU 2239228C2 RU 2001118437 A RU2001118437 A RU 2001118437A RU 2001118437 A RU2001118437 A RU 2001118437A RU 2239228 C2 RU2239228 C2 RU 2239228C2
Authority
RU
Russia
Prior art keywords
task
tasks
cycle
priority
central processor
Prior art date
Application number
RU2001118437A
Other languages
English (en)
Other versions
RU2001118437A (ru
Inventor
Ю.А. Еремин (RU)
Ю.А. Еремин
В.Л. Кишкин (RU)
В.Л. Кишкин
Original Assignee
Всероссийский научно-исследовательский институт автоматики
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Всероссийский научно-исследовательский институт автоматики filed Critical Всероссийский научно-исследовательский институт автоматики
Priority to RU2001118437A priority Critical patent/RU2239228C2/ru
Publication of RU2001118437A publication Critical patent/RU2001118437A/ru
Application granted granted Critical
Publication of RU2239228C2 publication Critical patent/RU2239228C2/ru

Links

Images

Abstract

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

Description

Изобретение относится к вычислительной технике и может быть использовано в автоматизированных системах управления технологическими процессами (АСУ ТП).
Известны способы распределения времени центрального процессора (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 ядром ОС при высоком детерминизме, малой дискретности и большой гибкости системы.

Claims (1)

  1. Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами при помощи файла управления планированием, основанный на распределении приоритетов выполнения задач, отличающийся тем, что приоритетность выполнения задач определяют на этапе проектирования системы и задают цикл последовательности переключения задач в соответствии с их приоритетностью, при этом на этапе выполнения в каждом такте цикла по прерыванию от таймера приостанавливают выполнение текущей задачи, контекст прерванной задачи запоминают и загружают контекст следующей задачи в соответствии с заданным циклом последовательности переключения задач, которая в данном такте цикла должна использовать центральный процессор.
RU2001118437A 2001-07-05 2001-07-05 Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами RU2239228C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2001118437A RU2239228C2 (ru) 2001-07-05 2001-07-05 Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2001118437A RU2239228C2 (ru) 2001-07-05 2001-07-05 Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами

Publications (2)

Publication Number Publication Date
RU2001118437A RU2001118437A (ru) 2003-06-10
RU2239228C2 true RU2239228C2 (ru) 2004-10-27

Family

ID=33536858

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2001118437A RU2239228C2 (ru) 2001-07-05 2001-07-05 Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами

Country Status (1)

Country Link
RU (1) RU2239228C2 (ru)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007120075A1 (fr) * 2006-04-18 2007-10-25 Limited Liability Company (Llc) 'unicorne Microsystems' Procédé de commutation
RU2580016C1 (ru) * 2014-10-17 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Способ передачи управления между областями памяти
RU2623883C1 (ru) * 2016-02-18 2017-06-29 Акционерное общество "Лаборатория Касперского" Способ выполнения инструкций в системной памяти
RU2660614C2 (ru) * 2013-04-09 2018-07-06 Кроно-Сейф Способ выполнения задач в критической системе реального времени
CN110069323A (zh) * 2018-01-24 2019-07-30 可赛尔内存股份有限公司 高速反应游戏设备及其任务分配方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ШОУ А. Логическое проектирование операционных систем. - М.: Мир, 1981, с.243. *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007120075A1 (fr) * 2006-04-18 2007-10-25 Limited Liability Company (Llc) 'unicorne Microsystems' Procédé de commutation
RU2660614C2 (ru) * 2013-04-09 2018-07-06 Кроно-Сейф Способ выполнения задач в критической системе реального времени
RU2580016C1 (ru) * 2014-10-17 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Способ передачи управления между областями памяти
RU2623883C1 (ru) * 2016-02-18 2017-06-29 Акционерное общество "Лаборатория Касперского" Способ выполнения инструкций в системной памяти
CN110069323A (zh) * 2018-01-24 2019-07-30 可赛尔内存股份有限公司 高速反应游戏设备及其任务分配方法
CN110069323B (zh) * 2018-01-24 2024-04-05 可赛尔内存股份有限公司 高速反应游戏设备及其任务分配方法

Similar Documents

Publication Publication Date Title
Jeffay et al. Accounting for interrupt handling costs in dynamic priority task systems
US7925869B2 (en) Instruction-level multithreading according to a predetermined fixed schedule in an embedded processor using zero-time context switching
US5526521A (en) Method and system for process scheduling from within a current context and switching contexts only when the next scheduled context is different
US7412590B2 (en) Information processing apparatus and context switching method
JPH0795317B2 (ja) マルチプロセッサ・システムのジョブの割当方法
EP1012715A1 (en) Data processing unit with hardware assisted context switching capability
WO2014028411A1 (en) Latency sensitive software interrupt and thread scheduling
Becker et al. Scheduling multi-rate real-time applications on clustered many-core architectures with memory constraints
WO2007076190A2 (en) Efficient task scheduling by assigning fixed registers to scheduler
Caccamo et al. Sharing resources among periodic and aperiodic tasks with dynamic deadlines
RU2239228C2 (ru) Способ распределения времени центрального процессора между задачами в автоматизированных системах управления технологическими процессами
US7082607B2 (en) Reduced-overhead context-saving in static priority scheduled operating systems
GB2392515A (en) Stack usage in computer operating systems
CN112659119A (zh) 机械臂的控制方法、装置、电子设备及存储介质
Garg Real-time linux kernel scheduler
Stankovic On the reflective nature of the Spring kernel
US20220066817A1 (en) Multiprocessor system for facilitating real-time multitasking processing
Frisbie et al. Group scheduling in systems software
WO1992003794A1 (en) Dual level scheduling of processes
Kohútka et al. A novel on-chip task scheduler for mixed-criticality real-time systems
Moisuc et al. Hardware event handling in the hardware real-time operating systems
Labrosse Operating systems
US20060048150A1 (en) Task management methods and related devices
EP1502187B1 (en) Reduced overhead context-saving in static priority scheduled operating systems
Pontremoli et al. Hardware support for distributed real-time operating systems