CN112131018A - 微内核操作系统进程间快速通信方法 - Google Patents

微内核操作系统进程间快速通信方法 Download PDF

Info

Publication number
CN112131018A
CN112131018A CN202010980614.6A CN202010980614A CN112131018A CN 112131018 A CN112131018 A CN 112131018A CN 202010980614 A CN202010980614 A CN 202010980614A CN 112131018 A CN112131018 A CN 112131018A
Authority
CN
China
Prior art keywords
communication
address
physical address
sending
page
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.)
Pending
Application number
CN202010980614.6A
Other languages
English (en)
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.)
Marketing Service Center Of State Grid Ningxia Electric Power Co ltd Metering Center Of State Grid Ningxia Electric Power Co ltd
Original Assignee
Marketing Service Center Of State Grid Ningxia Electric Power Co ltd Metering Center Of State Grid Ningxia Electric Power 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 Marketing Service Center Of State Grid Ningxia Electric Power Co ltd Metering Center Of State Grid Ningxia Electric Power Co ltd filed Critical Marketing Service Center Of State Grid Ningxia Electric Power Co ltd Metering Center Of State Grid Ningxia Electric Power Co ltd
Priority to CN202010980614.6A priority Critical patent/CN112131018A/zh
Publication of CN112131018A publication Critical patent/CN112131018A/zh
Pending legal-status Critical Current

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/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供了一种微内核操作系统进程间快速通信方法。该方法包括:获取通信请求;根据通信请求获取发送进程ID和接收进程ID;根据发送进程ID和接收进程ID获取分配给发送进程的第一地址空间和分配给接收进程的第二地址空间;根据通信请求分别从第一地址空间分配第一进程间通信缓冲区页面、以及从第二地址空间分配第二进程间通信缓冲区页面;根据第一线性地址和第二线性地址在发送进程页表和接收进程页表中找到与缓冲区页面中第一线性地址和第二线性地址相对应的第一物理地址和第二物理地址;在所述发送进程页表和所述接收进程页表中,将第一物理地址和第二物理进行交换,使得第一线性地址和第二线性地址分别对应第二物理地址和第一物理地址。

Description

