System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及多任务软件,具体涉及一种基于角色的多任务软件系统的构建、监测方法和系统。
技术介绍
1、目前,多任务软件系统尤其是机器人多任务软件系统,需在不确定性的复杂环境条件下支撑自主执行复杂协同任务,如自主协同感知、自主协同规划、自主协同控制、多机自主协同等。多任务软件系统一般将这些功能实现为多个相互解耦的模块,构成若干子任务,运行时会产生几十甚至上百个并发的进程或线程,进(线)程会根据环境变化、能力需求等因素动态创建和终止。但是,现有的多任务软件系统由于其结构和调用关系不明确,使得无法实时掌握所有子任务的状态并导致无法判断系统是否运转正常;
2、由于多任务软件系统执行环境不确定性、任务协同复杂性、协作开发团队规模增大等复杂因素,使得对多任务软件系统监测时在任务管理、故障定位、异常恢复等方面存在较大难度。现有的针对多任务软件系统的监测过程包括故障分析、调试工具,例如gdb调试工具常用于针对单个潜在的异常目标程序进行调试,但多任务软件系统的调试难点恰巧是调试人员难以定位出哪个任务可能存在异常,而且多个进(线)程并发产生的执行流不是每次都一样,意味着同一个bug导致的系统崩溃的位置可能在几次执行时都不一样,因此,现有的多任务软件系统的监测方法中通过逐个查看任务进(线)程运行状态,繁琐复杂,不能快速发现异常、定位问题。
技术实现思路
1、为了解决现有的多任务软件系统的结构和调用关系不清晰导致无法实时掌握所有子任务的状态的问题,本专利技术提出一种基于角色的多任务软件系统的构
2、基于多任务软件系统启动指令,启动1号角色;
3、通过所述1号角色启动资源角色,所述资源角色用于为任务角色提供资源服务;
4、基于获取到的任务流程启动需求,得到资源访问任务,通过所述1号角色启动任务角色,所述任务角色用于执行所述资源访问任务;
5、将所述1号角色作为根节点,将所述资源角色、所述任务角色作为子孙节点,构建角色树,得到基于角色的多任务软件系统。
6、可选的,所述通过所述1号角色启动资源角色,包括:
7、通过所述1号角色调用fork系统调用,创建启动子进程;
8、通过所述1号角色调用execlp系统调用,将创建的所述启动子进程替换为资源角色进程;
9、采用替换后的所述启动子进程,启动资源角色。
10、可选的,所述任务角色包括任务流程管理角色和任务行为执行角色;
11、其中,所述任务流程管理角色用于管理所述任务行为执行角色;
12、所述任务行为执行角色用于执行所述资源访问任务;
13、所述通过所述1号角色启动任务角色,包括:
14、通过所述1号角色启动任务流程管理角色,并通过所述任务流程管理角色启动所述任务行为执行角色。
15、可选的,所述通过所述1号角色启动任务流程管理角色,包括:
16、通过所述1号角色监听所述任务流程启动需求,并调用fork系统调用,创建初始子进程;
17、通过所述1号角色调用execlp系统调用,将创建的所述初始子进程替换为任务角色管理进程;
18、采用替换后的所述初始子进程,启动任务流程管理角色。
19、可选的,所述通过所述1号角色启动任务流程管理角色,包括:
20、获取1号角色的配置文件,通过所述1号角色读取所述配置文件,并调用fork系统调用,创建配置子进程;
21、通过所述1号角色调用execlp系统调用,将创建的所述配置子进程替换为任务流程管理进程;
22、采用替换后的所述启动子进程,启动任务流程管理角色。
23、可选的,所述通过所述任务流程管理角色启动所述任务行为执行角色,包括:
24、基于所述任务流程启动需求,得到待启动的任务行为执行角色的角色名称和所述资源访问任务的任务状态;
25、根据所述待启动的任务行为执行角色的角色名称和所述资源访问任务的任务状态,通过所述任务流程管理角色调用startactor角色启动接口,启动所述角色名称对应的任务行为执行角色。
26、可选的,所述通过所述任务流程管理角色调用startactor角色启动接口,启动所述角色名称对应的任务行为执行角色,包括:
27、通过所述任务流程管理角色调用startactor角色启动接口;
28、通过所述资源角色读取所述任务行为执行角色的资源配置文件,得到所述任务行为执行角色在执行所述资源访问任务时所需的请求资源;所述资源配置文件中包括:角色名称、请求资源和资源访问模式;
29、通过所述资源角色对所述请求资源进行资源分配,并根据所述资源分配的结果,启动所述角色名称对应的任务行为执行角色。
30、可选的,所述通过所述资源角色对所述请求资源进行资源分配,包括:
31、获取所述资源角色的资源访问数据表;所述资源访问数据表中包括:资源标识符、资源名称、资源访问模式、访问角色列表和健康等级属性;
32、根据所述资源访问数据表,得到所述请求资源对应的资源访问模式;所述资源访问模式包括:资源共享和资源独占;
33、当所述请求资源对应的资源访问模式为资源共享时,在所述资源访问数据表的访问角色列表中增加所述任务行为执行角色的角色名称,并对所述请求资源进行资源分配;
34、当所述请求资源对应的资源访问模式为资源独占时,查看所述资源访问数据表的访问角色列表是否为空,若所述访问角色列表不为空,将所述任务行为执行角色的角色名称加入任务角色等待队列;若所述访问角色列表为空,对所述请求资源进行资源分配。
35、可选的,所述根据所述资源分配的结果,启动所述角色名称对应的任务行为执行角色,包括:
36、当所述资源分配的结果显示所述请求资源被成功分配后,通过所述任务流程管理角色调用fork系统调用,创建执行子进程;
37、通过所述任务流程管理角色调用execlp系统调用,将创建的所述执行子进程替换为所述任务行为执行角色的进程;
38、采用替换后的所述执行子进程,启动所述角色名称对应的任务行为执行角色。
39、可选的,所述启动所述角色名称对应的任务行为执行角色之后,还包括:
40、根据获取的待停止的任务行为执行角色的角色名称,通过所述任务流程管理角色调用stopactor角色停止接口,停止所述任务行为执行角色。
41、可选的,所述通过所述任务流程管理角色调用stopactor角色停止接口,停止所述任务行为执行角色,包括:
42、通过所述任务流程管理角色调用stopactor角色停止接口;
43、通过所述资源角色读取所述待停止的任务行为执行角色的资源配置文件,得到所述待停止的任务行为执行角色的请求资源;
44、根据所述资源角色的资源访问数据表,得到所本文档来自技高网...
【技术保护点】
1.一种基于角色的多任务软件系统的构建方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述通过所述1号角色启动资源角色,包括:
3.如权利要求1所述的方法,其特征在于,所述任务角色包括任务流程管理角色和任务行为执行角色;
4.如权利要求3所述的方法,其特征在于,所述通过所述1号角色启动任务流程管理角色,包括:
5.如权利要求3所述的方法,其特征在于,所述通过所述1号角色启动任务流程管理角色,包括:
6.如权利要求3所述的方法,其特征在于,所述通过所述任务流程管理角色启动所述任务行为执行角色,包括:
7.如权利要求6所述的方法,其特征在于,所述通过所述任务流程管理角色调用StartActor角色启动接口,启动所述角色名称对应的任务行为执行角色,包括:
8.如权利要求7所述的方法,其特征在于,所述通过所述资源角色对所述请求资源进行资源分配,包括:
9.如权利要求8所述的方法,其特征在于,所述根据所述资源分配的结果,启动所述角色名称对应的任务行为执行角色,包括:
11.如权利要求10所述的方法,其特征在于,所述通过所述任务流程管理角色调用StopActor角色停止接口,停止所述任务行为执行角色,包括:
12.一种基于角色的多任务软件系统的构建系统,其特征在于,包括:
13.一种基于角色的多任务软件系统的监测方法,其特征在于,包括:
14.如权利要求13所述的方法,其特征在于,所述根据所述1号角色的进程标识符,监听所述多任务软件系统中1号角色、资源角色和任务角色的异常信号,包括:
15.如权利要求14所述的方法,其特征在于,所述将所述1号角色及其子孙进程的进程结构体添加到被监控角色映射表,包括:
16.如权利要求15所述的方法,其特征在于,所述跟踪所述1号角色并开始监听所述多任务软件系统中的1号角色、资源角色和任务角色的异常信号,包括:
17.如权利要求13所述的方法,其特征在于,所述根据所述异常信号,得到所述异常信号对应的调用栈信息,包括:
18.如权利要求17所述的方法,其特征在于,所述根据所述出现异常的角色的进程标识符,得到所述异常信号对应的调用栈信息,包括:
19.如权利要求17所述的方法,其特征在于,所述根据所述调用栈信息对所述异常信号进行异常定位,得到所述多任务软件系统中的异常定位信息之后,还包括:
20.如权利要求19所述的方法,其特征在于,所述根据所述异常响应策略,对所述多任务软件系统进行应急处理,包括:
21.一种基于角色的多任务软件系统的监测系统,其特征在于,包括:
...【技术特征摘要】
1.一种基于角色的多任务软件系统的构建方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述通过所述1号角色启动资源角色,包括:
3.如权利要求1所述的方法,其特征在于,所述任务角色包括任务流程管理角色和任务行为执行角色;
4.如权利要求3所述的方法,其特征在于,所述通过所述1号角色启动任务流程管理角色,包括:
5.如权利要求3所述的方法,其特征在于,所述通过所述1号角色启动任务流程管理角色,包括:
6.如权利要求3所述的方法,其特征在于,所述通过所述任务流程管理角色启动所述任务行为执行角色,包括:
7.如权利要求6所述的方法,其特征在于,所述通过所述任务流程管理角色调用startactor角色启动接口,启动所述角色名称对应的任务行为执行角色,包括:
8.如权利要求7所述的方法,其特征在于,所述通过所述资源角色对所述请求资源进行资源分配,包括:
9.如权利要求8所述的方法,其特征在于,所述根据所述资源分配的结果,启动所述角色名称对应的任务行为执行角色,包括:
10.如权利要求9所述的方法,其特征在于,所述启动所述角色名称对应的任务行为执行角色之后,还包括:
11.如权利要求10所述的方法,其特征在于,所述通过所述任务流程管理角色调用stopactor角色停止接口,停止所述任务行为执行...
【专利技术属性】
技术研发人员:易伟,刘德富,李睿豪,傅春连,张晶,李瑞恺,
申请(专利权)人:中国人民解放军军事科学院军事智能研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。