一种功能块的调度方法、设备及存储介质
文献发布时间:2024-01-17 01:27:33
技术领域
本发明属于高实时嵌入式计算机技术领域,尤其涉及一种基于存储器管理单元的功能块调度方法、设备及存储介质。
背景技术
智能变电站作为智能电网的重要基础和关键支撑,是智能电网建设的重要组成部分。智能变电站经历了采样数字化改造、网络架构优化、保护就地化等不同发展阶段,当前正在向“系统高度集成、结构布局合理、装备先进适用、经济节能环保”的目标前进。为实现此目标,需要把各种不同的业务模块放在同一个硬件环境中运行。当将多业务功能集成到一个装置后,装置中在运行多个业务功能模块时,难免会带来模块之间的相互影响。一个模块程序发生故障,可能导致另一个正常的模块运行异常甚至导致系统宕机。变电站保护监控设备集成多业务功能后,要求设备不同功能之间不能相互影响,必须确保一个业务模块异常,其他业务模块应能正常运行,不受影响。目前Linux操作系统能确保进程运行相互不受影响,但基于Linux操作系统的任务调度实时性无法满足保护监控设备高实时性任务调度的要求。因此,提供隔离多业务功能程序的软件运行环境及系统,保障各个业务运行时的独立性,避免相互影响,是多功能集成的装置软硬件架构内在要求。
发明内容
发明目的:本发明的目的是提供了一种功能块的调度方法、设备及存储介质,是在基于裸机的运行环境下,在不影响嵌入式高实时性调度的情况下,构建一个多任务调度系统,使一个任务故障不影响其他任务运行,实现多任务隔离运行的调度执行环境。
技术方案:本发明所述的一种功能块的调度方法,包括以下步骤:
(1)将目标设备的内存空间划分为系统空间和用户空间;并将用户空间划分为多个功能块空间;
(2)分别设置系统空间、用户空间、各功能块空间的被访问权限,其中,系统空间仅系统程序有被访问权限;用户空间中各个功能块只能访问功能块所在的空间;
(3)按照任务优先级构建任务队列;
(4)控制任务队列中各个任务依次执行,在目标设备获取到任务对应的第一程序访问系统空间或者用户空间时,判断第一程序是否越权;若第一程序发生越权时,表征第一程序对应的任务为异常任务,目标设备将进入异常中断,并执行中断处理程序;
其中,在异常中断处理程序中,从任务队列中剔除异常任务,并设置程序执行PC指针,使系统正常运行。
进一步的,所述系统空间包括:代码段、数据段、栈段、共享数据段;所述功能块空间包括代码段、数据段、栈段、堆段。
进一步的,所述步骤(2)之后,还包括:将系统空间、用户空间、各功能块空间的被访问权限相应权限管理数据存储在目标设备中的存储器管理单元内。
进一步的,按照任务优先级构建任务队列,之后还包括:利用解析功能块可执行程序文件对各个任务进行解析,得到各任务对应的待访问空间,根据系统空间、用户空间、各功能块空间的接口内存地址,及各任务对应的待访问空间,确定各待访问空间的目标接口内存地址;将各待访问空间的目标接口内存地址按照任务队列中各个任务的先后顺序构建任务接口队列。
进一步的,所述步骤(4)在异常中断程序中,还包括:系统程序文件记录出错的代码段位置、栈指针位置、程序指针位置并存储在系统程序文件中。
进一步的,系统空间不少于32MB,每个程序功能块的内存空间不少于16MB。
本发明所述的一种功能块的调度系统,包括:
空间划分模块:用于将目标设备的内存空间划分为系统空间和用户空间;并将用户空间划分为多个功能块空间;
权限设置模块:用于通过分别设置存储器管理单元、系统空间和用户空间的被访问权限,其中,系统空间仅系统程序有被访问权限;用户空间中各个功能块只能访问功能块所在的空间;
任务优先级设置模块:用于构建任务队列优先级;
异常处理模块:用于控制任务队列中各个任务依次执行,在目标设备获取到任务对应的第一程序访问系统空间或者用户空间时,判断第一程序是否越权;若第一程序发生越权时,表征第一程序对应的任务为异常任务,目标设备将进入异常中断,并执行中断处理程序;
其中,在异常中断处理程序中,从任务队列中剔除异常任务,并设置程序执行PC指针,使系统正常运行。
本发明所述的一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现所述的一种基于存储器管理单元的功能块调度方法中的步骤。
本发明所述的一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述方法。
有益效果:与现有技术相比,本发明具有如下显著优点:本发明通过对目标设备设置多个空间类型;设置访问权限;按照优先级构建任务队列等实现了任务的毫秒级的响应,使系统中各任务独立运行,互不影响,提高了嵌入式系统的可靠性。
附图说明
图1为本发明整体框图;
图2为本发明内存空间分配示意图;
图3为本发明系统调用接口示例;
图4为本发明功能块隔离效果示意图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
如图1所示,本发明实施例提供了一种功能块的调度方法,包括以下步骤:
(1)将目标设备的内存空间划分为系统空间和用户空间;并将用户空间划分为多个功能块空间;所述系统空间包括:代码段、数据段、栈段、共享数据段;所述功能块空间包括代码段、数据段、栈段、堆段。系统空间不少于32MB,每个程序功能块的内存空间不少于16MB。
(2)分别设置系统空间、用户空间、各功能块空间的被访问权限,其中,系统空间仅系统程序有被访问权限;用户空间中各个功能块只能访问功能块所在的空间;将系统空间、用户空间、各功能块空间的被访问权限相应权限管理数据存储在目标设备中的存储器管理单元内。
(3)按照任务优先级构建任务队列;利用解析功能块可执行程序文件对各个任务进行解析,得到各任务对应的待访问空间,根据系统空间、用户空间、各功能块空间的接口内存地址,及各任务对应的待访问空间,确定各待访问空间的目标接口内存地址;将各待访问空间的目标接口内存地址按照任务队列中各个任务的先后顺序构建任务接口队列。
具体如下:
(31)按照统一的规则定义功能块程序各个优先级任务的函数接口。上位机扫描并记录各个优先级任务接口地址,并将该地址缀在功能块可执行程序文件的最后,编译后的可执行文件中通过-g编译选项保留函数接口信息。如xxx_level1()/xxx_level2()等。。目标设备通过解析该可执行文件,记录功能块的任务接口内存地址。
(32)系统程序按照配置文件的先后顺序,逐个导入功能块可执行程序。每个导入的功能块可执行程序,将该功能块任务接口地址按照优先级分类,并加入相应优先级的任务队列。如xxx_level1()任务接口地址加入第一优先级任务队列,xxx_level2()任务接口地址加入第二优先级任务队列,其他依次类推。
(33)任务队列采用链表的方式构建,每个任务接口地址的节点中包含指向下一个任务接口地址的指针、任务的接口地址、任务所属的功能块等信息。
每一个优先级的任务队列,都对应一个相同优先级的中断服务程序,在该中断服务程序中,调用相应优先级的任务队列。
(4)控制任务队列中各个任务依次执行,在目标设备获取到任务对应的第一程序访问系统空间或者用户空间时,判断第一程序是否越权;若第一程序发生越权时,表征第一程序对应的任务为异常任务,目标设备将进入异常中断,并执行中断处理程序;
其中,在异常中断处理程序中,从任务队列中剔除异常任务,并设置程序执行PC指针,使系统正常运行;系统程序文件记录出错的代码段位置、栈指针位置、程序指针位置并存储在系统程序文件中。
具体如下:
存储器管理单元是集成在处理器内部的一种动态存储管理组件,负责管理内存访问和内存转换的器件。在用户空间程序功能块执行期间,存储器管理单元会对每一条内存读取和写入指令进行检查,若发现越界访问,则触发最高优先级的内存异常中断,在所述的内存异常中断服务程序中,判断访问出错的代码段位置、栈指针位置、程序指针位置,并记录在文件中;停止出错的程序功能块的执行,将该异常程序功能块所属的任务从任务调度队列中删除;跳过正在执行的任务,设置程序指针的位置,继续执行该任务队列中的其他任务。内存异常中断服务程序属于系统程序的一部分,运行在系统空间。
本发明实施例还提供了一种功能块的调度系统,包括:
空间划分模块:用于将目标设备的内存空间划分为系统空间和用户空间;并将用户空间划分为多个功能块空间;
权限设置模块:用于通过分别设置存储器管理单元、系统空间和用户空间的被访问权限,其中,系统空间仅系统程序有被访问权限;用户空间中各个功能块只能访问功能块所在的空间;
任务优先级设置模块:用于构建任务队列优先级;
异常处理模块:用于判断若系统空间或者用户空间发生越权,目标设备将发生异常,进入异常程序中断;在异常处理程序中,剔除异常任务,并设置程序执行PC指针,使系统正常运行。
本发明实施例还提供了一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现所述的一种基于存储器管理单元的功能块调度方法中的步骤。
本发明实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
- 一种数据存储方法、调度装置、系统、设备及存储介质
- 一种任务调度方法、装置、设备和存储介质
- 一种任务调度方法、装置、电子设备及存储介质
- 一种后端存储设备的管理方法、装置、设备以及存储介质
- 一种数据存储方法及装置、一种计算设备及存储介质
- 一种功能块图程序的生成方法、装置、设备及存储介质
- 功能块的测试方法和装置、组态设备、存储介质