一种用于提升分时操作系统实时性能的方法及装置与流程

文档序号:37432035发布日期:2024-03-25 19:25阅读:9来源:国知局
一种用于提升分时操作系统实时性能的方法及装置与流程

本技术涉及操作系统领域,具体而言本技术实施例涉及一种用于提升分时操作系统实时性能的方法及装置。


背景技术:

1、操作系统有实时操作系统和分时操作系统之分,实时操作系统在嵌入式领域应用比较广泛,常见的rtos有uc、freertos、vxworks等,既有开源的,也有商用的。分时操作系统不仅仅在嵌入式领域,在桌面以及服务器上都很广泛,常见的有centos、ubuntu、麒麟os、统信os等。在分时操作系统上打上内核实时补丁,实际上是增加了内核抢占点、优化了一些内核长延时的路径等,并未修改内核调度算法,与传统的实时操作系统rtos(real-time-operating-system)是有本质区别。

2、在嵌入式领域,尤其是工控领域,如果实时性要求特别高,采用rtos的方案较多,或者是采用双系统方案,分时和实时并存。采用rtos的方案成本较高,大部分都是采用分时系统,如开源的有centos、ubuntu,国内的操作系统有麒麟os、统信os。如果需要提升实时性,从内核方面考虑,首先是preempt-rt补丁,该补丁由kernel社区维护。其次,红帽社区也有相关实时性优化的文档,对于提升实时性有一定的帮助。

3、可以理解的是,为了满足系统的实时性要求,如果采用rtos的方案,如常见的vxworks,成本较高,不易维护和开发。如果采用分时os,即使添加了相关技术的内核实时补丁preempt-rt补丁,实时效果也不明显,需进一步优化。


技术实现思路

1、本技术实施例的目的在于提供一种用于提升分时操作系统实时性能的方法及装置,采用本技术实施例既能发挥linux分时操作系统多线程多任务的优势,又能弥补其实时性不足的缺陷。

2、第一方面,本技术实施例提供一种用于提升分时操作系统实时性能的方法,所述方法包括:在操作系统启动过程中,将多个核中的至少一个设置为隔离核,以使所述隔离核运行实时任务,其中,所述多个核中除所述隔离核之外的核为非隔离核;在所述操作系统启动后,将内核线程以及至少部分中断与所述非隔离核进行绑定。

3、本技术的一些实施例在操作系统启动过程中设置隔离核以运行实时任务,并在操作系统启动后将相关线程和中断与非隔离核绑定,进而提升设置的隔离核对实时任务的处理速度。

4、在一些实施例中,所述将多个核中的至少一个设置为隔离核,包括:通过设置核隔离参数的参数值将所述多个核中的至少一个设置为所述隔离核。

5、本技术的一些实施例通过设置核隔离参数的参数值属于某些核的编号,进而将这些核设置为隔离核。

6、在一些实施例中,在所述将多个核中的至少一个设置为隔离核之后,所述方法还包括:设置所述非隔离核的中断亲和性。

7、本技术的一些实施例来进行非隔离核cpu的中断亲和性的绑定,以进一步提升隔离核的处理速度。

8、在一些实施例中,在所述将多个核中的至少一个设置为隔离核之后,所述方法还包括:设置所述隔离核的隔离属性,其中,所述隔离属性包括关闭定时滴答、禁止内核检查用户线程软锁、卸载读、复制更新rcu(read-copy-update,是linux中的一种锁的机制)回调和禁用内核回显中的至少一个。

9、本技术的一些实施例为设置的隔离核进一步设置相关的启动参数信息,以通过在操作系统启动过程中的启动参数优化隔离核对实时任务的处理速度。

10、在一些实施例中,所述设置所述隔离核的隔离属性,包括:将所述隔离核作为关闭定时滴答的参数值,进而关闭所述隔离核的定时器滴答。

11、本技术的实施例通过关闭定时滴答来关闭相应隔离核的定时器滴答以提升该隔离核响应和处理实时任务的能力。

12、在一些实施例中,所述设置所述隔离核的隔离属性,包括:通过添加禁用内核监测nosoftlockup参数禁止内核检查用户线程软锁。

13、本技术的一些实施例通过添加禁用内核监测参数来禁止内核检查用户线程软锁,进而提升隔离核的实时任务处理能力。

14、在一些实施例中,所述设置所述隔离核的隔离属性,包括:将所述隔离核作为禁用周期性唤醒rcu回调和卸载rcu回调命令的参数来实现卸载读、复制更新rcu回调。

15、本技术的一些实施例通过禁用周期性唤醒rcu回调rcu_nocb_poll和卸载rcu回调rcu_nocbs参数来实现卸载读、复制更新rcu回调。

16、在一些实施例中,所述设置所述隔离核的隔离属性,包括:通过添加静默quiet参数来实现禁用内核信息回显。

17、在一些实施例中,所述将内核线程以及至少部分中断与所述非隔离核进行绑定,包括:将运行在所述隔离核上的中断绑定至所述非隔离核。

18、本技术的实施例将操作系统后运行于隔离核上的中断绑定至非隔离核,以提升隔离核对实时任务的处理能力。

19、在一些实施例中,在所述将内核线程以及至少部分中断与所述非隔离核进行绑定之前,所述方法还包括:确定当前中断绑定的核,得到初始绑定核列表;删除所述初始绑定核列表中包括的所述隔离核,得到多核中断亲和性列表;所述将运行在所述隔离核上的中断绑定至所述非隔离核,包括:将所述当前中断绑定至所述多核中断亲和性列表中的相应非隔离核上。

20、本技术的实施例将通过多核中断亲和性列表来将运行于隔离核上的中断绑定至非隔离核,提升隔离核对实时任务的处理能力。

21、在一些实施例中,所述将内核线程以及至少部分中断与所述非隔离核进行绑定,包括:通过查找进程id命令和设置进程绑定cpu taskset命令,将所述内核线程绑定到所述非隔离核上。

22、在一些实施例中,所述将内核线程以及至少部分中断与所述非隔离核进行绑定,包括:通过查找进程id命令和设置进程调度属性命令,调整内核软中断线程的优先级,以使所述内核软中断线程运行于所述非隔离核上。

23、在一些实施例中,在所述操作系统启动后,所述方法还包括:将内核工作队列绑定到所述非隔离核上。

24、在一些实施例中,在所述操作系统启动后,所述方法还包括:调整内存属性。

25、在一些实施例中,所述调整内存属性,包括:修改内存与硬盘交换参数swappiness来减少内存交换;修改信息更新频率参数stat_interval来调整内存信息更新频率;修改脏页百分比参数dirty_ratio来调整脏页所占百分比;修改脏页回写比例参数dirty_background_ratio来减少内核flusher线程回写脏页数据。

26、在一些实施例中,所述调整内存属性,包括:通过设置交换区关闭参数swapoff来关闭交换区。

27、在一些实施例中,所述调整内存属性,包括:关闭内核同页合并。

28、第二方面,本技术的一些实施例提供一种用于提升分时操作系统实时性能的装置,所述装置包括:内核启动参数优化模块,被配置为:在操作系统启动过程中,将多个核中的至少一个设置为隔离核,以使所述隔离核运行实时任务,其中,所述多个核中除所述隔离核之外的核为非隔离核;系统参数优化模块,被配置为:在所述操作系统启动后,将内核线程以及至少部分中断与所述非隔离核进行绑定。

29、第三方面,本技术的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任意一个实施例所述的方法。

30、第四方面,本技术的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任意一个实施例所述的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1