[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN110858164B - 进程间通信方法、装置及计算机可读介质 - Google Patents

进程间通信方法、装置及计算机可读介质 Download PDF

Info

Publication number
CN110858164B
CN110858164B CN201810965667.3A CN201810965667A CN110858164B CN 110858164 B CN110858164 B CN 110858164B CN 201810965667 A CN201810965667 A CN 201810965667A CN 110858164 B CN110858164 B CN 110858164B
Authority
CN
China
Prior art keywords
target
client
interrupt
bitmap
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810965667.3A
Other languages
English (en)
Other versions
CN110858164A (zh
Inventor
王蘅
王霖
张占忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Chengdu Huawei Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Huawei Technology Co Ltd filed Critical Chengdu Huawei Technology Co Ltd
Priority to CN201810965667.3A priority Critical patent/CN110858164B/zh
Publication of CN110858164A publication Critical patent/CN110858164A/zh
Application granted granted Critical
Publication of CN110858164B publication Critical patent/CN110858164B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)

Abstract

本申请公开了一种进程间通信方法、装置及计算机可读介质,该方法包括:宿主机在位图中目标客户端对应的目标位写入激活标志;所述目标客户端为虚拟机中所述宿主机待通知的客户端,所述目标位用于指示所述目标客户端为待通知的客户端或指示所述目标客户端不为待通知的客户端;所述宿主机向中断寄存器写入中断命令;所述中断寄存器为所述虚拟机和所述宿主机共用的寄存器,所述中断命令包含中断号,所述中断命令用于指示所述中断号与所述目标位的组合对应的客户端从消息接收队列接收消息。申请实施例中,通过中断号和位图中写有激活标志的比特位的组合指示待通知的客户端,可以大大扩展Ivshmem可支持的客户端的数量,实现简单。

Description

进程间通信方法、装置及计算机可读介质
技术领域
本申请涉及计算机技术领域,尤其涉及通信方法、装置及计算机可读介质。
背景技术
随着通信技术的发展,在进行虚拟化或云计算处理时,往往需要在操作系统内的进程间、虚拟机/容器与虚拟机之间以及虚拟机/容器与宿主机之间进行进程间通信。进程是装入内存并独立执行的程序,每个进程都有自己的私有进程空间,对其他进程是不可见的。而进程间通信就是让独立的进程间传输控制信息,或与其他进程交换数据的机制。共享内存虚拟设备(IV share memory,Ivshmem)是虚拟机内部共享内存的外设部件互连标准(Peripheral Component Interconnect,PCI)设备。虚拟机之间实现内存共享是把内存映射成虚拟机内进程的PCI设备来实现的。
虚拟机与宿主机之间进行进程间通信主要是通过Ivshmem提供的中断机制实现的,通过宿主机的用户态跨越虚拟机内核态通知虚拟机用户态进程。宿主机向虚拟机通信,即宿主机内的进程想要正确地唤醒虚拟机内的进程(客户端),就必须要通过识别中断的方式来区分消息需要发送给哪个虚拟机的进程(客户端)。然而,Ivshmem仅支持64个中断,意味着仅凭借Ivshmem的特性,虚拟机的客户端只能够有64个。随着虚拟化技术的发展,虚拟机中的客户端的数量越来越多,64个中断远远不能满足需求。因此,需要研究如何解决Ivshmem支持的客户端的数量受限的问题。
发明内容
本申请提供了一种进程间的通信方法、装置及计算机可读介质,用于解决Ivshmem支持的客户端的数量受限的问题。
第一方面本申请提供了一种进程间通信方法,该方法包括:
宿主机在位图中目标客户端对应的目标位写入激活标志;所述目标客户端为虚拟机中所述宿主机待通知的客户端,所述目标位用于指示所述目标客户端为待通知的客户端或指示所述目标客户端不为待通知的客户端;
所述宿主机向中断寄存器写入中断命令;所述中断寄存器为所述虚拟机和所述宿主机共用的寄存器,所述中断命令包含中断号,所述中断命令用于指示所述中断号与所述目标位的组合对应的客户端从消息接收队列接收消息。
上述宿主机和上述虚拟机运行在同一个进程间通信装置中,该进程间通信装置可以是服务器、台式电脑、笔记本电脑、手机等运行有宿主机程序和虚拟机程序的装置。本申请实施例的执行主体为进程间通信装置。可选的,所述宿主机和所述虚拟机共享内存。所述位图位于共享内存。也就是说,所述进程间通信装置中的任意进程或可访问共享内存的进程均可以访问所述位图。Ivshmem是虚拟机内部共享内存的PCI设备,虚拟机与宿主机的通信主要是通过Ivshmem提供的中断机制实现的。然而,Ivshmem仅支持64个中断,每个中断对应一个中断号,每个中断号对应一个虚拟机内的客户端(进程),意味着仅凭借Ivshmem的特性,虚拟机内的客户端只能够有64个。所述位图包含至少两个比特。通过所述中断号与所述位图的组合可以成倍的扩展Ivshmem可支持的客户端的数量。举例来说,Ivshmem支持64个中断,位图包含64比特,1个中断和该位图中1个比特的组合对应一个客户端,这样中断和位图的组合就对应64×64个客户端。
本申请实施例中,通过中断号和位图中写有激活标志的比特位的组合指示待通知的客户端,可以大大扩展Ivshmem可支持的客户端的数量,实现简单。
在一个可选的实现方式中,所述位图包含N个比特,所述目标位占用至少一个比特,所述N为大于2的整数,所述中断号和所述目标位的组合对应所述目标客户端。
在该实现方式中,通过中断号和目标位的组合指示待通知的客户端,实现简单。
在一个可选的实现方式中,所述宿主机在位图中目标客户端对应的目标位写入激活标志包括:
所述宿主机采用比较并交换CAS操作在所述目标位写入所述激活标志。
比较并交换(Compare and Swap,CAS)操作是原子操作,用于保证并发安全性。所述宿主机采用CAS操作在所述目标位写入所述激活标志时,可以屏蔽其他进程同时对所述位图进行操作,进而保证并发安全性。CAS可以做到对位图中单个值(比特)的原子修改,很大程度上减小了屏蔽粒度。另外,CAS操作是屏蔽粒度最小的操作,可以减少位图被闲置的时间,提高位图的使用频率。
在该实现方式中,宿主机采用CAS在位图中写入激活标志,可以保证并发安全性的同时,提高位图的使用频率。
在一个可选的实现方式中,所述宿主机在位图中目标客户端对应的目标位写入激活标志包括:
所述宿主机在所述位图中所述目标客户端对应的所述目标位写入所述激活标志的过程中,采用中断屏蔽的方式屏蔽对所述位图的目标操作,所述目标操作为除向所述目标位写入所述激活标志外的操作。
在该实现方式中,采用中断屏蔽可以屏蔽其他程序对位图的操作,以便于保证位图中的激活标志与中断号的组合可以准确地指示待通知的客户端,实现简单。
在一个可选的实现方式中,所述宿主机在位图中目标客户端对应的目标位写入激活标志之前,所述方法还包括:
所述宿主机向所述目标客户端的所述消息接收队列写入所述消息。
在该实现方式中,宿主机向目标客户端的消息接收队列写入消息,并通过该目标客户端对应的中断号和目标位指示该目标客户端,以便于该目标客户端接收到该消息,实现简单。
第二方面本申请提供了另一种进程间通信方法,该方法包括:
虚拟机内核态的外设部件互连标准PCI设备获得中断寄存器中的中断命令;所述中断寄存器为所述虚拟机和宿主机共用的寄存器,所述中断命令包含中断号,所述中断命令用于指示目标客户端从消息接收队列接收消息,所述目标客户端为虚拟机中对应目标组合的客户端,所述目标组合为所述中断号与位图中写有激活标志的比特位的组合;
所述PCI设备读取所述位图,并确定所述位图中的目标位写有所述激活标志;
所述PCI设备确定所述中断号与所述目标位的组合对应的所述目标客户端;
所述PCI设备通知所述目标客户端从所述消息接收队列接收所述消息。
本申请实施例中,PCI设备通过中断号与位图中写有激活标志的比特位的组合对应待激活的客户端,可以大大扩展Ivshmem可支持的客户端的数量,实现简单。
在一个可选的实现方式中,所述PCI设备通知所述目标客户端从所述消息接收队列接收所述消息包括:
所述PCI设备激活所述目标客户端对应的内核态信号量。
在该实现方式中,PCI设备通过激活目标客户端对应的内核态信号量来解放该目标客户端用户态的等待状态,以便于该目标客户端从消息接收队列接收消息,实现简单。
在一个可选的实现方式中,所述PCI设备通知所述目标客户端从所述消息接收队列接收所述消息之后,所述方法还包括:
所述目标客户端从内核态阻塞状态返回用户态,并从所述消息接收队列接收所述消息。
在该实现方式中,目标客户端从内核态阻塞状态返回用户态以激活用户态接收消息的流程,可以及时接收消息,实现简单。
在一个可选的实现方式中,所述位图包含N个比特,所述目标位占用至少一个比特,所述N为大于2的整数,所述中断号和所述目标位的组合对应所述目标客户端。
在该实现方式中,PCI设备通过中断号和目标位的组合指示待通知的客户端,实现简单。
在一个可选的实现方式中,所述PCI设备读取所述位图之后,所述方法还包括:
所述PCI设备采用比较并交换CAS操作清除所述目标位的所述激活标志。
在该实现方式中,宿主机采用CAS清除位图中激活标志,可以保证并发安全性的同时,提高位图的使用频率。
第三方面本申请提供了一种进程间通信装置,该装置包括:
写单元,用于在位图中目标客户端对应的目标位写入激活标志;所述目标客户端为虚拟机中宿主机待通知的客户端,所述目标位用于指示所述目标客户端为待通知的客户端或指示所述目标客户端不为待通知的客户端;
所述写单元,还用于向中断寄存器写入中断命令;所述中断寄存器为所述虚拟机和所述宿主机共用的寄存器,所述中断命令包含中断号,所述中断命令用于指示所述中断号与所述目标位的组合对应的客户端从消息接收队列接收消息。
本申请实施例中,通过中断号和位图中写有激活标志的比特位的组合指示待通知的客户端,可以大大扩展Ivshmem可支持的客户端的数量,实现简单。
在一个可选的实现方式中,所述位图包含N个比特,所述目标位占用至少一个比特,所述N为大于2的整数,所述中断号和所述目标位的组合对应所述目标客户端。
在该实现方式中,通过中断号和目标位的组合指示待通知的客户端,实现简单。
在一个可选的实现方式中,所述写单元,具体用于采用比较并交换CAS在所述目标位写入所述激活标志。
在该实现方式中,宿主机采用CAS在位图中写入激活标志,可以保证并发安全性的同时,提高位图的使用频率。
在一个可选的实现方式中,所述装置还包括:
屏蔽单元,用于在所述宿主机在所述位图中所述目标客户端对应的所述目标位写入所述激活标志的过程中,采用中断屏蔽的方式屏蔽对所述位图的目标操作,所述目标操作为除向所述目标位写入所述激活标志外的操作。
在该实现方式中,采用中断屏蔽可以屏蔽其他程序对位图的操作,以便于保证位图中的激活标志与中断号的组合可以准确地指示待通知的客户端,实现简单。
在一个可选的实现方式中,所述写单元,还用于向所述目标客户端的所述消息接收队列写入所述消息。
在该实现方式中,宿主机向目标客户端的消息接收队列写入消息,并通过该目标客户端对应的中断号和目标位指示该目标客户端,以便于该目标客户端接收到该消息,实现简单。
第四方面本申请提供了另一种进程间通信装置,该装置包括:
外设部件互连标准PCI设备,用于获得中断寄存器中的中断命令;所述中断寄存器为虚拟机和宿主机共用的寄存器,所述中断命令包含中断号,所述中断命令用于指示目标客户端从消息接收队列接收消息,所述目标客户端为虚拟机中对应目标组合的客户端,所述目标组合为所述中断号与位图中写有激活标志的比特位的组合;
所述PCI设备,还用于读取所述位图,并确定所述位图中的目标位写有所述激活标志;
所述PCI设备,还用于确定所述中断号与所述目标位的组合对应的所述目标客户端;
所述PCI设备,还用于通知所述目标客户端从所述消息接收队列接收所述消息。
本申请实施例中,PCI设备通过中断号与位图中写有激活标志的比特位的组合对应待激活的客户端,可以大大扩展Ivshmem可支持的客户端的数量,实现简单。
在一个可选的实现方式中,所述PCI设备,具体用于激活所述目标客户端对应的内核态信号量。
在该实现方式中,PCI设备通过激活目标客户端对应的内核态信号量来解放该目标客户端用户态的等待状态,以便于该目标客户端从消息接收队列接收消息,实现简单。
在一个可选的实现方式中,所述装置还包括:
状态切换单元,用于控制所述目标客户端从内核态阻塞状态返回用户态;
接收单元,用于从所述消息接收队列接收所述消息。
在该实现方式中,目标客户端从内核态阻塞状态返回用户态以激活用户态接收消息的流程,可以及时接收消息,实现简单。
在一个可选的实现方式中,所述位图包含N个比特,所述目标位占用至少一个比特,所述N为大于2的整数,所述中断号和所述目标位的组合对应所述目标客户端。
在该实现方式中,PCI设备通过中断号和目标位的组合指示待通知的客户端,实现简单。
在一个可选的实现方式中,所述PCI设备,还用于采用比较并交换CAS清除所述目标位的所述激活标志。
在该实现方式中,宿主机采用CAS清除位图中激活标志,可以保证并发安全性的同时,提高位图的使用频率。
第五方面本申请实施例提供了另一种进程间通信装置,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面、上述第二方面、上述第一方面任意实现方式以及上述第二方面任意实现方式的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面、上述第二方面、上述第一方面任意实现方式以及上述第二方面任意实现方式的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1为本申请实施例提供的一种进程间通信方法;
图2为本申请实施例提供的一种位图的结构示意图;
图3为本申请实施例提供的另一种进程间通信方法;
图4为本申请实施例提供的一种服务端和客户端的通信流程图;
图5为本申请实施例提供的一种服务端通知客户端的方法流程图;
图6为本申请实施例提供的一种进程间通信装置;
图7为本申请实施例提供的另一种进程间通信装置;
图8为本申请实施例提供的又一种进程间通信装置;
图9为本申请实施例提供的又一种进程间通信装置。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
下面首先介绍一下本申请涉及的一些术语以及相关知识。
宿主机是虚拟机的物理基础,虚拟机存在于宿主机中,与宿主机共享使用硬件。宿主机的运行是虚拟机运行的前提与基础。虚拟机(Virtual Machine,VM)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
为了安全考虑,Linux系统分为内核态和用户态,分别运行在内核空间和用户空间。内核态的程序可以执行特权指令,操作系统本身也在其中运行;用户态则不允许直接访问操作系统的核心数据、设备等关键资源,必须先通过系统调用或者中断进入内核态才可以访问,当系统调用或中断返回时,重新回到用户空间运行。在用户空间只有进程的概念。对某段代码而言,可能会在程序中多次被执行,每次执行的过程我们称作代码的执行路径。当两个或多个代码路径要竞争共同的资源的时候,该代码段就是临界区。当一个临界区有多个用户态进程竞争时,最好的方法是用信号量保护这个临界区。只有得到信号量的进程才能执行临界区代码,当获取不到信号量时,进程进入休眠状态。
Ivshmem是虚拟机内部共享内存的PCI设备,虚拟机与宿主机的通信主要是通过Ivshmem提供的中断机制实现的。虚拟机向宿主机的通信可以直接在虚拟机进程中写入中断通知到Ivshmem的服务端(sever)进程,在宿主机用户态通过select系统调用收到的中断通知,唤醒宿主机服务端从接收队列(单链表)接收消息。宿主机向虚拟机通信,服务端需要正确地唤醒虚拟机内的客户端进程,就必须要通过识别中断的方式来区分消息需要发送给谁,其中,Ivshmem仅支持64个中断,意味着仅凭借Ivshmem的特性,存在客户端只能够有64个的限制。可以理解,Ivshmem用于实现宿主机和虚拟机之间的中断通知的底层实现。
信号量又称为信号灯(semaphore),本质上是一种睡眠锁。如果有一个任务试图获得一个不可用(已经被占用)的信号量时,信号量会将其推进一个等待队列,然后让其睡眠。这时处理器能重获自由,从而去执行其他代码。当持有的信号量可用(被释放后),处于等待队列中的那个任务将被唤醒,并将获得该信号量。
CAS操作是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数,即内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。无论哪种情况,它都会在CAS指令之前返回该位置的值。CAS操作有效地说明了“我认为位置V应该包含值A;如果包含该值,则将B放到这个位置;否则,不要更改该位置,只告诉我这个位置现在的值即可。CAS操作是原子操作。原子操作底层表现为一条汇编指令(ldrex、strex)。所以原子操作在执行过程中不会被别的代码路径所中断。
图1为本申请提供的一种进程间通信方法,如图1所示,该方法可包括:
101、宿主机在位图中目标客户端对应的目标位写入激活标志。
上述目标客户端为虚拟机中上述宿主机待通知的客户端,上述目标位用于指示上述目标客户端为待通知的客户端或指示上述目标客户端不为待通知的客户端。上述宿主机和上述虚拟机运行在同一个进程间通信装置中,该进程间通信装置可以是服务器、台式电脑、笔记本电脑、手机等运行有宿主机程序和虚拟机程序的装置。所述位图位于共享内存。在本申请中,客户端是指虚拟机中的客户端进程。在上述目标位占用上述位图中一个比特位的情况下,上述激活标志为1或0。举例来说,激活标志为1,宿主机在位图中目标客户端对应的目标位写入激活标志就是在该目标位写入1。又举例来说,激活标志为0,宿主机在位图中目标客户端对应的目标位写入激活标志就是在该目标位写入0。
在一个可选的实现方式中,上述位图包含N个比特,上述目标位占用至少一个比特,上述N为大于2的整数,上述中断号和上述目标位的组合对应上述目标客户端。
在实际应用中,一个中断号和位图中M个连续且不重叠的比特位的组合对应虚拟机中的一个客户端(客户端进程),其中,M为不小于1的整数。可以理解,位图中M个连续且不重叠的比特位对应一个客户端(进程),M可以是1,也可以是大于1的整数。也就是说,目标位占用M个比特。图2为本申请实施例提供的一种位图的结构示意图,如图2所示,位图中1个比特对应一个客户端(进程),激活标志为1。从图2可以看出,位图从上向下第二个比特位为1,即该第二个比特位写有激活标志,其他比特位均未写有激活标志。举例来说,位图包含64个比特,一个中断号和位图中1个比特的组合对应虚拟机中的一个客户端,这样一个中断号配合位图就对应64个客户端。又举例来说,位图包含128,一个中断号和位图中2比特的组合对应虚拟机中的一个客户端,这样一个中断号配合位图就对应64个客户端。在上述目标位占用两比特的情况下,上述激活标志可以是00、01、10、11中的任一个。假定激活标志为11,目标位占用两比特,宿主机在位图中目标客户端对应的目标位写入激活标志就是在该目标位写入11。在实际应用中,一个激活标志还可以占用三个或三个以上比特,实现原理与占用一个和两个比特的实现原理相同,这里不再详述。
在该实现方式中,通过中断号和目标位的组合可以成倍的扩展宿主机可通信的客户端的数量,实现简单。
在一个可选的实现方式中,上述宿主机在位图中目标客户端对应的目标位写入激活标志包括:
上述宿主机采用比较并交换CAS操作在上述目标位写入上述激活标志。
上述宿主机采用CAS操作在上述目标位写入上述激活标志时,可以屏蔽其他进程同时对上述位图进行操作,进而保证并发安全性。也就是说,在同一时间仅允许一个进程对位图进行操作。另外,CAS操作是屏蔽粒度最小的操作,可以减少位图被闲置的时间,提高位图的使用频率。这样就可以提高宿主机和客户端的通信效率。
在该实现方式中,宿主机采用CAS在位图中写入激活标志,可以保证并发安全性的同时,提高位图的使用频率。
在一个可选的实现方式中,上述宿主机在位图中目标客户端对应的目标位写入激活标志包括:
上述宿主机在上述位图中上述目标客户端对应的上述目标位写入上述激活标志的过程中,采用中断屏蔽的方式屏蔽对上述位图的目标操作,上述目标操作为除向上述目标位写入上述激活标志外的操作。
按照是否可以被屏蔽,可将中断分为两大类:不可屏蔽中断(又叫非屏蔽中断)和可屏蔽中断。不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。对于可屏蔽中断,除了受本身的屏蔽位控制外,还都要受一个总的控制,即CPU标志寄存器中的中断允许标志位(Iinterrupt Flag,IF)的控制,IF位为1,可以得到CPU的响应,否则,得不到响应。
在该实现方式中,采用中断屏蔽可以屏蔽其他程序对位图的操作,以便于保证位图中的激活标志与中断号的组合可以准确地指示待通知的客户端,实现简单。
在一个可选的实现方式中,上述宿主机在位图中目标客户端对应的目标位写入激活标志之前,上述方法还包括:
上述宿主机向上述目标客户端的上述消息接收队列写入上述消息。
在该实现方式中,宿主机向目标客户端的消息接收队列写入消息,并通过该目标客户端对应的中断号和目标位指示该目标客户端,以便于该目标客户端接收到该消息,实现简单。
102、上述宿主机向中断寄存器写入中断命令;上述中断寄存器为上述虚拟机和上述宿主机共用的寄存器,上述中断命令包含中断号,上述中断命令用于指示上述中断号与上述目标位的组合对应的客户端从消息接收队列接收消息。
本申请实施例中,通过中断号和位图中写有激活标志的比特位的组合指示待通知的客户端,可以大大扩展Ivshmem可支持的客户端的数量,实现简单。
图3为本申请实施例提供的另一种进程间通信方法,如图3所示,该方法可包括:
301、虚拟机内核态的外设部件互连标准PCI设备获得中断寄存器中的中断命令。
上述中断寄存器为上述虚拟机和宿主机共用的寄存器,上述中断命令包含中断号,上述中断命令用于指示目标客户端从消息接收队列接收消息,上述目标客户端为虚拟机中对应目标组合的客户端,上述目标组合为上述中断号与位图中写有激活标志的比特位的组合。
上述PCI设备可以是Ivshmem,可以提供实现虚拟机与宿主机之间的通信所需的中断机制。也就是说,Ivshmem,即PCI设备,为虚拟机和宿主机之间的中断通知提供底层实现。虚拟机内核态的外设部件互连标准PCI设备获得中断寄存器中的中断命令可以是上述PCI设备触发中断,调用内核态中断处理函数以处理上述中断命令。在实际应用中,宿主机向中断寄存器写入的中断命令可触发PCI设备执行相应的中断处理程序。
上述位图占用至少两个比特,对应一个二进制序列,例如0000010000000000。在实际应用中,一个中断号和位图中M个比特的组合对应虚拟机中的一个客户端(客户端进程),其中,M为不小于1的整数。可以理解,一个激活标志占用位图中的M个比特。图2为本申请实施例提供的一种位图的结构示意图,如图2所示,位图中1个比特对应一个客户端(进程)。举例来说,位图包含64个比特,一个中断号和位图中1个比特的组合对应虚拟机中的一个客户端,这样一个中断号配合位图就对应64个客户端。又举例来说,位图包含128,一个中断号和位图中2比特的组合对应虚拟机中的一个客户端,这样一个中断号配合位图就对应64个客户端。上述位图中可以最多包含一个激活标志。这样通过中断号与写有激活标志的比特位的组合可以唯一的确定待激活的客户端,实现简单。上述激活标志占用上述位图中的至少一个比特。举例来说,激活标志为11,占用两个比特,一个中断号与位图中两个连续的比特位的组合对应一个客户端。又举例来说,激活标志为1,占用一个比特,一个中断号与位图中一个比特位的组合对应一个客户端。
302、上述PCI设备读取上述位图,并确定上述位图中的目标位写有上述激活标志。
在实际应用中PCI设备在获得上述中断命令后,读取位图中写有激活标志的目标位,并确定该中断命令包含的中断号与该目标位的组合对应的客户端为待激活的客户端。
303、上述PCI设备确定上述中断号与上述目标位的组合对应的上述目标客户端。
在一个可选的实现方式中,上述位图包含N个比特,上述目标位占用至少一个比特,上述N为大于2的整数,上述中断号和上述目标位的组合对应上述目标客户端。
上述PCI设备可以存储有上述中断号和上述目标位的组合与上述目标客户端的对应关系,利用该对应关系可以确定上述中断号与上述目标位的组合对应的上述目标客户端。在实际应用中,PCI可以存储或获取各中断号与位图中各比特位的组合与客户端的一一对应关系。举例来说,PCI设备支持64个中断,位图包含64个比特位,每个比特位对应一个激活标志,该PCI设备可以存储或从寄存器获取这64个中断中的每个中断和这64个比特中的每个比特位的组合与客户端的对应关系。也就是说,PCI设备存储有64×64个中断组合与64×64个客户端的对应关系。中断组合是指中断号与位图中对应激活标志的各比特位组的组合。假定一个激活标志占用位图中两个连续的比特位,该位图中两个连续的比特位为一个对应激活标志的比特位组,该位图包含64个比特位,则该位图包含32个对应激活标志的比特位组,一个中断号与该位图可以得到32个中断组合。在实际应用中,虚拟机中的客户端的数量可以少于中断组合的数量。例如,虚拟机中的客户端有156个,PCI设备支持256个中断组合。也就是说,PCI可通信的客户端的数量大于虚拟机中的客户端的数量。
在该实现方式中,通过中断号和目标位的组合可以成倍的扩展宿主机可通信的客户端的数量,实现简单。
在一个可选的实现方式中,上述PCI设备读取上述位图之后,上述方法还包括:
上述PCI设备采用比较并交换CAS操作清除上述目标位的上述激活标志。
在实际应用中,PCI在读取位图后,需要清除位图中的激活标志,以便于宿主机在该位图中重新写入激活标志来通知另外的客户端,进而保证宿主机向虚拟机通信的顺序进行。另外,CAS操作是屏蔽粒度最小的操作,采用CAS操作清除位图中的激活标志,可以提高清除位图中的激活标志的效率。
在该实现方式中,宿主机采用CAS清除位图中激活标志,可以保证并发安全性的同时,提高位图的使用频率。
304、上述PCI设备通知上述目标客户端从上述消息接收队列接收上述消息。
在一个可选的实现方式中,上述PCI设备通知上述目标客户端从上述消息接收队列接收上述消息包括:
上述PCI设备激活上述目标客户端对应的内核态信号量。
在该实现方式中,PCI设备通过激活目标客户端对应的内核态信号量来解放该目标客户端用户态的等待状态,以便于该目标客户端从消息接收队列接收消息,实现简单。
在一个可选的实现方式中,上述PCI设备通知上述目标客户端从上述消息接收队列接收上述消息之后,上述方法还包括:
上述目标客户端从内核态阻塞状态返回用户态,并从上述消息接收队列接收上述消息。
可选的,上述目标客户端使用超时等待机制通过ioctrl系统调用感知内核态是否有请求(内核态信号量)。如果内核态信号量被激活,上述目标客户端将从ioctrl阻塞(内核态阻塞状态)中返回用户态以激活用户态接收消息的流程。
在该实现方式中,目标客户端从内核态阻塞状态返回用户态以激活用户态接收消息的流程,可以及时接收消息,实现简单。
本申请实施例中,PCI设备通过中断号与位图中写有激活标志的比特位的组合对应待激活的客户端,可以大大扩展Ivshmem可支持的客户端的数量,实现简单。
图4为本申请实施例提供的一种服务端和客户端的通信流程图,如图4所示,该方法可包括:
401、客户端获得申请消息。
上述客户端为虚拟机中的任一客户端,即任一客户端进程。上述申请消息用于向服务端申请某种业务服务。上述服务端为上述虚拟机对应的宿主机中的服务端。在实际应用中,客户端进程通过调用某个函数来获得上述申请消息,例如调用shm_allc来获得申请信息。
402、客户端将上述申请消息写入服务端的消息接收队列,并写入中断。
可选的,客户端原子发送申请消息到服务端的消息接收队列。在实际应用中,客户端调用shm_send接口原子发送申请消息到服务端的消息接收队列。写入中断的操作由Ivshmem实现。虚拟机向宿主机的通信可以直接在虚拟机进程(客户端)中写入中断通知到Ivshmem的服务端(服务端进程)。由于客户端向服务端发送消息是本领域的常用技术手段,这里不再详述。
403、服务端获取其消息接收队列中的申请消息。
在实际应用中,服务端在宿主机用户态通过select系统调用收到中断通知,唤醒宿主机的服务端从消息接收队列获取消息,或者,通过轮询触发的方式获取消息接收队列中的消息。
404、服务端根据申请消息执行相应的业务处理,向客户端的消息接收队列写入业务信息。
上述业务信息为服务端根据申请消息执行相应的业务处理得到的信息。可选的,服务端原子发送业务信息到客户端的消息接收队列。在实际应用中,服务器端调用shm_send接口原子发送业务信息到客户端的消息接收队列。在实际应用中,服务器监听上下文,并将消息接收队列中的消息写入业务队列,以便于对这些消息执行相应的业务处理。可选的,服务端在完成业务处理后,释放业务队列中已完成业务处理的消息。
405、服务端在位图中客户端对应的目标位写入激活标志。
目标位用于指示上述客户端为待通知的客户端或指示上述客户端不为待通知的客户端。
406、服务器向中断寄存器写入中断命令。
上述中断寄存器为虚拟机和宿主机共用的寄存器,上述中断命令包含中断号,上述中断命令用于指示上述中断号与上述目标位的组合对应的客户端从消息接收队列接收消息。
407、虚拟机内核态的PCI设备获得中断寄存器中的中断命令。
上述中断命令包含中断号。上述位图包含N个比特,上述目标位占用至少一个比特,上述N为大于2的整数,上述中断号和上述目标位的组合对应上述客户端。
408、PCI设备读取位图,并确定位图中写有激活标志的目标位。
可选的,上述PCI设备读取上述位图之后,上述PCI设备采用比较并交换CAS操作清除上述目标位的上述激活标志。
409、PCI设备确定中断号与目标位的组合对应的上述客户端。
410、PCI设备激活上述客户端对应的内核态信号量。
411、客户端从内核态阻塞状态返回用户态,并从消息接收队列接收上述业务信息。
可选的,上述客户端使用超时等待机制通过ioctrl系统调用感知内核态是否有请求(内核态信号量)。如果内核态信号量被激活,上述客户端将从ioctrl阻塞(内核态阻塞状态)中返回用户态以激活用户态接收消息的流程。
412、客户端处理上述业务信息。
本申请实施例中,PCI设备通过中断号与位图中写有激活标志的比特位的组合对应待激活的客户端,可以大大扩展Ivshmem可支持的客户端的数量,实现简单。
图5为本申请实施例提供的一种服务端通知客户端的方法流程图,如图5所示,该方法可包括:
501、宿主机在位图中目标客户端对应的目标位写入激活标志。
上述目标客户端为上述宿主机对应的虚拟机内待通知的客户端。例如位图中从上向下第二位为目标位,如图5所示。
502、宿主机通过Ivshmem向中断寄存器写入中断通知。
中断通知即为上述中断命令。上述中断通知包含中断号。上述中断寄存器为宿主机和虚拟机共用的寄存器。
503、虚拟机内核态的中断处理单元通过Ivshmem获取中断通知,并确定中断通知包含的中断号。
在实际应用中,中断处理单元可以是硬件单元,也可以是软件单元,即虚拟机执行的一段代码,例如中断处理函数。
504、中断处理单元读取位图,并确定位图中写有激活标志的目标位和中断号的组合对应的客户端。
在实际应用中,虚拟机在内核态执行中断处理函数可实现以下操作:确定中断通知包含的中断号、读取位图以及确定位图中写有激活标志的目标位和中断号的组合对应的客户端。
505、中断处理单元激活上述目标客户端对应的内核态信号量。
本申请实施例中,宿主机通过中断号与位图中写有激活标志的比特位的组合指示待激活的客户端,进而准确地通知待激活的客户端,可以大大扩展Ivshmem可支持的客户端的数量,实现简单。图5中的客户端2为目标客户端。
图6为本申请实施例提供的一种进程间通信装置,该装置包括:
写单元601,用于在位图中目标客户端对应的目标位写入激活标志;上述目标客户端为虚拟机中宿主机待通知的客户端,上述目标位用于指示上述目标客户端为待通知的客户端或指示上述目标客户端不为待通知的客户端;
上述写单元601,还用于向中断寄存器写入中断命令;上述中断寄存器为上述虚拟机和上述宿主机共用的寄存器,上述中断命令包含中断号,上述中断命令用于指示上述中断号与上述目标位的组合对应的客户端从消息接收队列接收消息。
本申请实施例中,通过中断号和位图中写有激活标志的比特位的组合指示待通知的客户端,可以大大扩展Ivshmem可支持的客户端的数量,实现简单。
在一个可选的实现方式中,上述位图包含N个比特,上述目标位占用至少一个比特,上述N为大于2的整数,上述中断号和上述目标位的组合对应上述目标客户端。
在该实现方式中,通过中断号和目标位的组合指示待通知的客户端,实现简单。
在一个可选的实现方式中,上述写单元601,具体用于采用比较并交换CAS在上述目标位写入上述激活标志。
在该实现方式中,宿主机采用CAS在位图中写入激活标志,可以保证并发安全性的同时,提高位图的使用频率。
在一个可选的实现方式中,上述装置还包括:
屏蔽单元602,用于在上述宿主机在上述位图中上述目标客户端对应的上述目标位写入上述激活标志的过程中,采用中断屏蔽的方式屏蔽对上述位图的目标操作,上述目标操作为除向上述目标位写入上述激活标志外的操作。
在该实现方式中,采用中断屏蔽可以屏蔽其他程序对位图的操作,以便于保证位图中的激活标志与中断号的组合可以准确地指示待通知的客户端,实现简单。
在一个可选的实现方式中,上述写单元601,还用于向上述目标客户端的上述消息接收队列写入上述消息。
在该实现方式中,宿主机向目标客户端的消息接收队列写入消息,并通过该目标客户端对应的中断号和目标位指示该目标客户端,以便于该目标客户端接收到该消息,实现简单。
图7为本申请实施例提供的一种进程间通信装置,该装置包括:
外设部件互连标准PCI设备701,用于获得中断寄存器中的中断命令;上述中断寄存器为虚拟机和宿主机共用的寄存器,上述中断命令包含中断号,上述中断命令用于指示目标客户端从消息接收队列接收消息,上述目标客户端为虚拟机中对应目标组合的客户端,上述目标组合为上述中断号与位图中写有激活标志的比特位的组合;
上述PCI设备701,还用于读取上述位图,并确定上述位图中的目标位写有上述激活标志;
上述PCI设备701,还用于确定上述中断号与上述目标位的组合对应的上述目标客户端;
上述PCI设备701,还用于通知上述目标客户端从上述消息接收队列接收上述消息。
本申请实施例中,PCI设备通过中断号与位图中写有激活标志的比特位的组合对应待激活的客户端,可以大大扩展Ivshmem可支持的客户端的数量,实现简单。
在一个可选的实现方式中,上述PCI设备701,具体用于激活上述目标客户端对应的内核态信号量。
在该实现方式中,PCI设备通过激活目标客户端对应的内核态信号量来解放该目标客户端用户态的等待状态,以便于该目标客户端从消息接收队列接收消息,实现简单。
在一个可选的实现方式中,上述装置还包括:
状态切换单元702,用于控制上述目标客户端从内核态阻塞状态返回用户态;
接收单元703,用于从上述消息接收队列接收上述消息。
在该实现方式中,目标客户端从内核态阻塞状态返回用户态以激活用户态接收消息的流程,可以及时接收消息,实现简单。
在一个可选的实现方式中,上述位图包含N个比特,上述目标位占用至少一个比特,上述N为大于2的整数,上述中断号和上述目标位的组合对应上述目标客户端。
在该实现方式中,PCI设备通过中断号和目标位的组合指示待通知的客户端,实现简单。
在一个可选的实现方式中,上述PCI设备701,还用于采用比较并交换CAS清除上述目标位的上述激活标志。
在该实现方式中,宿主机采用CAS清除位图中激活标志,可以保证并发安全性的同时,提高位图的使用频率。
参见图8,是本申请实施例提供的另一种进程间通信装置的结构示意图。如图8所示,该进程间通信装置可以包括:一个或多个处理器801和存储器802。处理器801和存储器802通过总线803连接。存储器802用于存储指令,处理器801用于执行存储器802存储的指令。处理器运行有宿主机程序和虚拟机程序。处理器运行的宿主机和虚拟机通过共享内存的方式通信。其中,处理器801用于实现如下操作:宿主机在位图中目标客户端对应的目标位写入激活标志;上述目标客户端为虚拟机中宿主机待通知的客户端,上述目标位用于指示上述目标客户端为待通知的客户端或指示上述目标客户端不为待通知的客户端;向中断寄存器写入中断命令;上述中断寄存器为上述虚拟机和上述宿主机共用的寄存器,上述中断命令包含中断号,上述中断命令用于指示上述中断号与上述目标位的组合对应的客户端从消息接收队列接收消息。
或者,处理器801用于实现如下操作:虚拟机内核态的外设部件互连标准PCI设备获得中断寄存器中的中断命令;上述中断寄存器为上述虚拟机和宿主机共用的寄存器,上述中断命令包含中断号,上述中断命令用于指示目标客户端从消息接收队列接收消息,上述目标客户端为虚拟机中对应目标组合的客户端,上述目标组合为上述中断号与位图中写有激活标志的比特位的组合;上述PCI设备读取上述位图,并确定上述位图中的目标位写有上述激活标志;上述PCI设备确定上述中断号与上述目标位的组合对应的上述目标客户端;上述PCI设备通知上述目标客户端从上述消息接收队列接收上述消息。
应当理解,在本申请实施例中,所称处理器801可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。上述写单元601、屏蔽单元602、状态切换单元702以及接收单元703的功能可由处理器801实现。
该存储器802可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。存储器802的一部分还可以包括非易失性随机存取存储器。
图9是本申请实施例提供的另一种进程间通信装置结构示意图,该进程间通信装置900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。处理器922运行有宿主机程序和虚拟机程序。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对进程间通信装置中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在进程间通信装置900上执行存储介质930中的一系列指令操作。
进程间通信装置900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
在本发明的实施例中提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现:宿主机在位图中目标客户端对应的目标位写入激活标志;上述目标客户端为虚拟机中宿主机待通知的客户端,上述目标位用于指示上述目标客户端为待通知的客户端或指示上述目标客户端不为待通知的客户端;向中断寄存器写入中断命令;上述中断寄存器为上述虚拟机和上述宿主机共用的寄存器,上述中断命令包含中断号,上述中断命令用于指示上述中断号与上述目标位的组合对应的客户端从消息接收队列接收消息。
在本发明的另一实施例中提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现:虚拟机内核态的外设部件互连标准PCI设备获得中断寄存器中的中断命令;上述中断寄存器为上述虚拟机和宿主机共用的寄存器,上述中断命令包含中断号,上述中断命令用于指示目标客户端从消息接收队列接收消息,上述目标客户端为虚拟机中对应目标组合的客户端,上述目标组合为上述中断号与位图中写有激活标志的比特位的组合;上述PCI设备读取上述位图,并确定上述位图中的目标位写有上述激活标志;上述PCI设备确定上述中断号与上述目标位的组合对应的上述目标客户端;上述PCI设备通知上述目标客户端从上述消息接收队列接收上述消息。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (20)

1.一种进程间通信方法,其特征在于,包括:
宿主机在位图中目标客户端对应的目标位写入激活标志;所述目标客户端为虚拟机中所述宿主机待通知的客户端,所述目标位用于指示所述目标客户端为待通知的客户端或指示所述目标客户端不为待通知的客户端;
所述宿主机向中断寄存器写入中断命令;所述中断寄存器为所述虚拟机和所述宿主机共用的寄存器,所述中断命令包含中断号,所述中断命令用于指示所述中断号与所述目标位的组合对应的客户端从消息接收队列接收消息。
2.根据权利要求1所述的方法,其特征在于,所述位图包含N个比特,所述目标位占用至少一个比特,所述N为大于2的整数,所述中断号和所述目标位的组合对应所述目标客户端。
3.根据权利要求1或2所述的方法,其特征在于,所述宿主机在位图中目标客户端对应的目标位写入激活标志包括:
所述宿主机采用比较并交换CAS操作在所述目标位写入所述激活标志。
4.根据权利要求3所述的方法,其特征在于,所述宿主机在位图中目标客户端对应的目标位写入激活标志之前,所述方法还包括:
所述宿主机向所述目标客户端的所述消息接收队列写入所述消息。
5.一种进程间通信方法,其特征在于,包括:
虚拟机内核态的外设部件互连标准PCI设备获得中断寄存器中的中断命令;所述中断寄存器为所述虚拟机和宿主机共用的寄存器,所述中断命令包含中断号,所述中断命令用于指示目标客户端从消息接收队列接收消息,所述目标客户端为虚拟机中对应目标组合的客户端,所述目标组合为所述中断号与位图中写有激活标志的比特位的组合;
所述PCI设备读取所述位图,并确定所述位图中的目标位写有所述激活标志;
所述PCI设备确定所述中断号与所述目标位的组合对应的所述目标客户端;
所述PCI设备通知所述目标客户端从所述消息接收队列接收所述消息。
6.根据权利要求5所述的方法,其特征在于,所述PCI设备通知所述目标客户端从所述消息接收队列接收所述消息包括:
所述PCI设备激活所述目标客户端对应的内核态信号量。
7.根据权利要求6所述的方法,其特征在于,所述PCI设备通知所述目标客户端从所述消息接收队列接收所述消息之后,所述方法还包括:
所述目标客户端从内核态阻塞状态返回用户态,并从所述消息接收队列接收所述消息。
8.根据权利要求5至7任意一项所述的方法,其特征在于,所述位图包含N个比特,所述目标位占用至少一个比特,所述N为大于2的整数,所述中断号和所述目标位的组合对应所述目标客户端。
9.根据权利要求8所述的方法,其特征在于,所述PCI设备读取所述位图之后,所述方法还包括:
所述PCI设备采用比较并交换CAS操作清除所述目标位的所述激活标志。
10.一种进程间通信装置,其特征在于,包括:
写单元,用于在位图中目标客户端对应的目标位写入激活标志;所述目标客户端为虚拟机中宿主机待通知的客户端,所述目标位用于指示所述目标客户端为待通知的客户端或指示所述目标客户端不为待通知的客户端;
所述写单元,还用于向中断寄存器写入中断命令;所述中断寄存器为所述虚拟机和所述宿主机共用的寄存器,所述中断命令包含中断号,所述中断命令用于指示所述中断号与所述目标位的组合对应的客户端从消息接收队列接收消息。
11.根据权利要求10所述的装置,其特征在于,所述位图包含N个比特,所述目标位占用至少一个比特,所述N为大于2的整数,所述中断号和所述目标位的组合对应所述目标客户端。
12.根据权利要求10或11所述的装置,其特征在于,
所述写单元,具体用于采用比较并交换CAS操作在所述目标位写入所述激活标志。
13.根据权利要求12所述的装置,其特征在于,
所述写单元,还用于向所述目标客户端的所述消息接收队列写入所述消息。
14.一种进程间通信装置,其特征在于,包括:
外设部件互连标准PCI设备,用于获得中断寄存器中的中断命令;所述中断寄存器为虚拟机和宿主机共用的寄存器,所述中断命令包含中断号,所述中断命令用于指示目标客户端从消息接收队列接收消息,所述目标客户端为虚拟机中对应目标组合的客户端,所述目标组合为所述中断号与位图中写有激活标志的比特位的组合;
所述PCI设备,还用于读取所述位图,并确定所述位图中的目标位写有所述激活标志;
所述PCI设备,还用于确定所述中断号与所述目标位的组合对应的所述目标客户端;
所述PCI设备,还用于通知所述目标客户端从所述消息接收队列接收所述消息。
15.根据权利要求14所述的装置,其特征在于,
所述PCI设备,具体用于激活所述目标客户端对应的内核态信号量。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
状态切换单元,用于控制所述目标客户端从内核态阻塞状态返回用户态;
接收单元,用于从所述消息接收队列接收所述消息。
17.根据权利要求14至16任意一项所述的装置,其特征在于,所述位图包含N个比特,所述目标位占用至少一个比特,所述N为大于2的整数,所述中断号和所述目标位的组合对应所述目标客户端。
18.根据权利要求17所述的装置,其特征在于,
所述PCI设备,还用于采用比较并交换CAS操作清除所述目标位的所述激活标志。
19.一种进程间通信装置,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-9任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-9任一项所述的方法。
CN201810965667.3A 2018-08-22 2018-08-22 进程间通信方法、装置及计算机可读介质 Active CN110858164B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810965667.3A CN110858164B (zh) 2018-08-22 2018-08-22 进程间通信方法、装置及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810965667.3A CN110858164B (zh) 2018-08-22 2018-08-22 进程间通信方法、装置及计算机可读介质

Publications (2)

Publication Number Publication Date
CN110858164A CN110858164A (zh) 2020-03-03
CN110858164B true CN110858164B (zh) 2022-09-09

Family

ID=69635075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810965667.3A Active CN110858164B (zh) 2018-08-22 2018-08-22 进程间通信方法、装置及计算机可读介质

Country Status (1)

Country Link
CN (1) CN110858164B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181877B (zh) * 2020-10-28 2022-06-21 瑞芯微电子股份有限公司 一种显示变频方法和系统
CN117573386B (zh) * 2023-10-31 2024-07-30 华为技术有限公司 进程间通信方法及装置
CN117762658A (zh) * 2024-01-03 2024-03-26 北京火山引擎科技有限公司 进程间数据传输方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0355653A (ja) * 1989-06-16 1991-03-11 Internatl Business Mach Corp <Ibm> 割込み処理のためのシステムおよび方法
CN101093449A (zh) * 2007-06-22 2007-12-26 浙江大学 基于处理器虚拟化技术的虚拟机系统及其实现方法
CN103150203A (zh) * 2013-03-29 2013-06-12 北京奇虎科技有限公司 一种虚拟机控制系统、虚拟机控制器及控制方法
CN104123173A (zh) * 2014-07-22 2014-10-29 华为技术有限公司 一种实现虚拟机间通信的方法及装置
CN104484219A (zh) * 2014-11-24 2015-04-01 北京奇虎科技有限公司 虚拟化平台中下发策略的方法和装置
CN106775919A (zh) * 2015-11-24 2017-05-31 龙芯中科技术有限公司 状态信息控制方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0355653A (ja) * 1989-06-16 1991-03-11 Internatl Business Mach Corp <Ibm> 割込み処理のためのシステムおよび方法
CN101093449A (zh) * 2007-06-22 2007-12-26 浙江大学 基于处理器虚拟化技术的虚拟机系统及其实现方法
CN103150203A (zh) * 2013-03-29 2013-06-12 北京奇虎科技有限公司 一种虚拟机控制系统、虚拟机控制器及控制方法
CN104123173A (zh) * 2014-07-22 2014-10-29 华为技术有限公司 一种实现虚拟机间通信的方法及装置
CN104484219A (zh) * 2014-11-24 2015-04-01 北京奇虎科技有限公司 虚拟化平台中下发策略的方法和装置
CN106775919A (zh) * 2015-11-24 2017-05-31 龙芯中科技术有限公司 状态信息控制方法及装置

Also Published As

Publication number Publication date
CN110858164A (zh) 2020-03-03

Similar Documents

Publication Publication Date Title
US9766891B2 (en) Apparatus, system, and method for persistent user-level thread
US9710408B2 (en) Source core interrupt steering
US8578129B2 (en) Infrastructure support for accelerated processing device memory paging without operating system integration
US10860332B2 (en) Multicore framework for use in pre-boot environment of a system-on-chip
TWI722071B (zh) 虛擬機器之間的中斷
US9299121B2 (en) Preemptive context switching
US20160019168A1 (en) On-Demand Shareability Conversion In A Heterogeneous Shared Virtual Memory
US20020161957A1 (en) Methods and systems for handling interrupts
KR20120061938A (ko) 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템
CN114077379B (zh) 一种计算机设备、异常处理的方法以及中断处理的方法
US9256465B2 (en) Process device context switching
WO2023280097A1 (zh) 一种缺页异常的处理方法及相应装置
TW200525365A (en) Optimization of SMI handling and initialization
CN110858164B (zh) 进程间通信方法、装置及计算机可读介质
CN114003363B (zh) 线程间中断信号发送方法及装置
US11237859B2 (en) Securing virtual machines in computer systems
EP3770759A1 (en) Wake-up and scheduling of functions with context hints
US11385927B2 (en) Interrupt servicing in userspace
US9946665B2 (en) Fetch less instruction processing (FLIP) computer architecture for central processing units (CPU)
WO2016067496A1 (ja) 情報処理装置
US20230409321A1 (en) Security vulnerability mitigation using address space co-execution
US20210157489A1 (en) Supervisor mode access protection for fast networking
CN118093152A (zh) 一种多核系统信息调度方法、装置、电子设备及存储介质
Kcholi The Foundation of Device Driver Development for Windows Embedded Compact

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant