System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别是涉及一种双内核实时操作系统及任务调度方法。
技术介绍
1、实时操作系统(real time operating system,rtos)在卫星的星务计算机中应用广泛,随着商业航天活动的增长和小型卫星的普及,对rtos的需求逐步增加。星务计算机的rtos存在功能单一的问题,不足以满足用户多样化的功能需求。rtos缺少通用操作系统中常用的一些服务,例如图形界面、网络通信、文件系统等。此外,星务计算机的rtos主要是由c语言编写的,其存在一些缺陷。具体地,c语言要求开发人员手动管理内存,包括分配和释放,并且允许指针在未初始化的情况下使用,这可能导致一系列不确定的操作,比如未正确释放内存、指针指向已释放内存或指针未指向明确内存地址,增加内存泄漏的风险。因此,需要提升星务计算机的系统安全性,并对用户提供多样化的服务,以满足用户需求。
技术实现思路
1、有鉴于此,本申请旨在提出一种双内核实时操作系统及任务调度方法,以提升星务计算机的系统安全性,以及向用户提供多样化的服务。
2、为达到上述目的,本申请的技术方案如下:
3、本申请实施例第一方面提供一种双内核实时操作系统,所述操作系统应用于星务计算机,包括:内核接口、通用内核及实时内核;
4、所述内核接口,用于接收目标任务发起的系统调用请求并生成中断,在所述目标任务具有实时响应需求的情况下,将所述中断分发到实时内核;在所述目标任务不具有实时响应需求的情况下,将所述中断分发到通用内核;所述内
5、所述通用内核,用于抽象所述系统的硬件资源,并共享给所述实时内核;在所述目标任务不具有实时响应需求的情况下,作为目标内核执行所述系统调用;所述通用内核为linux内核,支持的功能包括:用户图形界面交互、网络通信及文件共享;
6、所述实时内核,用于通过所述内核接口,使用所述通用内核共享的硬件资源;在所述目标任务具有实时响应需求的情况下,作为所述目标内核执行所述系统调用;所述实时内核基于rust语言编写。
7、可选地,所述实时内核,包括:
8、动态库,用于作为所述实时内核的空间接口以支持基本系统调用封装和基本线程同步服务;
9、c库,用于向基于c语言编写的应用程序提供访问服务的功能;
10、rust库,用于向基于rust语音编写的应用程序提供访问服务的功能;
11、线程单元,用于创建与执行线程;
12、调度单元,用于采用以下任一策略进行线程调度:tp策略或quota策略;
13、时钟单元,用于对所有线程的执行时间进行管控。
14、可选地,所述调度单元,用于执行以下步骤:
15、对调度队列中的线程进行调度,确定下一个执行的目标线程;
16、判断目标线程与上一个线程是否相同;在所述目标线程与所述上一个线程相同的情况下,判定所述目标线程无需切换执行阶段;
17、在所述目标线程与所述上一个线程不同的情况下,执行以下步骤:判断所述目标线程的上一个线程是否为根线程;在所述上一个线程为根线程的情况下,判定所述目标线程需要切换为带外执行阶段;在所述目标线程的上一个线程不是根线程的情况下,判断所述目标线程的下一个线程是否为根线程;在所述下一个线程为根线程的情况下,判定所述目标线程在执行完成后需要切换为带内执行阶段;
18、对所述目标线程进行上下文切换,并将所述目标线程置为执行状态。
19、可选地,所述调度单元,还用于执行以下步骤:
20、检测所述实时内核中,线程间是否存在资源竞争;在存在资源竞争的情况下,执行以下步骤:
21、对低优先级线程,执行以下步骤:在出现线程死锁的情况下,采用第一调度策略,提升所述低优先级线程的优先级;在不存在线程死锁的情况下,采用第二调度策略,提升所述低优先级线程的优先级;在所述低优先级线程执行完毕后,恢复对应的原始优先级,并释放对应的资源;
22、对高优先级线程,执行以下步骤:计算所述高优先级线程的资源占有率及效率;将所述资源占有率与资源占有率阈值进行比较;将所述效率与效率阈值进行比较;在所述资源占有率低于所述资源占有率阈值,且所述效率低于所述效率阈值的情况下,将阻塞所述高优先级线程的低优先级线程进行优先级回溯,恢复对应的原始优先级。
23、可选地,所述调度单元,采用第一调度策略,提升所述低优先级线程的优先级,具体包括:获取所述低优先级线程占用的共享资源的天花板优先级;将所述低优先级线程的优先级,提升至所述天花板优先级;
24、所述调度单元,采用第二调度策略,提升所述低优先级线程的优先级,具体包括:获取当前竞争所述低优先级线程占用的共享资源的线程的最高优先级;将所述低优先级线程的优先级,提升至所述最高优先级。
25、根据本申请实施例的第二方面,提供一种任务调度方法,该方法应用于本申请实施例的第一方面所提供的双内核实时操作系统,所述方法包括:
26、接收目标任务发起的系统调用请求并生成中断;
27、在所述目标任务不具有实时响应需求的情况下,将所述中断分发到通用内核;在所述目标任务具有实时响应需求的情况下,将所述中断分发到实时内核。
28、可选地,所述任务调度方法,还包括:
29、检测所述实时内核中,线程间是否存在资源竞争;在存在资源竞争的情况下,执行以下步骤:
30、对低优先级线程,执行以下步骤:在出现线程死锁的情况下,采用第一调度策略,提升所述低优先级线程的优先级;在不存在线程死锁的情况下,采用第二调度策略,提升所述低优先级线程的优先级;在所述低优先级线程执行完毕后,恢复对应的原始优先级,并释放对应的资源;
31、对高优先级线程,执行以下步骤:计算所述高优先级线程的资源占有率及效率;将所述资源占有率与资源占有率阈值进行比较;将所述效率与效率阈值进行比较;在所述资源占有率低于所述资源占有率阈值,且所述效率低于所述效率阈值的情况下,将阻塞所述高优先级线程的低优先级线程进行优先级回溯,恢复对应的原始优先级。
32、可选地,采用第一调度策略,提升所述低优先级线程的优先级,具体包括:获取所述低优先级线程占用的共享资源的天花板优先级;将所述低优先级线程的优先级,提升至所述天花板优先级;
33、采用第二调度策略,提升所述低优先级线程的优先级,具体包括:获取当前竞争所述低优先级线程占用的共享资源的线程的最高优先级;将所述低优先级线程的优先级,提升至所述最高优先级。
34、可选地,所述任务调度方法,还包括:
35、在提升所述低优先级线程的优先级之前,获取所述低优先级线程对应的回溯次数,与回溯次数阈值进行比较;若所述回溯次数不小于所述回溯次数阈值,则保持所述线程的优先级为原始优先级;若所述回溯次数小于所述回溯次数阈值,则提本文档来自技高网...
【技术保护点】
1.一种双内核实时操作系统,其特征在于,应用于星务计算机,包括:内核接口、通用内核及实时内核;
2.根据权利要求1所述的双内核实时操作系统,其特征在于,所述实时内核,包括:
3.根据权利要求2所述的双内核实时操作系统,其特征在于,所述调度单元,用于执行以下步骤:
4.根据权利要求3所述的双内核实时操作系统,其特征在于,所述调度单元,还用于执行以下步骤:
5.根据权利要求4所述的双内核实时操作系统,其特征在于,所述调度单元,采用第一调度策略,提升所述低优先级线程的优先级,具体包括:获取所述低优先级线程占用的共享资源的天花板优先级;将所述低优先级线程的优先级,提升至所述天花板优先级;
6.一种任务调度方法,其特征在于,应用于权利要求1-5任一所述的双内核实时操作系统,包括:
7.根据权利要求6所述的任务调度方法,其特征在于,还包括:
8.根据权利要求7所述的任务调度方法,其特征在于,采用第一调度策略,提升所述低优先级线程的优先级,具体包括:获取所述低优先级线程占用的共享资源的天花板优先级;将所述低优先
9.根据权利要求7所述的任务调度方法,其特征在于,还包括:
10.根据权利要求9所述的任务调度方法,其特征在于,还包括:
...【技术特征摘要】
1.一种双内核实时操作系统,其特征在于,应用于星务计算机,包括:内核接口、通用内核及实时内核;
2.根据权利要求1所述的双内核实时操作系统,其特征在于,所述实时内核,包括:
3.根据权利要求2所述的双内核实时操作系统,其特征在于,所述调度单元,用于执行以下步骤:
4.根据权利要求3所述的双内核实时操作系统,其特征在于,所述调度单元,还用于执行以下步骤:
5.根据权利要求4所述的双内核实时操作系统,其特征在于,所述调度单元,采用第一调度策略,提升所述低优先级线程的优先级,具体包括:获取所述低优先级线程占用的共享资源的天花板优先级;将所述低...
【专利技术属性】
技术研发人员:孙其博,王博琛,徐梦炜,周傲,马骁,张乙然,王尚广,
申请(专利权)人:北京邮电大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。