CN115061954A - 一种缺页中断处理方法、计算设备及存储介质 - Google Patents

一种缺页中断处理方法、计算设备及存储介质 Download PDF

Info

Publication number
CN115061954A
CN115061954A CN202210990030.6A CN202210990030A CN115061954A CN 115061954 A CN115061954 A CN 115061954A CN 202210990030 A CN202210990030 A CN 202210990030A CN 115061954 A CN115061954 A CN 115061954A
Authority
CN
China
Prior art keywords
page
virtual
physical
pages
determining
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.)
Granted
Application number
CN202210990030.6A
Other languages
English (en)
Other versions
CN115061954B (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.)
Uniontech Software Technology Co Ltd
Original Assignee
Uniontech Software 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 Uniontech Software Technology Co Ltd filed Critical Uniontech Software Technology Co Ltd
Priority to CN202210990030.6A priority Critical patent/CN115061954B/zh
Publication of CN115061954A publication Critical patent/CN115061954A/zh
Application granted granted Critical
Publication of CN115061954B publication Critical patent/CN115061954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/657Virtual address space management

Landscapes

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

Abstract

本发明涉及操作系统领域,公开了一种缺页中断处理方法、计算设备及存储介质,该方法包括:判断导致触发缺页中断的进程的存储空间大小是否大于预设阈值;若大于预设阈值,则根据触发缺页中断的虚拟地址所属虚拟页和预处理值,确定包括多个虚拟页的虚拟页集合;根据虚拟页集合中每个虚拟页确定对应的物理页,得到多个第一物理页;将每个第一物理页的存储内容在内部存储器中进行复制,得到多个第二物理页。本发明能够在触发缺页中断时,根据预设阈值考量是否进行缺页中断处理;若要进行缺页中断处理,则根据预处理值确定虚拟页对应的物理页,并将物理页复制得到在内部存储器中的新物理页便于访问,减少缺页中断的数目,提高应用运行效率。

Description

