CN110502325B - 一种任务运行方法及装置、计算机可读存储介质 - Google Patents

一种任务运行方法及装置、计算机可读存储介质 Download PDF

Info

Publication number
CN110502325B
CN110502325B CN201910738746.5A CN201910738746A CN110502325B CN 110502325 B CN110502325 B CN 110502325B CN 201910738746 A CN201910738746 A CN 201910738746A CN 110502325 B CN110502325 B CN 110502325B
Authority
CN
China
Prior art keywords
task
configuration
tasks
controller software
logic program
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.)
Active
Application number
CN201910738746.5A
Other languages
English (en)
Other versions
CN110502325A (zh
Inventor
王全利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Hollysys Co Ltd
Original Assignee
Beijing Hollysys Co Ltd
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 Beijing Hollysys Co Ltd filed Critical Beijing Hollysys Co Ltd
Priority to CN201910738746.5A priority Critical patent/CN110502325B/zh
Publication of CN110502325A publication Critical patent/CN110502325A/zh
Application granted granted Critical
Publication of CN110502325B publication Critical patent/CN110502325B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling 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)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种任务运行方法及装置、计算机可读存储介质,所述方法包括:生成一个或多个任务,为任务分配资源及确定资源的访问权限;运行任务,所述任务运行在用户态,并通过系统调用进入内核态,在内核态通过系统提供的组态任务接口访问系统资源或进行任务间交互处理。本申请通过为任务分配资源及确定资源的访问权限,并通过系统调用访问系统资源或进行任务间交互处理,保证了任务运行的安全,提高了任务运行的可靠性。

Description

