CN107402891B - 确定共享虚拟内存页面管理模式的方法和相关设备 - Google Patents

确定共享虚拟内存页面管理模式的方法和相关设备 Download PDF

Info

Publication number
CN107402891B
CN107402891B CN201710514568.9A CN201710514568A CN107402891B CN 107402891 B CN107402891 B CN 107402891B CN 201710514568 A CN201710514568 A CN 201710514568A CN 107402891 B CN107402891 B CN 107402891B
Authority
CN
China
Prior art keywords
memory page
shared virtual
virtual memory
access
mode
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
CN201710514568.9A
Other languages
English (en)
Other versions
CN107402891A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710514568.9A priority Critical patent/CN107402891B/zh
Publication of CN107402891A publication Critical patent/CN107402891A/zh
Application granted granted Critical
Publication of CN107402891B publication Critical patent/CN107402891B/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0837Cache consistency protocols with software control, e.g. non-cacheable data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)

Abstract

本发明实施例公开了一种确定共享虚拟内存页面管理模式的方法和相关设备。其中,一种确定共享虚拟内存页面管理模式的方法,可包括:监测进程对共享虚拟内存页面的访问特性;若监测出的访问特性符合第一设定条件,且共享虚拟内存页面当前的管理模式为分布式共享内存模式,将共享虚拟内存页面的管理模式修改为共享物理内存模式。本发明实施例提供的技术方案有利于提升共享虚拟内存的访问性能。

Description