一种缺页中断处理方法、计算设备及存储介质
技术领域
本发明涉及操作系统领域,特别涉及一种缺页中断处理方法、计算设备及存储介质。
背景技术
随着计算机技术的发展,产生了虚拟内存技术。早期的计算机中,程序是直接运行在物理内存中直接运行;程序在运行的过程中访问的都是物理地址。如果这个系统只运行一个程序,那么只要这个程序所需的内存不要超过该计算机的物理内存就不会出现问题。但当计算机中有多个程序同时运行时,不同进程同一时刻在物理内存中运行就会对物理内存产生争夺。因此产生了虚拟内存技术,它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
然而使用虚拟内存也会出现问题。计算机中程序执行时,由于各种各样的原因有可能会触发缺页中断。产生缺页中断时,程序要访问的页不在内部存储器。有时在程序运行会产生大量的缺页中断,这些大量数目的缺页中断导致程序运行速度降低。现有技术中采用透明巨型页写时复制减少缺页中断的数目。但是透明巨型页写时复制有几个限制条件:上层页目录(PUB)巨型页写时复制对匿名页不适用;巨型页写时复制需要连续的物理页帧;巨型页的大小必须在产生缺页异常的虚拟内存区域(vma)表示的虚拟内存范围内。由于这些限制导致透明巨型页写时复制对缺页中断的处理效果不够理想。
为此,需要一种新的缺页中断处理方法。
发明内容
为此,本发明提供一种缺页中断处理方法,以力图解决或者至少缓解上面存在的问题。
根据本发明的第一方面,提供一种缺页中断处理方法,适于在计算设备中执行,计算设备中包括内部存储器和处理器,方法包括:当处理器触发缺页中断时,判断导致触发缺页中断的进程的存储空间大小是否大于预设阈值;若进程的存储空间大小大于预设阈值,则根据触发缺页中断的虚拟地址所属虚拟页和预处理值,确定包括多个虚拟页的虚拟页集合;根据虚拟页集合中每个虚拟页确定对应的物理页,得到多个第一物理页;将每个第一物理页的存储内容在内部存储器中进行复制,得到多个第二物理页,以便进程根据虚拟页访问第二物理页。
可选地,在根据本发明的方法中,存储空间包括进程的堆空间,判断导致触发缺页中断的进程的存储空间大小是否大于预设阈值,包括:判断进程的堆空间的大小是否大于预设阈值。
可选地,在根据本发明的方法中,根据触发缺页中断的虚拟地址所属虚拟页和预处理值,确定包括多个虚拟页的虚拟页集合,包括:确定虚拟地址所属虚拟页对应的虚拟页号;将虚拟页号后,预处理值规定数目个虚拟页和虚拟地址所属虚拟页作为虚拟页集合中的虚拟页。
可选地,在根据本发明的方法中,根据虚拟页集合中每个虚拟页确定对应的物理页,得到多个第一物理页,包括:根据每个虚拟页确定对应的虚拟页号;根据进程的页表确定每个虚拟页号对应的物理页号;根据每个物理页号确定对应的物理页,得到多个第一物理页。
可选地,在根据本发明的方法中,将每个第一物理页的存储内容在内部存储器中进行复制,得到多个第二物理页,包括:在内部存储器中分配多个第二物理页的存储空间,将每个第一物理页的存储内容在存储空间中进行存储,得到多个第二物理页。
可选地,在根据本发明的方法中,计算设备中包括数据交互组件,预设阈值通过数据交互组件进行设置。
可选地,在根据本发明的方法中,进程为父进程或子进程,缺页中断由父进程或子进程根据父进程和子进程共同使用的虚拟地址进行写入操作触发。
可选地,在根据本发明的方法中,还包括:若进程的存储空间大小未大于预设阈值,则确定触发缺页中断的虚拟地址所属虚拟页的物理页,得到第三物理页;将第三物理页的存储内容在内部存储器中进行复制,得到第四物理页,以便进程根据虚拟页访问第四物理页。
根据本发明的第二方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的缺页中断处理方法的指令。
根据本发明的第三方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,指令当由计算设备执行时,使得计算设备执行根据本发明的缺页中断处理方法。
本发明公开了一种缺页中断处理方法,适于在计算设备中执行,计算设备中包括内部存储器和处理器。方法包括:当处理器触发缺页中断时,判断导致触发缺页中断的进程的存储空间大小是否大于预设阈值;若进程的存储空间大小大于预设阈值,则根据触发缺页中断的虚拟地址所属虚拟页和预处理值,确定包括多个虚拟页的虚拟页集合;根据虚拟页集合中每个虚拟页确定对应的物理页,得到多个第一物理页;将每个第一物理页的存储内容在内部存储器中进行复制,得到多个第二物理页,以便进程根据虚拟页访问第二物理页。本发明能够在触发缺页中断时,根据预设阈值考量是否进行缺页中断处理;若要进行缺页中断处理,则根据预处理值确定虚拟页对应的物理页,并将物理页复制得到在内部存储器中的新物理页便于访问,减少缺页中断的数目,提高应用运行效率。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本发明公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示范性实施例的缺页中断处理方法100的流程示意图;
图2示出了根据本发明一个示范性实施例的计算设备200的结构框图;
图3示出了根据本发明一个示范性实施例的确定第一物理页的示意图;
图4示出了根据本发明一个示范性实施例的缺页中断处理过程的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。相同的附图标记通常指代相同的部件或元素。
计算设备中通常运行有操作系统,在操作系统运行过程中,处于某些需要,需要创建新的进程。一种创建新的进程的方式是根据父进程生成子进程;具体的:由父进程执行fork系统调用,得到与父进程相同的一个新进程,该新进程被称为子进程。在后续运行过程中,分别调用父进程和子进程执行不同的代码,以实现操作需要。
在父进程创建出子进程后,父进程和子进程的虚拟地址通过页表映射了相同的物理页,并且父进程和子进程各自的页表项中的读写权限全部改为读权限。根据本发明的一个实施例,本发明所处理缺页中断的一个生成方式的实例如下:当父进程和子进程需要根据虚拟地址进行写操作时,根据虚拟地址对应的页表项,可以确定父进程或子进程没有根据该虚拟地址进行写操作的权限。此时,计算设备中的处理器就会产生缺页中断。本发明对所处理缺页中断的具体生成方式不作限制。
本发明的一种缺页中断处理方法,适于在计算设备中执行。图1示出了根据本发明一个示范性实施例的缺页中断处理方法100的流程示意图。如图1所示,先执行步骤110,当处理器触发缺页中断时,判断导致触发缺页中断的进程的存储空间大小是否大于预设阈值。
计算设备中包括处理器,下面根据图2对计算设备进行介绍。
图2示出了根据本发明一个示范性实施例的计算设备200的结构框图。
在基本配置中,计算设备200包括至少一个处理单元220和系统存储器210。根据一个方面,取决于计算设备的配置和类型,系统存储器210包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器、或者这样的存储器的任何组合。根据本发明的一个实施例,系统存储器具体可实现为内部存储器。根据一个方面,系统存储器210包括操作系统211。
根据一个方面,操作系统211,例如,适合于控制计算设备200的操作。此外,示例结合图形库、其他操作系统、或任何其他应用程序而被实践,并且不限于任何特定的应用或系统。在图2中通过在虚线215内的那些组件示出了该基本配置。根据一个方面,计算设备200具有额外的特征或功能。例如,根据一个方面,计算设备200包括额外的数据存储设备(可移动的和/或不可移动的),例如磁盘、光盘、或者磁带。
根据本发明的一个实施例,操作系统211中包括内核213,用于管理计算设备的各种硬件资源。本发明对内核213的具体实现方式不做限制,当操作系统211实现为linux系统时,内核213可实现为linux内核。内核213中包括缺页中断处理子系统214。本发明提供的缺页中断处理方法可具体由缺页中断处理子系统214执行。
如在上文中所陈述的,根据一个方面,在系统存储器210中存储程序模块212。根据一个方面,程序模块212可包括一个或多个应用程序,本发明不限制应用程序的类型,例如应用还包括:电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片展示应用程序、绘画或计算机辅助应用程序、网络浏览器应用程序等。
程序模块212中包括数据交互组件216。根据本发明的一个实施例,数据交互组件216可具体实现为procfs进程文件系统,用于内核213将各种信息传递到用户态,并可通过procfs进程文件系统将信息传入内核213,对内核213进行设置。
根据一个方面,可以在包括分立电子元件的电路、包含逻辑门的封装或集成的电子芯片、利用微处理器的电路、或者在包含电子元件或微处理器的单个芯片上实践示例。例如,可以经由其中在图2中所示出的每个或许多组件可以集成在单个集成电路上的片上系统(SOC)来实践示例。根据一个方面,这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元、以及各种应用功能,其全部作为单个集成电路而被集成(或“烧”)到芯片基底上。当经由SOC进行操作时,可以经由在单个集成电路(芯片)上与计算设备200的其他组件集成的专用逻辑来对在本文中所描述的功能进行操作。还可以使用能够执行逻辑操作(例如AND、OR和NOT)的其他技术来实践本发明的实施例,所述其他技术包括但不限于机械、光学、流体、和量子技术。另外,可以在通用计算机内或在任何其他任何电路或系统中实践本发明的实施例。
根据本发明的一个实施例,处理单元220具体可实现为处理器中的一个处理模块,处理器可包括一个或多个处理单元。
根据一个方面,计算设备200还可以具有一个或多个输入设备231,例如键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可以包括输出设备232,例如显示器、扬声器、打印机等。前述设备是示例并且也可以使用其他设备。计算设备200可以包括允许与其他计算设备240进行通信的一个或多个通信连接233。合适的通信连接233的示例包括但不限于:RF发射机、接收机和/或收发机电路;通用串行总线(USB)、并行和/或串行端口。
本发明实施方式还提供一种非暂态可读存储介质,存储有指令,所述指令用于使所述计算设备执行根据本发明实施方式的方法。本实施例的可读介质包括永久性和非永久性、可移动和非可移动介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。可读存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非暂态可读存储介质。
根据一个方面,通信介质是由计算机可读指令、数据结构、程序模块、或者经调制的数据信号(例如,载波或其他传输机制)中的其他数据实施的,并且包括任何信息传递介质。根据一个方面,术语“经调制的数据信号”描述了具有一个或多个特征集或者以将信息编码在信号中的方式改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、射频(RF)、红外线的、以及其他无线介质之类的无线介质。
需要说明的是,尽管上述计算设备仅示出了处理单元220、系统存储器210、输入设备231、输出设备232、以及通信连接233,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
进程是指是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。
根据本发明的一个实施例,所述进程为父进程或子进程时,缺页中断由父进程或子进程根据父进程和子进程共同使用的虚拟地址进行写入操作导致触发。由于父进程或子进程通过页表映射了相同的物理页,并且父进程和子进程各自的页表项中的读写权限全部改为读权限。当父进程和子进程需要根据虚拟地址进行写操作时,根据虚拟地址对应的页表项,可以确定父进程或子进程没有根据该虚拟地址进行写操作的权限。此时,计算设备中的处理器就会产生缺页中断。
请看图1。进程的存储空间包括所述进程的堆空间,判断导致触发缺页中断的进程的存储空间大小是否大于预设阈值时,判断程的堆空间的大小是否大于预设阈值。进程的堆空间是系统对进程占用的进行管理的一种内存空间。堆中具体存放内容可自定义进行填充,在进程堆空间比较大的时候,对堆空间的写操作会产生大量缺页中断导致系统性能下降。
根据本发明的一个实施例,计算设备中包括数据交互组件,预设阈值通过数据交互组件进行设置。数据交互组件可具体实现为procfs进程文件系统,用于内核将各种信息传递到用户态,并可通过procfs进程文件系统将信息传入内核,对内核进行设置。procfs进程文件系统提供了一种操作系统的内核与用户态进行通信的机制。
根据本发明的一个实施例,可通过procfs进程文件系统向内核传递如下参数实现设置预设阈值,/proc/sys/vm/fork_cow_premapping_heap_min_kb。
根据本发明的一个实施例,当进程的堆空间的存储空间大小大于预设阈值时,则继续执行后续步骤120~140。存储空间的大小大于预设阈值是指存储空间的大小数值比预设阈值大或相等。
随后,执行步骤120,若进程的存储空间大小大于预设阈值,则根据触发缺页中断的虚拟地址所属虚拟页和预处理值,确定包括多个虚拟页的虚拟页集合;具体的:确定虚拟地址所属虚拟页对应的虚拟页号;将虚拟页号后,预处理值规定数目个虚拟页和虚拟地址所属虚拟页作为虚拟页集合中的虚拟页。
进程在执行时,通过虚拟地址访问物理地址。物理地址为数据在内部存储器中实际存储的地址。虚拟地址所在的虚拟地址空间是一段连续的内存地址,便于进程运行。而物理地址是不连续的。虚拟地址空间被划分为大小相等的多个虚拟页,每个虚拟页中包括多个虚拟地址。而物理地址也位于一个物理页中,每个物理页中包括多个物理地址。物理页(page)为表示物理页帧的数据结构,一个物理页帧通常是4096字节大小,通常也称为页。虚拟页与物理页之间建立有映射关系。这种映射关系的载体为页表。页表中包括多个页表项,每个页表项包括虚拟页的虚拟页号和对应的物理页的物理页号,也即页表包括虚拟页基地址及所映射的物理页基地址。根据页表,可使用虚拟页的虚拟页号查询对应的物理页的物理页号,实现通过虚拟地址访问物理地址。
预处理值规定了进行缺页中断处理的虚拟页的数目。根据本发明的一个实施例,预处理值可具体设置为正整数,如1。
根据本发明的一个实施例,触发缺页中断的虚拟地址对应的虚拟页的虚拟页号为10,当预处理值则为1时,则将虚拟页号为10的虚拟页的后一页,虚拟页号为11的虚拟页,以及触发缺页中断的虚拟地址所在的虚拟页(虚拟页号为10)作为虚拟页集合中的虚拟页,得到虚拟页集合。
根据本发明的一个实施例,触发缺页中断的虚拟地址对应的虚拟页的虚拟页号为10,当预处理值则为2时,则将虚拟页号为10的虚拟页的后两页,虚拟页号为11的虚拟页、虚拟页号为12的虚拟页、以及触发缺页中断的虚拟地址所在虚拟页(虚拟页号为10)的虚拟页作为虚拟页集合中的虚拟页,得到虚拟页集合。
根据本发明的一个实施例,缺页中断的预处理值可根据系统实际运行情况进行设置,如设置较高的预处理值,能够更显著的减少缺页中断的出现次数,但会提高缺页中断处理的负担。因此可平衡缺页中断出现频率和每次处理时间,达到最佳的缺页中断减少效果。
随后,执行步骤130,根据虚拟页集合中每个虚拟页确定对应的物理页,得到多个第一物理页;具体的:根据每个虚拟页确定对应的虚拟页号;根据进程的页表确定每个虚拟页号对应的物理页号;根据每个物理页号确定对应的物理页,得到多个第一物理页,也即确定虚拟页对应的物理页基地址,再根据物理页基地址得到对应的物理页。
图3示出了根据本发明一个示范性实施例的确定第一物理页的示意图。如图3所示,示出了多个虚拟页:虚拟页311、虚拟页312、虚拟页313和虚拟页314,以及多个物理页:物理页321、物理页322、物理页323和物理页324。若虚拟页集合中的虚拟页分别为虚拟页311、虚拟页312、虚拟页313。则分别确定每个虚拟页的虚拟页号。虚拟页311的虚拟页号为0,虚拟页312的虚拟页号为1,虚拟页313的虚拟页号为2。随后根据虚拟页号在页表中查询虚拟页号对应的物理页号。查询得到虚拟页号为0对应的物理页号为2,虚拟页号为1对应的物理页号为3,虚拟页号为2对应的物理页号为4(页表中还记载了虚拟页号3对应的物理页号为5)。则根据物理页号确定对应的物理页,得到物理页号为2对应物理页321,物理页号为3对应物理页322,物理页号4对应物理页323。最后,将物理页321、物理页322和物理页323作为第一物理页。
最后,执行步骤140,将每个第一物理页的存储内容在内部存储器中进行复制,得到多个第二物理页,以便进程根据虚拟页访问第二物理页;具体的:在内部存储器中分配多个第二物理页的存储空间,将每个第一物理页的存储内容在存储空间中进行存储,得到多个第二物理页。
由于父进程或子进程的虚拟地址映射了相同的物理页,而通过页表访问该物理页时只有读权限,没有写权限。为了能够在该物理页中进行写入,将该物理页作为第一物理页,在内部存储器中进行复制,得到第二物理页。对于第二物理页进程拥有读权限和写权限,能够第二物理页进行写入。此时进程根据虚拟地址访问第二物理页实现写操作,处理器不会再触发缺页中断,减少了缺页中断的出现次数,提高了应用和系统的运行效率。
在步骤110中,若判断进行的堆空间未大于预设阈值,即小于预设阈值,则确定触发缺页中断的虚拟地址所属虚拟页的物理页,得到第三物理页;将第三物理页的存储内容在内部存储器中进行复制,得到第四物理页,以便进程根据虚拟页访问第四物理页。未大于预设阈值时,则只对触发缺页中断的虚拟地址所属虚拟页进行处理,将对应的物理页进行复制得到第二物理页,以便处理缺页中断,使进程继续运行。
图4示出了根据本发明一个示范性实施例的缺页中断处理过程的示意图。如图4所示,当处理器触发缺页中断时,对缺页中断进行处理。先判断导致触发缺页中断的进程的存储空间大小是否大于预设阈值。若进程的存储空间大小未大于预设阈值,则只对当前触发缺页中断的虚拟页进行缺页中断处理。确定触发缺页中断的虚拟地址所属虚拟页的物理页,得到第三物理页;将第三物理页的存储内容在内部存储器中进行复制,得到第四物理页,以便进程根据虚拟页访问第四物理页。
若进程的存储空间大小大于预设阈值,则根据触发缺页中断的虚拟地址所属虚拟页和预处理值,确定包括多个虚拟页的虚拟页集合。根据虚拟页集合中每个虚拟页确定对应的物理页,得到多个第一物理页。将每个第一物理页的存储内容在内部存储器中进行复制,得到多个第二物理页,以便进程根据虚拟页访问第二物理页,从而减少缺页中断触发的次数,提高系统和应用运行效率。
根据本发明的一个实施例,根据procfs进程文件系统还可设置是否根据本发明的缺页中断处理方法进行缺页中断处理。procfs进程文件系统提供控制缺页中断处理的控制参数。通过设置控制参数可控制采用本发明的缺页中断处理方法进行缺页中断处理,或不采用本发明的缺页中断处理方法进行缺页中断处理。procfs进程文件系统的控制参数具体为:/proc/sys/vm/fork_cow_enable。
根据本发明的一个实施例,将预处理值设置为1时,在通过控制参数未开启缺页中断处理,不执行本发明的缺页中断处理方法时,预设时间段内进程产生16384次缺页中断;在通过控制参数开启缺页中断处理,执行本发明的缺页中断处理方法时,预设时间段内进程产生8192次缺页中断,可见通过执行本发明的缺页中断处理方法,能够显著的减少缺页中断的处理次数,提高应用和系统运行的效率。
根据本发明的一个实施例,当进程的堆空间发生变化时,更新进程的堆空间大小,以便在堆空间大小大于预设阈值时,执行本发明的缺页中断处理方法进行缺页中断处理。
本发明公开了一种缺页中断处理方法,适于在计算设备中执行,计算设备中包括内部存储器。方法包括:当内部存储器触发缺页中断时,判断导致触发缺页中断的进程的存储空间大小是否大于预设阈值;若进程的存储空间大小大于预设阈值,则根据触发缺页中断的虚拟地址所属虚拟页和预处理值,确定包括多个虚拟页的虚拟页集合;根据虚拟页集合中每个虚拟页确定对应的物理页,得到多个第一物理页;将每个第一物理页的存储内容在内部存储器中进行复制,得到多个第二物理页,以便进程根据虚拟页访问第二物理页。本发明能够在触发缺页中断时,根据预设阈值考量是否进行缺页中断处理;若要进行缺页中断处理,则根据预处理值确定虚拟页对应的物理页,并将物理页复制得到在内部存储器中的新物理页便于访问,减少缺页中断的数目,提高应用运行效率。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组间可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组间组合成一个模块或单元或组间,以及此外可以把它们分成多个子模块或子单元或子组间。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的缺页中断处理方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的。

