CN116126472B - 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法 - Google Patents

一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法 Download PDF

Info

Publication number
CN116126472B
CN116126472B CN202310058241.0A CN202310058241A CN116126472B CN 116126472 B CN116126472 B CN 116126472B CN 202310058241 A CN202310058241 A CN 202310058241A CN 116126472 B CN116126472 B CN 116126472B
Authority
CN
China
Prior art keywords
mapping
memory space
file
address
physical memory
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
CN202310058241.0A
Other languages
English (en)
Other versions
CN116126472A (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.)
Beijing Linzhuo Information Technology Co Ltd
Original Assignee
Beijing Linzhuo Information 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 Beijing Linzhuo Information Technology Co Ltd filed Critical Beijing Linzhuo Information Technology Co Ltd
Priority to CN202310058241.0A priority Critical patent/CN116126472B/zh
Publication of CN116126472A publication Critical patent/CN116126472A/zh
Application granted granted Critical
Publication of CN116126472B publication Critical patent/CN116126472B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法,通过文件内存映射将共享文件直接映射到物理内存空间,再将共享文件对应的物理内存空间映射到虚拟机中,在虚拟机中采用该物理内存空间及共享文件元信息构建PCIe设备,使虚拟机通过PCIe设备实现对文件的读操作,相较于现有的文件共享方式仅需完成一次读文件的操作即可实现文件共享,有效节约了内存和CPU的消耗,提高了文件共享的速度及效率。

Description