一种任务运行方法及装置、计算机可读存储介质
技术领域
本发明实施例涉及但不限于工业控制系统技术领域,尤其涉及一种任务运行方法及装置、计算机可读存储介质。
背景技术
工业控制系统越来越多的采取高性能的处理器,来对采集的数据进行运算。如何保证所运行任务的安全性是需要重点考虑的一个因素。
目前,市场上的工业控制系统的产品的实现,对于任务的处理,多采用由系统来分配每个任务的运行权限,对运行中的任务的访问权限的保护,有些为了实现方便,采用实模式方式运行,有些多个任务运行在一个地址空间内,这样的系统,任务之间可能存在数据或指令访问越界从而给任务的安全运行带来风险。
发明内容
本发明实施例提供了一种任务运行方法及装置、计算机可读存储介质,能够提高任务运行的可靠性。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种任务运行方法,包括:
生成一个或多个任务,为任务分配资源及确定资源的访问权限;
运行任务,所述任务运行在用户态,并通过系统调用进入内核态,在内核态通过系统提供的组态任务接口访问系统资源或进行任务间交互处理。
在一种示例性实施例中,所述组态任务接口对系统资源访问权限进行安全性检查;
所述组态任务接口对交互任务进行安全性检查。
在一种示例性实施例中,所述任务为系统任务或组态任务,其中:所述组态任务通过如下方式生成:
组态软件进行逻辑程序组态;
组态软件通过下装操作将组态好的逻辑程序下载到控制器;
控制器软件创建组态任务并将逻辑程序导入到组态任务中。
在一种示例性实施例中,所述组态任务所分配到的资源及资源的访问权限包括:
各个任务的私有代码段,访问权限为可执行、可读写;
各个任务的私有常量数据段,访问权限为只读;
各个任务的私有变量数据段,访问权限为可读写;
所有任务的全局代码段,访问权限为可执行、可读写;
所有任务的全局常量数据段,访问权限为只读;
所有任务的全局变量数据段,访问权限为可读写;
所有任务的控制器软件接口库,访问权限为可执行、可读写,所述控制器软件接口库为控制器软件运行提供接口调用功能;
各个任务的栈,访问权限为可读写。
在一种示例性实施例中,所述控制器软件接口库包括控制器软件接口库代码段、控制器软件接口库常量数据段以及控制器软件接口库变量数据段;
所述组态任务通过调用所述控制器软件接口库代码段的内部函数,以系统调用的方式进入所述内核态。
在一种示例性实施例中,所述组态软件在进行逻辑程序组态时,将逻辑程序划分为多个子逻辑程序;
所述逻辑程序包含全局代码段、全局常量数据段和全局变量数据段;
所述子逻辑程序包括私有代码段、私有常量数据段和私有变量数据段;每个子逻辑程序只可以访问自己的私有代码段、私有常量数据段以及私有变量数据段,不可以访问其他子逻辑程序的私有代码段、私有常量数据段以及私有变量数据段;每个子逻辑程序都可以访问全局代码段、全局常量数据段以及全局变量数据段;
所述控制器软件创建组态任务时,一个子逻辑程序对应创建一个所述组态任务。
在一种示例性实施例中,当所述任务为所述组态任务时,所述运行任务包括:
对所述组态任务进行初始化;
运行所述组态任务的入口函数;
处理所述组态任务之外的其他任务发送给所述组态任务的消息;
调用所述组态任务的所述子逻辑程序的入口函数,进行组态逻辑运算;
发送运算结果数据到所述组态任务之外的其他任务。
在一种示例性实施例中,所述对所述组态任务进行初始化,包括:
为所述组态任务的所述子逻辑程序分配地址空间,加载所述组态任务的子逻辑程序并设置访问权限;
为所述控制器软件接口库分配地址空间,加载所述控制器软件接口库到内存并设置访问权限;
解析所述组态任务的子逻辑程序,重定位所述子逻辑程序的内部函数以及内部数据的地址,获取所述子逻辑程序的入口函数地址;
解析所述控制器软件接口库,重定位所述控制器软件接口库的内部函数以及内部数据的地址,获取所述组态任务的入口函数地址;
为所述组态任务分配栈地址空间。
第二方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的任务运行方法的步骤。
第三方面,本发明实施例还提供了一种任务运行装置,包括处理器及存储器,其中:
所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的任务运行方法的步骤。
第四方面,本发明实施例还提供了一种任务运行装置,包括任务生成模块和任务运行模块,其中:
任务生成模块,用于生成一个或多个任务,为任务分配资源及确定资源的访问权限;
任务运行模块,用于运行任务,所述任务运行在用户态,并通过系统调用进入内核态,在内核态通过系统提供的组态任务接口访问系统资源或进行任务间交互处理。
本发明实施例的技术方案,具有如下有益效果:
本发明实施例提供的任务运行方法及装置、计算机可读存储介质,通过为任务分配资源及确定资源的访问权限,并通过系统调用访问系统资源或进行任务间交互处理,保证了任务运行的安全,提高了任务运行的可靠性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例的一种任务运行方法的流程示意图;
图2为本发明实施例的一种组态软件和控制器软件的交互结构示意图;
图3为本发明实施例的一种控制器中任务的资源和权限示意图;
图4为本发明实施例的一种逻辑程序的组成结构示意图;
图5为本发明实施例的一种控制器中任务的运行方式示意图;
图6为本发明实施例的一种任务的交互流程示意图;
图7为本发明实施例的一种任务的运行流程示意图;
图8为本发明实施例的一种任务的初始化流程示意图;
图9为本发明实施例的一种任务的地址空间示意图;
图10为本发明实施例的一种任务运行装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,根据本发明实施例的一种任务运行方法,包括如下步骤:
步骤101:生成一个或多个任务,为任务分配资源及确定资源的访问权限;
在一种示例性实施例中,任务可以为系统任务或组态任务,其中:组态任务通过如下方式生成:
组态软件进行逻辑程序组态;
组态软件通过下装操作将组态好的逻辑程序下载到控制器;
控制器软件创建组态任务并将逻辑程序导入到组态任务中。
在本发明实施例中,系统任务指的是非组态软件通过下装操作下载到控制器中的任务。如图2所示,组态软件用于完成逻辑程序组态,并通过下装操作将逻辑程序下载到控制器;控制器软件用于创建组态任务,将逻辑程序导入到组态任务中,并负责组态任务的调度和运行。
在一种示例性实施例中,所述组态任务所分配到的资源及资源的访问权限包括:
各个任务的私有代码段,访问权限为可执行、可读写;
各个任务的私有常量数据段,访问权限为只读;
各个任务的私有变量数据段,访问权限为可读写;
所有任务的全局代码段,访问权限为可执行、可读写;
所有任务的全局常量数据段,访问权限为只读;
所有任务的全局变量数据段,访问权限为可读写;
所有任务的控制器软件接口库,访问权限为可执行、可读写,所述控制器软件接口库为控制器软件运行提供接口调用功能;
各个任务的栈,访问权限为可读写。
如图3所示,以任务n为例,任务n所分配到的资源及资源的访问权限包括:
子逻辑程序n的私有代码段n,权限为可执行、可读写;
子逻辑程序n的私有常量数据段n,权限为只读;
子逻辑程序n的私有变量数据段n,权限为可读写;
全局代码段,权限为可执行、可读写;
全局常量数据段,权限为只读;
全局变量数据段,权限为可读写;
控制器软件接口库,权限为可执行、可读写;
栈n,权限为可读写。
在一种示例性实施例中,组态软件在进行逻辑程序组态时,将逻辑程序划分为多个子逻辑程序;
逻辑程序包含全局代码段、全局常量数据段和全局变量数据段;
子逻辑程序包括私有代码段、私有常量数据段和私有变量数据段;每个子逻辑程序只可以访问自己的私有代码段、私有常量数据段以及私有变量数据段,不可以访问其他子逻辑程序的私有代码段、私有常量数据段以及私有变量数据段;每个子逻辑程序都可以访问全局代码段、全局常量数据段以及全局变量数据段;
控制器软件创建组态任务时,一个子逻辑程序对应创建一个组态任务。
如图4所示,逻辑程序可划分为多个子逻辑程序;逻辑程序包含若干个代码段和数据段;代码段和数据段可以为地址上连续的,也可以为地址上不连续的;每个子逻辑程序有自己的私有代码段和私有数据段,私有数据段可以分为私有常量数据段和私有变量数据段;逻辑程序包含全局代码段和全局数据段,全局数据段可以分为全局常量数据段和全局变量数据段;每个子逻辑程序只可以访问自己的私有代码段、私有常量数据段以及私有变量数据段;每个子逻辑程序都可以访问全局代码段、全局常量数据段以及全局变量数据段。
步骤102:运行任务,任务运行在用户态,并通过系统调用进入内核态,在内核态通过系统提供的组态任务接口访问系统资源或进行任务间交互处理。
在一种示例性实施例中,所述方法还包括:
所述组态任务接口对系统资源访问权限进行安全性检查;
所述组态任务接口对交互任务进行安全性检查。
如图5所示,控制器软件负责任务的管理,包括创建任务,给任务分配资源及确定资源的访问权限;任务运行在用户态;任务通过系统调用和系统交互;系统调用后进入内核态;组态任务接口完成处理并返回结果。
在一种示例性实施例中,控制器软件接口库包括控制器软件接口库代码段、控制器软件接口库常量数据段以及控制器软件接口库变量数据段;
组态任务通过调用控制器软件接口库代码段的内部函数,以系统调用的方式进入内核态。
如图6所示,假设任务1为系统任务,任务2为组态任务,任务1和任务2有各自的地址空间;任务1和任务2通过系统调用访问组态任务接口;任务2中,子逻辑程序调用控制器软件接口库的内部函数,再通过系统调用访问组态任务接口;任务1对系统功能的调用直接调用系统调用接口;任务运行在用户态,做系统调用时,进入内核态;在组态任务接口中完成数据交换。
在一种示例性实施例中,当任务为组态任务时,运行任务包括:
对组态任务进行初始化;
运行组态任务的入口函数;
处理该组态任务之外的其他任务发送给该组态任务的消息;
调用该组态任务的子逻辑程序的入口函数,进行组态逻辑运算;
发送运算结果数据到该组态任务之外的其他任务。
如图7所示,在另一种示例性实施例中,运行组态任务包括:
对组态任务进行初始化;
运行组态任务的入口函数;
处理其他任务发来的消息;
调用子逻辑程序的入口函数,开始组态逻辑运算;
发送数据到其他任务;
检测是否接收到停止组态任务的消息,如果没有接收到停止组态任务的消息,返回所述处理其他任务发来的消息的步骤循环执行;如果接收到停止组态任务的消息,结束运行组态任务。
在一种示例性实施例中,对组态任务进行初始化包括:
为组态任务的子逻辑程序分配地址空间,加载组态任务的子逻辑程序并设置访问权限;
为控制器软件接口库分配地址空间,加载控制器软件接口库到内存并设置访问权限;
解析组态任务的子逻辑程序,重定位子逻辑程序的内部函数以及内部数据的地址,获取子逻辑程序的入口函数地址;
解析控制器软件接口库,重定位控制器软件接口库的内部函数以及内部数据的地址,获取组态任务的入口函数地址;
为组态任务分配栈地址空间。
如图8所示,任务的初始化流程主要包括:
为子逻辑程序分配地址空间,加载子逻辑程序并设置访问权限;
为控制器软件接口库分配地址空间,加载到内存并设置访问权限;
解析子逻辑程序,重定位内部函数以及内部数据的地址,获取入口函数地址;
解析控制器软件接口库,重定位内部函数地址以及内部数据的地址,获取任务入口函数地址;
为任务分配栈地址空间;
为任务分配优先级。
如图9所示,任务1的地址空间包括子逻辑程序1,栈1,全局代码段,全局常量数据段,全局变量数据段,控制器软件接口库代码段,控制器软件接口库常量数据段,控制器软件接口库变量数据段;
任务n的地址空间包括子逻辑程序n,栈n,全局代码段,全局常量数据段,全局变量数据段,控制器软件接口库代码段,控制器软件接口库常量数据段,控制器软件接口库变量数据段。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的任务运行方法的步骤。
本发明实施例还提供了一种任务运行装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的任务运行方法的步骤。
如图10所示,本发明实施例还提供了一种任务运行装置,包括任务生成模块1001和任务运行模块1002,其中:
任务生成模块1001,用于生成一个或多个任务,为任务分配资源及确定资源的访问权限;
任务运行模块1002,用于运行任务,所述任务运行在用户态,并通过系统调用进入内核态,在内核态通过系统提供的组态任务接口访问系统资源或进行任务间交互处理。
在一种示例性实施例中,所述组态任务接口对系统资源访问权限进行安全性检查;
所述组态任务接口对交互任务进行安全性检查。
在一种示例性实施例中,任务可以为系统任务或组态任务,其中:组态任务通过如下方式生成:
组态软件进行逻辑程序组态;
组态软件通过下装操作将组态好的逻辑程序下载到控制器;
控制器软件创建组态任务并将逻辑程序导入到组态任务中。
在本发明实施例中,系统任务指的是非组态软件通过下装操作下载到控制器中的任务。本发明实施例提供了一种工业控制系统中多任务的安全运行实现方法和系统,如图2所示,所述系统包括组态软件和控制器软件,其中:组态软件,用于完成逻辑程序组态,并通过下装操作将逻辑程序下载到控制器;控制器软件,用于创建任务并将逻辑程序导入到任务中,并负责任务的调度和运行。
如图3所示,以任务n为例,任务n所分配到的资源及资源的访问权限包括:
子逻辑程序n的私有代码段n,权限为可执行、可读写;
子逻辑程序n的私有常量数据段n,权限为只读;
子逻辑程序n的私有变量数据段n,权限为可读写;
全局代码段,权限为可执行、可读写;
全局常量数据段,权限为只读;
全局变量数据段,权限为可读写;
控制器软件接口库,权限为可执行、可读写;
栈n,权限为可读写。
在一种示例性实施例中,如图4所示,组态软件在进行逻辑程序组态时,将逻辑程序划分为多个子逻辑程序;
逻辑程序包含全局代码段、全局常量数据段和全局变量数据段;
子逻辑程序包括私有代码段、私有常量数据段和私有变量数据段,各个代码段和数据段可以为地址上连续的,也可以为地址上不连续的;每个子逻辑程序只可以访问自己的私有代码段、私有常量数据段以及私有变量数据段,不可以访问其他子逻辑程序的私有代码段、私有常量数据段以及私有变量数据段;每个子逻辑程序都可以访问全局代码段、全局常量数据段以及全局变量数据段;
控制器软件创建组态任务时,一个子逻辑程序对应创建一个组态任务。
如图5所示,控制器软件负责任务的管理,包括创建任务,给任务分配资源及确定资源的访问权限;
任务运行在用户态;
任务通过系统调用和系统交互;
系统调用后进入内核态;
组态任务接口完成处理并返回结果。
在一种示例性实施例中,控制器软件接口库包括控制器软件接口库代码段、控制器软件接口库常量数据段以及控制器软件接口库变量数据段;
组态任务通过调用控制器软件接口库代码段的内部函数,以系统调用的方式进入内核态。
如图6所示,假设任务1为系统任务,任务2为组态任务,任务1和任务2有各自的地址空间;任务1和任务2通过系统调用访问组态任务接口;任务2中,子逻辑程序调用控制器软件接口库的内部函数,再通过系统调用访问组态任务接口;任务运行在用户态,做系统调用时,进入内核态;在组态任务接口中完成数据交换。
在一种示例性实施例中,如图7所示,当任务为组态任务时,任务运行模块1002的运行任务包括:
对组态任务进行初始化;
运行组态任务的入口函数;
处理该组态任务之外的其他任务发送给该组态任务的消息;
调用该组态任务的子逻辑程序的入口函数,进行组态逻辑运算;
发送运算结果数据到该组态任务之外的其他任务。
在一种示例性实施例中,如图7所示,任务运行模块1002的运行任务还包括:
检测是否接收到停止组态任务的消息,如果没有接收到停止组态任务的消息,返回所述处理该组态任务之外的其他任务发送给该组态任务的消息的步骤循环执行;如果接收到停止组态任务的消息,结束运行组态任务。
在一种示例性实施例中,如图8所示,任务运行模块1002的对组态任务进行初始化包括:
为组态任务的子逻辑程序分配地址空间,加载组态任务的子逻辑程序并设置访问权限;
为控制器软件接口库分配地址空间,加载控制器软件接口库到内存并设置访问权限;
解析组态任务的子逻辑程序,重定位子逻辑程序的内部函数以及内部数据的地址,获取子逻辑程序的入口函数地址;
解析控制器软件接口库,重定位控制器软件接口库的内部函数以及内部数据的地址,获取组态任务的入口函数地址;
为组态任务分配栈地址空间。
如图9所示,任务1的地址空间包括子逻辑程序1,栈1,全局代码段,全局常量数据段,全局变量数据段,控制器软件接口库代码段,控制器软件接口库常量数据段,控制器软件接口库变量数据段;
任务n的地址空间包括子逻辑程序n,栈n,全局代码段,全局常量数据段,全局变量数据段,控制器软件接口库代码段,控制器软件接口库常量数据段,控制器软件接口库变量数据段。
本发明实施例提供的任务运行方法及装置、计算机可读存储介质,组态软件在组态时给每个子逻辑程序配置代码段、数据段等内容;控制器软件创建任务时,分配资源配置权限;创建的任务包含一个控制器软件内部的接口库,子逻辑程序通过该接口库,以系统调用的方式和系统交互;在系统内部提供一个模块(即组态任务接口)来处理任务间的交互和对系统资源的访问。
采用本发明实施例实现的工业控制系统,组态逻辑运行在系统创建的安全任务内,任务所分配到的资源有一定的权限限制,任务之间不可直接访问,任务间交互需要通过系统调用实现,任务访问系统资源也需要通过系统调用实现,这些限制保证了任务运行的安全,提高了任务运行的可靠性。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种任务运行方法,其特征在于,包括:
生成一个或多个任务,为任务分配资源及确定资源的访问权限;
运行任务,所述任务运行在用户态,并通过系统调用进入内核态,在内核态通过系统提供的组态任务接口访问系统资源或进行任务间交互处理;
所述组态任务接口对系统资源访问权限进行安全性检查;
所述组态任务接口对交互任务进行安全性检查;
所述任务为系统任务或组态任务;
所述组态任务所分配到的资源及资源的访问权限包括:所有任务的控制器软件接口库,访问权限为可执行、可读写,所述控制器软件接口库为控制器软件运行提供接口调用功能;
所述控制器软件接口库包括控制器软件接口库代码段;
所述组态任务通过调用所述控制器软件接口库代码段的内部函数,以系统调用的方式进入所述内核态。
2.根据权利要求1所述的方法,其特征在于,所述组态任务通过如下方式生成:
组态软件进行逻辑程序组态;
组态软件通过下装操作将组态好的逻辑程序下载到控制器;
控制器软件创建组态任务并将逻辑程序导入到组态任务中。
3.根据权利要求2所述的方法,其特征在于,所述组态任务所分配到的资源及资源的访问权限还包括:
各个任务的私有代码段,访问权限为可执行、可读写;
各个任务的私有常量数据段,访问权限为只读;
各个任务的私有变量数据段,访问权限为可读写;
所有任务的全局代码段,访问权限为可执行、可读写;
所有任务的全局常量数据段,访问权限为只读;
所有任务的全局变量数据段,访问权限为可读写;
各个任务的栈,访问权限为可读写。
4.根据权利要求3所述的方法,其特征在于,
所述控制器软件接口库还包括控制器软件接口库常量数据段以及控制器软件接口库变量数据段。
5.根据权利要求2所述的方法,其特征在于,
所述组态软件在进行逻辑程序组态时,将逻辑程序划分为多个子逻辑程序;
所述逻辑程序包含全局代码段、全局常量数据段和全局变量数据段;
所述子逻辑程序包括私有代码段、私有常量数据段和私有变量数据段;每个子逻辑程序只可以访问自己的私有代码段、私有常量数据段以及私有变量数据段,不可以访问其他子逻辑程序的私有代码段、私有常量数据段以及私有变量数据段;每个子逻辑程序都可以访问全局代码段、全局常量数据段以及全局变量数据段;
所述控制器软件创建组态任务时,一个子逻辑程序对应创建一个所述组态任务。
6.根据权利要求5所述的方法,其特征在于,当所述任务为所述组态任务时,所述运行任务包括:
对所述组态任务进行初始化;
运行所述组态任务的入口函数;
处理所述组态任务之外的其他任务发送给所述组态任务的消息;
调用所述组态任务的所述子逻辑程序的入口函数,进行组态逻辑运算;
发送运算结果数据到所述组态任务之外的其他任务。
7.根据权利要求6所述的方法,其特征在于,所述对所述组态任务进行初始化,包括:
为所述组态任务的所述子逻辑程序分配地址空间,加载所述组态任务的子逻辑程序并设置访问权限;
为所述控制器软件接口库分配地址空间,加载所述控制器软件接口库到内存并设置访问权限;
解析所述组态任务的子逻辑程序,重定位所述子逻辑程序的内部函数以及内部数据的地址,获取所述子逻辑程序的入口函数地址;
解析所述控制器软件接口库,重定位所述控制器软件接口库的内部函数以及内部数据的地址,获取所述组态任务的入口函数地址;
为所述组态任务分配栈地址空间。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至7中任一项所述的任务运行方法的步骤。
9.一种任务运行装置,其特征在于,包括处理器及存储器,其中:
所述处理器用于执行存储器中存储的程序,以实现如权利要求1至7中任一项所述的任务运行方法的步骤。
10.一种任务运行装置,其特征在于,包括任务生成模块和任务运行模块,其中:
任务生成模块,用于生成一个或多个任务,为任务分配资源及确定资源的访问权限;
任务运行模块,用于运行任务,所述任务运行在用户态,并通过系统调用进入内核态,在内核态通过系统提供的组态任务接口访问系统资源或进行任务间交互处理;
所述组态任务接口对系统资源访问权限进行安全性检查;
所述组态任务接口对交互任务进行安全性检查;
所述任务为系统任务或组态任务;
所述组态任务所分配到的资源及资源的访问权限包括:所有任务的控制器软件接口库,访问权限为可执行、可读写,所述控制器软件接口库为控制器软件运行提供接口调用功能;
所述控制器软件接口库包括控制器软件接口库代码段;
所述组态任务通过调用所述控制器软件接口库代码段的内部函数,以系统调用的方式进入所述内核态。
CN201910738746.5A 2019-08-12 2019-08-12 一种任务运行方法及装置、计算机可读存储介质 Active CN110502325B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910738746.5A CN110502325B (zh) 2019-08-12 2019-08-12 一种任务运行方法及装置、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910738746.5A CN110502325B (zh) 2019-08-12 2019-08-12 一种任务运行方法及装置、计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110502325A CN110502325A (zh) 2019-11-26
CN110502325B true CN110502325B (zh) 2023-06-02