Claims (10)

1.一种缺页中断处理方法,适于在计算设备中执行,所述计算设备中包括内部存储器和处理器,所述方法包括:
当所述处理器触发缺页中断时,判断导致触发缺页中断的进程的存储空间大小是否大于预设阈值;
若所述进程的存储空间大小大于预设阈值,则根据触发缺页中断的虚拟地址所属虚拟页和预处理值,确定包括多个虚拟页的虚拟页集合;
根据虚拟页集合中每个虚拟页确定对应的物理页,得到多个第一物理页;
将每个第一物理页的存储内容在所述内部存储器中进行复制,得到多个第二物理页,以便所述进程根据所述虚拟页访问所述第二物理页。
2.如权利要求1所述的方法,其中,所述存储空间包括所述进程的堆空间,判断导致触发缺页中断的进程的存储空间大小是否大于预设阈值,包括:
判断所述进程的堆空间的大小是否大于预设阈值。
3.如权利要求1或2所述的方法,其中,根据触发缺页中断的虚拟地址所属虚拟页和预处理值,确定包括多个虚拟页的虚拟页集合,包括:
确定所述虚拟地址所属虚拟页对应的虚拟页号;
将所述虚拟页号后,预处理值规定数目个虚拟页和虚拟地址所属虚拟页作为虚拟页集合中的虚拟页。
4.如权利要求1所述的方法,其中,所述根据虚拟页集合中每个虚拟页确定对应的物理页,得到多个第一物理页,包括:
根据所述每个虚拟页确定对应的虚拟页号;
根据所述进程的页表确定每个虚拟页号对应的物理页号;
根据每个物理页号确定对应的物理页,得到多个第一物理页。
5.如权利要求1所述的方法,其中,将每个第一物理页的存储内容在所述内部存储器中进行复制,得到多个第二物理页,包括:
在所述内部存储器中分配多个第二物理页的存储空间,将每个第一物理页的存储内容在存储空间中进行存储,得到多个第二物理页。
6.如权利要求1所述的方法,其中,所述计算设备中包括数据交互组件,所述预设阈值通过所述数据交互组件进行设置。
7.如权利要求1所述的方法,其中,所述进程为父进程或子进程,所述缺页中断由父进程或子进程根据所述父进程和子进程共同使用的所述虚拟地址进行写入操作触发。
8.如权利要求1所述的方法,其中,所述方法还包括:
若所述进程的存储空间大小未大于所述预设阈值,则确定触发缺页中断的虚拟地址所属虚拟页的物理页,得到第三物理页;
将所述第三物理页的存储内容在所述内部存储器中进行复制,得到第四物理页,以便所述进程根据所述虚拟页访问所述第四物理页。
9.一种计算设备,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中,所述一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1-8中任一项所述的方法的指令。
10.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据权利要求1-8中任一项所述的方法。
CN202210990030.6A 2022-08-18 2022-08-18 一种缺页中断处理方法、计算设备及存储介质 Active CN115061954B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210990030.6A CN115061954B (zh) 2022-08-18 2022-08-18 一种缺页中断处理方法、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210990030.6A CN115061954B (zh) 2022-08-18 2022-08-18 一种缺页中断处理方法、计算设备及存储介质