确定共享虚拟内存页面管理模式的方法和相关设备
技术领域
本发明涉及计算机技术领域,具体涉及一种确定共享虚拟内存页面管理模式的方法和相关设备。
背景技术
Intel创始人之一的戈登·摩尔(Gordon Moore)提出的摩尔定律,在近半个世纪以来一直指引着半导体产业的发展和信息技术进步的速度。从Intel披露的信息来看,摩尔定律在未来10年仍将继续有效,预计在2022年在单chip上将集成超过1.024×1012个的晶体管。
然而,目前单纯依靠提高主频来提高计算性能的时代已经过去了,中央处理器(CPU,Central Processing Unit)性能的增长遇到了功耗、互连线延时和设计复杂度等物理规律的限制。从单核到多核(Multi-core,传统上认为少于8个核叫做多核)乃至众核(Many-core)的变化,是物理规律限制的情况下必然走上的道路,是摩尔定律与这三个物理规律限制相互作用的结果,众核将成为未来CPU架构的主要趋势。
多核/众核处理器场景需考虑缓存一致性问题,解决机制包括软件缓存一致性机制和硬件缓存一致性机制。其中,软件缓存一致性机制主要涉及如下两种可能模式,即分布式共享内存(DSM,Distributed Shared Memory)模式和共享物理内存(SPM,SharedPhysical Memory)模式。DSM模式/SPM模式可应用于非缓存一致性(NCC,Non-Cache-Coherent)众核系统解决缓存一致性问题。Intel开发的单片云计算机(SCC,Single-chipCloud Computer)中的软件缓存一致性协议(SMC,Software Managed Cache Coherence)即采用了SPM模式。
现有技术中共享虚拟内存页面固定采用DSM模式或SPM模式。在研究和实践过程中发明人发现,在有些应用场景下,固定采用DSM模式作为其管理模式的共享虚拟内存页面的访问性能并不能很好的满足实际的需求,而在另些应用场景下,固定采用SPM模式作为其管理模式的共享虚拟内存页面的访问性能也不能很好的满足实际需求。
发明内容
本发明实施例提供确定共享虚拟内存页面管理模式的方法和相关设备,以期提升共享虚拟内存的访问性能。
本发明第一方面提供一种确定共享虚拟内存页面管理模式的方法,包括:
监测进程对共享虚拟内存页面的访问特性;
若监测出的所述访问特性符合第一设定条件,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将所述共享虚拟内存页面的管理模式修改为共享物理内存模式。
结合第一方面,在第一种可能的实施方式中,所述方法还包括:
若监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
结合第一方面或第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式,包括:
在第一物理内存空间中为所述共享虚拟内存页面分配第一物理内存页面;
将第二物理内存页面中存储的数据拷贝到所述第一物理内存页面,其中,所述第二物理内存页面归属于共享物理内存空间,所述第二物理内存页面为所述共享虚拟内存页面当前所映射的物理内存页面;
建立所述共享虚拟内存页面和第一物理内存页面之间的映射关系;
将分布式共享内存模式作为所述共享虚拟内存页面的管理模式进行记录。
结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述第一设定条件包括:访问频率小于或等于第一阈值、或者访问方式为读写访问或写访问、或者写访问的频率大于第三阈值、或者写访问的比例大于第四阈值。
结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述第二设定条件包括:
访问频率大于第二阈值、或者访问方式为只读访问、或者读访问的频率大于第五阈值、或者读访问的比例大于第六阈值,所述第二阈值大于或等于第一阈值。
结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式或第一方面的第四种可能的实施方式,在第五种可能的实施方式中,所述将所述共享虚拟内存页面的管理模式修改为共享物理内存模式,包括:
建立所述共享虚拟内存页面和第三物理内存页面之间的映射关系,所述第三物理内存页面归属于共享物理内存空间;将共享物理内存模式作为所述共享虚拟内存页面的管理模式进行记录,其中,所述共享虚拟内存页面之前映射的物理内存页面所存储数据未被修改。
结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式或第一方面的第四种可能的实施方式,在第六种可能的实施方式中,所述将所述共享虚拟内存页面的管理模式修改为共享物理内存模式,包括:
将第四物理内存页面所存储数据中的被修改数据同步到第三物理内存页面;建立所述共享虚拟内存页面和第三物理内存页面之间的映射关系,所述第三物理内存页面归属于共享物理内存空间;将共享物理内存模式作为所述共享虚拟内存页面的管理模式进行记录,其中,所述第四物理内存页面为共享虚拟内存页面之前映射的物理内存页面。
结合第一方面或第一方面的第一种可能的实施方式,在第七种可能的实施方式中,若所述进程包括多个进程,则若监测出的所述访问特性符合第一设定条件,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将所述共享虚拟内存页面的管理模式修改为共享物理内存模式,包括:
将分别监测出的所述多个进程中的每个进程对所述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的所述多个进程对共享虚拟内存页面的访问特性;或者,将监测出的所述多个进程中的其中一个进程对所述共享虚拟内存页面的访问特性,作为所述监测出的所述多个进程对共享虚拟内存页面的访问特性,若所述监测出的所述多个进程对共享虚拟内存页面的访问特性符合第一条件,且所述共享虚拟内存页面当前对应所述多个进程的管理模式为分布式共享内存模式,将所述共享虚拟内存页面对应所述多个进程的管理模式修改为共享物理内存模式。
结合第一方面的第一种可能的实施方式,在第八种可能的实施方式中,
若所述进程包括多个进程,则若监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式,包括:
将分别监测出的所述多个进程中的每个进程对所述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的所述多个进程对共享虚拟内存页面的访问特性;或者,将监测出的所述多个进程中的其中一个进程对所述共享虚拟内存页面的访问特性,作为所述监测出的所述多个进程对共享虚拟内存页面的访问特性,若所述监测出的所述多个进程对共享虚拟内存页面的访问特性符合第二条件,且所述共享虚拟内存页面当前对应所述多个进程的管理模式为共享物理内存模式,将所述共享虚拟内存页面对应所述多个进程的管理模式修改为分布式共享内存模式。
本发明第二方面提供一种确定共享虚拟内存页面管理模式的方法,包括:
监测进程对共享虚拟内存页面的访问特性;
若监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
结合第二方面,在第一种可能的实施方式中,所述将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式,包括:
在第一物理内存空间中为所述共享虚拟内存页面分配第一物理内存页面;
将第二物理内存页面中存储的数据拷贝到所述第一物理内存页面,其中,所述第二物理内存页面归属于共享物理内存空间,所述第二物理内存页面为所述共享虚拟内存页面当前所映射的物理内存页面;
建立所述共享虚拟内存页面和第一物理内存页面之间的映射关系;
将分布式共享内存模式作为所述共享虚拟内存页面的管理模式进行记录。
结合第二方面,在第二种可能的实施方式中,若所述进程包括多个进程,则若监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式,包括:
将分别监测出的所述多个进程中的每个进程对所述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的所述多个进程对共享虚拟内存页面的访问特性;或者,将监测出的所述多个进程中的其中一个进程对所述共享虚拟内存页面的访问特性,作为所述监测出的所述多个进程对共享虚拟内存页面的访问特性,若所述监测出的所述多个进程对共享虚拟内存页面的访问特性符合第二条件,且所述共享虚拟内存页面当前对应所述多个进程的管理模式为共享物理内存模式,将所述共享虚拟内存页面对应所述多个进程的管理模式修改为分布式共享内存模式。
结合第二方面或第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述第二设定条件包括:
访问频率大于第二阈值、或者访问方式为只读访问、或者读访问的频率大于第五阈值、或者读访问的比例大于第六阈值。
本发明第三方面提供一种确定共享虚拟内存页面管理模式的装置,包括:
监控单元,用于监测进程对共享虚拟内存页面的访问特性;
与所述监控单元连接的第一重映射单元,用于若所述监控单元监测出的所述访问特性符合第一设定条件,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将所述共享虚拟内存页面的管理模式修改为共享物理内存模式。
结合第三方面,在第一种可能的实施方式中,所述装置还包括:
与所述监控单元连接的第二重映射单元,用于若所述监控单元监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
结合第三方面的第一种可能的实施方式,在第二种可能的实施方式中,
所述第二重映射单元具体用于,若所述监控单元监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,则在第一物理内存空间中为所述共享虚拟内存页面分配第一物理内存页面;将第二物理内存页面中存储的数据拷贝到所述第一物理内存页面,其中,所述第二物理内存页面归属于共享物理内存空间,所述第二物理内存页面为所述共享虚拟内存页面当前所映射的物理内存页面;建立所述共享虚拟内存页面和第一物理内存页面之间的映射关系;将分布式共享内存模式作为所述共享虚拟内存页面的管理模式进行记录。
结合第三方面或第三方面的第一种可能的实施方式或第三方面的第二种可能的实施方式,在第三种可能的实施方式中,
所述第一设定条件包括:访问频率小于或等于第一阈值、或者访问方式为读写访问或写访问、或者写访问的频率大于第三阈值、或者写访问的比例大于第四阈值;
所述监控单元具体用于监测进程对共享虚拟内存页面的访问频率;
其中,所述第一重映射单元具体用于,若所述监控单元监测出的进程对共享虚拟内存页面的访问频率小于或等于第一阈值,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将所述共享虚拟内存页面的管理模式修改为共享物理内存模式;
或者,
所述监控单元具体用于监测进程对共享虚拟内存页面的访问方式;
所述第一重映射单元具体用于,若所述监控单元监测出的进程对共享虚拟内存页面的访问方式为读写访问或写访问,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将所述共享虚拟内存页面的管理模式修改为共享物理内存模式;
或者,
所述监控单元具体用于监测进程对共享虚拟内存页面的写访问的频率;
所述第一重映射单元具体用于,若所述监控单元监测出的进程对共享虚拟内存页面的写访问的频率大于第三阈值,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将所述共享虚拟内存页面的管理模式修改为共享物理内存模式;
或者,
所述监控单元具体用于监测进程对共享虚拟内存页面的写访问的比例;
所述第一重映射单元具体用于,若所述监控单元监测出的进程对共享虚拟内存页面的写访问的比例大于第四阈值,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将所述共享虚拟内存页面的管理模式修改为共享物理内存模式。
结合第三方面的第三种可能的实施方式,在第四种可能的实施方式中,
所述第二设定条件包括:
访问频率大于第二阈值、或者访问方式为只读访问、或者读访问的频率大于第五阈值、或者读访问的比例大于第六阈值,所述第二阈值大于或等于第一阈值;
其中,
所述监控单元具体用于监测进程对共享虚拟内存页面的访问频率;
所述第二重映射单元具体用于,若所述监控单元监测出的访问频率大于第二阈值,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式;
或者,
所述监控单元具体用于监测进程对共享虚拟内存页面的访问方式;
所述第二重映射单元具体用于,若所述监控单元监测出的访问方式为只读访问,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式;
或者,
所述监控单元具体用于监测进程对共享虚拟内存页面的读访问的频率;
所述第二重映射单元具体用于,若所述监控单元监测出的读访问的频率大于第五阈值,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式;
或者,
所述监控单元具体用于监测进程对共享虚拟内存页面的读访问的比例;
所述第二重映射单元具体用于,若所述监控单元监测出的读访问的比例大于第六阈值,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
结合第三方面或第三方面的第一种可能的实施方式或第三方面的第二种可能的实施方式或第三方面的第三种可能的实施方式或第三方面的第三种可能的实施方式,在第五种可能的实施方式中,所述第一重映射单元具体用于,若所述监控单元监测出的所述访问特性符合第一设定条件,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,建立所述共享虚拟内存页面和第三物理内存页面之间的映射关系,所述第三物理内存页面归属于共享物理内存空间;将共享物理内存模式作为所述共享虚拟内存页面的管理模式进行记录,其中,所述共享虚拟内存页面之前映射的物理内存页面所存储数据未被修改。
结合第三方面或第三方面的第一种可能的实施方式或第三方面的第二种可能的实施方式或第三方面的第三种可能的实施方式或第三方面的第四种可能的实施方式,在第六种可能的实施方式中,
所述第一重映射单元具体用于,若所述监控单元监测出的所述访问特性符合第一设定条件,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将第四物理内存页面所存储数据中的被修改数据同步到第三物理内存页面;建立所述共享虚拟内存页面和第三物理内存页面之间的映射关系,所述第三物理内存页面归属于共享物理内存空间;将共享物理内存模式作为所述共享虚拟内存页面的管理模式进行记录,其中,所述第四物理内存页面为共享虚拟内存页面之前映射的物理内存页面。
结合第三方面或第三方面的第一种可能的实施方式,在第七种可能的实施方式中,若所述进程包括多个进程,则所述第一重映射单元具体用于,将所述监控单元分别监测出的所述多个进程中的每个进程对所述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的所述多个进程对共享虚拟内存页面的访问特性;或者,将所述监控单元监测出的所述多个进程中的其中一个进程对所述共享虚拟内存页面的访问特性,作为所述监测出的所述多个进程对共享虚拟内存页面的访问特性,若所述监测出的所述进程对共享虚拟内存页面的访问特性符合第一条件,且所述共享虚拟内存页面当前对应所述多个进程的管理模式为分布式共享内存模式,将所述共享虚拟内存页面对应所述多个进程的管理模式修改为共享物理内存模式。
结合第三方面的第一种可能的实施方式,在第八种可能的实施方式中,
若所述进程包括多个进程,则所述第二重映射单元具体用于,将所述监控单元分别监测出的所述多个进程中的每个进程对所述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的所述多个进程对共享虚拟内存页面的访问特性;或者,将所述监控单元监测出的所述多个进程中的其中一个进程对所述共享虚拟内存页面的访问特性,作为所述监测出的所述多个进程对共享虚拟内存页面的访问特性,若所述监测出的所述多个进程对共享虚拟内存页面的访问特性符合第二条件,且所述共享虚拟内存页面当前对应所述多个进程的管理模式为共享物理内存模式,将所述共享虚拟内存页面对应所述多个进程的管理模式修改为分布式共享内存模式。
本发明第四方面提供一种确定共享虚拟内存页面管理模式的装置,可包括:监控单元,用于监测进程对共享虚拟内存页面的访问特性;
与所述监控单元连接的第二重映射单元,用于若所述监控单元监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
结合第四方面,在第一种可能的实施方式中,所述第二重映射单元具体用于,若所述监控单元监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,则在第一物理内存空间中为所述共享虚拟内存页面分配第一物理内存页面;将第二物理内存页面中存储的数据拷贝到所述第一物理内存页面,其中,所述第二物理内存页面归属于共享物理内存空间,所述第二物理内存页面为所述共享虚拟内存页面当前所映射的物理内存页面;建立所述共享虚拟内存页面和第一物理内存页面之间的映射关系;将分布式共享内存模式作为所述共享虚拟内存页面的管理模式进行记录。
结合第四方面或第四方面的第一种可能的实施方式,在第二种可能的实施方式中,所述第二设定条件包括:
访问频率大于第二阈值、或者访问方式为只读访问、或者读访问的频率大于第五阈值、或者读访问的比例大于第六阈值;
其中,
所述监控单元具体用于监测进程对共享虚拟内存页面的访问频率;
所述第二重映射单元具体用于,若所述监控单元监测出的访问频率大于第二阈值,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式;
或者,
所述监控单元具体用于监测进程对共享虚拟内存页面的访问方式;
所述第二重映射单元具体用于,若所述监控单元监测出的访问方式为只读访问,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式;
或者,
所述监控单元具体用于监测进程对共享虚拟内存页面的读访问的频率;
所述第二重映射单元具体用于,若所述监控单元监测出的读访问的频率大于第五阈值,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式;
或者,
所述监控单元具体用于监测进程对共享虚拟内存页面的读访问的比例;
所述第二重映射单元具体用于,若所述监控单元监测出的读访问的比例大于第六阈值,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
结合第四方面或第四方面的第一种可能的实施方式或第四方面的第二种可能的实施方式,在第三种可能的实施方式中,若所述进程包括多个进程,则所述第二重映射单元具体用于,将所述监控单元分别监测出的所述多个进程中的每个进程对所述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的所述多个进程对共享虚拟内存页面的访问特性;或者,将所述监控单元监测出的所述多个进程中的其中一个进程对所述共享虚拟内存页面的访问特性,作为所述监测出的所述多个进程对共享虚拟内存页面的访问特性,若所述监测出的所述多个进程对共享虚拟内存页面的访问特性符合第二条件,且所述共享虚拟内存页面当前对应所述多个进程的管理模式为共享物理内存模式,将所述共享虚拟内存页面对应所述多个进程的管理模式修改为分布式共享内存模式。
本发明第五方面提供一种计算机系统,包括:
总线、
与所述总线相连的处理器、
与所述总线相连的存储器、
其中,所述处理器通过所述总线调用所述存储器中存储的代码,以用于监测进程对共享虚拟内存页面的访问特性;若监测出的所述访问特性符合第一设定条件,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将所述共享虚拟内存页面的管理模式修改为共享物理内存模式。
本发明第六方面提供一种计算机系统,包括:
总线、
与所述总线相连的处理器、
与所述总线相连的存储器、
其中,所述处理器通过所述总线调用所述存储器中存储的代码,以用于监测进程对共享虚拟内存页面的访问特性;若监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
可以看出,本发明实施例中通过监测共享虚拟内存页面的访问特性;若监测出的上述访问特性符合第一设定条件,且上述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将上述共享虚拟内存页面的管理模式修改为共享物理内存模式;或若监测出的上述访问特性符合第二设定条件,且上述共享虚拟内存页面当前的管理模式为共享物理内存模式,将上述共享虚拟内存页面的管理模式修改为分布式共享内存模式。由于提出了根据访问特性监测结果重置共享虚拟内存页面的管理模式的机制,这样有利于管理模式和访问特性更相宜匹配,进而有利于更好发挥DSM模式或SPM模式的优势,为提升共享虚拟内存的访问性能奠定了机制基础。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供了一种确定共享虚拟内存页面管理模式的方法的流程示意图;
图2-a是本发明实施例提供了一种DSM模式下的共享虚拟地址空间示意图;
图2-b是本发明实施例提供了一种DSM模式下的私有物理内存空间示意图;
图3是本发明实施例提供了另一种确定共享虚拟内存页面管理模式的方法的流程示意图;
图4是本发明实施例提供了另一种确定共享虚拟内存页面管理模式的方法的流程示意图;
图5-a是本发明实施例提供了一种确定共享虚拟内存页面管理模式的装置的示意图;
图5-b是本发明实施例提供了一种确定共享虚拟内存页面管理模式的装置的示意图;
图5-c是本发明实施例提供了一种确定共享虚拟内存页面管理模式的装置的示意图;
图6为本发明提供的一种计算机系统的结构示意图;
图7是本发明实施例提供了另一种计算机系统的示意图。
具体实施方式
本发明实施例提供确定共享虚拟内存页面管理模式的方法和相关设备,以期提升共享虚拟内存的访问性能。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是还可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明确定共享虚拟内存页面管理模式的方法的一个实施例,一种确定共享虚拟内存页面管理模式的方法可以包括:监测进程对共享虚拟内存页面的访问特性;若监测出的上述访问特性符合第一设定条件,且上述共享虚拟内存页面当前的管理模式为DSM模式,则将上述共享虚拟内存页面的管理模式修改为SPM模式;和/或,若监测出的上述访问特性符合第二设定条件,且上述共享虚拟内存页面当前的管理模式为SPM模式,将上述共享虚拟内存页面的管理模式修改为DSM模式。
请参见图1,图1为本发明实施例提供的一种确定共享虚拟内存页面管理模式的方法的流程示意图。如图1所示,本发明实施例提供的一种确定共享虚拟内存页面管理模式的方法可包括以下内容:
101、监测进程对共享虚拟内存页面的访问特性。
在本发明的一些实施例中,例如可监测N个进程对共享虚拟内存页面(为便于引述,下面可称之为第一共享虚拟内存页面)的访问特性,其中,N为正整数。例如,若N等于1,则上述N个进程可指系统当前存在的任意一个进程或特定的某一个进程;若N大于1,则上述N个进程可指系统当前存在的部分进程或全部进程,例如N个进程可指系统当前存在的,可能访问第一共享虚拟内存页面的部分进程或全部进程。在本发明的一些实施例中,例如可利用CPU的性能计数器(performance counters)或其它硬件或程序来监控共享虚拟内存页面访问特性。
在本发明的一些实施例中,例如可以监测进程对共享虚拟内存页面的各种访问特性,访问特性例如可包括:访问频率和/或访问方式等,其中,访问方式可能包括:只读访问、读写访问(其中,读写访问指既有读访问又有写访问)或写访问等。也就是说,可监测进程对共享虚拟内存页面的访问频率和/或访问方式等访问特性。
在本发明的一些实施例中,进程对第一共享虚拟内存页面的访问频率可以指单位时间内进程对第一共享虚拟内存页面访问次数。举例来说,某个进程对第一共享虚拟内存页面的访问频率,可以指单位时间内该某个进程对第一共享虚拟内存页面访问的次数。同理,多个进程对第一共享虚拟内存页面的访问频率可以指,单位时间内该多个进程对第一共享虚拟内存页面访问次数。
在本发明的另一些实施例中,进程对第一共享虚拟内存页面的访问频率也可指某时长内(如单位时长内),进程对第一共享虚拟内存页面访问次数占进程对N1个共享虚拟内存页面访问总次数的比例,其中,该N1个共享虚拟内存页面包括第一共享虚拟内存页面,N1为大于1的正整数。举例来说,某个进程对第一共享虚拟内存页面的访问频率,可以指某时长内该某个进程对第一共享虚拟内存页面访问的次数,占该某个进程对N1个共享虚拟内存页面访问总次数的比例;而多个进程对第一共享虚拟内存页面的访问频率可以指,某时长内该多个进程对第一共享虚拟内存页面的总访问次数,占该多个进程对N1个共享虚拟内存页面访问总次数的比例。
当然,访问频率的计算方式也不限于上述举例,还可根据需要定义出符合自然规律的其它计算方式。
102、若监测出的上述访问特性符合第一设定条件,且第一共享虚拟内存页面当前的管理模式为DSM模式,则将第一共享虚拟内存页面的管理模式修改为SPM模式;和/或,若监测出的上述访问特性符合第二设定条件,且第一共享虚拟内存页面当前的管理模式为SPM模式,将第一共享虚拟内存页面的管理模式修改为DSM模式。
可以理解的是,监测的访问特性不同,第一设定条件和第二设定条件也可能随之不同。例如若监测的访问特性为访问频率,则第一设定条件和第二设定条件可包括与访问频率相关的设定条件;若监测的访问特性为访问方式,则第一设定条件和第二设定条件可包括与访问方式相关的设定条件,若监测的访问特性包括访问频率和访问方式,则第一设定条件和第二设定条件可包括与访问频率和访问方式都相关的设定条件。
在本发明的一些实施例中,若监测的访问特性包括进程对第一共享虚拟内存页面的访问频率,则第一设定条件可包括:访问频率小于或等于第一阈值(第一阈值例如可为1000次/秒、2000次/秒、5000次/秒或其它频率值)。第二设定条件可包括:访问频率大于第二阈值,其中,第一阈值可小于或者等于第二阈值,其中第二阈值例如可为1000次/秒、2000次/秒、3000次/秒、5000次/秒或其它频率值)。其中,第二阈值大于或等于第一阈值。在此场景下,若监测出的访问频率小于或等于第一阈值,且第一共享虚拟内存页面当前的管理模式为DSM模式,可将第一共享虚拟内存页面的管理模式修改为SPM模式。和/或若监测出的访问频率大于第二阈值,且第一共享虚拟内存页面当前的管理模式为SPM模式,可将第一共享虚拟内存页面的管理模式修改为DSM模式。
可以理解,这种策略可看做是根据访问数据的消耗选择策略。
在本发明的另一些实施例中,若监测的访问特性包括进程对共享虚拟内存页面的访问方式,则第一设定条件可包括写访问或读写访问(或写访问比例超过第四阈值或写访问频率超过第三阈值),其中,只有写访问的情况可认为是写访问次数的占读写访问总次数的比例为100%;第二设定条件可包括只读访问或读访问比例超过第六阈值或读访问频率超过第五阈值,其中,第四阈值与第六阈值之和可大于或等于1。在此场景下,若监测出的访问方式为,写访问或读写访问(或写访问比例超过第四阈值或写访问频率超过第三阈值),且第一共享虚拟内存页面当前的管理模式为DSM模式,可将第一共享虚拟内存页面的管理模式修改为SPM模式。和/或,若监测出的访问方式为只读访问(或读访问比例超过第六阈值或读访问频率超过第五阈值),且第一共享虚拟内存页面当前的管理模式为SPM模式,可将第一共享虚拟内存页面的管理模式修改为DSM模式,其中,只读访问的情况可认为是读访问次数的占读写访问总次数的比例为100%。写访问比例指写访问次数的占读写访问总次数的比例,读访问比例指读访问次数的占读写访问总次数的比例。其它情况以此类推。可以理解,这种策略可看做是根据访问同步的消耗选择策略。
可以理解的是,在不同的多核或众核系统中,将第一共享虚拟内存页面的管理模式修改为DSM模式的方式可能不尽相同。
在本发明的一些实施例中,将第一共享虚拟内存页面的管理模式修改为DSM模式可包括:在第一物理内存空间中为第一共享虚拟内存页面分配第一物理内存页面;将第二物理内存页面中存储的数据拷贝到第一物理内存页面,其中,第二物理内存页面归属于共享物理内存空间(共享物理内存空间是几个核可共享的物理内存空间),所述第二物理内存页面为第一共享虚拟内存页面当前所映射的物理内存页面;建立第一共享虚拟内存页面和第一物理内存页面之间的映射关系;将DSM模式作为第一共享虚拟内存页面的管理模式进行记录。
在本发明的一些实施例中,将上述共享虚拟内存页面的管理模式修改为SPM模式可包括:建立第一共享虚拟内存页面和第三物理内存页面之间的映射关系,其中,第三物理内存页面归属于共享物理内存空间(共享物理内存空间是几个核可共享的物理内存空间);将SPM模式作为第一共享虚拟内存页面的管理模式进行记录,其中,第一共享虚拟内存页面之前所映射的物理内存页面所存储数据未被修改。
在本发明的一些实施例中,将上述共享虚拟内存页面的管理模式修改为SPM模式可包括:将第四物理内存页面所存储数据中的被修改数据同步到第三物理内存页面,建立第一共享虚拟内存页面和第三物理内存页面之间的映射关系,其中,第三物理内存页面归属于共享物理内存空间(共享物理内存空间是几个核可共享的物理内存空间);将SPM模式作为第一共享虚拟内存页面的管理模式进行记录,其中,第四物理内存页为第一共享虚拟内存页面之前所映射的物理内存页面。
其中,第四物理内存页面所存储数据中的被修改数据(数据可能被某个进程所修改),可指第四物理内存页面所存储的取值发生变化的变量,例如第三物理内存页面存储的变量y1、变量y2和变量y3被拷贝到第四物理内存页面,第四物理内存页面存储变量y1、变量y2和变量y3后,变量y1和变量y2的取值未发生变化,而变量y2的取值相对与原始拷贝由0变为1,则第四物理内存页面所存储数据中的被修改数据包括变量y2,变量y2即为被修改数据,其它情况可以此类推。
其中,将DSM模式/SPM模式作为第一共享虚拟内存页面的管理模式进行记录的方式可以是多种多样的,例如针对第一共享虚拟内存页面设置一个管理模式标志位,通过将该管理模式标志位设置为不同取值,来标识第一共享虚拟内存页面的管理模式为DSM模式/SPM模式。又或者,也可将某个进程(或多个进程或全部进程)的页面信息结构体中记录的第一共享虚拟内存页面的管理模式记录为DSM模式/SPM模式,其它方式不再举例。
在本发明的一些实施例中,可以针对每个共享虚拟内存页面(如第一共享虚拟内存页面)来设置管理模式(如DSM模式或SPM模式),此场景下,对于所有访问第一共享虚拟内存页面的进程而言,第一共享虚拟内存页面的管理模式是相同的。当然,也可针对每个共享虚拟内存页面(如第一共享虚拟内存页面)对应每个进程,分别设置管理模式(如DSM模式或SPM模式),此场景下对于所有访问第一共享虚拟内存页面的进程而言,第一共享虚拟内存页面的管理模式可能是相同或不同的,举例来说,假设存在进程A和进程B,第一共享虚拟内存页面对应进程A的管理模式可能是DSM模式,而第一共享虚拟内存页面对应进程B的管理模式可能是SPM模式。
在本发明的一些实施例中,可监测第一进程对第一共享虚拟内存页面的访问特性,其中,第一进程可包括M1个进程,其中,M1为正整数;若监测出的上述访问特性符合第一设定条件,且第一共享虚拟内存页面当前对应第一进程的管理模式为DSM模式,可将第一共享虚拟内存页面对应第一进程的管理模式修改为SPM模式。和/或,若监测出的访问特性符合第二设定条件,且第一共享虚拟内存页面当前对应第一进程的管理模式为SPM模式,可将第一共享虚拟内存页面对应第一进程的管理模式修改为DSM模式。在这种场景下,若第一进程包括多个进程,则第一共享虚拟内存页面对应这多个进程的管理模式是相同的(DSM模式或SPM模式)。
进一步的,还可监测第二进程对第一共享虚拟内存页面的访问特性,其中第二进程包括M2个进程,M2为正整数,第二进程不同于第一进程;若监测出的第二进程对第一共享虚拟内存页面的访问特性符合第三设定条件,且第一共享虚拟内存页面当前对应第二进程的管理模式为DSM模式,可将第一共享虚拟内存页面对应第二进程的管理模式修改为SPM模式;和/或,若监测出的第二进程对第一共享虚拟内存页面的访问特性符合第四设定条件,且第一共享虚拟内存页面当前对应第二进程的管理模式为SPM模式,可将第一共享虚拟内存页面对应第二进程的管理模式修改为DSM模式。其中,第三设定条件与第一条件相同或不同。第四设定条件与第二条件相同或不同。
在这种场景下,第一共享虚拟内存页面对应第一进程的管理模式,与第一共享虚拟内存页面对应第二进程的管理模式可能相同或不同,即,同一享虚拟内存页面对应不同进程的管理模式可能是相同或不同的,这种方式可称异步映射方式。当然,对于第二进程而言,如果直接使用通过监测第一进程对第一共享虚拟内存页面的访问特性而确定的第一共享虚拟内存页面的管理模式,则可无需执行监测第二进程对第一共享虚拟内存页面的访问特性的步骤,而可直接将第一共享虚拟内存页面当前对应第二进程的管理模式,设置为与第一共享虚拟内存页面当前对应第一进程的管理模式相同的管理模式。例如,若通过监测第一进程对第一共享虚拟内存页面的访问特性,确定的第一共享虚拟内存页面对应第一进程的管理模式为DSM模式,则可将第一共享虚拟内存页面对应第二进程的管理模式也设为DSM模式,以此类推。
在本发明的一些实施例中,对于监测多个进程(如第一进程或第二进程包括多个进程的场景)对第一共享虚拟内存页面的访问特性的场景,例如,可将监测出的该多个进程中的其中一个进程(其中,该其中一个进程可以是该多个进程中的任意一个进程,或者也可以是该多个进程中访问特性参数值最大的一个)对第一共享虚拟内存页面的访问特性,作为监测出的多个进程对第一共享虚拟内存页面的访问特性。又或者,也可将监测出的该多个进程中对第一共享虚拟内存页面的综合访问特性,作为监测出的多个进程对第一共享虚拟内存页面的访问特性,例如,可将分别监测出的该多个进程中的每个进程对第一共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值(或其它方式的综合访问特性),作为监测出的该多个进程对第一共享虚拟内存页面的访问特性。具体举例来说,例如可将分别监测出的该多个进程中的每个进程对第一共享虚拟内存页面的访问频率(或读访问频率或读访问比例或写访问频率或写访问比例)的平均值或加权平均值或和值或加权和值(其中,每个进程对应加权的取值可根据实际需要进行设定,当然都可等于1),作为监测出的该多个进程对第一共享虚拟内存页面的访问特性。对于第一进程或第二进程包括多个进程的场景,可考虑按照上述举例的方式来确定监测出的第一进程或第二进程对第一共享虚拟内存页面的访问特性,其它情况以此类推。
下面简单的对DSM模式和SPM模式的工作方式进行介绍。
基于DSM模式,一个并行程序的各进程间可拥有一个相同的共享虚拟地址空间,每个进程分别将共享虚拟地址空间中的部分或者全部虚拟内存页面映射到该进程维护的私有物理内存空间。各个进程在用户层面看到的是一个完整的共享虚拟地址空间,而感知不到共享虚拟地址空间中某块虚拟内存页面包含的共享数据实际上是在其它进程维护的私有物理内存空间中。
其中,各个进程可以对共享虚拟地址空间进行任意数据操作,DSM底层通过片上网络(On-chip Network)或者所有进程都可以访问的系统共享物理内存在各进程间进行数据的同步。一个并行程序的多个进程可以运行于一个处理器核上,也可以是每个进程运行于一个单独处理器核上。
例如图2-a所示,图2-a中的a区域为程序的共享虚拟地址空间,4个进程P0~P3分别运行在不同的处理器核上,它们有一个统一的共享虚拟地址空间用于存放共享数据,其中,虚拟地址空间中的第1块区域映射到P0的私有物理内存空间中,第2块区域映射到P1的私有物理内存空间,第3块区域映射到P2的私有物理内存空间,第4块区域映射到P3的私有物理内存空间。
例如图2-b所示,图2-b中home区域为各个进程的私有物理地址空间,每个进程分别维护了共享虚拟地址空间所映射的一块不重叠的物理内存空间(图中home所示部分),如果进程1访问共享虚拟地址空间中由进程2维护的物理内存区域中的变量z,DSM协议把进程2维护的包含变量z的物理内存页面复制到进程1的物理内存中(见图2-b中P1的cache所示部分),这样进程1就可以访问变量z了。DSM协议在系统中维护变量z的一致性,保证进程1和进程2看到的变量z是相同的。
DSM模式将共享虚拟地址空间中的虚拟内存页面映射到进程维护的私有物理内存空间,私有物理内存空间数据一般被配置为被L1Cache、L2Cache所缓存,因此,CPU读数据时具有很高的Cache命中率(cache hits),写数据时同样具有很高的Cache命中率,这对程序性能有很大的正面效应。
基于SPM模式,主要通过在同一并行程序的所有进程中把共享虚拟地址空间映射到共享物理地址空间,来实现软件缓存一致性。其中,SPM模式通常禁止使用L2Cache,并且,L1Cache通常被设置为写直达(WT,Write Through)策略。一般来说,基于SPM模式,一个内存页面一般只在共享物理内存空间维护一份拷贝,可节省物理内存空间。
研究和实践发现,DSM模式和SPM模式各有优缺点,DSM模式和SPM模式分别对不同的访问特性(如不同访问频率、不同访问方式)有一定偏好,因此本发明实施例方案中监控进程对共享虚拟内存页面的访问特性,根据监测到的访问特性来确定是否重置该共享虚拟内存页面的管理模式,这种访问特性和管理模式自适应机制有利于提升共享虚拟内存页面访问性能,进而有利于提高相应程序的性能和用户体验。
可以看出,本发明实施例中通过监测共享虚拟内存页面的访问特性;若监测出的上述访问特性符合第一设定条件,且上述共享虚拟内存页面当前的管理模式为DSM模式,将上述共享虚拟内存页面的管理模式修改为SPM模式;和/或,若监测出的上述访问特性符合第二设定条件,且上述共享虚拟内存页面当前的管理模式为SPM模式,将上述共享虚拟内存页面的管理模式修改为DSM模式。其中,由于提出了根据访问特性监测结果来重置共享虚拟内存页面的管理模式的机制,这样有利于管理模式和访问特性更相宜匹配,进而有利于更好发挥DSM模式或SPM模式的优势,为提升共享虚拟内存的访问性能奠定了机制基础。
为便于更好的理解和实施本发明实施例的上述方案,下面举例几个应用场景来进行说明。
请参见图3,图3为本发明实施例提供的另一种确定共享虚拟内存页面管理模式的方法的流程示意图。如图3所示,本发明实施例提供的另一种确定共享虚拟内存页面管理模式的方法可包括以下内容:
301、监测N个进程对共享虚拟内存页面X的访问特性。
其中,N为大于1的正整数。例如上述N个进程可指系统当前存在的部分进程或全部进程,例如N个进程可指系统当前存在的,可能访问共享虚拟内存页面X的部分进程或全部进程。
可以理解,本实施例中的共享虚拟内存页面X可对应上述实施例中的第一共享虚拟内存页面。
在本发明的一些实施例中,例如可以监测N个进程对共享虚拟内存页面X的各种访问特性,本实施例中主要以检测N个进程对共享虚拟内存页面X的访问频率为例。
在本发明的一些实施例中,N个进程对共享虚拟内存页面X的访问频率可以指单位时间内进程对共享虚拟内存页面X访问次数。在本发明的另一些实施例中,N个进程对共享虚拟内存页面X的访问频率也可指某时长内(如单位时长内),N个进程对共享虚拟内存页面X访问次数占该N个进程对N1个共享虚拟内存页面访问总次数的比例,其中,该N1个共享虚拟内存页面包括共享虚拟内存页面X,N1为大于1的正整数。当然,N个进程对共享虚拟内存页面X的访问频率的计算方式也不限于上述举例,还可根据需要定义出符合自然规律的其它计算方式。
302、判断监测出的上述N个进程对共享虚拟内存页面X的访问频率小于或者等于第一阈值;
若是,执行步骤303;
若否,执行步骤304。
303、若监测出的上述N个进程对共享虚拟内存页面X的访问频率小于或者等于第一阈值,并且共享虚拟内存页面X当前对应上述N个进程的管理模式为DSM模式,则将共享虚拟内存页面X对应上述N个进程的管理模式修改为SPM模式,并可返回步骤301;此外,若共享虚拟内存页面X当前对应上述N个进程的管理模式为SPM模式,则返回步骤301。
304、若监测出上述N个进程对共享虚拟内存页面X的访问频率大于第二阈值,且共享虚拟内存页面X当前对应上述N个进程的管理模式为SPM模式,将共享虚拟内存页面X对应上述N个进程的管理模式修改为DSM模式,并可返回步骤301;此外若共享虚拟内存页面X当前对应上述N个进程的管理模式为DSM模式,则可返回步骤301。
在本发明的一些实施例中,第一阈值例如可为1000次/秒、2000次/秒、5000次/秒或其它频率值,第一阈值可小于或者等于第二阈值,第二阈值例如可为1000次/秒、2000次/秒、3000次/秒、5000次/秒或其它频率值。在本发明另一些实施例中,第一阈值例如可为20%、25%、30%、35%或其它比例值,第一阈值可小于或等于第二阈值,第二阈值例如可为20%、25%、30%、35%或其它比例值。可以理解,这种策略可看做是根据访问数据的消耗选择策略。
可以理解的是,在不同的多核或众核系统中,将共享虚拟内存页面X对应上述N个进程的管理模式修改为DSM模式的方式可能不尽相同。
在本发明的一些实施例中,将共享虚拟内存页面X对应上述N个进程的管理模式修改为DSM模式可包括:在第一物理内存空间中为第一共享虚拟内存页面分配第一物理内存页面;将第二物理内存页面中存储的数据拷贝到第一物理内存页面,其中,第二物理内存页面归属于共享物理内存空间,第二物理内存页面为共享虚拟内存页面X当前所映射的物理内存页面;建立共享虚拟内存页面X和第一物理内存页面之间的映射关系;将DSM模式作为共享虚拟内存页面X对应上述N个进程的管理模式进行记录。例如,可将上述N个进程的页面信息结构体中记录的共享虚拟内存页面X的管理模式都记录为DSM模式。
在本发明的一些实施例中,将共享虚拟内存页面X对应上述N个进程的管理模式修改为SPM模式可以包括:建立共享虚拟内存页面X和第三物理内存页面之间的映射关系,其中,第三物理内存页面归属于共享物理内存空间;将SPM模式作为共享虚拟内存页面X对应上述N个进程的管理模式进行记录。例如可将上述N个进程的页面信息结构体中记录的共享虚拟内存页面X的管理模式都记录为SPM模式。进一步的,建立共享虚拟内存页面X和第三物理内存页面之间的映射关系之前还可包括:将共享虚拟内存页面X之前所映射的第四物理内存页面所存储数据中的被修改数据同步到第三物理内存页面。当然,若共享虚拟内存页面X之前所映射的第四物理内存页面所存储数据未修改,则可省略数据同步的步骤。第四物理内存页面为共享虚拟内存页面X之前所映射的物理内存页面。
由于DSM模式和SPM模式分别对不同的访问频率有一定偏好,因此本实施例方案中,监控N个进程对共享虚拟内存页面的访问特性,根据监测到的访问特性来确定是否重置该共享虚拟内存页面对应该N个进程的管理模式,这种访问特性和管理模式自适应机制有利于提升共享虚拟内存页面访问性能,进而有利于提高相应程序的性能和用户体验。
请参见图4,图4为本发明实施例提供的另一种确定共享虚拟内存页面管理模式的方法的流程示意图。本发明实施例提供的另一种确定共享虚拟内存页面管理模式的方法可包括以下内容:
401、监测进程A和进程B对共享虚拟内存页面X的访问特性。
在本发明的一些实施例中,例如可以监测进程A和进程B对共享虚拟内存页面X的各种访问特性,本实施例中主要以检测进程A和进程B对共享虚拟内存页面X的访问频率为例。
可以理解,本实施例中的共享虚拟内存页面X可对应上述实施例中的第一共享虚拟内存页面。
在本发明的一些实施例中,进程A和进程B对共享虚拟内存页面X的访问频率可以指单位时间内进程A和进程B分别对共享虚拟内存页面X访问次数。
在本发明的另一些实施例中,进程A和进程B对共享虚拟内存页面X的访问频率也可指某时长内(如单位时长内),进程A和进程B分别对共享虚拟内存页面X访问次数占进程A和进程B分别对N1个共享虚拟内存页面访问总次数的比例。其中,该N1个共享虚拟内存页面包括共享虚拟内存页面X,N1为大于1的正整数。
当然,进程A和进程B对共享虚拟内存页面X的访问频率的计算方式也不限于上述举例,还可根据需要定义出符合自然规律的其它计算方式。
402、判断监测出的进程A对共享虚拟内存页面X的访问频率小于或者等于第一阈值;
若是,执行步骤403;
若否,执行步骤404。
403、若监测出的进程A对共享虚拟内存页面X的访问频率小于或者等于第一阈值,并且共享虚拟内存页面X当前对应进程A的管理模式为DSM模式,则将共享虚拟内存页面X对应进程A的管理模式修改为SPM模式,并可返回步骤401;此外,若共享虚拟内存页面X当前对应进程A的管理模式为SPM模式,则返回步骤401。
404、若监测出进程A对共享虚拟内存页面X的访问频率大于第二阈值,且共享虚拟内存页面X当前对应进程A的管理模式为SPM模式,将共享虚拟内存页面X对应进程A的管理模式修改为DSM模式,并可返回步骤401;此外若共享虚拟内存页面X当前对应进程A的管理模式为DSM模式,则可返回步骤401。
405、判断监测出的进程B对共享虚拟内存页面X的访问频率小于或者等于第一阈值;
若是,执行步骤406;
若否,执行步骤407。
406、若监测出的进程B对共享虚拟内存页面X的访问频率小于或者等于第一阈值,并且共享虚拟内存页面X当前对应进程B的管理模式为DSM模式,则将共享虚拟内存页面X对应进程B的管理模式修改为SPM模式,并可返回步骤401;此外,若共享虚拟内存页面X当前对应进程B的管理模式为SPM模式,则返回步骤401。
407、若监测出进程B对共享虚拟内存页面X的访问频率大于第二阈值,且共享虚拟内存页面X当前对应进程B的管理模式为SPM模式,将共享虚拟内存页面X对应进程B的管理模式修改为DSM模式,并可返回步骤401;此外若共享虚拟内存页面X当前对应进程B的管理模式为DSM模式,则可返回步骤401。
可以理解,步骤402~404和步骤405~407之间没有必然的先后顺序,可同步或分步执行。
在本发明的一些实施例中,第一阈值例如可为1000次/秒、2000次/秒、5000次/秒或其它频率值,第一阈值可小于或者等于第二阈值,第二阈值例如可为1000次/秒、2000次/秒、3000次/秒、5000次/秒或其它频率值。在本发明另一些实施例中,第一阈值例如可为20%、25%、30%、35%或其它比例值,第一阈值可小于或等于第二阈值,第二阈值例如可为20%、25%、30%、35%或其它比例值。
可以理解,这种策略可看做是根据访问数据的消耗选择策略。
可以理解的是,在不同的多核或众核系统中,将共享虚拟内存页面X对应进程A(或进程B)的管理模式修改为DSM模式的方式可能不尽相同。
在本发明的一些实施例中,将第一共享虚拟内存页面对应进程A(或进程B)的管理模式修改为DSM模式可包括:在第一物理内存空间中为共享虚拟内存页面X分配第一物理内存页面;将第二物理内存页面中存储的数据拷贝到第一物理内存页面,其中,第二物理内存页面归属于共享物理内存空间,第二物理内存页面为共享虚拟内存页面X当前所映射的物理内存页面;建立共享虚拟内存页面X和第一物理内存页面之间的映射关系;将DSM模式作为共享虚拟内存页面X对应进程A(或进程B)的管理模式进行记录。例如,可将进程A(或进程B)的页面信息结构体中记录的共享虚拟内存页面X的管理模式都记录为DSM模式。此外,在本发明的一些实施例中,第二物理内存页面后续可仍然有效,而第二物理内存页面可作为以DSM模式作为共享虚拟内存页面X的管理模式的进程间,以SPM模式作为共享虚拟内存页面X的管理模式的进程间,以及以DSM模式作为共享虚拟内存页面X的管理模式的进程和以SPM模式作为共享虚拟内存页面X的管理模式的进程之间针对于共享虚拟内存页面X的同步通道。
在本发明的一些实施例中,将共享虚拟内存页面X对应进程A(或进程B)管理模式修改为SPM模式可包括:建立共享虚拟内存页面X和第三物理内存页面之间的映射关系,其中,第三物理内存页面归属于共享物理内存空间;将SPM模式作为共享虚拟内存页面X对应进程A(或进程B)的管理模式进行记录。例如可将进程A(或进程B)的页面信息结构体中记录的共享虚拟内存页面X的管理模式都记录为SPM模式。进一步的,建立共享虚拟内存页面X和第三物理内存页面之间的映射关系之前,还可包括:将共享虚拟内存页面X之前所映射的第四物理内存页面所存储数据中的被修改数据同步到第三物理内存页面。
当然,若共享虚拟内存页面X之前所映射的第四物理内存页面所存储数据未被修改,则可省略数据同步的步骤。
由于DSM模式和SPM模式分别对不同的访问频率有一定偏好,因此本实施例方案中,分别监控进程A和进程B对共享虚拟内存页面的访问特性,根据监测到的访问特性来分别确定是否重置该共享虚拟内存页面对应进程A和进程B的管理模式,这种访问特性和管理模式自适应机制有利于提升共享虚拟内存页面访问性能,进而有利于提高相应程序的性能和用户体验。并且,针对不同进程的访问特性,分别确定是否重置该共享虚拟内存页面对应该进程的管理模式,这样针对性更强,有利于更好的提升访问性能。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
参见图5-a、本发明实施例提供一种确定共享虚拟内存页面管理模式的装置500可包括:监控单元510和第一重映射单元520。
其中,监控单元510,监测进程对共享虚拟内存页面的访问特性。
与监控单元510连接的第一重映射单元520,用于若监控单元510监测出的上述访问特性符合第一设定条件,且上述共享虚拟内存页面当前的管理模式为DSM模式,将上述共享虚拟内存页面的管理模式修改为SPM模式;
参见图5-b,确定共享虚拟内存页面管理模式的装置500还可包括,
与监控单元510连接的第二重映射单元530,用于若监控单元510监测出的上述访问特性符合第二设定条件,且上述共享虚拟内存页面当前的管理模式为SPM模式,将上述共享虚拟内存页面的管理模式修改为DSM模式。
参见图5-c,确定共享虚拟内存页面管理模式的装置500可包括,
与监控单元510连接的第二重映射单元530,用于若监控单元510监测出的上述访问特性符合第二设定条件,且上述共享虚拟内存页面当前的管理模式为SPM模式,将上述共享虚拟内存页面的管理模式修改为DSM模式。
可以理解的是,监测的访问特性不同,第一设定条件和第二设定条件也可能随之不同。例如若监测的访问特性为访问频率,则第一设定条件和第二设定条件可包括与访问频率相关的设定条件;若监测的访问特性为访问方式,则第一设定条件和第二设定条件可包括与访问方式相关的设定条件,若监测的访问特性包括访问频率和访问方式,则第一设定条件和第二设定条件可包括与访问频率和访问方式都相关的设定条件。
在本发明的一些实施例中,若监测的访问特性包括进程对第一共享虚拟内存页面的访问频率,则第一设定条件可包括:访问频率小于或等于第一阈值(第一阈值例如可为1000次/秒、2000次/秒、5000次/秒或其它频率值)。第二设定条件可包括:访问频率大于第二阈值,其中,第一阈值可小于或者等于第二阈值,其中第二阈值例如可为1000次/秒、2000次/秒、3000次/秒、5000次/秒或其它频率值)。其中,第二阈值大于或等于第一阈值。在此场景下,若监测出的访问频率小于或等于第一阈值,且第一共享虚拟内存页面当前的管理模式为DSM模式,可将第一共享虚拟内存页面的管理模式修改为SPM模式。和/或若监测出的访问频率大于第二阈值,且第一共享虚拟内存页面当前的管理模式为SPM模式,可将第一共享虚拟内存页面的管理模式修改为DSM模式。可以理解,这种策略可看做是根据访问数据的消耗选择策略。
在本发明的另一些实施例中,若监测的访问特性包括进程对共享虚拟内存页面的访问方式,则第一设定条件可包括写访问或读写访问(或写访问比例超过第四阈值或写访问频率超过第三阈值);第二设定条件可包括只读访问或读访问比例超过第六阈值或读访问频率超过第五阈值,其中,第四阈值与第六阈值之和可大于或等于1。在此场景下,若监测出的访问方式为,写访问或读写访问(或写访问比例超过第四阈值或写访问频率超过第三阈值),且第一共享虚拟内存页面当前的管理模式为DSM模式,可将第一共享虚拟内存页面的管理模式修改为SPM模式。和/或,若监测出的访问方式为只读访问(或读访问比例超过第六阈值或读访问频率超过第五阈值),且第一共享虚拟内存页面当前的管理模式为SPM模式,可将第一共享虚拟内存页面的管理模式修改为DSM模式,其它情况以此类推。可以理解,这种策略可看做是根据访问同步的消耗选择策略。
在本发明一些实施例中,第一设定条件可包括:访问频率小于或等于第一阈值、或访问方式为读写访问或写访问、或写访问的频率大于第三阈值、或者写访问的比例大于第四阈值。
在本发明的一些实施例中,监控单元510具体用于监测进程对共享虚拟内存页面的访问频率;
第一重映射单元520可具体用于,若监控单元510监测出的访问频率小于或等于第一阈值,且上述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将上述共享虚拟内存页面的管理模式修改为共享物理内存模式。
或者监控单元510具体用于监测进程对共享虚拟内存页面的访问方式;重映射单元第一520可具体用于,若监控单元510监测出的访问方式为读写访问或写访问,且上述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将上述共享虚拟内存页面的管理模式修改为共享物理内存模式。
或者,监控单元510具体用于监测进程对共享虚拟内存页面的写访问的频率;重映射单元第一520可具体用于,若监控单元510监测出的写访问的频率大于第三阈值,且上述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将上述共享虚拟内存页面的管理模式修改为共享物理内存模式。
或者,监控单元510具体用于监测进程对共享虚拟内存页面的写访问的比例;重映射单元第一520可具体用于,若监控单元510监测出的写访问的比例大于第四阈值,且上述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将上述共享虚拟内存页面的管理模式修改为共享物理内存模式。
在本发明一些实施例中,第二设定条件包括:访问频率大于第二阈值、或者访问方式为只读访问、或者读访问的频率大于第五阈值、或者读访问的比例大于第六阈值,其中,第二阈值可大于或等于第一阈值。
其中,监控单元510具体用于监测进程对共享虚拟内存页面的访问频率;第二重映射单元530可具体用于,若监控单元510监测出的访问频率大于第二阈值,且上述共享虚拟内存页面当前的管理模式为共享物理内存模式,将上述共享虚拟内存页面的管理模式修改为分布式共享内存模式;
或者,监控单元510具体用于监测进程对共享虚拟内存页面的访问方式;第二重映射单元530可具体用于,若监控单元510监测出的访问方式为只读访问,且上述共享虚拟内存页面当前的管理模式为共享物理内存模式,将上述共享虚拟内存页面的管理模式修改为分布式共享内存模式;
或者,监控单元510具体用于监测进程对共享虚拟内存页面的读访问的频率;第二重映射单元530可具体用于,若监控单元510监测出的读访问的频率大于第五阈值,且上述共享虚拟内存页面当前的管理模式为共享物理内存模式,将上述共享虚拟内存页面的管理模式修改为分布式共享内存模式;
或者,控单元510具体用于监测进程对共享虚拟内存页面的读访问的比例;第二重映射单元530可具体用于,若监控单元510监测出的读访问的比例大于第六阈值,且上述共享虚拟内存页面当前的管理模式为共享物理内存模式,将上述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
在本发明的一些实施例中,第一重映射单元520可具体用于,若监控单元510监测出的上述访问特性符合第一设定条件,且上述共享虚拟内存页面当前管理模式为DSM模式,建立上述共享虚拟内存页面和第三物理内存页面之间的映射关系,第三物理内存页面归属于共享物理内存空间;将SPM模式作为上述共享虚拟内存页面的管理模式进行记录,其中,上述共享虚拟内存页面之前映射的物理内存页面所存储数据未被修改。
在本发明的一些实施例中,第一重映射单元520也可具体用于,若监控单元510监测出的上述访问特性符合第一设定条件,且上述共享虚拟内存页面当前管理模式为DSM模式,将第四物理内存页面所存储数据中的被修改数据同步到第三物理内存页面;建立上述共享虚拟内存页面和第三物理内存页面之间的映射关系,第三物理内存页面归属于共享物理内存空间;将SPM模式作为上述共享虚拟内存页面的管理模式进行记录,其中,第四物理内存页面为上述共享虚拟内存页面之前映射的物理内存页面,且该物理内存页面所存储数据被修改。
在本发明的一些实施例中,第二重映射单元530可具体用于,若监控单元510监测出的上述访问特性符合第二设定条件,且上述共享虚拟内存页面当前的管理模式为SPM模式,在第一物理内存空间中为上述共享虚拟内存页面分配第一物理内存页面;将第二物理内存页面中存储的数据拷贝到第一物理内存页面,第二物理内存页面归属于共享物理内存空间,第二物理内存页面为上述共享虚拟内存页面当前所映射的物理内存页面;建立上述共享虚拟内存页面和第一物理内存页面之间的映射关系;将DSM模式作为上述共享虚拟内存页面的管理模式进行记录。
在本发明的一些实施例中,监控单元510具体用于,监测第一进程对共享虚拟内存页面的访问特性,其中,第一进程包括M1个进程,其中,M1为正整数;
第一重映射单元520可具体用于,若监控单元510监测出的第一进程对共享虚拟内存页面的访问特性符合第一设定条件,且上述共享虚拟内存页面当前对应第一进程的管理模式为DSM模式,将上述共享虚拟内存页面对应第一进程的管理模式修改为SPM模式。
第二重映射单元530可具体用于,若监控单元510监测出的第一进程对共享虚拟内存页面的访问特性符合第二设定条件,且上述共享虚拟内存页面当前对应第一进程的管理模式为SPM模式,将上述共享虚拟内存页面对应第一进程的管理模式修改为DSM模式。
在本发明的一些实施例中,若M1大于1,可将监测出的M1个进程中的其中一个进程对上述共享虚拟内存页面的访问特性,作为监测出的第一进程对共享虚拟内存页面的访问特性。或者,也可将监测出的M1个进程对上述共享虚拟内存页面的综合访问特性,作为监测出的第一进程对共享虚拟内存页面的访问特性,例如可将分别监测出的M1个进程中的每个进程对上述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的第一进程对共享虚拟内存页面的访问特性。
在本发明的一些实施例中,监控单元510还用于,监测第二进程对上述共享虚拟内存页面的访问特性,其中,第二进程包括M2个进程,其中,M2为正整数,第二进程不同于第一进程;
其中,第一重映射单元520还可用于,若监控单元510监测出的第二进程对上述共享虚拟内存页面的访问特性符合第一设定条件,且上述共享虚拟内存页面当前对应第二进程的管理模式为DSM模式,将上述共享虚拟内存页面对应第二进程的管理模式修改为SPM模式。
第二重映射单元530,若监控单元510监测出的第二进程对上述共享虚拟内存页面的访问特性符合第二设定条件,且上述共享虚拟内存页面当前对应第二进程的管理模式为SPM模式,将上述共享虚拟内存页面对应第二进程的管理模式修改为DSM模式。
在本发明的一些实施例中,若M2大于1,将监测出的M2个进程中的其中一个进程对上述共享虚拟内存页面的访问特性,作为监测出的第二进程对共享虚拟内存页面的访问特性。或者,也可将监测出的M2个进程对上述共享虚拟内存页面的综合访问特性,作为监测出的第二进程对该共享虚拟内存页面的访问特性,例如可将分别监测出的M2个进程中的每个进程对上述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的第一进程对该共享虚拟内存页面的访问特性。
例如,若第一进程(或第二进程)包括多个进程,则第一重映射单元520可具体用于,将监控单元510分别监测出的第一进程(或第二进程)中的每个进程对上述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的第一进程(或第二进程)对共享虚拟内存页面的访问特性;或者,将监控单元510监测出的第一进程(或第二进程)中的其中一个进程对上述共享虚拟内存页面的访问特性,作为监测出的第一进程(或第二进程)对共享虚拟内存页面的访问特性,若上述监测出的上述进程对共享虚拟内存页面的访问特性符合第一条件,且上述共享虚拟内存页面当前对应第一进程(或第二进程)的管理模式为分布式共享内存模式,将上述共享虚拟内存页面对应第一进程(或第二进程)的管理模式修改为共享物理内存模式。
又例如,若第一进程(或第二进程)包括多个进程,则第二重映射单元530可具体用于,将监控单元510分别监测出的第一进程(或第二进程)中的每个进程对上述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的第一进程(或第二进程)对共享虚拟内存页面的访问特性;或者,将监控单元510监测出的第一进程(或第二进程)中的其中一个进程对上述共享虚拟内存页面的访问特性,作为监测出的第一进程(或第二进程)对共享虚拟内存页面的访问特性,若上述监测出的上述进程对共享虚拟内存页面的访问特性符合第二条件,且上述共享虚拟内存页面当前对应第一进程(或第二进程)的管理模式对应为共享物理内存模式,将上述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
可以理解,本实施例确定共享虚拟内存页面管理模式的装置500可以部署在通信设备,如接入网设备或核心网设备、路由器或其它通信设备,确定共享虚拟内存页面管理模式的装置500也可以部署在服务器或个人计算机或其它计算机设备。
可以理解的是,本实施例的确定共享虚拟内存页面管理模式的装置500的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,本实施例确定共享虚拟内存页面管理模式的装置500通过监测共享虚拟内存页面的访问特性;若监测出的访问特性符合第一设定条件,且上述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将上述共享虚拟内存页面的管理模式修改为共享物理内存模式;若监测出的上述访问特性符合第二设定条件,且上述共享虚拟内存页面当前的管理模式为共享物理内存模式,将上述共享虚拟内存页面的管理模式修改为分布式共享内存模式。由于提出了根据访问特性监测结果重置共享虚拟内存页面的管理模式的机制,这有利于管理模式和访问特性更相宜匹配,进而有利于更好发挥DSM模式或SPM模式的优势,为提升共享虚拟内存的访问性能奠定了机制基础。
图6为本发明提供的一种计算机系统的结构示意图,如图6所示,本实施例的计算机系统包括至少一个总线601、与总线601相连的至少一个处理器602以及与总线601相连的至少一个存储器603。
其中,处理器602通过总线601,调用存储器603中存储的代码以用于监测进程对共享虚拟内存页面的访问特性;若监测出的上述访问特性符合第一设定条件,且上述共享虚拟内存页面当前的管理模式为DSM模式,则将上述共享虚拟内存页面的管理模式修改为SPM模式;和/或,若监测出的上述访问特性符合第二设定条件,且上述共享虚拟内存页面当前的管理模式为SPM模式,将上述共享虚拟内存页面的管理模式修改为DSM模式。
在本发明的一些实施例中,处理器602例如可监测N个进程对共享虚拟内存页面(为便于引述,下面可称之为第一共享虚拟内存页面)的访问特性,其中,N为正整数。例如,若N等于1,则上述N个进程可指系统当前存在的任意一个进程或特定的某一个进程;若N大于1,则上述N个进程可指系统当前存在的部分进程或全部进程,例如N个进程可指系统当前存在的,可能访问第一共享虚拟内存页面的部分进程或全部进程。在本发明的一些实施例中,例如可利用性能计数器或其它硬件或程序来监控共享虚拟页面访问特性。
在本发明的一些实施例中,处理器602例如可监测进程对共享虚拟内存页面的各种访问特性,访问特性例如可包括:访问频率和/或访问方式等,其中访问方式可能包括:只读访问、读写访问或写访问等)。也就是说,处理器602可监测进程对共享虚拟内存页面的访问频率和/或访问方式等访问特性。
可以理解的是,监测的访问特性不同,第一设定条件和第二设定条件也可能随之不同。例如若监测的访问特性为访问频率,则第一设定条件和第二设定条件可包括与访问频率相关的设定条件;若监测的访问特性为访问方式,则第一设定条件和第二设定条件可包括与访问方式相关的设定条件,若监测的访问特性包括访问频率和访问方式,则第一设定条件和第二设定条件可包括与访问频率和访问方式都相关的设定条件。
在本发明的一些实施例中,若监测的访问特性包括进程对第一共享虚拟内存页面的访问频率,则第一设定条件可包括:访问频率小于或等于第一阈值(第一阈值例如可为1000次/秒、2000次/秒、5000次/秒或其它频率值)。第二设定条件可包括:访问频率大于第二阈值,其中,第一阈值可小于或者等于第二阈值,其中第二阈值例如可为1000次/秒、2000次/秒、3000次/秒、5000次/秒或其它频率值)。在此场景下,若监测出的访问频率小于或等于第一阈值,且第一共享虚拟内存页面当前的管理模式为DSM模式,可将第一共享虚拟内存页面的管理模式修改为SPM模式。和/或若监测出的访问频率大于第二阈值,且第一共享虚拟内存页面当前的管理模式为SPM模式,可将第一共享虚拟内存页面的管理模式修改为DSM模式。可以理解,这种策略可看做是根据访问数据的消耗选择策略。
在本发明的另一些实施例中,若监测的访问特性包括进程对共享虚拟内存页面的访问方式,则第一设定条件可包括写访问或读写访问(或写访问比例超过第四阈值或写访问频率超过第三阈值);第二设定条件可包括只读访问或读访问比例超过第六阈值或读访问频率超过第五阈值,其中,第四阈值与第六阈值之和可大于或等于1。在此场景下,若处理器602监测出的访问方式为,写访问或读写访问(或写访问比例超过第四阈值或写访问频率超过第三阈值),且第一共享虚拟内存页面当前的管理模式为DSM模式,处理器602可将第一共享虚拟内存页面的管理模式修改为SPM模式。和/或处理器602若监测出的访问方式为只读访问(或读访问比例超过第六阈值或读访问频率超过第五阈值),且第一共享虚拟内存页面当前的管理模式为SPM模式,处理器602可将第一共享虚拟内存页面的管理模式修改为DSM模式,以此类推。
在本发明的一些实施例中,处理器602将第一共享虚拟内存页面的管理模式修改为DSM模式可包括:在第一物理内存空间中为第一共享虚拟内存页面分配第一物理内存页面;将第二物理内存页面中存储的数据拷贝到第一物理内存页面,其中,第二物理内存页面归属于共享物理内存空间(共享物理内存空间是几个核可共享的物理内存空间),其中,第二物理内存页面为上述第一共享虚拟内存页面当前所映射的物理内存页面;建立第一共享虚拟内存页面和第一物理内存页面之间的映射关系;将DSM模式作为第一共享虚拟内存页面的管理模式进行记录。
在本发明的一些实施例中,处理器602将上述共享虚拟内存页面的管理模式修改为SPM模式可包括:建立第一共享虚拟内存页面和第三物理内存页面之间的映射关系,其中,第三物理内存页面归属于共享物理内存空间(共享物理内存空间是几个核可共享的物理内存空间);将SPM模式作为第一共享虚拟内存页面的管理模式进行记录,其中,上述共享虚拟内存页面之前映射的物理内存页面所存储数据未被修改。
在本发明的一些实施例中,处理器602将上述共享虚拟内存页面的管理模式修改为SPM模式可包括:处理器602将第四物理内存页面所存储数据中的被修改数据同步到第三物理内存页面;建立第一共享虚拟内存页面和第三物理内存页面之间的映射关系,其中,第三物理内存页面归属于共享物理内存空间(共享物理内存空间是几个核可共享的物理内存空间);将SPM模式作为第一共享虚拟内存页面的管理模式进行记录,其中,第四物理内存页面为上述共享虚拟内存页面之前映射的物理内存页面,且该物理内存页面所存储数据被修改。
其中,处理器602将DSM模式/SPM模式作为第一共享虚拟内存页面的管理模式进行记录的方式可以是多种多样的,例如针对第一共享虚拟内存页面设置一个管理模式标志位,通过将该管理模式标志位设置为不同取值,来标识第一共享虚拟内存页面的管理模式为DSM模式/SPM模式。又或者,处理器602可将某个进程(或多个进程或全部进程)的页面信息结构体中记录的第一共享虚拟内存页面的管理模式记录为DSM模式/SPM模式,其它方式不再举例。
在本发明的一些实施例中,处理器602可以针对每个共享虚拟内存页面(如第一共享虚拟内存页面)来设置管理模式(如DSM模式者SPM模式),此场景下,对于所有访问第一共享虚拟内存页面的进程而言,第一共享虚拟内存页面的管理模式是相同的。当然,也可针对每个共享虚拟内存页面(如第一共享虚拟内存页面)对应每个进程,分别设置管理模式(例如DSM模式或者SPM模式),此场景下对于所有访问第一共享虚拟内存页面的进程而言,第一共享虚拟内存页面的管理模式可能是相同或不同的,举例来说,假设存在进程A和进程B,第一共享虚拟内存页面对应进程A的管理模式可能是DSM模式,而第一共享虚拟内存页面对应进程B的管理模式可能是SPM模式。
在本发明的一些实施例中,处理器602可监测第一进程对第一共享虚拟内存页面的访问特性,其中,第一进程包括M1个进程;M1为正整数,若监测出的上述访问特性符合第一设定条件,且第一共享虚拟内存页面当前对应第一进程的管理模式为DSM模式,处理器602可将第一共享虚拟内存页面对应第一进程的管理模式修改为SPM模式。和/或,若监测出的访问特性符合第二设定条件,且第一共享虚拟内存页面当前对应第一进程的管理模式为SPM模式,处理器602可将第一共享虚拟内存页面对应第一进程的管理模式修改为DSM模式。
在本发明的一些实施例中,处理器602还可监测第二进程对第一共享虚拟内存页面的访问特性,其中第二进程包括M2个进程;M2为正整数,第二进程不同于第一进程;若监测出的第二进程对第一共享虚拟内存页面的访问特性符合第三设定条件,且第一共享虚拟内存页面当前对应第二进程的管理模式为DSM模式,处理器602可将第一共享虚拟内存页面对应第二进程的管理模式修改为SPM模式;和/或,若监测出的第二进程对第一共享虚拟内存页面的访问特性符合第四设定条件,且第一共享虚拟内存页面当前对应第二进程的管理模式为SPM模式,处理器602可将第一共享虚拟内存页面对应第二进程的管理模式修改为DSM模式。
其中,第三设定条件与第一条件相同或不同。第四设定条件与第二条件相同或不同。
例如,若第一进程(或第二进程)包括多个进程,则处理器602可将分别监测出的第一进程(或第二进程)中的每个进程对上述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的第一进程(或第二进程)对共享虚拟内存页面的访问特性;或者将监测出的第一进程(或第二进程)中的其中一个进程对上述共享虚拟内存页面的访问特性,作为监测出的第一进程(或第二进程)对共享虚拟内存页面的访问特性,若上述监测出的上述进程对共享虚拟内存页面的访问特性符合第一条件,且上述共享虚拟内存页面当前对应第一进程(或第二进程)的管理模式为分布式共享内存模式,将上述共享虚拟内存页面对应第一进程(或第二进程)的管理模式修改为共享物理内存模式。
又例如,若第一进程(或第二进程)包括多个进程,处理器602可将分别监测出的第一进程(或第二进程)中的每个进程对上述共享虚拟内存页面的访问特性的平均值或加权平均值或和值或加权和值,作为监测出的第一进程(或第二进程)对共享虚拟内存页面的访问特性;或者,将监测出的第一进程(或第二进程)中的其中一个进程对上述共享虚拟内存页面的访问特性,作为监测出的第一进程(或第二进程)对共享虚拟内存页面的访问特性,若上述监测出的上述进程对共享虚拟内存页面的访问特性符合第二条件,且上述共享虚拟内存页面当前对应第一进程(或第二进程)的管理模式为共享物理内存模式,将上述共享虚拟内存页面对应第一进程(或第二进程)的管理模式修改为分布式共享内存模式。
参见图7,图7为本发明实施例提供的另一种计算机系统600示意图,计算机系统600还包括输入装置604和输出装置605、输入装置604和输出装置605与总线601。
本实施例提供的计算机系统,可以用于执行图1~图4任一所示方法实施例的技术方案中计算机系统对应执行的部分,其实现原理和技术效果类似,此处不再赘述。图6或图7仅为本发明提供的计算机系统的结构的一种示意图,具体结构可根据实际进行调整。
可以理解,本实施例计算机系统600可以是通信设备,如接入网设备或核心网设备、路由器或其它通信设备,计算机系统600可以是服务器或个人计算机或其它计算机设备。
可以理解的是,本实施例的计算机系统600中各器件的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的确定共享虚拟内存页面管理模式的方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上上述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (26)

