买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:哈尔滨工业大学
摘要:一种面向实时性的虚拟化平台可中断互斥锁的构建方法、电子设备及存储介质,属于实时虚拟化技术领域。为解决现有实时虚拟化技术所忽略的BQL锁等待延迟问题,本发明定义数据结构;基于定义的数据结构,构建锁仲裁机制,采用由所有线程共享的HItex的锁变量lvar对同时发起持锁请求的多个线程进行仲裁;基于得到的无法立刻持有锁的线程,构建锁等待机制,所述锁等待机制在内核态中实现;对得到的线程对锁的等待队列中的vCPU线程,构建可中断等待机制。本发明能够大幅降低最坏情况下的中断延迟及尾延迟,将中断延迟的分布控制在较低水平。HItex能够经受长时间高负载的测试,证明了其能够满足硬实时应用需求。
主权项:1.一种面向实时性的虚拟化平台可中断互斥锁的构建方法,其特征在于,包括如下步骤:S1.定义数据结构;步骤S1中定义的数据结构如下: lvar表示锁变量; f[vi]表示vCPUvi对应的线程; WQ表示线程对锁的等待队列; w[vi]表示vCPUvi是否正在进行可中断的等锁; b[vi]表示vCPUvi是否被虚拟中断请求打断了等锁过程;S2.基于步骤S1定义的数据结构,构建锁仲裁机制,采用由所有线程共享的平台可中断互斥锁HItex的锁变量lvar对同时发起持锁请求的多个线程进行仲裁;步骤S2的锁仲裁机制的构建方法包括如下步骤:S2.1.虚拟机创建时,内核态的KVM初始化f[vi]、w[vi]、b[vi]、WQ,用户态的QEMU初始化lvar;S2.2.对于虚拟机的任何线程,包括vCPU线程及其辅助线程,当发起持锁请求时,首先检查进行lvar是否为0,判断为是则线程持锁成功,同时将lvar设置为1,否则线程无法立刻持有锁,令该线程通过系统调用进入内核态进行等待,线程对lvar进行的读写均为原子操作;S3.基于步骤S2得到的无法立刻持有锁的线程,构建锁等待机制,所述锁等待机制在内核态中实现;步骤S3的具体实现方法包括如下步骤:S3.1.对于vCPUvi对应的线程,若发起持锁请求时,vCPUvi对应的线程正准备在用户态的QEMU中进行IO端口访问的异常处理,并且未进行屏蔽中断,则在内核态等待前标记为正在进行可中断的等待,即令w[vi]=1,否则令w[vi]=0;S3.2.然后对于vCPUvi对应的线程,在内核态等待前令b[vi]=0;S3.3.对于任何线程,在内核态等待时将任何线程加入线程对锁的等待队列WQ,然后进入阻塞状态,直到被另一线程解除阻塞状态;S3.4.当持锁线程解锁时,使用原子操作将lvar设置为0,通过系统调用将处于WQ的队首的线程解除阻塞状态,并且将其从WQ中删除;S3.5.对于基于步骤S3.4得到的解除阻塞状态的非vCPU线程,返回用户态,转到步骤S2.2重新发起持锁请求;S4.对步骤S3得到的线程对锁的等待队列中的vCPU线程,构建可中断等待机制。
全文数据:
权利要求:
百度查询: 哈尔滨工业大学 一种面向实时性的虚拟化平台可中断互斥锁的构建方法、电子设备及存储介质
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。