多系统环境下进程访问共享内存方法及装置制造方法及图纸

技术编号:36771981 阅读:23 留言:0更新日期:2023-03-08 21:47
本申请提供一种多系统环境下进程访问共享内存方法及装置,方法包括:在共享内存的映射空间中的内存段首位,创建一个同步锁对应的锁实例;在锁实例中分别设置用于表示同步锁的当前状态的整形标志位和用于表示同步锁的获取方信息的整形值,使得主机或虚拟机在多系统环境下的不同进程基于原子指令占用该同步锁以访问共享内存。本申请改进了虚拟机内部共享内存的同步机制,提供一种单主机多系统环境下的多生产者

【技术实现步骤摘要】
多系统环境下进程访问共享内存方法及装置


[0001]本申请涉及数据处理
,尤其涉及多系统环境下进程访问共享内存方法及装置。

技术介绍

[0002]现代操作系统中必须解决的一个问题是多个进程对共享资源的同步并发访问,并发访问会导致竞态。为此,使用锁同步是保证多进程同步操作的基本方式。
[0003]Linux系统提供了共享内存的方式实现进程间通信,并且管理锁来实现单系统环境下进程间的同步。
[0004]Linux系统下的模拟处理器软件的加速模块qemu

kvm程序可以运行虚拟机,用于部署独立的操作系统,并且支持虚拟机内部共享内存方案ivshmem来实现虚拟机与主机的共享内存通信。qemu

kvm同时提供了通知机制实现了虚拟机和主机间的互相通知。
[0005]但是,模拟处理器软件qemu的虚拟机内部共享内存方案ivshmem目前不支持锁同步,只支持通知触发的方式,其用户空间编程模型只适合单生产者

多消费者模式,而无法保证多系统下的进程处于竞态时对共享资源的同步访本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种多系统环境下进程访问共享内存方法,其特征在于,包括:在共享内存的映射空间中的内存段首位,创建一个同步锁对应的锁实例;在所述锁实例中分别设置用于表示所述同步锁的当前状态的整形标志位和用于表示所述同步锁的获取方信息的整形值,使得主机或虚拟机在多系统环境下的不同进程基于原子指令占用该同步锁以访问所述共享内存。2.根据权利要求1所述的多系统环境下进程访问共享内存方法,其特征在于,所述整形标志位包括:0和1;其中,0用于表示所述同步锁当前处于解锁释放状态;1用于表示所述同步锁当前处于加锁状态。3.根据权利要求1所述的多系统环境下进程访问共享内存方法,其特征在于,所述整形值包括:设备的唯一标识和该设备内获取所述同步锁的进程的唯一标识;所述设备包括主机或虚拟机。4.根据权利要求1至3任一项所述的多系统环境下进程访问共享内存方法,其特征在于,所述锁实例占用所述内存段首位的前12个字节;所述整形标志位占用所述锁实例的前4个字节;所整形值占用所述锁实例的后8个字节。5.根据权利要求1所述的多系统环境下进程访问共享内存方法,其特征在于,在所述在共享内存的映射空间中的内存段首位,创建一个同步锁对应的锁实例之前,还包括:在主机空间内创建虚拟机,并为该虚拟机创建共享内存的映射空间。6.根据权利要求1所述的多系统环境下进程访问共享内存方法,其特征在于,所述主机或虚拟机在多系统环境下的不同进程基于原子指令占用该同步锁以访问所述共享内存,包括:目标进程基于原子指令访问所述...

【专利技术属性】
技术研发人员:柯柱良李卫华王程远
申请(专利权)人:上海零念科技有限公司
类型:发明
国别省市:

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

1