微内核操作系统进程间快速通信方法
技术领域
本发明涉及操作系统领域,尤其涉及一种微内核操作系统进程间快速通信方法。
背景技术
近年来,微内核架构再次成为操作系统领域的研究热点。与宏微内核架构操作系统不同,微内核架构的大多数系统服务是作为用户模式来运行,应用程序要获取系统服务必须经过微内核的通信机制来请求其它处于用户模式的服务程序来提供服务。所以在微内核中进程间通信的频率和信息量远大于宏微内核,而这一点也造成了微内核在性能上表现不佳。
微内核提供的唯一协同方式是以消息传递为主的进程间通信来进行协同处理。微内核系统服务不处于同一个地址空间中,需要三个阶段来完成一次通信:模式转换进入内核态,消息的传递过程和模式转换切换回用户模式。微内核中进程间的通信时间消耗可以大致分为两个部分:模式切换和消息传递的过程。由于微内核系统本身的特点,消息传递过程是由软件来完成的。消息传递的方式包括信息复制,信息共享。若需要传递信息的数据量非常巨大,复制信息就会花费大量的时间,从而影响微内核性能的发挥。若采用信息共享的方式则存在信息安全的问题,同时需要复杂的通信控制机制保证信息的安全。一方面会增加微内核本身的代码体量,违背了微内核轻便的出发点,同时复杂的控制机制也会带来较大的时间消耗。所以并不能在微内核中发挥很好的效果。为了微内核发挥更好的性能,亟需一种微内核操作系统进程间快速通信方法。
发明内容
本发明提供一种微内核操作系统进程间快速通信方法。
第一方面,本发明实施例提供一种微内核操作系统进程间快速通信方法,其特征在于,包括:
获取通信请求;
根据所述通信请求获取发送进程ID和接收进程ID,所述发送进程为发送所述通信请求的发送方,所述接收进程为响应所述通信请求处理待处理数据的接收方;
根据所述发送进程ID和所述接收进程ID求获取分配给所述发送进程的第一地址空间和分配给所述接收进程的第二地址空间;
根据所述通信请求分别从所述第一地址空间分配第一进程间通信缓冲区页面、以及从所述第二地址空间分配所述第二进程间通信缓冲区页面,所述第一进程间通信缓冲区页面与第一线性地址相对应,所述第二进程间通信缓冲区页面与第二线性地址相对应;
根据所述第一线性地址和所述第二线性地址在发送进程页表和接收进程页表中找到与缓冲区页面中所述第一线性地址和所述第二线性地址相对应的第一物理地址和第二物理地址,所述发送进程页表用于表示发送进程的进程线性地址和内存物理地址之间映射关系,所述接收进程页表用于表示接收进程的进程线性地址和内存物理地址之间映射关系;
在所述发送进程页表和所述接收进程页表中,将所述第一物理地址和所述第二物理进行交换,使得所述第一线性地址和所述第二线性地址分别对应第二物理地址和第一物理地址。
第二方面,本发明实施例提供一种计算机设备,其特征在于,所述计算机设备包括:
存储器,用于存储程序指令;以及
处理器,用于执行所述程序指令以使所述计算机设备实现一种微内核操作系统进程间快速通信方法。
上述种微内核操作系统进程间快速通信方法通过提出一种适用于微内核通信的基于页面交换的快速消息传递方式来实现为微内核系统中的快速通信。它不通过复制方式,而是直接使用页面交换的方式来完成通信,大大提高了通信过程的效率。同时,对于共享内存中的复杂控制问题,基于页面交换算法中,能够实现在不改变通信双方进程地址空间的同时实现了信息的交换,所以它们访问的范围依然限制在了进程地址空间中,就不存在两个进程同时访问到相同的数据空间而产生数据混乱的问题,很好的解决了内存共享方式中出现的问题。提升了微内核系统进程间的通信效率。
附图说明
图1为发明实施例提供的微内核操作系统进程间快速通信方法流程图。
图2为发明实施例提供的线性地址与物理页对应关系图。
图3为发明实施例提供的映射关系示意图。
图4为发明实施例提供的计算机设备的内部结构示意图。
图5为发明实施例提供的通信缓冲区与物理地址对应关系图。
图中各部分标号
201 物理页 202 物理地址
210 第一线性地址 220 第二线性地址
301 第一通信缓冲区页面 303 第一物理地址
302 第二通信缓冲区页面 304 第二物理地址
具体实施方式
在本发明的描述中,需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连;可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
为使得对本发明的内容有更清楚及更准确的理解,现将结合附图详细说明。说明书附图示出本发明的实施例的示例,其中,相同的标号表示相同的元件。可以理解的是,说明书附图示出的比例并非本发明实际实施的比例,其仅为示意说明为目的,并非依照原尺寸作图。
请结合参看图1,其为发明实施例提供的微内核操作系统进程间快速通信方法流程图。
步骤S101,获取通信请求。具体地,通信请求是进程需要其他进程协助处理待处理数据的时候,向微内核发送的要求微内核协助进行进程间通信的请求。
当通信发生的时候,发送进程调用发送请求函数通知微内核,有处理待处理数据需要其他进程协助处理。微内核在接收到发送进程发送的通信请求后,根据从发送进程中获取到的接收进程ID,微内核通知该接收进程有来自其他进程的待处理数据需要该进程协助处理。微内核是一种能够提供必要服务的操作系统微内核;这些必要的服务包括任务,线程,进程间通信(IPC,Inter-Process Communication)以及内存管理等等。微内核系统是一种具有很强的扩展性,可以将一些其它操作系统微内核作为微内核系统的应用程序的去中心化的操作系统。所有进程(包括设备驱动)在用户模式下运行,而处理这些进程同处理其他的任何一个程序一样。因为每个进程只是在自己的地址空间运行。所以这些进程之间彼此之间都受到了保护。
步骤S103,根据通信请求获取发送进程ID和接收进程ID,发送进程为发送 通信请求的发送方,接收进程为响应通信请求处理待处理数据的接收方。具体地,在微内核获取通信请求后,根据通信请求获取与通信请求相关的发送进程ID和接收进程ID。发送进程ID和接收进程ID是唯一不重复的。发送进程ID和接收进程ID可以用来识别进程的身份。相当于进程的身份证。待处理数据可以是一张图片,一段视频,一段文字或者是其他的可处理的数据。
步骤S105,根据发送进程ID和接收进程ID获取分配给发送进程的第一地址空间和分配给接收进程的第二地址空间。具体地,微内核根据发送进程ID和接收进程ID计算出发送进程的第一地址空间和接收进程的第二地址空间。第一地址空间是发送进程创建之时,微内核系统分配给发送进程的虚拟地址空间,该虚拟地址空间是发送进程在微内核系统中的运行空间,并且只允许该发送进程以及微内核访问。第二地址空间是接收进程创建之时,微内核系统分配给接收进程的虚拟地址空间,该虚拟地址空间是接收进程在微内核系统中的运行空间,并且只允许该接收进程以及微内核访问。
步骤S107,根据通信请求分别从第一地址空间分配第一进程间通信缓冲区页面、以及从第二地址空间分配第二进程间通信缓冲区页面,第一进程间通信缓冲区页面与第一线性地址相对应,第二进程间通信缓冲区页面与第二线性地址相对应。具体地,微内核根据待处理数据计算出待处理数据所占的空间大小,待处理数据是微内核从发送进程中获得。微内核根据待处理数据所占的空间大小从第一地址空间和第二地址空间中分配出第一进程间通信缓冲区页面和第二进程间通信缓冲区页面。第一进程间通信缓冲区页面和第二进程间通信缓冲区页面用于存放待处理数据。第一进程间通信缓冲区页面与第一线性地址相对应,第二进程间通信缓冲区页面与第二线性地址相对应。
步骤S109,根据第一线性地址和第二线性地址在发送进程页表和接收进程页表中找到与缓冲区页面中所述第一线性地址和所述第二线性地址相对应的第一物理地址和第二物理地址,所述发送进程页表用于表示发送进程的进程线性地址和内存物理地址之间映射关系,所述接收进程页表用于表示接收进程的进程线性地址和内存物理地址之间映射关系。第一物理地址和第二物理地址是存在于硬件的物理地址。接收进程页表和发送进程页表都是进程页表。进程页表也就是映射表是微内核系统通过内存管理单元与分页内存管理单元得到的线性地址与物理间的对应关系,也就是虚拟内存空间与实际内存空间之间的对应关系,该对应关系是动态的且唯一的。
现代操作系统开发中内存管理单元(Memory Management Unit)它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。分页内存管理单元(pagedmemory management unit),它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、中央处理器高速缓存的控制,在较为简单的计算机体系结构中,负责总线的仲裁以及存储体切换的使用使整个系统中的程序运行更加灵活,同时它能为每个进程提供独立的虚拟地址空间,为进程运行提供安全的运行环境。它的基本原理是在进程运行过程中的线性地址与物理地址之间构成一种动态的映射关系,每个进程只能在系统给它分配的有限的地址空间中运行。
步骤S111,在发送进程页表和所述接收进程页表中,将第一物理地址和第二物理进行交换,使得第一线性地址和第二线性地址分别对应第二物理地址和第一物理地址。具体地,第一线性地址原来与第一物理地址对应,第二线性地址原来与第二物理地址对应。微内核将第一物理地址和第二物理进行交换后。第一线性地址与第二物理地址对应,第二线性地址与第一物理地址对应。
请结合参看图2,其为发明实施例提供的线性地址与物理页对应关系图。
第一线性地址和第二线性地址分别对应多个物理页。第一线性地址210与第二线性地址220对应一个或者多个物理页201,一个物理页201对应一个或者多个物理地址202。
第一物理地址和第二物理地址进行交换后,将通信请求发送给接收进程,以使接收进程通过第一物理地址访问第一缓冲空间中的待处理数据以进行处理。具体的,微内核将第一物理地址和第二物理地址进行交换后,发送进程与接收进程所对应的物理地址对调,接收进程与第一物理地址对应,接收进程可以通过访问第一物理地址访问第一缓冲空间中的待处理数据以进行处理。
第一物理地址和第二物理地址进行交换后,将通信请求发送给接收进程,使接收进程响应通信请求根据第一物理地址访问第一缓冲空间中的待处理数据以进行处理。具体的,微内核将第一物理地址和第二物理地址进行交换后,发送进程与接收进程所对应的物理地址对调,接收进程与第一物理地址对应,接收进程在收到微内核的通知后可以通过访问第一物理地址访问第一缓冲空间中的待处理数据以进行处理。
若通信请求处理完毕、或者发送进程终止、接收进行终止,释放第一进程间通信缓冲区页面或者第二进程间通信缓冲区页面。具体地,进程间通信结束,或者是因为一些原因导致的进程间通信终止,比如发送进程终止、接收进行终止。用于存放待处理数据的第一进程间通信缓冲区页面或者第二进程间通信缓冲区页面将被释放,可重新用于其他任务。
若通信请求处理完毕且接收到发送进程或者接收进程的另一通信请求,使发送进程或者接收进程分别根据第二物理地址或者第一物理地址访问第二进程间通信缓冲区页面或者第一进程间通信缓冲区页面。具体地,第二进程间通信缓冲区页面与第一进程间通信缓冲区页面都是相互独立的,一次进程间通信结束以后第二进程间通信缓冲区页面与第一进程间通信缓冲区页面将会被释放。新的通信请求生成后,微内核会在新的发送请求与接受请求中划分第二进程间通信缓冲区页面与第一进程间通信缓冲区页面。接收进程与发送进程不是绝对的,一个进程可以是接收进程也可以是发送进程。
在另一些可行的实施例中,就安全性而言,对于内存共享通信方式而言,若接收进程为恶意接收进程,在完成通信的过程中,恶意接收进程与发送进程共用一个缓冲空间,也就是发送进程的第一缓冲空间。第一缓冲空间就完全暴露在恶意接收进程下,这时恶意接收进程就可以读取甚至修改发送进程第一缓冲空间中的待处理数据从而造成严重的后果。而使用微内核操作系统进程间快速通信方法,发送进程发送消息以后,第一缓冲空间都交给了接收进程,而接收进程的第二缓冲空间都交给了发送进程。发送进程依然拥有独立的不可以被其他进程访问的第二缓冲空间。这样恶意接收进程就不能再查看或者修改属于发送进程的第二缓冲空间的待处理数据,保证了通信过程中的数据安全性。
共享内存是一种通过共享缓冲空间来提高进程间通信的方式。共享内存通信方式虽然通信效率高,但是它需要进程间复杂的控制方式来保证数据的正确性。若发送进程发送数据以后,接收进程还没有对数据进行处理,发送进程为了准备下一次发送而对共享区的数据进行修改,这样就会造成严重的后果。另一方面,共享内存通信方式所需要复杂的通信控制机制一方面会增加微内核本身的代码体量,违背了微内核轻便的出发点,同时复杂的控制机制也会带来较大的时间消耗。所以并不能在微内核中发挥很好的效果。
第一通信缓冲区和第二通信缓冲区页面的大小与待处理数据相匹配。具体地,微内核根据待处理数据所占的空间大小从第一地址空间和第二地址空间中分配出第一进程间通信缓冲区页面和第二进程间通信缓冲区页面。请结合参看图3,第一通信缓冲区301与第一物理地址对应303对应,第二通信缓冲区302与第二物理地址对应304对应。第一物理地址对应303与第二物理地址对应304所对应的地址空间即为待处理数据的大小。当第一物理地址303与第二物理地址对应304交换后,第一通信缓冲区301与第二物理地址对应304对应,第二通信缓冲区302与第一物理地址对应303对应,如图5所示。
若通信请求与另一通信请求所请求处理的待处理数据不同时,在通信请求下分配的第一通信缓冲区和第二通信缓冲区大小与在另一通信请求下分配的第一通信缓冲区和第二通信缓冲区大小不同。
相比于微内核架构的操作系统中传统的复制型消息传递方式,基于微内核的快速通信方法,一方面能够有效的提高进程间通信的效率,将原复制方式的低效传递变成了零拷贝的映射通信方式,从而在微内核环境下提升整个微内核的性能。另一方面在消息传递过程中可以保证不同的数据在进程之间传递后依然保持独立的地址空间,可以防止恶意进程进行一些窃取和破坏数据的行为。能够保证系统在进程间通信过程中的安全性。该算法的实现也比较简单,能够比较容易的在现有的微内核系统中进行修改实现,大大提高了该算法的可行性和通用性。
同时,对于共享内存中的复杂控制问题,基于微内核的快速通信方法能够实现在不改变通信双方进程地址空间的同时实现了信息的交换,所以它们访问的范围依然限制在了进程地址空间中,就不存在两个进程同时访问到相同的数据空间而产生数据混乱的问题,很好的解决了内存共享方式中出现的问题。提高了微内核系统中进程间通信的效率。
请结合参看图4,其为本发明施例提供的计算机设备400的内部结构示意图。计算机设备400包括存储器401、处理器402和总线403。
其中,存储器401至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器401在一些实施例中可以是计算机设备400的内部存储单元,例如计算机设备400的硬盘。存储器401在另一些实施例中也可以是的外部计算机设备400存储设备,例如计算机设备400上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器401还可以既包括计算机设备400的内部存储单元也包括外部存储设备。存储器401不仅可以用于存储安装于计算机设备400的操作系统以及应用软件,还可以用于暂时地存储已经输出或者将要输出的数据。
总线403可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,计算机设备400还可以包括显示组件404。 显示组件404可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示组件404也可以适当的称为显示装置或显示单元。
进一步地,计算机设备400还可以包括通信组件405,通信组件405可选的可以包括有线通信组件和/或无线通信组件(如WI-FI通信组件、蓝牙通信组件等),通常用于在计算机设备400与其他计算机设备之间建立通信连接。
处理器402在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器401中存储的程序代码或处理数据。具体地,处理器402执行一种微内核操作系统进程间快速通信方法。
图4仅示出了具有组件401-405以及实现一种微内核操作系统进程间快速通信方法的计算机设备400,本领域技术人员可以理解的是,图4示出的结构并不构成对计算机设备400的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
该微内核操作系统进程间快速通信方法包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。该计算机设备可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件 可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该微内核操作系统进程间快速通信方法存储在一个存储介质中,包括若干指令用以使得一台计算机 设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、流动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种微内核操作系统进程间快速通信方法,其特征在于,包括:
获取通信请求;
根据所述通信请求获取发送进程ID和接收进程ID,所述发送进程为发送所述通信请求的发送方,所述接收进程为响应所述通信请求处理待处理数据的接收方;
根据所述发送进程ID和所述接收进程ID获取分配给所述发送进程的第一地址空间和分配给所述接收进程的第二地址空间;
根据所述通信请求分别从所述第一地址空间分配第一进程间通信缓冲区页面、以及从所述第二地址空间分配所述第二进程间通信缓冲区页面,所述第一进程间通信缓冲区页面与第一线性地址相对应,所述第二进程间通信缓冲区页面与第二线性地址相对应;
根据所述第一线性地址和所述第二线性地址在发送进程页表和接收进程页表中找到与缓冲区页面中所述第一线性地址和所述第二线性地址相对应的第一物理地址和第二物理地址,所述发送进程页表用于表示发送进程的进程线性地址和内存物理地址之间映射关系,所述接收进程页表用于表示接收进程的进程线性地址和内存物理地址之间映射关系;
在所述发送进程页表和所述接收进程页表中,将所述第一物理地址和所述第二物理进行交换,使得所述第一线性地址和所述第二线性地址分别对应第二物理地址和第一物理地址。
2.如权利要求1所述的微内核操作系统进程间快速通信方法,其特征在于,所述第一线性地址和所述第二线性地址分别对应多个物理页。
3.如权利要求1所述的微内核操作系统进程间快速通信方法,其特征在于,将所述第一物理地址和所述第二物理地址进行交换后,所述微内核操作系统进程间快速通信方法还包括:
将所述通信请求发送给所述接收进程,以使所述接收进程通过所述第一物理地址访问所述第一缓冲空间中的待处理数据以进行处理。
4.如权利要求1所述的微内核操作系统进程间快速通信方法,其特征在于,将所述第一物理地址和所述第二物理地址进行交换后,所述微内核操作系统进程间快速通信方法还包括:
将所述通信请求发送给所述接收进程,使所述接收进程响应所述通信请求根据所述第一物理地址访问所述第一缓冲空间中的待处理数据以进行处理。
5.如权利要求1所述的微内核操作系统进程间快速通信方法,其特征在于,所述的微内核操作系统进程间快速通信方法还包括:
若所述通信请求处理完毕、或者所述发送进程终止、所述接收进行终止,释放所述第一进程间通信缓冲区页面或者所述第二进程间通信缓冲区页面。
6.如权利要求1所述的微内核操作系统进程间快速通信方法,其特征在于,所述的微内核操作系统进程间快速通信方法还包括:
若所述通信请求处理完毕且接收到所述发送进程或者接收进程的另一通信请求,使所述发送进程或者接收进程分别根据所述第二物理地址或者所述第一物理地址访问所述第二进程间通信缓冲区页面或者所述第一进程间通信缓冲区页面。
7.如权利要求1所述的微内核操作系统进程间快速通信方法,其特征在于,所述第一通信缓冲区和所述第二通信缓冲区页面的大小与所述待处理数据相匹配。
8.如权利要求7所述的微内核操作系统进程间快速通信方法,其特征在于,若所述通信请求与另一通信请求所请求处理的待处理数据不同时,在所述通信请求下分配的所述第一通信缓冲区和所述第二通信缓冲区大小与在所述另一通信请求下分配的第一通信缓冲区和第二通信缓冲区大小不同。
9.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,用于存储程序指令;以及
处理器,用于执行所述程序指令以使所述计算机设备实现如权利要求1~8任意一项所述的微内核操作系统进程间快速通信方法。
CN202010980614.6A 2020-09-17 2020-09-17 微内核操作系统进程间快速通信方法 Pending CN112131018A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010980614.6A CN112131018A (zh) 2020-09-17 2020-09-17 微内核操作系统进程间快速通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010980614.6A CN112131018A (zh) 2020-09-17 2020-09-17 微内核操作系统进程间快速通信方法