Family

ID=68587209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910738746.5A Active CN110502325B (zh) 2019-08-12 2019-08-12 一种任务运行方法及装置、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110502325B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831011A (zh) * 2012-08-10 2012-12-19 上海交通大学 一种基于众核系统的任务调度方法及装置
CN108062253A (zh) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 一种内核态与用户态的通信方法、装置及终端
CN109409087A (zh) * 2017-08-18 2019-03-01 阿里巴巴集团控股有限公司 防提权检测方法及设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100351788C (zh) * 2005-05-18 2007-11-28 大唐移动通信设备有限公司 嵌入式设备的驱动方法
CN102346708B (zh) * 2010-08-03 2014-07-16 中兴通讯股份有限公司 一种调试器及其调试方法
TWI592803B (zh) * 2016-03-11 2017-07-21 晨星半導體股份有限公司 嵌入式系統之操作方法與控制晶片
CN105843692A (zh) * 2016-03-18 2016-08-10 国家电网公司 一种异构计算系统
CN108572815A (zh) * 2017-03-17 2018-09-25 北京搜狗科技发展有限公司 多任务的执行方法、装置以及用于多任务的执行装置
CN109581925A (zh) * 2018-12-05 2019-04-05 北京和利时系统工程有限公司 一种任务处理方法及装置、计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831011A (zh) * 2012-08-10 2012-12-19 上海交通大学 一种基于众核系统的任务调度方法及装置
CN109409087A (zh) * 2017-08-18 2019-03-01 阿里巴巴集团控股有限公司 防提权检测方法及设备
CN108062253A (zh) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 一种内核态与用户态的通信方法、装置及终端

Also Published As

Publication number Publication date
CN110502325A (zh) 2019-11-26

Similar Documents

Publication Publication Date Title
CN109155782B (zh) 容器之间的进程间通信
US11842217B1 (en) Isolating tenants executing in multi-tenant software containers
US8966464B1 (en) Isolating tenants executing in multi-tenant software containers
US9471353B1 (en) Isolating tenants executing in multi-tenant software containers
Chen et al. Enabling FPGAs in the cloud
CN108475217B (zh) 用于审计虚拟机的系统及方法
US9183378B2 (en) Runtime based application security and regulatory compliance in cloud environment
US9218042B2 (en) Cooperatively managing enforcement of energy related policies between virtual machine and application runtime
US9754122B1 (en) Isolating tenants executing in multi-tenant software containers
CN104866762B (zh) 安全管理程序功能
CN105190570A (zh) 用于虚拟机器的完整性保护的存储器自省引擎
US10445126B2 (en) Preloading enhanced application startup
US20160062655A1 (en) System and Method for Improved Memory Allocation in a Computer System
CN111880891A (zh) 基于微内核的可扩展虚拟机监控器及嵌入式系统
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
CN115335806A (zh) 以模块粒度的影子堆栈违规强制
CN103782273A (zh) 存储器分配方法、程序和系统
CN105677481A (zh) 一种数据处理方法、系统及电子设备
US10146707B2 (en) Hardware-based memory protection
CN110502325B (zh) 一种任务运行方法及装置、计算机可读存储介质
US11360756B2 (en) Processing unit subtype configuration
CN114816668A (zh) 一种虚拟机内核监测方法、装置、设备及存储介质
US9785783B2 (en) Executing privileged code in a process
US10606648B2 (en) Prevention and resolution of a critical shortage of a shared resource in a multi-image operating system environment
KR102363718B1 (ko) 실시간 운영체제에서 파티션 별 장치 리소스를 할당하는 방법 및 그 장치

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