一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法
技术领域
本发明属于跨运行环境开发技术领域,具体涉及一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法。
背景技术
虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,安装在虚拟机中的操作系统通常被称为GuestOS(Guest Operating System),安装虚拟机的物理计算机(宿主机)上的操作系统通常被称为Host OS(Host Operating System)。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量,每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
实际使用中,Host OS与Guest OS之间经常需要共享文件。从技术角度看,Host OS与Guest OS间的文件共享通常有两种实现方式:一是基于Samba协议实现文件共享,这种方式的本质是Host OS与GuestOS之间通过网络共享文件,例如Host OS将文件内容读到内存中后再将内存中的文件通过网络发送至Guest OS,Guest OS将文件内容读取到内存后,再将文件内容写入到文件系统中,该过程中执行的操作包括一次文件读取、两次内存复制及一次文件写入;二是基于虚拟机的私有通信协议实现文件共享,私有通信协议通常是指通过构建PCIe设备实现高速通信的方式,例如Host OS将文件内容读到内存后再将内存中的文件内容通过虚拟PCIe设备写入Guest OS的内存,Guest OS再将文件内容写入到文件系统中,该过程中执行的操作包括一次文件读取、一次内存复制及一次文件写入。
例如,Windows版本的xDroid就是通过将安卓系统安装在虚拟机内,再将虚拟机运行在Windows系统上实现了安卓应用在Windows系统上的运行,当用户在该Windows系统上执行安装安卓应用的操作时,也就是安装安卓应用对应的apk文件时,xDroid需要将该apk文件先复制到虚拟机内,再在安卓系统内执行标准的安装操作,安装完成后该apk文件即可被删除。
综上所述,无论是采用上述哪种方式实现Host OS与Guest OS间的文件共享,操作过程都涉及了多次的文件读写及内存复制操作,因此都产生了较多的内存和CPU的消耗,进而降低了文件共享的效率。
发明内容
有鉴于此,本发明提供了一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法,能够实现虚拟机与宿主机之间快速的文件共享。
本发明提供的一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法,具体包括以下步骤:
步骤1、在Host OS中获取共享文件的句柄,记为第一句柄,根据第一句柄创建文件映射内核对象;当共享文件的大小不大于阈值时,执行步骤2;否则,令起始位置为零后执行步骤3;
步骤2、由文件映射内核对象将共享文件的全部内容映射到虚拟机软件进程对应的连续内存空间中,将该连续内存空间的起始地址作为第一映射地址,执行步骤4;
步骤3、从起始位置截取阈值大小的共享文件的内容,由文件映射内核对象将该内容映射到虚拟机软件进程对应的连续内存空间中,将该连续内存空间的起始地址作为第一映射地址,执行步骤4;
步骤4、在Host OS中创建PCIe设备,记为主PCIe设备,令主PCIe设备锁定第一映射地址对应的第一物理内存空间;
步骤5、在Guest OS中创建PCIe设备,记为从PCIe设备,将从PCIe设备I/O地址空间映射到地址为第二映射地址的Guest OS的内存空间,将I/O地址空间的读写操作映射到第一物理内存空间的读写操作,基于共享文件的元信息及第二映射地址构建虚拟块设备,由虚拟块设备完成共享文件的读操作;
步骤6、移除虚拟块设备,删除第二映射地址,释放第一物理内存空间,依次关闭文件映射内核对象及第一句柄。
进一步地,所述步骤4中令主PCIe设备锁定第一映射地址对应的第一物理内存空间的方式为:
步骤4.1、根据虚拟机软件所在进程对应的CR3寄存器,获取该CR3寄存器所指向的页目录表PDT;遍历页目录表PDT,找到第一映射地址对应的物理内存,记为第一物理内存空间;
步骤4.2、若第一物理内存空间的属性为非分页内存,则调用MmBuildMdlForNonPagedPool为第一物理内存空间分配内存描述符表MDL;若第一物理内存空间的属性为分页内存,则调用MmAllocatePagesForMdl为第一物理内存空间分配内存描述符表MDL;
步骤4.3、若内存描述符表MDL为空,则调用MmProbeAndLockPages锁定第一物理内存空间;若内存描述符表MDL不为空,则调用MmMapLockedPagesSpecifyCache锁定内存描述符表MDL对应的物理内存空间。
进一步地,所述共享文件的元信息包括超级块表、数据块表、索引节点表、目录表、数据块表及文件扩展属性表。
进一步地,所述步骤5中由虚拟块设备完成共享文件的读操作的方式为:
设置虚拟块设备为只读模式,将虚拟块设备读操作的地址映射到元信息和第二映射地址分别对应的内存空间;当读取第二映射地址对应的内存空间时,若产生缺页异常,则不向上抛出异常,并由从PCIe设备通知主PCIe设备,以当前第一物理内存空间中保存的共享文件的结束位置为起始位置执行步骤3;若未产生缺页异常,则完成共享文件的读操作。
进一步地,所述步骤1中在Host OS中获取共享文件的句柄,记为第一句柄,根据第一句柄创建文件映射内核对象的方式为:VirtualBox在用户态调用CreateFile方法获取共享文件的句柄,记为第一句柄,以第一句柄为输入调用CreateFileMapping方法创建文件映射内核对象。
进一步地,所述步骤5中将从PCIe设备I/O地址空间映射到地址为第二映射地址的Guest OS的内存空间的方式为:调用Linux的内核函数ioremap将从PCIe设备I/O地址空间映射到地址为第二映射地址的GuestOS的内存空间。
有益效果:
本发明通过文件内存映射将共享文件直接映射到物理内存空间,再将共享文件对应的物理内存空间映射到虚拟机中,在虚拟机中采用该物理内存空间及共享文件元信息构建PCIe设备,使虚拟机通过PCIe设备实现对文件的读操作,相较于现有的文件共享方式仅需完成一次读文件的操作即可实现文件共享,有效节约了内存和CPU的消耗,提高了文件共享的速度及效率。
具体实施方式
下面列举实施例,对本发明进行详细描述。
本发明提供的一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法,其核心思想是:通过文件内存映射将共享文件直接映射到物理内存空间,再将共享文件对应的物理内存空间映射到虚拟机,在虚拟机中采用该物理内存空间及共享文件元信息构建PCIe设备,虚拟机通过PCIe设备实现对文件的读操作。
本发明提供的一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法,具体包括以下步骤:
步骤1、在Host OS中获取共享文件的句柄,记为第一句柄,根据第一句柄创建文件映射内核对象;当共享文件的大小不大于阈值时,执行步骤2;否则,令起始位置为零后执行步骤3。
步骤2、由文件映射内核对象将共享文件的全部内容映射到虚拟机软件进程对应的连续内存空间中,将该连续内存空间的起始地址作为第一映射地址,执行步骤4。
步骤3、从起始位置截取阈值大小的共享文件的内容,由文件映射内核对象将该内容映射到虚拟机软件进程对应的连续内存空间中,将该连续内存空间的起始地址作为第一映射地址,执行步骤4。
步骤4、在Host OS中创建PCIe设备,记为主PCIe设备,令主PCIe设备锁定第一映射地址对应的第一物理内存空间。
为了进一步提高获取和锁定物理内存空间的效率,步骤4的实现过程还可为:
步骤4.1、根据虚拟机软件所在进程对应的CR3寄存器,获取该CR3寄存器所指向的页目录表PDT;遍历页目录表PDT,找到第一映射地址对应的物理内存,记为第一物理内存空间。
在现有x86处理器中,只有CR3寄存器内存储了物理地址,其它寄存器中存储的都是线性地址,即虚拟地址,CR3寄存器内存储的物理地址指向页目录表PDT。在Windows系统中,内存页的大小通常为4KB,即一个内存页能够存储1024个页目录表项PDE,页目录表项PDE是页目录表PDT中的元素,每个页目录表项PDE指向一个页表PTT,每个页表PTT的大小为4KB,即一个页表PTT能够存储1024个页表项PTE,页表项PTE是页表PTT内的元素,页表项PTE所指向的才是真正的物理内存页。
步骤4.2、若第一物理内存空间的属性为非分页内存,则调用MmBuildMdlForNonPagedPool为第一物理内存空间分配内存描述符表MDL;若第一物理内存空间的属性为分页内存,则调用MmAllocatePagesForMdl为第一物理内存空间分配内存描述符表MDL。
内存描述符表MDL是用于描述虚拟内存缓冲区的物理页面布局的数据结构。
步骤4.3、若内存描述符表MDL为空,则调用MmProbeAndLockPages锁定第一物理内存空间;若内存描述符表MDL不为空,则调用MmMapLockedPagesSpecifyCache锁定内存描述符表MDL对应的物理内存空间。
步骤5、在Guest OS中创建PCIe设备,记为从PCIe设备,将从PCIe设备I/O地址空间映射到地址为第二映射地址的Guest OS的内存空间,将I/O地址空间的读写操作映射到第一物理内存空间的读写操作,基于共享文件的元信息及第二映射地址构建虚拟块设备,由虚拟块设备完成共享文件的读操作。
为了进一步提高共享文件读操作的可靠性,步骤5的过程还可为:
步骤5.1、将从PCIe设备的I/O地址空间大小配置共享文件的大小;将该I/O地址空间映射到Guest OS对应的内存空间,映射地址记为第二映射地址。
步骤5.2、将从PCIe设备的I/O地址空间的读写操作映射到第一物理内存空间的读写操作。
步骤5.3、构建虚拟块设备,虚拟块设备包括共享文件的元信息和第二映射地址所指向的内存空间,其中,共享文件的元信息包括超级块表、数据块表、索引节点表、目录表、数据块表、文件扩展属性表等属性。
步骤5.4、设置虚拟块设备为只读模式,将虚拟块设备读操作的地址映射到元信息和第二映射地址分别对应的内存空间;当读取第二映射地址对应的内存空间时,若产生缺页异常,说明共享文件的大小大于阈值当前读操作的处理范围超出了已锁定的第一物理内存空间的范围,则不向上抛出异常,并由从PCIe设备通知主PCIe设备,以当前第一物理内存空间中保存的共享文件的结束位置为起始位置执行步骤3;若未产生缺页异常,则完成共享文件的读操作。
步骤6、移除虚拟块设备,删除第二映射地址,释放第一物理内存空间,依次关闭文件映射内核对象及第一句柄。
实施例:
本实例中Host OS为Windows系统、Guest OS为Linux系统,采用本发明提供的一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法,通过修改VirtualBox实现了从Host OS将共享文件sharedFile复制到Guest OS的操作,具体包括以下步骤:
S1、修改VirtualBox将sharedFile映射到虚拟机软件对应进程的内存空间,包括:
S1.1、VirtualBox在用户态调用CreateFile获取sharedFile的句柄sharedFileHandle;
S1.2、在用户态,以sharedFileHandle为输入调用CreateFileMapping,创建文件映射内核对象mappingHandle;
S1.3、在用户态,将sharedFile的文件内容映射到虚拟机软件进程对应的连续内存空间,若sharedFile的大小不大于256MB,则调用MapViewOfFile将sharedFile文件的全部内容映射到连续内存空间中,返回连续内存空间的起始地址mappedAddress;否则,调用MapViewOfFile将sharedFile中的第0字节到第256MB字节的部分内容映射连续内存空间中,返回连续内存空间的起始地址mappedAddress;
S2、在内核态,基于Host OS内的虚拟PCIe设备驱动,创建PCIe设备virtualPciDeviceInWindows,锁定mappedAddress对应的物理内存,包括:
S2.1、获取虚拟机软件进程的CR3寄存器,得到CR3寄存器所指向的页目录表PDT;
S2.2、遍历PDT、PDE和PTE,得到mappedAddress所指向的物理内存空间mappedPhysicalAddress;
S2.3、若mappedPhysicalAddress为非分页内存,则调用MmBuildMdlForNonPagedPool为mappedPhysicalAddress分配MDL;若mappedPhysicalAddress为分页内存,则调用MmAllocatePagesForMdl为mappedPhysicalAddress分配MDL;分配的MDL,记为mappedPhysicalAddressMDL;
S2.4、若mappedPhysicalAddressMDL为空,则调用MmProbeAndLockPages锁定mappedAddress对应的物理内存空间;否则,调用MmMapLockedPagesSpecifyCache锁定mappedPhysicalAddressMDL对应的物理内存空间。
S3、在内核态,基于Guest OS端的虚拟PCIe设备驱动创建PCIe设备,记为virtualPciDeviceInLinux,将mappedPhysicalAddress对应的物理内存空间映射到Linux内核,并基于该内存空间构建虚拟块设备,包括:
S3.1、通过属性配置,将virtualPciDeviceInLinux的I/O地址空间大小配置为sharedFile的大小,将地址空间大小记为sharedFileSize。
S3.2、调用Linux的内核函数ioremap将virtualPciDeviceInLinux的I/O地址空间映射到Linux内核地址空间,映射地址记为sharedFileMemAddressInLinuxKernel;
S3.3、将virtualPciDeviceInLinux的I/O地址空间的读写操作,映射到mappedPhysicalAddress指向的物理内存空间的读写操作;
S3.4、利用内存构建虚拟块设备,记为virtualRamDisk,virtualRamDisk中的内存包括两部分:一是EXT4文件系统的元信息,记为metaInfoBlock,元信息包括超级块表、数据块表、索引节点表、目录表、数据块表、文件扩展属性表等,用于使文件系统内具有与sharedFile相同属性的文件;二是sharedFileMemAddressInLinuxKernel所指向的内存空间。
S3.5、将virtualRamDisk的读写处理函数设置为:对于写操作,设置为不执行任何写操作;对于读操作,将读操作的地址映射到metaInfoBlock和sharedFileMemAddressInLinuxKernel对应的内存空间,在读取sharedFileMemAddressInLinuxKernel指向的内存空间时若产生缺页异常,则不向上抛出异常,并通过virtualPciDeviceInLinux通知virtualPciDeviceInWindows,将sharedFile中对应的部分内容映射到内存并锁定对应的物理内存区域后,执行读操作;若未产生缺页异常,则执行标准读操作。
S4、当sharedFile使用完毕后,执行以下清理操作:
S4.1、在virtualPciDeviceInLinux端,移除virtualRamDisk后,调用iounmap删除sharedFileMemAddressInLinuxKernel的地址映射;
S4.2、在Host OS的用户态下,调用UnmapViewOfFile从虚拟机对应进程的内存空间撤销文件内容的映射,再调用CloseFile关闭文件映射内核对象mappingHandle,最后调用CloseFile关闭文件内核对象sharedFileHandle。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法,其特征在于,具体包括以下步骤:
步骤1、在Host OS中获取共享文件的句柄,记为第一句柄,根据第一句柄创建文件映射内核对象;当共享文件的大小不大于阈值时,执行步骤2;否则,令起始位置为零后执行步骤3;
步骤2、由文件映射内核对象将共享文件的全部内容映射到虚拟机软件进程对应的连续内存空间中,将该连续内存空间的起始地址作为第一映射地址,执行步骤4;
步骤3、从起始位置截取阈值大小的共享文件的内容,由文件映射内核对象将该内容映射到虚拟机软件进程对应的连续内存空间中,将该连续内存空间的起始地址作为第一映射地址,执行步骤4;
步骤4、在Host OS中创建PCIe设备,记为主PCIe设备,令主PCIe设备锁定第一映射地址对应的第一物理内存空间;
步骤5、在Guest OS中创建PCIe设备,记为从PCIe设备,将从PCIe设备I/O地址空间映射到地址为第二映射地址的Guest OS的内存空间,将I/O地址空间的读写操作映射到第一物理内存空间的读写操作,基于共享文件的元信息及第二映射地址构建虚拟块设备,由虚拟块设备完成共享文件的读操作;
步骤6、移除虚拟块设备,删除第二映射地址,释放第一物理内存空间,依次关闭文件映射内核对象及第一句柄。
2.根据权利要求1所述的跨运行环境文件快速共享方法,其特征在于,所述步骤4中令主PCIe设备锁定第一映射地址对应的第一物理内存空间的方式为:
步骤4.1、根据虚拟机软件所在进程对应的CR3寄存器,获取该CR3寄存器所指向的页目录表PDT;遍历页目录表PDT,找到第一映射地址对应的物理内存,记为第一物理内存空间;
步骤4.2、若第一物理内存空间的属性为非分页内存,则调用MmBuildMdlForNonPagedPool为第一物理内存空间分配内存描述符表MDL;若第一物理内存空间的属性为分页内存,则调用MmAllocatePagesForMdl为第一物理内存空间分配内存描述符表MDL;
步骤4.3、若内存描述符表MDL为空,则调用MmProbeAndLockPages锁定第一物理内存空间;若内存描述符表MDL不为空,则调用MmMapLockedPagesSpecifyCache锁定内存描述符表MDL对应的物理内存空间。
3.根据权利要求1所述的跨运行环境文件快速共享方法,其特征在于,所述共享文件的元信息包括超级块表、数据块表、索引节点表、目录表、数据块表及文件扩展属性表。
4.根据权利要求1所述的跨运行环境文件快速共享方法,其特征在于,所述步骤5中由虚拟块设备完成共享文件的读操作的方式为:
设置虚拟块设备为只读模式,将虚拟块设备读操作的地址映射到元信息和第二映射地址分别对应的内存空间;当读取第二映射地址对应的内存空间时,若产生缺页异常,则不向上抛出异常,并由从PCIe设备通知主PCIe设备,以当前第一物理内存空间中保存的共享文件的结束位置为起始位置执行步骤3;若未产生缺页异常,则完成共享文件的读操作。
5.根据权利要求1所述的跨运行环境文件快速共享方法,其特征在于,所述步骤1中在Host OS中获取共享文件的句柄,记为第一句柄,根据第一句柄创建文件映射内核对象的方式为:VirtualBox在用户态调用CreateFile方法获取共享文件的句柄,记为第一句柄,以第一句柄为输入调用CreateFileMapping方法创建文件映射内核对象。
6.根据权利要求1所述的跨运行环境文件快速共享方法,其特征在于,所述步骤5中将从PCIe设备I/O地址空间映射到地址为第二映射地址的Guest OS的内存空间的方式为:调用Linux的内核函数ioremap将从PCIe设备I/O地址空间映射到地址为第二映射地址的Guest OS的内存空间。
CN202310058241.0A 2023-01-20 2023-01-20 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法 Active CN116126472B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310058241.0A CN116126472B (zh) 2023-01-20 2023-01-20 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310058241.0A CN116126472B (zh) 2023-01-20 2023-01-20 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法