Publications (2)

Publication Number Publication Date
CN115061954A true CN115061954A (zh) 2022-09-16
CN115061954B CN115061954B (zh) 2022-11-29

Family

ID=83208585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210990030.6A Active CN115061954B (zh) 2022-08-18 2022-08-18 一种缺页中断处理方法、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN115061954B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026475A (en) * 1997-11-26 2000-02-15 Digital Equipment Corporation Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space
CN1560745A (zh) * 2004-02-25 2005-01-05 中国人民解放军国防科学技术大学 基于即态访问信息的动态页迁移方法
CN101882113A (zh) * 2009-05-05 2010-11-10 北京大学 一种基于客户操作系统内核代码替换的内存虚拟化方法
CN103853665A (zh) * 2012-12-03 2014-06-11 华为技术有限公司 存储空间分配方法及设备
CN103984599A (zh) * 2014-04-14 2014-08-13 北京大学 一种提高操作系统大页使用率的方法
WO2016082191A1 (zh) * 2014-11-28 2016-06-02 华为技术有限公司 访问文件的方法和装置
CN105843748A (zh) * 2015-01-15 2016-08-10 华为技术有限公司 一种对内存中内存页的处理方法及装置
US20170123996A1 (en) * 2015-11-02 2017-05-04 Microsoft Technology Licensing, Llc Direct Mapped Files in Virtual Address-Backed Virtual Machines
CN109002706A (zh) * 2018-06-08 2018-12-14 中国科学院计算技术研究所 一种基于用户级页表的进程内数据隔离保护方法和系统
CN113032086A (zh) * 2019-12-25 2021-06-25 中兴通讯股份有限公司 虚拟机部署及热迁移方法、vmm升级方法、服务器
CN114443268A (zh) * 2020-10-31 2022-05-06 华为终端有限公司 内存管理方法、装置、电子设备以及计算机可读存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026475A (en) * 1997-11-26 2000-02-15 Digital Equipment Corporation Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space
CN1560745A (zh) * 2004-02-25 2005-01-05 中国人民解放军国防科学技术大学 基于即态访问信息的动态页迁移方法
CN101882113A (zh) * 2009-05-05 2010-11-10 北京大学 一种基于客户操作系统内核代码替换的内存虚拟化方法
CN103853665A (zh) * 2012-12-03 2014-06-11 华为技术有限公司 存储空间分配方法及设备
CN103984599A (zh) * 2014-04-14 2014-08-13 北京大学 一种提高操作系统大页使用率的方法
WO2016082191A1 (zh) * 2014-11-28 2016-06-02 华为技术有限公司 访问文件的方法和装置
CN105843748A (zh) * 2015-01-15 2016-08-10 华为技术有限公司 一种对内存中内存页的处理方法及装置
US20170123996A1 (en) * 2015-11-02 2017-05-04 Microsoft Technology Licensing, Llc Direct Mapped Files in Virtual Address-Backed Virtual Machines
CN109002706A (zh) * 2018-06-08 2018-12-14 中国科学院计算技术研究所 一种基于用户级页表的进程内数据隔离保护方法和系统
CN113032086A (zh) * 2019-12-25 2021-06-25 中兴通讯股份有限公司 虚拟机部署及热迁移方法、vmm升级方法、服务器
CN114443268A (zh) * 2020-10-31 2022-05-06 华为终端有限公司 内存管理方法、装置、电子设备以及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张昌昌等: "基于缺页的Linux任务管理器设计与实现", 《计算机工程与设计》 *