Publications (1)

Publication Number Publication Date
CN112131018A true CN112131018A (zh) 2020-12-25

Family

ID=73847009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010980614.6A Pending CN112131018A (zh) 2020-09-17 2020-09-17 微内核操作系统进程间快速通信方法

Country Status (1)

Country Link
CN (1) CN112131018A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878210A (zh) * 2021-09-29 2023-03-31 华为技术有限公司 一种系统配置处理方法及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170168953A1 (en) * 2014-09-01 2017-06-15 Huawei Technologies Co., Ltd. File access method and apparatus, and storage system
US20180329828A1 (en) * 2017-05-10 2018-11-15 Red Hat Israel, Ltd. Kernel-assisted inter-process data transfer
CN109933441A (zh) * 2019-02-28 2019-06-25 上海交通大学 微内核进程间通讯方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170168953A1 (en) * 2014-09-01 2017-06-15 Huawei Technologies Co., Ltd. File access method and apparatus, and storage system
US20180329828A1 (en) * 2017-05-10 2018-11-15 Red Hat Israel, Ltd. Kernel-assisted inter-process data transfer
CN109933441A (zh) * 2019-02-28 2019-06-25 上海交通大学 微内核进程间通讯方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PENG XINGHAI等: "Fast Interprocess Communication Algorithm in Microkernel", INTERNATIONAL JOURNAL OF PERFORMABILITY ENGINEERING, vol. 16, no. 2, pages 185 - 194 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878210A (zh) * 2021-09-29 2023-03-31 华为技术有限公司 一种系统配置处理方法及相关设备