Publications (2)

Publication Number Publication Date
CN116126472A CN116126472A (zh) 2023-05-16
CN116126472B true CN116126472B (zh) 2023-06-09

Family

ID=86295169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310058241.0A Active CN116126472B (zh) 2023-01-20 2023-01-20 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法

Country Status (1)

Country Link
CN (1) CN116126472B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116954830B (zh) * 2023-09-18 2023-12-26 麒麟软件有限公司 jailhouse下使虚拟机实现msi/x中断的方法
CN117056031B (zh) * 2023-10-11 2023-12-29 北京麟卓信息科技有限公司 一种基于虚拟进程的跨容器动态库共享方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101158924A (zh) * 2007-11-27 2008-04-09 北京大学 一种虚拟机管理器的动态内存映射方法
JP2010033206A (ja) * 2008-07-28 2010-02-12 Fujitsu Ltd 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法
CN102736969A (zh) * 2012-05-22 2012-10-17 中国科学院计算技术研究所 一种针对硬件虚拟化的内存监控方法和系统
CN106155933A (zh) * 2016-07-06 2016-11-23 乾云众创(北京)信息科技研究院有限公司 一种基于KSM及Pass‑through相结合的虚拟机内存共享方法
CN108932170A (zh) * 2018-06-06 2018-12-04 华东师范大学 一种同驻虚拟机间高效共享内存文件系统的机制
CN111190752A (zh) * 2019-12-30 2020-05-22 海光信息技术有限公司 虚拟机共享内核内存的方法及装置
CN111679921A (zh) * 2020-06-09 2020-09-18 Oppo广东移动通信有限公司 内存共享方法、内存共享装置及终端设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101158924A (zh) * 2007-11-27 2008-04-09 北京大学 一种虚拟机管理器的动态内存映射方法
JP2010033206A (ja) * 2008-07-28 2010-02-12 Fujitsu Ltd 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法
CN102736969A (zh) * 2012-05-22 2012-10-17 中国科学院计算技术研究所 一种针对硬件虚拟化的内存监控方法和系统
CN106155933A (zh) * 2016-07-06 2016-11-23 乾云众创(北京)信息科技研究院有限公司 一种基于KSM及Pass‑through相结合的虚拟机内存共享方法
CN108932170A (zh) * 2018-06-06 2018-12-04 华东师范大学 一种同驻虚拟机间高效共享内存文件系统的机制
CN111190752A (zh) * 2019-12-30 2020-05-22 海光信息技术有限公司 虚拟机共享内核内存的方法及装置
CN111679921A (zh) * 2020-06-09 2020-09-18 Oppo广东移动通信有限公司 内存共享方法、内存共享装置及终端设备