1.一种确定共享虚拟内存页面管理模式的方法,其特征在于,包括:
监测进程对共享虚拟内存页面的访问特性,所述访问特性包括访问频率和/或访问方式;
若监测出的所述访问特性符合第一设定条件,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将所述共享虚拟内存页面的管理模式修改为共享物理内存模式。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
3.根据权利要求2所述的方法,其特征在于,所述将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式,包括:
在第一物理内存空间中为所述共享虚拟内存页面分配第一物理内存页面;
将第二物理内存页面中存储的数据拷贝到所述第一物理内存页面,其中,所述第二物理内存页面归属于共享物理内存空间,其中第二物理内存页面为所述共享虚拟内存页面当前所映射的物理内存页面;
建立所述共享虚拟内存页面和第一物理内存页面之间的映射关系;
将分布式共享内存模式作为所述共享虚拟内存页面的管理模式进行记录。
4.根据权利要求2或3所述的方法,其特征在于,
所述第一设定条件包括:访问频率小于或等于第一阈值、或者访问方式为读写访问或写访问、或者写访问的频率大于第三阈值、或者写访问的比例大于第四阈值。
5.根据权利要求4所述的方法,其特征在于,
所述第二设定条件包括:
访问频率大于第二阈值、或者访问方式为只读访问、或者读访问的频率大于第五阈值、或者读访问的比例大于第六阈值,所述第二阈值大于或等于第一阈值。
6.根据权利要求1至3任一项所述的方法,其特征在于,
所述将所述共享虚拟内存页面的管理模式修改为共享物理内存模式,包括:
建立所述共享虚拟内存页面和第三物理内存页面之间的映射关系,所述第三物理内存页面归属于共享物理内存空间;将共享物理内存模式作为所述共享虚拟内存页面的管理模式进行记录,其中,所述共享虚拟内存页面之前映射的物理内存页面所存储数据未被修改。
7.根据权利要求1至3任一项所述的方法,其特征在于,
所述将所述共享虚拟内存页面的管理模式修改为共享物理内存模式,包括:
将第四物理内存页面所存储数据中的被修改数据同步到第三物理内存页面;建立所述共享虚拟内存页面和第三物理内存页面之间的映射关系,所述第三物理内存页面归属于共享物理内存空间;将共享物理内存模式作为所述共享虚拟内存页面的管理模式进行记录,其中,所述第四物理内存页面是所述共享虚拟内存页面之前映射的物理内存页面。
8.根据权利要求1或2所述的方法,其特征在于,若所述进程包括多个进程,则所述方法还包括:
将分别监测出的所述多个进程中的每个进程对所述共享虚拟内存页面的访问特性的平均值、或加权平均值、或和值、或加权和值,作为监测出的所述多个进程对共享虚拟内存页面的访问特性;或者,将监测出的所述多个进程中的其中一个进程对所述共享虚拟内存页面的访问特性,作为所述监测出的所述多个进程对共享虚拟内存页面的访问特性。
9.一种确定共享虚拟内存页面管理模式的方法,其特征在于,包括:
监测进程对共享虚拟内存页面的访问特性,所述访问特性包括访问频率和/或访问方式;
若监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
10.根据权利要求9所述的方法,其特征在于,所述将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式,包括:
在第一物理内存空间中为所述共享虚拟内存页面分配第一物理内存页面;
将第二物理内存页面中存储的数据拷贝到所述第一物理内存页面,其中,所述第二物理内存页面归属于共享物理内存空间,所述第二物理内存页面为所述共享虚拟内存页面当前所映射的物理内存页面;
建立所述共享虚拟内存页面和第一物理内存页面之间的映射关系;
将分布式共享内存模式作为所述共享虚拟内存页面的管理模式进行记录。
11.根据权利要求9所述的方法,其特征在于,
若所述进程包括多个进程,则所述方法还包括:
将分别监测出的所述多个进程中的每个进程对所述共享虚拟内存页面的访问特性的平均值、或加权平均值、或和值、或加权和值,作为监测出的所述多个进程对共享虚拟内存页面的访问特性;或者,将监测出的所述多个进程中的其中一个进程对所述共享虚拟内存页面的访问特性,作为所述监测出的所述多个进程对共享虚拟内存页面的访问特性。
12.根据权利要求9至11任一项所述的方法,其特征在于,
所述第二设定条件包括:
访问频率大于第二阈值、或者访问方式为只读访问、或者读访问的频率大于第五阈值、或者读访问的比例大于第六阈值。
13.一种确定共享虚拟内存页面管理模式的装置,其特征在于,包括:
监控单元,用于监测进程对共享虚拟内存页面的访问特性,所述访问特性包括访问频率和/或访问方式;
与所述监控单元连接的第一重映射单元,用于若所述监控单元监测出的所述访问特性符合第一设定条件,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将所述共享虚拟内存页面的管理模式修改为共享物理内存模式。
14.根据权利要求13所述的装置,其特征在于,
所述装置还包括:
与所述监控单元连接的第二重映射单元,用于若所述监控单元监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
15.根据权利要求14所述的装置,其特征在于,
所述第二重映射单元具体用于,若所述监控单元监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,则在第一物理内存空间中为所述共享虚拟内存页面分配第一物理内存页面;将第二物理内存页面中存储的数据拷贝到所述第一物理内存页面,其中,所述第二物理内存页面归属于共享物理内存空间,所述第二物理内存页面为所述共享虚拟内存页面当前所映射的物理内存页面;建立所述共享虚拟内存页面和第一物理内存页面之间的映射关系;将分布式共享内存模式作为所述共享虚拟内存页面的管理模式进行记录。
16.根据权利要求14或15所述的装置,其特征在于,
所述第一设定条件包括:访问频率小于或等于第一阈值、或者访问方式为读写访问或写访问、或者写访问的频率大于第三阈值、或者写访问的比例大于第四阈值。
17.根据权利要求16所述的装置,其特征在于,
所述第二设定条件包括:
访问频率大于第二阈值、或者访问方式为只读访问、或者读访问的频率大于第五阈值、或者读访问的比例大于第六阈值,所述第二阈值大于或等于第一阈值。
18.根据权利要求13至15任一项所述的装置,其特征在于,
所述第一重映射单元具体用于,若所述监控单元监测出的所述访问特性符合第一设定条件,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,建立所述共享虚拟内存页面和第三物理内存页面之间的映射关系,所述第三物理内存页面归属于共享物理内存空间;将共享物理内存模式作为所述共享虚拟内存页面的管理模式进行记录,其中,所述共享虚拟内存页面之前映射的物理内存页面所存储数据未被修改。
19.根据权利要求13至15任一项所述的装置,其特征在于,
所述第一重映射单元具体用于,若所述监控单元监测出的所述访问特性符合第一设定条件,且所述共享虚拟内存页面当前的管理模式为分布式共享内存模式,将第四物理内存页面所存储数据中的被修改数据同步到第三物理内存页面;建立所述共享虚拟内存页面和第三物理内存页面之间的映射关系,所述第三物理内存页面归属于共享物理内存空间;将共享物理内存模式作为所述共享虚拟内存页面的管理模式进行记录,其中,所述第四物理内存页面为共享虚拟内存页面之前映射的物理内存页面。
20.根据权利要求13或14所述的装置,其特征在于,
若所述进程包括多个进程,则所述第一重映射单元还用于,将所述监控单元分别监测出的所述多个进程中的每个进程对所述共享虚拟内存页面的访问特性的平均值、或加权平均值、或和值、或加权和值,作为监测出的所述多个进程对共享虚拟内存页面的访问特性;或者,将所述监控单元监测出的所述多个进程中的其中一个进程对所述共享虚拟内存页面的访问特性,作为所述监测出的所述多个进程对共享虚拟内存页面的访问特性。
21.一种确定共享虚拟内存页面管理模式的装置,其特征在于,包括:
监控单元,用于监测进程对共享虚拟内存页面的访问特性,所述访问特性包括访问频率和/或访问方式;
与所述监控单元连接的第二重映射单元,用于若所述监控单元监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,将所述共享虚拟内存页面的管理模式修改为分布式共享内存模式。
22.根据权利要求21所述的装置,其特征在于,
所述第二重映射单元具体用于,若所述监控单元监测出的所述访问特性符合第二设定条件,且所述共享虚拟内存页面当前的管理模式为共享物理内存模式,则在第一物理内存空间中为所述共享虚拟内存页面分配第一物理内存页面;将第二物理内存页面存储的数据拷贝到所述第一物理内存页面,其中,所述第二物理内存页面归属于共享物理内存空间,所述第二物理内存页面为所述共享虚拟内存页面当前所映射的物理内存页面;建立所述共享虚拟内存页面和第一物理内存页面之间的映射关系;将分布式共享内存模式作为所述共享虚拟内存页面的管理模式进行记录。
23.根据权利要求21或22所述的装置,其特征在于,
所述第二设定条件包括:
访问频率大于第二阈值、或者访问方式为只读访问、或者读访问的频率大于第五阈值、或者读访问的比例大于第六阈值。
24.根据权利要求21或22所述的装置,其特征在于,
若所述进程包括多个进程,则所述第二重映射单元还用于,将所述监控单元分别监测出的所述多个进程中的每个进程对所述共享虚拟内存页面的访问特性的平均值、或加权平均值、或和值、或加权和值,作为监测出的所述多个进程对共享虚拟内存页面的访问特性;或者,将所述监控单元监测出的所述多个进程中的其中一个进程对所述共享虚拟内存页面的访问特性,作为所述监测出的所述多个进程对共享虚拟内存页面的访问特性。
25.一种计算设备,其特征在于,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述计算设备执行权利要求1-8任一项所述的方法。
26.一种计算设备,其特征在于,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述计算设备执行权利要求9-12任一项所述的方法。
CN201710514568.9A 2012-12-25 2012-12-25 确定共享虚拟内存页面管理模式的方法和相关设备 Active CN107402891B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710514568.9A CN107402891B (zh) 2012-12-25 2012-12-25 确定共享虚拟内存页面管理模式的方法和相关设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201210572056.5A CN103902459B (zh) 2012-12-25 2012-12-25 确定共享虚拟内存页面管理模式的方法和相关设备
CN201710514568.9A CN107402891B (zh) 2012-12-25 2012-12-25 确定共享虚拟内存页面管理模式的方法和相关设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201210572056.5A Division CN103902459B (zh) 2012-12-25 2012-12-25 确定共享虚拟内存页面管理模式的方法和相关设备

