微内核架构下的线程间同步方法、装置、电子设备与流程

文档序号:37423839发布日期:2024-03-25 19:11阅读:11来源:国知局
微内核架构下的线程间同步方法、装置、电子设备与流程

本申请涉及计算机,尤其涉及一种微内核架构下的线程间同步方法、装置、电子设备及存储介质。


背景技术:

1、在微内核操作系统架构下,任务同步时的阻塞及唤醒服务由内核提供,该同步方法会依赖内核中其他子系统提供的服务,存在不确定的操作延时;且也存在破坏其他内核组件的风险。

2、另外,该同步方法使用一个哈希桶数据结构保存所有的等待队列,基于哈希方法本身的特性,系统中不同优先级,不同实时性要求的任务可能通过哈希算法被链接到同一个等待队列中。则任何一个任务的异常操作,都可能会对该等待队列中的其他任务产生影响。


技术实现思路

1、本申请提供了一种微内核架构下的线程间同步方法、装置、电子设备及存储介质,以减轻不同进程之间线程之间的相互干扰。本申请的技术方案如下:

2、第一方面,本申请实施例提供了一种微内核架构下的线程间同步方法,包括:

3、接收线程发出的锁变量请求;其中,所述锁变量请求包括锁变量地址、申请标志以及请求类型;

4、判断所述申请标志是否为私有标志;其中,所述申请标志是私有标志表征该锁变量请求为进程内部多线程之间的同步请求;

5、若所述申请标志是私有标志,获取所述线程所属进程对应的进程锁变量哈希表;其中,所述进程锁变量哈希表来源于所述进程内部;

6、从所述进程锁变量哈希表中获取所述锁变量地址对应的目标哈希桶;

7、判断所述请求类型,并结合判断结果在所述目标哈希桶上阻塞或唤醒所述线程。

8、第二方面,本申请实施例提供了一种微内核架构下的线程间同步装置,包括:

9、接收模块,用于接收线程发出的锁变量请求;其中,所述锁变量请求包括锁变量地址、申请标志以及请求类型;

10、判断模块,用于判断所述申请标志是否为私有标志;其中,所述申请标志是私有标志表征该锁变量请求为进程内部多线程之间的同步请求;

11、哈希表获取模块,用于若所述申请标志是私有标志,获取所述线程所属进程对应的进程锁变量哈希表;其中,所述进程锁变量哈希表来源于所述进程内部;

12、哈希桶搜索模块,用于从所述进程锁变量哈希表中获取所述锁变量地址对应的目标哈希桶;

13、同步处理模块,用于判断所述请求类型,并结合判断结果在所述目标哈希桶上阻塞或唤醒所述线程。

14、第三方面,本申请实施例提供了一种微内核操作系统架构,包括微内核、基础服务、c语言编程库以及应用程序,所述c语言编程库包括加锁解锁单元,所述基础服务模块包括同步服务接口;

15、所述加锁解锁单元用于所述应用程序向所述同步服务接口发出锁变量请求,所述同步服务接口用于所述基础服务模块为所述应用程序提供阻塞及唤醒服务。

16、第四方面,本申请实施例提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请第一方面实施例所述的微内核架构下的线程间同步方法。

17、第五方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请第一方面实施例所述的微内核架构下的线程间同步方法。

18、第六方面,本申请实施例提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现本申请第一方面实施例所述的微内核架构下的线程间同步方法的步骤。

19、本申请实施例提供的技术方案至少带来以下有益效果:

20、针对进程内部多线程之间的同步,创建各进程内部的锁变量的哈希表数据结构,即进程锁变量哈希表;在线程的锁变量请求中携带的申请标志为私有标志时,获取该线程对应的进程锁变量哈希表,再根据锁变量地址从进程锁变量哈希表中获取目标哈希桶,将该线程挂接到到目标哈希桶的链表上或者从该哈希桶的链表上移除,减轻了不同进程之间线程之间的相互干扰,提高了系统稳定性。

21、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。



技术特征:

1.一种微内核架构下的线程间同步方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,还包括:

3.根据权利要求1或2所述的方法,其特征在于,所述判断所述请求类型,并结合判断结果在所述目标哈希桶上阻塞或唤醒所述线程,包括:

4.根据权利要求3所述的方法,其特征在于,所述判断所述请求类型,并结合判断结果在所述目标哈希桶上阻塞或唤醒所述线程,还包括:

5.根据权利要求2所述的方法,其特征在于,所述接收线程发出的锁变量请求之前,还包括:

6.根据权利要求1或2所述的方法,其特征在于,所述微内核架构包括同步服务接口以及加锁解锁单元,所述同步服务接口位于所述微内核架构的基础服务模块中,所述加锁解锁单元位于所述微内核架构的c语言编程库中;所述接收线程发出的锁变量请求,包括:

7.一种微内核架构下的线程间同步装置,其特征在于,包括:

8.一种微内核操作系统架构,包括微内核、基础服务、c语言编程库以及应用程序,其特征在于,所述c语言编程库包括加锁解锁单元,所述基础服务模块包括同步服务接口;

9.一种电子设备,其特征在于,包括:

10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至6中任一项所述的微内核架构下的线程间同步方法。

11.一种车辆,其特征在于,所述车辆包括如权利要求9中所述的电子设备。


技术总结
本申请提供了一种微内核架构下的线程间同步方法、装置、电子设备。其中方法包括:接收线程发出的锁变量请求;其中,锁变量请求包括锁变量地址、申请标志以及请求类型;判断申请标志是否为私有标志;其中,申请标志是私有标志表征该锁变量请求为进程内部多线程之间的同步请求;若申请标志是私有标志,获取线程所属进程对应的进程锁变量哈希表;从进程锁变量哈希表中获取锁变量地址对应的目标哈希桶;判断请求类型,并结合判断结果在目标哈希桶上阻塞或唤醒线程。本发明方法针对进程内部多线程之间的同步,创建各进程内部的锁变量的哈希表数据结构,减轻了不同进程之间线程之间的相互干扰,提高了系统稳定性。

技术研发人员:柳干
受保护的技术使用者:北京罗克维尔斯科技有限公司
技术研发日:
技术公布日:2024/3/24
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1