Also Published As

Publication number Publication date
CN116126472A (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
CN116126472B (zh) 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法
CN109564522B (zh) 控制对计算装置的存储器中的页的访问
US10067684B2 (en) File access method and apparatus, and storage device
JP4237190B2 (ja) 仮想マシン環境内でのゲスト物理アドレスの仮想化の方法およびシステム
US7085909B2 (en) Method, system and computer program product for implementing copy-on-write of a file
RU2373566C2 (ru) Таблицы теневых страниц для управления преобразованием адресов
US9015417B2 (en) Deduplication-aware page cache
WO2016127658A1 (zh) 一种快照处理方法及装置
US20180032443A1 (en) Controlling Access to Pages in a Memory in a Computing Device
US10552377B2 (en) Data discard method for journaling file system and memory management apparatus thereof
JP2757777B2 (ja) メモリの不正アクセス検出方法及びシステム
WO2020141447A1 (en) Selective erasure of data in a ssd
US9116621B1 (en) System and method of transfer of control between memory locations
CN114327777B (zh) 确定全局页目录的方法、装置、电子设备及存储介质
US10037334B1 (en) Memory management and sharing host OS files for Virtual Machines using execution-in-place
US10606746B2 (en) Access request processing method and apparatus, and computer system
US10261895B2 (en) System and method for transferring execution of a computer program
WO2022200962A1 (en) Migrating pages of memory accessible by input-output devices
US9535796B2 (en) Method, apparatus and computer for data operation
Bittman et al. A tale of two abstractions: the case for object space
US6918023B2 (en) Method, system, and computer program product for invalidating pretranslations for dynamic memory removal
CN105912277A (zh) 在虚拟机镜像中实现文件系统单写日志的方法
WO2015194027A1 (ja) 計算機システム、データ更新方法、および仮想化サーバ
EP3252610B1 (en) System and method of transfer of control between memory locations

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