System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种微内核操作系统的用户级RCU实现方法技术方案_技高网

一种微内核操作系统的用户级RCU实现方法技术方案

技术编号:40832378 阅读:5 留言:0更新日期:2024-04-01 14:55
本发明专利技术公开了一种微内核操作系统的用户级RCU实现方法,在微内核操作系统的用户态中部署RCU服务,读线程访问共享数据时为读操作进行加锁和解锁操作,写线程在对共享数据进行更改后,开启全局宽限期并为其分配世代号,内核为每个CPU设置一个位图变量的bit位,CPU在经历静止状态后则将该bit位置为0,当位图变量转为0向量标志着对应的宽限期结束,内核向RCU服务发送静止事件,RCU服务调用宽限期对应的回调函数,回收内存资源。本发明专利技术可以在微内核操作系统的用户态实现RCU,提高RCU效率。

【技术实现步骤摘要】

本专利技术属于微内核,更为具体地讲,涉及一种微内核操作系统的用户级rcu实现方法。


技术介绍

1、read-copy update(rcu)是一种用于在多线程环境下管理共享数据的并发编程技术,它旨在提供高性能且低开销的并发读取访问,同时确保数据的一致性,而无需使用传统的互斥锁。rcu主要针对的数据对象是链表,目的是提高遍历读取数据的效率,为了达到目的使用rcu机制读取数据的时候不对链表进行耗时的加锁操作。这样在同一时间可以有多个线程同时读取该链表,并且允许一个线程对链表进行修改(修改的时候,需要加锁)。当需要更新共享数据时,不会立即修改原始数据,而是创建一个新的数据副本。这个新副本只有在没有任何线程引用旧副本时才会成为新的主要数据。旧数据副本并不立即销毁,而是被延迟回收。

2、目前已经有多种方法可以实现rcu,但是仍然存在无法实现用户态应用,或易产生阻塞等问题,需要进一步改进。


技术实现思路

1、本专利技术的目的在于克服现有技术的不足,提供一种微内核操作系统的用户级rcu实现方法,在微内核操作系统的用户态实现rcu,提高rcu效率。

2、为了实现上述专利技术目的,本专利技术微内核操作系统的用户级rcu实现方法包括以下步骤:

3、s1:在微内核操作系统的用户态中部署rcu服务,并对操作接口进行配置,操作接口函数包括读加锁函数rcu_read_lock,读解锁函数rcu_read_unlock,发布函数rcu_assign_pointer,同步函数synchronize_rcu和回调函数call_rcu;

4、s2:读线程访问共享数据时,采用rcu_read_lock函数和rcu_read_unlock函数为读操作进行加锁和解锁操作;

5、s3:当需要更改一个共享数据的内容时,写线程向rcu服务申请新内存空间,将原始共享数据拷贝到新内存空间,然后对新内存空间中的数据进行更改,更改完成后写线程将数据链表中对于原始内存空间的链接关系转移至新内存空间,完成共享数据替换;

6、s4:共享数据更新完成后,写线程调用synchronize_rcu函数或call_rcu函数注册回调函数从而开启宽限期;写线程为宽限期分配一个独一无二的世代号,将回调函数和指针保存至回调函数队列;然后rcu服务阻塞,写线程继续运行;

7、s5:内核中设置位图变量,每一位bit对应一个微内核操作系统中的cpu,每个cpu对应的bit值初始值均为1;内核对每个cpu进行监测,判断该cpu是否经历静止状态,如果未经历则不作任何操作,如果经历则将位图变量中对应bit置为0;当位图变量为全0时,则宽限期结束,生成一次静止事件,然后将位图变量重置为1;然后向rcu服务上报静止事件;

8、s6:rcu服务收到静止事件,从回调函数队列中取出宽限期对应的回调函数和数据指针,调用回调函数回收内存资源。

9、本专利技术微内核操作系统的用户级rcu实现方法,在微内核操作系统的用户态中部署rcu服务,读线程访问共享数据时为读操作进行加锁和解锁操作,写线程在对共享数据进行更改后,开启全局宽限期并为其分配世代号,内核为每个cpu设置一个位图变量的bit位,cpu在经历静止状态后则将该bit位置为0,当位图变量转为0向量标志着对应的宽限期结束,内核向rcu服务发送静止事件,rcu服务调用宽限期对应的回调函数,回收内存资源。

10、本专利技术具有以下有益效果:

11、1)本专利技术提供了rcu在用户态的实现,拓宽了rcu的使用场景;

12、2)本专利技术中,写线程在更改数据开启宽限期后可以直接继续运行,无需等待宽限期结束,之后通过回调函数将旧数据的内存空间释放掉,有效减少了阻塞,从而大大提高rcu的效率。

本文档来自技高网...

【技术保护点】

1.一种微内核操作系统的用户级RCU实现方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的用户级RCU实现方法,其特征在于,所述步骤S5中CPU静止状态的判断方法为:如果CPU处于空闲线程或线程执行在内核态,则CPU处于静止状态。

3.根据权利要求1所述的用户级RCU实现方法,其特征在于,所述步骤S5中在内核设置静止事件计数器,每经历一次位图变量归0则令计数器加1,当计数器的值达到预设阈值,内核则向RCU服务上报静止事件,否则不作任何操作。

【技术特征摘要】

1.一种微内核操作系统的用户级rcu实现方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的用户级rcu实现方法,其特征在于,所述步骤s5中cpu静止状态的判断方法为:如果cpu处于空闲线程或线程执行在内核态,则cpu处...

【专利技术属性】
技术研发人员:肖堃蒋修浩李蒙罗蕾陈丽蓉
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1