Publications (2)

Publication Number Publication Date
CN107402891A CN107402891A (zh) 2017-11-28
CN107402891B true CN107402891B (zh) 2020-12-22

Family

ID=50993794

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201210572056.5A Active CN103902459B (zh) 2012-12-25 2012-12-25 确定共享虚拟内存页面管理模式的方法和相关设备
CN201710514568.9A Active CN107402891B (zh) 2012-12-25 2012-12-25 确定共享虚拟内存页面管理模式的方法和相关设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201210572056.5A Active CN103902459B (zh) 2012-12-25 2012-12-25 确定共享虚拟内存页面管理模式的方法和相关设备

Country Status (9)

Country Link
US (1) US10019178B2 (zh)
EP (1) EP2940595B1 (zh)
JP (1) JP6296304B2 (zh)
KR (1) KR101698950B1 (zh)
CN (2) CN103902459B (zh)
AU (1) AU2013370724B2 (zh)
MX (1) MX346986B (zh)
RU (1) RU2607984C1 (zh)
WO (1) WO2014101423A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10459792B2 (en) * 2014-10-29 2019-10-29 Pure Storage, Inc. Using an eventually consistent dispersed memory to implement storage tiers
US10095582B2 (en) * 2014-10-29 2018-10-09 International Business Machines Corporation Partial rebuilding techniques in a dispersed storage unit
US20180113747A1 (en) * 2014-10-29 2018-04-26 International Business Machines Corporation Overdrive mode for distributed storage networks
US20180181332A1 (en) * 2014-10-29 2018-06-28 International Business Machines Corporation Expanding a dispersed storage network memory beyond two locations
CN104486415B (zh) * 2014-12-15 2018-06-15 新浪网技术(中国)有限公司 监控对象工作状态的判定方法及装置
US10019373B2 (en) * 2014-12-19 2018-07-10 Mediatek Inc. Memory management method for supporting shared virtual memories with hybrid page table utilization and related machine readable medium
US10228990B2 (en) * 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
CN105426322B (zh) * 2015-12-31 2019-05-28 华为技术有限公司 一种数据的预取方法及装置
US10732856B2 (en) 2016-03-03 2020-08-04 Sandisk Technologies Llc Erase health metric to rank memory portions
CN105808322B (zh) * 2016-04-01 2019-05-03 深圳市硅格半导体股份有限公司 多分区虚拟内存的映射控制方法及装置
US10055155B2 (en) * 2016-05-27 2018-08-21 Wind River Systems, Inc. Secure system on chip
CN111344667B (zh) * 2017-12-01 2021-10-15 华为技术有限公司 用于在一个或多个虚拟内存页的虚拟内存子页内编译和执行代码的系统和方法
CN109240602B (zh) * 2018-08-06 2021-01-15 联想(北京)有限公司 数据存取方法
CN109408202B (zh) * 2018-09-28 2020-11-06 新华三技术有限公司 一种lmdb扩展方法及装置
CN109582592B (zh) * 2018-10-26 2021-06-15 华为技术有限公司 资源管理的方法和装置
KR102144011B1 (ko) 2019-02-15 2020-08-12 성균관대학교산학협력단 가상화 서비스에서 페이지 캐시 관리 방법 및 장치
CN110058931B (zh) 2019-04-19 2022-03-22 上海兆芯集成电路有限公司 用以任务调度的处理系统及其加速方法
CN110083387B (zh) 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 使用轮询机制的处理系统及其访存方法
CN110046053B (zh) * 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 用以分配任务的处理系统及其访存方法
CN110032453B (zh) 2019-04-19 2022-05-03 上海兆芯集成电路有限公司 用以任务调度与分配的处理系统及其加速方法
CN110618883B (zh) * 2019-09-26 2022-09-13 迈普通信技术股份有限公司 一种用于共享内存链表的方法、装置、设备及存储介质
US11972034B1 (en) 2020-10-29 2024-04-30 Amazon Technologies, Inc. Hardware-assisted obscuring of cache access patterns
CN113722087B (zh) * 2021-06-10 2023-01-31 荣耀终端有限公司 虚拟内存管理方法和电子设备
US11635919B1 (en) * 2021-09-30 2023-04-25 Amazon Technologies, Inc. Safe sharing of hot and cold memory pages
CN114661497B (zh) * 2022-03-31 2023-01-10 慧之安信息技术股份有限公司 操作系统分区共享内存方法和系统
CN117112268B (zh) * 2023-10-23 2024-02-13 深圳市七彩虹禹贡科技发展有限公司 一种内存共享管理方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1149736A (zh) * 1995-06-05 1997-05-14 北京航空航天大学 一种分布式存储器共享管理方法
JPH10320272A (ja) * 1996-12-11 1998-12-04 Ncr Internatl Inc 多重プロセッサを有するコンピュータ・システム及びそのためのメモリ・ページ位置制御方法
JP2006065525A (ja) * 2004-08-26 2006-03-09 Hitachi Ltd 分散環境における仮想共有空間の実現方法
CN101477495A (zh) * 2008-10-28 2009-07-08 北京航空航天大学 分布式内存虚拟化技术的实现方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630097A (en) 1991-06-17 1997-05-13 Digital Equipment Corporation Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
US5875487A (en) * 1995-06-07 1999-02-23 International Business Machines Corporation System and method for providing efficient shared memory in a virtual memory system
US5893144A (en) * 1995-12-22 1999-04-06 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6629152B2 (en) * 1998-06-29 2003-09-30 International Business Machines Corporation Message passing using shared memory of a computer
US6591355B2 (en) * 1998-09-28 2003-07-08 Technion Research And Development Foundation Ltd. Distributed shared memory system with variable granularity
JP4784792B2 (ja) * 1999-12-22 2011-10-05 学校法人早稲田大学 マルチプロセッサ
US6910106B2 (en) * 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US6904490B2 (en) 2002-10-10 2005-06-07 International Business Machines Corporation Method and system of managing virtualized physical memory in a multi-processor system
US7900017B2 (en) 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US7529903B2 (en) 2005-07-05 2009-05-05 International Business Machines Corporation Systems and methods for memory migration
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8135936B2 (en) 2009-12-23 2012-03-13 Intel Corporation Adaptive address mapping with dynamic runtime memory mapping selection
US8156305B1 (en) 2008-10-01 2012-04-10 Netapp, Inc. Remapping of data addresses for large capacity low-latency random read memory
CN101398768B (zh) * 2008-10-28 2011-06-15 北京航空航天大学 一种分布式虚拟机监视器系统的构建方法
CN101477496B (zh) * 2008-12-29 2011-08-31 北京航空航天大学 基于分布式内存虚拟化的numa结构的实现方法
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
KR101355105B1 (ko) * 2012-01-03 2014-01-23 서울대학교산학협력단 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
CN104111897B (zh) * 2013-04-16 2017-06-13 华为技术有限公司 一种数据处理方法、装置及计算机系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1149736A (zh) * 1995-06-05 1997-05-14 北京航空航天大学 一种分布式存储器共享管理方法
JPH10320272A (ja) * 1996-12-11 1998-12-04 Ncr Internatl Inc 多重プロセッサを有するコンピュータ・システム及びそのためのメモリ・ページ位置制御方法
JP2006065525A (ja) * 2004-08-26 2006-03-09 Hitachi Ltd 分散環境における仮想共有空間の実現方法
CN101477495A (zh) * 2008-10-28 2009-07-08 北京航空航天大学 分布式内存虚拟化技术的实现方法