Also Published As

Publication number Publication date
CN115061954B (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
US10474369B2 (en) Mapping guest pages to disk blocks to improve virtual machine management processes
US8041920B2 (en) Partitioning memory mapped device configuration space
US9875192B1 (en) File system service for virtualized graphics processing units
CN110609730B (zh) 一种实现虚拟处理器间中断透传的方法及设备
CN1961300A (zh) 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法
EP1934762B1 (en) Apparatus and method for handling dma requests in a virtual memory environment
US10459662B1 (en) Write failure handling for a memory controller to non-volatile memory
TW201941197A (zh) 混合式記憶體系統
WO2022134723A1 (zh) 一种共享内存管理的方法和设备
WO2020061989A1 (en) Method and apparatus to use dram as cache for slow byte-addressible memory for efficient cloud applications
CN114207596A (zh) 将中断从输入-输出存储器管理单元提供到访客操作系统
CN107632779B (zh) 数据处理方法和装置、服务器
CN114880289A (zh) 一种文件分组显示方法及计算设备
CN115421927B (zh) 一种负载均衡方法、计算设备及存储介质
CN115061954B (zh) 一种缺页中断处理方法、计算设备及存储介质
US7519792B2 (en) Memory region access management
US11386012B1 (en) Increasing address space layout randomization entropy via page remapping and rotations
US11900142B2 (en) Improving memory access handling for nested virtual machines
US11650747B2 (en) High throughput memory page reclamation
US20230060835A1 (en) Method and apparatus for setting memory, and electronic device and storage medium
US20120011330A1 (en) Memory management apparatus, memory management method, program therefor
CN115658324B (zh) 一种进程调度方法、计算设备及存储介质
US20240320050A1 (en) N-way fault tolerant processing system
CN114896179B (zh) 内存页的拷贝方法、装置、计算设备及可读存储介质
CN117850985B (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