Similar Documents

Publication Publication Date Title
TWI556107B (zh) 用於安全虛擬機器間共用記憶體通訊之技術
US8898665B2 (en) System, method and computer program product for inviting other virtual machine to access a memory space allocated to a virtual machine
US11341061B2 (en) Address translation method, apparatus, and system
JP5320140B2 (ja) 計算機システム、割込み中継回路及び割込み中継方法
JP7044832B2 (ja) データにアクセスするための方法、装置、機器及び媒体
US8458368B2 (en) System and method for discovering and protecting shared allocated resources in a shared virtualized I/O device
TW201423422A (zh) 具有PCIe介面的裝置共享系統及方法
CN110851383B (zh) 一种管理存储系统的方法及设备
US11836091B2 (en) Secure memory access in a virtualized computing environment
US10956189B2 (en) Methods for managing virtualized remote direct memory access devices
US8996774B2 (en) Performing emulated message signaled interrupt handling
CN112131019A (zh) 微内核操作系统进程间快速通信方法
KR102387922B1 (ko) 솔리드 스테이트 드라이브의 비동기 이벤트 요청 명령 처리 방법 및 시스템
EP3379421B1 (en) Method, apparatus, and chip for implementing mutually-exclusive operation of multiple threads
US11741039B2 (en) Peripheral component interconnect express device and method of operating the same
CN109977037B (zh) 一种dma数据传输方法及系统
CN112131018A (zh) 微内核操作系统进程间快速通信方法
CN113111025B (zh) Pci设备映射方法、装置、设备及存储介质
CN115114042A (zh) 存储数据访问方法、装置、电子设备和存储介质
US10437523B2 (en) Secure receive packet processing for network function virtualization applications
US20220335109A1 (en) On-demand paging support for confidential computing
US10481951B2 (en) Multi-queue device assignment for application groups
CN111666579B (zh) 计算机设备及其访问控制方法和计算机可读介质
CN111382441B (zh) 一种应用处理器、协处理器及数据处理设备
US20220137998A1 (en) Storage virtualization device supporting virtual machine, operation method thereof, and operation method of system having the same

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