Also Published As

Publication number Publication date
KR20150091158A (ko) 2015-08-07
US20150293720A1 (en) 2015-10-15
EP2940595A1 (en) 2015-11-04
US10019178B2 (en) 2018-07-10
CN107402891A (zh) 2017-11-28
CN103902459A (zh) 2014-07-02
CN103902459B (zh) 2017-07-28
AU2013370724B2 (en) 2017-01-12
KR101698950B1 (ko) 2017-02-01
JP2016502213A (ja) 2016-01-21
WO2014101423A1 (zh) 2014-07-03
EP2940595A4 (en) 2016-01-13
MX346986B (es) 2017-04-07
AU2013370724A1 (en) 2015-07-09
JP6296304B2 (ja) 2018-03-20
EP2940595B1 (en) 2020-02-12
RU2607984C1 (ru) 2017-01-11
MX2015008281A (es) 2015-09-29

Similar Documents

Publication Publication Date Title
CN107402891B (zh) 确定共享虚拟内存页面管理模式的方法和相关设备
CN106233269B (zh) 在存储器控制器中的精细粒度带宽供应
US10496613B2 (en) Method for processing input/output request, host, server, and virtual machine
US9824011B2 (en) Method and apparatus for processing data and computer system
CN103210382B (zh) 基于总线装置健康信息和相关功率管理而仲裁通信总线上的总线事务
KR102161448B1 (ko) 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법
CN102136993B (zh) 一种数据迁移的方法、装置和系统
CN103136120B (zh) 行缓冲管理策略确定方法和装置、bank划分方法和装置
CN113590508B (zh) 动态可重构的内存地址映射方法及装置
Xu et al. Rethink the storage of virtual machine images in clouds
CN104346284A (zh) 一种内存管理方法及内存管理设备
US9229891B2 (en) Determining a direct memory access data transfer mode
CN112988387A (zh) 一种内存页管理方法及计算设备
CN104281545B (zh) 一种数据读取方法及设备
CN105988871B (zh) 一种远端内存分配方法、装置和系统
CN105718349B (zh) 跨管芯接口监听或全局观察消息排序
Kishani et al. Padsa: Priority-aware block data storage architecture for edge cloud serving autonomous vehicles
CN107273188B (zh) 一种虚拟机中央处理单元cpu绑定方法及装置
CN111090633A (zh) 一种分布式文件系统的小文件聚合方法、装置及设备
Wang et al. Research on virtual desktop management based on cloud computing
CN109144231B (zh) 一种虚拟化电力管理方法及设备
Nguyen et al. Mapreduce in the cloud: Data-location-aware vm scheduling
CN117896242A (zh) 一种云平台资源配置测算方法
CN116582626A (zh) 音视频处理芯片及电子设备
CN118035039A (zh) 内存信息确定方法、装置、设备、存储介质及程序产品

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