CN106980536B - 数据采集监控器的程序调度方法 - Google Patents
数据采集监控器的程序调度方法 Download PDFInfo
- Publication number
- CN106980536B CN106980536B CN201710184214.2A CN201710184214A CN106980536B CN 106980536 B CN106980536 B CN 106980536B CN 201710184214 A CN201710184214 A CN 201710184214A CN 106980536 B CN106980536 B CN 106980536B
- Authority
- CN
- China
- Prior art keywords
- module
- program
- program module
- grade
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种数据采集监控器的程序调度方法,采用实时内核进行数据采集监控器的程序调度;获取各个程序模块的重要程度并分级;实时内核根据程序模块等级,以优先执行等级高的程序模块为原则,对所述数据采集监控器的程序模块进行调度和执行。本发明方法通过将实时内核引入数据采集监控器,因此能够采用实时内核的功能对数据采集监控器进行程序调度;而且本发明中将数据采集监控器的程序模块进行分级,并依据优先级的高低进行程序调度,因此本发明方法能够实时响应各个程序的运行要求,而且能够有效提高运行安全性和可靠性。
Description
技术领域
本发明具体涉及一种数据采集监控器的程序调度方法。
背景技术
随着经济技术的发展和人们生活水平的提高,对于电气设备的运行可靠性和及时性的要求也越来越高。
数据采集监控器广泛应用于电网中,发挥着重要的作用。现有的数据采集监控器的程序均设计成传统的、常用的前后台系统,初始化完成后,在主循环中依次调用相应的模块的函数完成相应的功能,各个功能模块按照先后次序无限地循环运行,如图1所示,这部分为后台行为(background)。中断服务程序处理异常事件,例如定时器的定时时间到的中断、通信端口接收到数据后的中断,等,这部分为前台行为(foreground)。这种前后台系统设计比较简单和常用,但在处理数据的及时性上,存在明显的不足。因为当某个模块需要运行时,不能马上运行,必须等到其他模块运行完成并且循环到自身时才可以运行,各个模块的响应时间取决于整个循环的执行时间,但主循环的整个运行时间不是一个固定值,每个模块的准确运行时间也不是固定不变的,另外如果程序修改了,循环的时间也会受到影响。
数据采集监控器内的各个模块对于实时性有不同程度的要求,数据采集处理监控模块和当前时间同步模块、通信模块对于实时性要求较高,而在这种前后台系统的设计中,无法保证它们的实时性,例如数据卡处理模块的处理时间很长,可达数十秒种,期间的数据采集监控模块就不能按时地、准确地运行,这样就会遗失数据,也会失去监控功能而带有隐患,并且期间如果随时有电脑管理系统发出抄读命令,也不能及时应答。 映像校验模块的处理时间也很长,也会面临同样的问题,其他模块得不到运行,期间也会失去重要的功能。
发明内容
本发明的目的在于提供一种能够实时响应各个程序的运行要求,而且能够有效提高运行安全性和可靠性的数据采集监控器的程序调度方法。
本发明提供的这种数据采集监控器的程序调度方法,采用实时内核进行数据采集监控器的程序调度。
所述的采用实时内核进行数据采集监控器的程序调度,具体包括如下步骤:
S1. 对数据采集监控器的程序模块进行分析,从而获取各个程序模块的重要程度;
S2. 根据步骤S1获取的各个程序模块的重要程度将各个程序模块进行分级,所述程序模块的重要性越高,则该程序模块的等级越高;
S3. 实时内核根据步骤S2确定的程序模块等级,以优先执行等级高的程序模块为原则,对所述数据采集监控器的程序模块进行调度和执行。
步骤S3所述的对数据采集监控器的程序模块进行调度和执行,具体为采用如下步骤进行调度和执行:
A. 基于实时内核的内部时基,每隔X毫秒即判断各个程序模块是否准备就绪;
B. 若有程序模块准备就绪且当前无程序模块正在执行或被挂起,则判断准备就绪的各个程序模块的优先级,并优先执行优先级高的程序模块;
C. 若有程序模块准备就绪且当前无程序模块正在执行且有程序模块被挂起,则判断准备就绪的程序模块和被挂起的程序模块之间的优先级大小,并优先执行优先级高的程序模块,优先级低的程序模块则被挂起,直至优先级高的程序模块执行完毕;
D. 若有程序模块准备就绪且当前有程序模块正在执行,则判断准备就绪的程序模块和正在执行的程序模块之间的优先级大小,并优先执行优先级高的程序模块,优先级低的程序模块则被挂起,直至优先级高的程序模块执行完毕。
所述的数据采集监控器的程序模块包括数据采集监控模块,当前时间同步模块,通信模块,显示模块,数据卡模块和映像校验模块。
所述的数据采集监控模块的等级为最高,1级;当前时间同步模块的等级为次高,2级;通信模块的等级再次,为3级;显示模块的等级为4级;数据卡模块的等级为5级;映像校验模块的等级为6级。
本发明提供的这种数据采集监控器的程序调度方法,通过将实时内核引入数据采集监控器,因此能够采用实时内核的功能对数据采集监控器进行程序调度;而且本发明中将数据采集监控器的程序模块进行分级,并依据优先级的高低进行程序调度,因此本发明方法能够实时响应各个程序的运行要求,而且能够有效提高运行安全性和可靠性。
附图说明
图1为现有技术的程序模块调度方法。
图2为本发明方法的程序模块调度示意图。
图3为本发明的方法流程图。
具体实施方式
如图2所示为本发明方法的程序模块调度示意图:本发明采用实时内核进行数据采集监控器的程序调度,并且配合中断服务程序,能够实现数据采集监控器内各个程序模块的统一科学调度。在采用实时内核进行程序模块的调度时,各个程序模块不再是轮询的或顺序执行的方式进行调度,而是科学合理的进行调度,因此能够实时响应各个程序的运行要求,而且能够有效提高数据采集监控器的运行安全性和可靠性。
如图3所示为本发明的方法流程图:采用实时内核进行数据采集监控器的程序调度,具体包括如下步骤:
S1. 对数据采集监控器的程序模块进行分析,从而获取各个程序模块的重要程度;
程序模块包括数据采集监控模块,当前时间同步模块,通信模块,显示模块,数据卡模块和映像校验模块;
S2. 根据步骤S1获取的各个程序模块的重要程度将各个程序模块进行分级,所述程序模块的重要性越高,则该程序模块的等级越高;
数据采集监控模块的等级为最高,1级;当前时间同步模块的等级为次高,2级;通信模块的等级再次,为3级;显示模块的等级为4级;数据卡模块的等级为5级;映像校验模块的等级为6级;
S3. 实时内核根据步骤S2确定的程序模块等级,以优先执行等级高的程序模块为原则,对所述数据采集监控器的程序模块进行调度和执行,具体为采用如下步骤进行调度和执行:
A. 基于实时内核的内部时基,每隔X毫秒即判断各个程序模块是否准备就绪,X为正整数;
B. 若有程序模块准备就绪且当前无程序模块正在执行或被挂起,则判断准备就绪的各个程序模块的优先级,并优先执行优先级高的程序模块;
C. 若有程序模块准备就绪且当前无程序模块正在执行且有程序模块被挂起,则判断准备就绪的程序模块和被挂起的程序模块之间的优先级大小,并优先执行优先级高的程序模块,优先级低的程序模块则被挂起,直至优先级高的程序模块执行完毕;
D. 若有程序模块准备就绪且当前有程序模块正在执行,则判断准备就绪的程序模块和正在执行的程序模块之间的优先级大小,并优先执行优先级高的程序模块,优先级低的程序模块则被挂起,直至优先级高的程序模块执行完毕。
在具体应用时,在上电初始化阶段,除了前后台系统也有的硬件初始化、软件初始化的程序以外,根据实时内核的设计原则,必须先创建各个任务模块,在创建每个任务模块的时候,指定任务模块的名称、优先级、堆栈大小等。当所有的任务模块都创建完成后,就可以启动实时内核的调度了。
每个任务模块运行时,可以看成全部占用CPU,每个任务模块都可以看成是无限循环,什么时候启动、什么时候终止都受实时内核的调度。
实时内核的内部时基,每隔1毫秒,就判断各个模块是否就绪,根据其优先级进行调度,如果优先级高的模块就绪了,例如定时时间到了或接收到了消息,就进行模块切换、调度,把当前运行的模块挂起,保存CPU当前的程序指针寄存器和状态寄存器、其它的寄存器到各自的任务模块堆栈中;运行优先级高的模块。优先级高的模块运行完后,调出之前保存的各寄存器的数据,继续运行原来挂起的模块任务。如果各个模块都没就绪,实时内核就进入空闲状态。
数据采集监控模块是最主要的功能模块,需要定时运行,每隔100毫秒运行1次,运行期间不受其他模块的影响和打断,以免遗漏重要数据。
当前时间同步模块也是定时运行,每隔500毫秒运行1次,运行期间只会被数据采集监控模块所打断,不受其他模块的影响和打断。运行完后进入挂起状态。
通信模块不是定时运行,硬件通信端口接收到数据后产生中断,在接收中断服务程序中对于数据帧进行头尾字节内容和数据长度的检查,如果通过了检查,就通过实时内核向通信模块发送消息,此时通信模块进入运行状态,在通信模块内部详细解析是哪种命令,抄读哪些数据等等,然后进行相应应答;如果前面描述的数据采集监控模块监控到了异常情况,也会通过实时内核向通信模块发送消息,此时通信模块也会进入运行状态。
显示模块也是定时运行,每隔1000毫秒就在液晶显示屏上刷新显示1次数据。可以被前面几个模块打断,运行完后进入挂起状态。
数据卡模块不是定时运行,当有数据卡放入的时候,引起硬件IO端口电平变化产生中断,在端口中断服务程序中,通过实时内核向数据卡模块发送消息,此时数据卡模块进入运行状态,在数据卡模块内部详细解析,将需要设置的参数保存到数据采集监控器,将采集监控器内的数据写到数据卡中,处理完后进入挂起状态。
映像校验执行时 耗时较长,因此将其设计成单独的模块。映像校验模块只会在接收到其他模块发来的消息后才会进入运行状态,电脑管理系统发出映像校验命令后,通信模块解析出是映像校验命令后,就通过实时内核向映像校验模块发送消息,此时映像校验模块进入运行状态,校验内部的程序映像的完整性和合法性,处理完后进入挂起状态。
Claims (2)
1.一种数据采集监控器的程序调度方法,其特征在于采用实时内核进行数据采集监控器的程序模块进行调度,具体包括如下步骤:
S1. 对数据采集监控器的程序模块进行分析,从而获取各个程序模块的重要程度;
S2. 根据步骤S1获取的各个程序模块的重要程度将各个程序模块进行分级,所述程序模块的重要性越高,则该程序模块的等级越高;
S3. 实时内核根据步骤S2确定的程序模块等级,以优先执行等级高的程序模块为原则,对所述数据采集监控器的程序模块进行调度和执行,具体为采用如下步骤进行调度和执行:
A. 基于实时内核的内部时基,每隔X毫秒即判断各个程序模块是否准备就绪,X为正整数;
B. 若有程序模块准备就绪且当前无程序模块正在执行或被挂起,则判断准备就绪的各个程序模块的优先级,并优先执行优先级高的程序模块;
C. 若有程序模块准备就绪且当前无程序模块正在执行且有程序模块被挂起,则判断准备就绪的程序模块和被挂起的程序模块之间的优先级大小,并优先执行优先级高的程序模块,优先级低的程序模块则被挂起,直至优先级高的程序模块执行完毕;
D. 若有程序模块准备就绪且当前有程序模块正在执行,则判断准备就绪的程序模块和正在执行的程序模块之间的优先级大小,并优先执行优先级高的程序模块,优先级低的程序模块则被挂起,直至优先级高的程序模块执行完毕;
所述的数据采集监控器的程序模块包括数据采集监控模块,当前时间同步模块,通信模块,显示模块,数据卡模块和映像校验模块;其中数据采集监控模块、当前时间同步模块和显示模块均为定时运行的模块;当需要通信模块、数据卡模块或映像校验模块运行时,实时内核向通信模块、数据卡模块或映像校验模块发送消息,使得通信模块、数据卡模块或映像校验模块立刻进入运行状态。
2.根据权利要求1所述的数据采集监控器的程序调度方法,其特征在于所述的数据采集监控模块的等级为最高,1级;当前时间同步模块的等级为次高,2级;通信模块的等级再次,为3级;显示模块的等级为4级;数据卡模块的等级为5级;映像校验模块的等级为6级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710184214.2A CN106980536B (zh) | 2017-03-24 | 2017-03-24 | 数据采集监控器的程序调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710184214.2A CN106980536B (zh) | 2017-03-24 | 2017-03-24 | 数据采集监控器的程序调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106980536A CN106980536A (zh) | 2017-07-25 |
CN106980536B true CN106980536B (zh) | 2018-07-31 |
Family
ID=59338468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710184214.2A Expired - Fee Related CN106980536B (zh) | 2017-03-24 | 2017-03-24 | 数据采集监控器的程序调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106980536B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266553A (zh) * | 2008-05-06 | 2008-09-17 | 无锡紫芯集成电路系统有限公司 | 基于嵌入式系统的多任务管理方法 |
CN101369142A (zh) * | 2008-10-10 | 2009-02-18 | 上海电力学院 | 基于嵌入式平台的远程i/o数据采集系统及方法 |
CN101514624A (zh) * | 2008-03-05 | 2009-08-26 | 中国科学院自动化研究所 | 嵌入式油井参数实时采集系统 |
CN101534245A (zh) * | 2009-04-09 | 2009-09-16 | 国电南瑞科技股份有限公司 | 一种实时监控系统数据处理的传输控制方法 |
CN103293967A (zh) * | 2012-02-29 | 2013-09-11 | 陕西省地方电力(集团)有限公司 | 一种用于智能抄表终端的多任务控制方法 |
CN104317267A (zh) * | 2014-10-24 | 2015-01-28 | 浪潮软件集团有限公司 | 一种基于arm的多通道实时数据采集监控系统 |
-
2017
- 2017-03-24 CN CN201710184214.2A patent/CN106980536B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101514624A (zh) * | 2008-03-05 | 2009-08-26 | 中国科学院自动化研究所 | 嵌入式油井参数实时采集系统 |
CN101266553A (zh) * | 2008-05-06 | 2008-09-17 | 无锡紫芯集成电路系统有限公司 | 基于嵌入式系统的多任务管理方法 |
CN101369142A (zh) * | 2008-10-10 | 2009-02-18 | 上海电力学院 | 基于嵌入式平台的远程i/o数据采集系统及方法 |
CN101534245A (zh) * | 2009-04-09 | 2009-09-16 | 国电南瑞科技股份有限公司 | 一种实时监控系统数据处理的传输控制方法 |
CN103293967A (zh) * | 2012-02-29 | 2013-09-11 | 陕西省地方电力(集团)有限公司 | 一种用于智能抄表终端的多任务控制方法 |
CN104317267A (zh) * | 2014-10-24 | 2015-01-28 | 浪潮软件集团有限公司 | 一种基于arm的多通道实时数据采集监控系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106980536A (zh) | 2017-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106293919B (zh) | 一种时间触发的嵌入式任务调度装置与方法 | |
CN109918141B (zh) | 线程执行方法、装置、终端及存储介质 | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
CN105068865A (zh) | 任务调度方法和装置 | |
CN101105793A (zh) | 数据仓库中的数据处理方法及系统 | |
CN107870948A (zh) | 任务调度方法和装置 | |
CN101739305A (zh) | 操作系统内核级实时看门狗监控装置及其监控方法 | |
CN101387971A (zh) | 一种嵌入式软件的任务调整方法和装置 | |
CN103903312B (zh) | 自动巡检的执行方法和装置 | |
CN112631806A (zh) | 异步消息排列及调度方法、装置、电子设备及存储介质 | |
CN108196950A (zh) | 一种应用于窄带物联网的实时化操作系统及其方法 | |
CN103197971B (zh) | Windows操作系统Pentium Ⅳ架构下高精度低CPU占用率定时器的实现方法 | |
CN104486147A (zh) | 一种设备监控系统更新监控数据的方法和装置 | |
CN106775620B (zh) | 一种定时方法及装置 | |
CN113190427A (zh) | 卡顿监控方法、装置、电子设备及存储介质 | |
CN101561778A (zh) | 一种检测多任务操作系统任务死循环的方法 | |
CN104683171A (zh) | 应用软件的实时监控方法及装置 | |
CN114661449A (zh) | 任务调度方法、嵌入式系统及计算机可读存储介质 | |
CN106980536B (zh) | 数据采集监控器的程序调度方法 | |
CN104102491B (zh) | 单片机实时任务与耗时任务并行执行的实现方法和系统 | |
CN103593239B (zh) | Linux系统中应用进程命令处理的方法及装置 | |
CN109189598A (zh) | 一种中断定位的方法、处理器及终端设备 | |
CN109117295A (zh) | 一种交易超时监控方法及装置 | |
CN113364857A (zh) | 业务数据的处理方法、装置和服务器 | |
CN202153352U (zh) | 防止计算机控制系统失效的看门狗装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180731 Termination date: 20200324 |
|
CF01 | Termination of patent right due to non-payment of annual fee |