CN116302376A - 进程创建方法、装置、电子设备及计算机可读介质 - Google Patents

进程创建方法、装置、电子设备及计算机可读介质 Download PDF

Info

Publication number
CN116302376A
CN116302376A CN202211085599.4A CN202211085599A CN116302376A CN 116302376 A CN116302376 A CN 116302376A CN 202211085599 A CN202211085599 A CN 202211085599A CN 116302376 A CN116302376 A CN 116302376A
Authority
CN
China
Prior art keywords
page table
table item
table entry
page
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211085599.4A
Other languages
English (en)
Inventor
胡展源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202211085599.4A priority Critical patent/CN116302376A/zh
Publication of CN116302376A publication Critical patent/CN116302376A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures

Landscapes

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

Abstract

本申请公开了一种进程创建方法、装置、电子设备及计算机可读介质,应用于电子设备,包括:响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段;获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段;若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项;基于所述第二页表项创建子进程。本申请可以减少创建子进程时,子进程的页表项对内存空间的占用。

Description

进程创建方法、装置、电子设备及计算机可读介质
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种进程创建方法、装置、电子设备及计算机可读介质。
背景技术
目前,随着电子信息技术的发展,电子设备被越来越广泛的使用。虽然,可以通过调用父进程来创建子进程,从而孵化新的子进程。然而,现有创建进程的方法,会造成内存空间不必要的浪费。
发明内容
本申请提出了一种进程创建方法、装置、电子设备及计算机可读介质。
第一方面,本申请实施例提供了一种内存区域确定方法,应用于电子设备,所述方法包括:响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段;获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段;若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项;基于所述第二页表项创建子进程。
第二方面,本申请实施例还提供了一种内存区域确定装置,所述装置包括:响应单元,用于响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段;获取单元,用于获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段;处理单元,用于若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项;创建单元,用于若基于所述第二页表项创建子进程。
第三方面,本申请实施例还提供了一种电子设备,包括:一个或多个处理器;存储器;所述一个或多个处理器用于执行指令;所述存储器用于提供物理地址;所述总线用于提供数据传输;所述一个或多个处理器用于执行上述方法。
第四方面,本申请实施例还提供了一种计算机可读介质,所述可读存储介质存储有处理器可执行的程序代码,所述程序代码被所述处理器执行时使所述处理器执行上述方法。
第五方面,本申请实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述方法。
本申请提供了一种进程创建方法、装置、电子设备及计算机可读介质,该方法中电子设备可以响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段;再获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段;若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项;基于所述第二页表项创建子进程。若直接将父进程的第一页表项进行复制,再基于复制得到的页表项创建子进程,会占用较多的内存空间。但是若将父进程的第一页表项共享给子进程,进而创建该子进程,在该第一页表项可以被更改时,共享该第一页表项的子进程可能会改变该第一页表项中的内容,从而对其他共享了该第一页表项的子进程造成影响,也同时会对父进程造成影响。因此,本申请提供的实施例中,仅当该第一页表项不支持被更改时,才将该第一页表项共享给子进程。而基于共享的第一页表项而创建的子进程,该子进程对应的页表项不会占用过多的内存空间,从而可以减少创建子进程时,子进程的页表项对内存空间的占用。
本申请实施例的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请实施例的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的电子设备的结构框图;
图2示出了本申请实施例提供的进程创建方法的方法流程图;
图3示出了本申请又一实施例提供的进程创建方法的方法流程图;
图4示出了步骤S230的一种实施方式图;
图5示出了本申请再一实施例提供的进程创建方法的方法流程图;
图6示出了本申请实施例提供的查找目标页面对应的进程的示意图;
图7示出了本申请又一实施例提供的查找目标页面对应的进程的示意图;
图8示出了步骤S390的一种实施方式图;
图9示出了本申请还一实施例提供的进程创建方法的方法流程图;
图10示出了本申请实施例提供的进程创建装置的单元框图;
图11示出了本申请又一实施例提供的电子设备的示意图;
图12示出了本申请实施例提供的计算机可读存储介质的结构框图;
图13示出了本申请实施例提供的计算机程序产品的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
目前,随着电子信息技术的发展,电子设备被越来越广泛的使用。虽然,可以通过调用父进程来创建子进程,从而孵化新的子进程。然而,现有创建进程的方法,会造成内存空间不必要的浪费。如何在创建进程时节约内存空间,成为一个亟待解决的问题。
目前,电子设备在创建一个新进程时,可以通过调用一个指定进程,作为父进程,然后基于该父进程创建子进程。其中,调用的进程称为父进程,新的子进程被称为子进程。而在基于父进程创建子进程时,一般直接将父进程中的整个页表项(pagetable entry,PTE)、数据结构以及文件描述符等复制给子进程,作为子进程的页表项PTE,进而完成子进程的创建。
具体的,可以基于对父进程的拷贝,来创建新的子进程。在当前对进程拷贝的过程中,系统内核在调用进程复制函数后,即开始对父进程进行拷贝。在对父进程进行拷贝时,可以首先调用复制进程描述符函数将父进程中的数据结构、文件描述符等拷贝至子进程中,然后再调用页表拷贝函数将父进程中的内存页表拷贝至子进程中;当父进程将内存页表拷贝至子进程之后,调用唤醒函数唤醒子进程并系统调用返回;当子进程接收到子进程调度函数时,便直接系统调用返回。其中,进程复制函数可以是do_fork()函数,复制进程描述符函数可以是copy_process()函数,页表拷贝函数可以是copy_mm()函数,唤醒函数可以是wake_up_new_task()函数,子进程调度函数可以是ret_from_fork函数。
然而,发明人在研究中发现,若直接将父进程中的页表项(PTE)复制给子进程,可能会造成不必要的内存空间的浪费。
因此,为了克服上述缺陷,本申请提供了一种进程创建方法、装置、电子设备及计算机可读介质,该方法中电子设备可以响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段;再获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段;若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项;基于所述第二页表项创建子进程。若直接将父进程的第一页表项进行复制,再基于复制得到的页表项创建子进程,会占用较多的内存空间。但是若将父进程的第一页表项共享给子进程,进而创建该子进程,在该第一页表项可以被更改时,共享该第一页表项的子进程可能会改变该第一页表项中的内容,从而对其他共享了该第一页表项的子进程造成影响,也同时会对父进程造成影响。因此,本申请提供的实施例中,仅当该第一页表项不支持被更改时,才将该第一页表项共享给子进程。而基于共享的第一页表项而创建的子进程,该子进程对应的页表项不会占用过多的内存空间,从而可以减少创建子进程时对内存空间的占用。
请参阅图1,图1示出了本申请实施例提供的一种电子设备100的结构框图,该电子设备100包括有处理器110、存储器120以及内存130。其中,处理器110分别和存储器120以及内存130连接,存储器120还与内存130连接。
对于一些实施方式,处理器110可以用于运行安装于电子设备100上的系统程序,其中该系统程序可以具有不同的类型,例如可以为可移动的电子设备对应的系统程序,例如智能手机系统程序、车载计算机系统程序或智能平板电脑系统程序等,还可以为台式计算机系统程序或服务器的系统程序等。进一步的,在电子设备100上的系统程序运行时,该电子设备100还可以创建新的子进程,即应用程序或系统程序可以发出子进程创建请求,电子设备中的处理器110可以响应子进程创建请求,从而创建新的子进程。一种示例性的,应用程序可以发起一个子进程创建请求,则处理器110可以响应于该子进程创建请求。另一种示例性的,应用程序还可以发起多个子进程创建请求,则处理器110可以响应于每一个子进程创建请求。
对于一些实施方式,处理器110可以首先确定当前需要复制的进程,即可以通过当前需要复制的进程来创建新的子进程,其中,当前被复制的进程即为父进程。处理器110可以调用相关的函数,将父进程中的数据结构、文件描述符等复制给子进程。进一步的,处理器110还可以获取父进程中的第一页表项,并根据该第一页表项是否能够被更改来判定是否需要将父进程中的第一页表项全部复制给子进程。由于当第一页表项不支持被更改时,可以将该第一页表项共享给新的子进程,使该子进程可以调用该第一页表项,而不需要完全复制第一页表项,从而节省了内存空间。具体的,基于第一页表项是否支持被更改,而判定是否需要将父进程中的第一页表项全部复制给子进程的方法,可以参阅后续实施例的介绍。
对于一些实施方式,电子设备100在执行进程时,一般会将进程置于虚拟地址空间中,再通过页表项,实现虚拟地址空间与物理地址空间的映射,从而使进程可以通过虚拟地址空间访问存放于物理地址空间中的数据,或将产生的数据存入物理地址空间中。即页表项中存储有从虚拟地址空间至物理地址空间的映射关系。进一步的,虚拟地址空间可以划分为多个同等大小的分段,得到多个虚拟地址分段,可以称为“页”或“页面”,其中每个虚拟地址分段可以通过不同的地址进行标识,例如可以为各页加以编号,从0开始,如第0页、第1页等。类似的,也可以把物理地址空间分为多个同等大小的分段,得到多个物理地址分段,可以称为“块”或“页框”,其中每个物理地址分段可以通过不同的地址进行标识,例如为各“块”加以编号,从0#开始,如0#块、1#块等。而页表项则可以将虚拟地址分段与物理地址分段实现映射,即可以通过虚拟地址分段确定物理地址分段。
可选的,由于虚拟地址分段以及物理地址分段的数量一般较多,因此页表项中存储的映射关系也较多,进而,对于一些实施方式,还可以将页表项划分为多个级,每一级页表项记录有不同的信息。一种示例性的,各级页表项可以通过例如目录的方式,记录该级页表项与下一级页表项的查询关系,通常最后一级页表项中记录实际的物理地址分段,通过多级页表项能够更加快速地定位到进程所对应的物理地址分段。以四级页表项为例,例如四级页表项可以包括第一级页表项、第二级页表项、第三级页表项以及第四级页表项。若设定第一级页表项为最上级,第四级页表项为最下级,则第一级页表项可以包括有多个第二级页表项,每个第二级页表项可以包括有多个第三级页表项,每个第三级页表项可以包括有多个第四级页表项,每个第四级页表项中可以包括有对应的物理地址分段的编号。其中,对于一些实施方式,第一级页表项可以为页全局目录(PageGlobalDirectory,PGD)、页上级目录(Page Upper Directory,PUD)、页中间目录(Page MiddleDi rectory,PMD)、页表条目(Page Table Entry,PTE)。当处理器110对父进程中的页表项进行复制或共享时,实质即为对页全局目录PGD、页上级目录PUD、页中间目录PMD、页表条目PTE进行复制或共享。
通过上述分析可知,页表项中包括的用于存储不同级之间的查询关系,以及存储虚拟地址分段与物理地址分段的对应关系,都需要占用内存空间。若每次在创建新的子进程时,直接将父进程的页表项,复制给子进程,作为子进程的页表项,会占用较多的内存空间。而本申请提供的实施例中,若所述第一页表项不支持被更改,可以将该第一页表项共享给新的子进程,使该子进程可以调用该第一页表项,而不需要再复制父进程的页表项,从而可以节约内存空间。
其中,处理器110可以包括一个或者多个处理核。处理器110可以利用各种接口和线路连接整个电子设备100内的各个部分,获取系统程序以及应用程序的不同请求,从而执行不同请求对应的进程。再依据进程对虚拟地址空间的调用情况,查找物理地址空间中存在的热区分段。可选地,处理器110可以采用微控制单元(Microcontroller Unit,MCU)、数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。
对于一些实施方式,存储器120可以存储有该电子设备100对应的系统程序,例如若电子设备100为智能手机,则存储器120可以存储有手机系统程序;若电子设备100为台式计算机,则存储器120可以存储有台式计算机系统程序。电子设备100可以运行存储在存储器120中的系统程序,具体的可以通过处理器110运行。存储器120还可以存储有不同的应用程序,其中应用程序可以运行在电子设备100运行的系统程序中。其中,应用程序或系统程序还可以发起子进程创建请求,具体的可以参阅前述介绍,此处就不再赘述。对于一些实施方式,存储器120可以为诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。
对于一些实施方式,内存130可以包括物理内存,该内存130一般具有较高的读取速度,而存储器120的速度相较于内存130一般较低。因此内存130可以将存储器120中存放的数据预先读取并存放于内存130中,处理器110在执行应用程序的相关进程时,可以直接通过内存130进行数据交互,从而可以尽量避免处理器110和存储器120直接进行数据交换,而影响电子设备100整体的运行速度。进一步的,由于内存130中的物理内存一般较小,因此若将应用程序的进程都存放在内存130中的物理内存,将会影响同时能够执行的进程数量,并且进程之间可能还会造成相互干扰。因此,内存130中还可以包括虚拟内存空间,电子设备100中执行的进程可以被处理器110首先放置于内存空间130中的虚拟内存空间中,该虚拟内存空间再通过虚拟物理地址映射表访问对应的物理内存空间,具体的为访问物理内存空间中存放的数据,或向物理内存空间中写入进程中产生的数据。而虚拟内存空间可以具有比物理内存空间更大的空间,因此将进程放置于虚拟内存空间中可以同时执行的进程数量大于将进程直接放置于物理内存空间中。
对于一些实施方式,内存130可以为同步动态随机存取存储器(SynchronousDynamic RAM,SDRAM)或双倍速率同步动态随机存储器(Double data Rate SDRAM,DDRSDRAM)等。
请参阅图2,图2示出了本申请实施例提供的一种进程创建方法,该内存区域确定方法可以应用于前述实施例中的电子设备100,该电子设备100包括有处理器110、存储器120以及内存130。其中,处理器110分别和存储器120以及内存130连接,存储器120还与内存130连接。具体的,该方法包括步骤S110至步骤S140。
步骤S110:响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段。
对于一些实施方式,子进程创建请求可以由电子设备中运行的系统程序,或在系统程序上运行的应用程序发起。例如,启动音乐播放应用程序,则该音乐播放应用程序可以发起子进程创建请求。对于本申请提供的一种实施方式,子进程创建请求还可以包括有该子进程对应的虚拟地址分段。具体的,该子进程对应的虚拟地址分段可以包括于该子进程创建请求对应的指定页表项中。其中,对于一种示例,该指定页表项中可以仅存储有该子进程的虚拟地址分段;对于另一种示例,该指定页表项中还可以存储有该子进程的虚拟地址分段,以及物理地址分段,其中物理地址分段为默认值,例如默认值可以为0x00000000等。
电子设备可以响应于该子进程创建请求,一种示例性的,可以通过fork()函数进行响应。其中,该fork()函数可以为一个进程,该fork()函数可以包括有代码、数据和分配给待创建的新的子进程的资源。当应用程序或系统程序发起子进程创建请求时,电子设备可以调用该fork()函数,从而创建新的子进程。其中,电子设备可以预先给新的子进程分配存储空间,以用于存储数据和代码。该存储空间还可以用于存储子进程创建请求对应指定页表项,从而也可以存放该指定页表项中包括的子进程的虚拟地址分段。对于一些实施方式,fork()函数可以调用原进程,并基于原进程创建子进程。具体的,可以将原来的进程的相关数据都复制到新的子进程对应存储空间中。其中,用以创建子进程的原进程即为父进程,即父进程是用于执行该进程创建请求的进程。父进程中的相关数据可以包括数据结构、文件描述符以及第一页表项等。然而,若在创建每个子进程时,都直接将父进程中的页表项复制到子进程中,会消耗较多的内存空间。因此,可以根据父进程中的页表项的属性,判定是否可以不复制页表项给子进程,而直接共享页表项给子进程。
步骤S120:获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段。
对于一些实施方式,在确定该进程创建请求对应的父进程后,可以获取该父进程的第一页表项。其中,该第一页表项中包括有虚拟地址分段、物理地址分段以及虚拟地址分段与物理地址分段的映射关系,从而存放于虚拟地址空间中的进程,可以实现对物理地址空间的访问。例如,虚拟地址空间中的0x0001虚拟空间分段可以映射至物理地址空间中的0x0034物理地址分段,而虚拟地址空间中的0x0002虚拟空间分段可以映射至物理地址空间中的0x0064物理地址分段;虚拟地址空间中的0x0003虚拟空间分段可以映射至物理地址空间中的0x00ea物理地址分段。另一种示例性的,虚拟地址空间中不同的虚拟地址分段,可以映射至物理地址空间中相同的物理地址分段,例如,虚拟地址空间中的0x0001虚拟空间分段可以映射至物理地址空间中的0x0034物理地址分段,而虚拟地址空间中的0x0002虚拟空间分段可以映射至物理地址空间中的0x0034物理地址分段;虚拟地址空间中的0x0003虚拟空间分段可以映射至物理地址空间中的0x0034物理地址分段。其中,该第一页表项中的物理地址分段,可以作为目标地址分段。
步骤S130:若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项。
对于一些实施方式,若直接将父进程的第一页表项进行复制,再基于复制得到的页表项创建子进程,会占用较多的内存空间。但是若将父进程的第一页表项共享给子进程,使该子进程可以基于该共享的第一页表项确定物理地址分段,在该第一页表项可以被更改时,共享该第一页表项的子进程可能会改变该第一页表项中的内容,从而对其他共享了该第一页表项的子进程造成影响,也同时会对父进程造成影响。因此,可以首先判定该第一页表项是否支持被更改,仅当该第一页表项不支持被更改时,才将该第一页表项共享给子进程。具体的,可以将子进程的虚拟地址分段指向目标地址分段,即第一页表项中的物理地址分段,以得到第二页表项。从而,该第二页表项中是基于第一页表项共享的物理地址分段,来获取存储在物理地址分段中的数据。并且,由于第一页表项不支持被更新,该子进程也不会对第一页表项进行更改,即不会对其他共享了该第一页表项的子进程造成影响,也不会对父进程造成影响。
步骤S140:基于所述第二页表项创建子进程。
对于一些实施方式,通过前述方法获得第二页表项后,可以基于第二页表项创建子进程。该子进程可以基于第二页表项,来获取子进程对应的虚拟地址分段和物理地址分段的映射,从而访问虚拟地址分段指向的物理地址分段中的数据。进一步的,电子设备还可以通过指定函数将父进程中的数据结构以及文件描述符等复制给子进程。
本申请提供了一种进程创建方法、装置、电子设备及计算机可读介质,该方法中电子设备可以响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段;再获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段;若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项;基于所述第二页表项创建子进程。若直接将父进程的第一页表项进行复制,再基于复制得到的页表项创建子进程,会占用较多的内存空间。但是若将父进程的第一页表项共享给子进程,进而创建该子进程,在该第一页表项可以被更改时,共享该第一页表项的子进程可能会改变该第一页表项中的内容,从而对其他共享了该第一页表项的子进程造成影响,也同时会对父进程造成影响。因此,本申请提供的实施例中,仅当该第一页表项不支持被更改时,才将该第一页表项共享给子进程。而基于共享的第一页表项而创建的子进程,该子进程对应的页表项不会占用过多的内存空间,从而可以减少创建子进程时对内存空间的占用。
请参阅图3,图3示出了本申请实施例提供的一种进程创建方法,该内存区域确定方法可以应用于前述实施例中的电子设备100,该电子设备100包括有处理器110、存储器120以及内存130。其中,处理器110分别和存储器120以及内存130连接,存储器120还与内存130连接。具体的,该方法包括步骤S210至步骤S260。
步骤S210:响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段。
步骤S220:获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段。
对于一些实施方式,步骤S210与步骤S220在前述实施例中已经详细介绍,此处就不再赘述。
步骤S230:获取所述第一页表项的属性。
对于一些实施方式,可以通过父进程的第一页表项的属性,来判定该页表项是否可以被更改。其中,页表项的属性,可以包括有共享、读、写、可执行等,其中,不同的属性可以相互组合,一种示例性的,页表项的属性可以为共享和可读属性;也可以为共享和可执行读属性;还可以为非共享属性等。
进一步的,父进程第一页表项的属性,可以基于父进程进行控制,即父进程可以对第一页表项的属性进行更改,因此,第一页表项的属性并不一定是固定的,也可以根据需要灵活更改。
对于一些实施方式,可以预先在父进程对应的第一页表项中的指定位置,设定一个标志位,通过约定该标志位的具体数值,来表征不同的属性。从而,可以直接通过获取该父进程对应的第一页表项中指定位置的数值,再结合预先约定的标志位的数值与属性的关系,就可以获知该父进程的第一页表项中虚拟地址分段的属性。一种示例性的,父进程可以对应有虚拟内存区域结构体(structvm_area_struct,VMA),该虚拟内存区域结构体VMA中可以包括有标志位flag,可以约定该标志位的具体数值,来表征不同的属性。例如,当该标志位为0x00000001时,可以表征该第一页表项的属性为可读;当该标志位为0x00000002时,可以表征该第一页表项的属性为可写;当该标志位为0x00000004时,可以表征该第一页表项的属性为执行;当该标志位为0x00000008时,可以表征该第一页表项的属性为共享。因此,可以通过获取该虚拟内存区域结构体VMA中包括的标志位flag的数值,来获取该父进程的第一页表项的属性。
可选的,还可以获取父进程的身份信息,仅在父进程的身份信息为指定身份时,才将第一页表项共享给子进程。具体的,请参阅图4,图4示出了步骤S230的一种实施方式图,具体的包括步骤S231至步骤S233。
步骤S231:获取所述父进程的身份信息。
步骤S232:若所述父进程的身份信息为指定身份,获取所述第一页表项的属性。
步骤S233:若父进程的身份信息不为指定身份,创建第三页表项,并基于所述第三页表项创建子进程,其中,所述第二页表项为对所述第一页表项进行复制所得。
可选的,由于在通过一些进程作为父进程,创建子进程时,可能需要直接将父进程完全复制,从而创建子进程,此时则不需要再根据父进程的第一页表属性判断是否需要共享第一页表属性给子进程。因此,在获取父进程的第一页表项的属性之前,还可以获取父进程的身份信息,仅当所述父进程的身份信息为指定身份时,才获取所述第一页表项的属性。
其中,父进程的身份信息,可以用于包括该父进程的名称。对于本申请提供的实施方式,该指定身份可以为孵化进程(Zygote)。因此,若所述父进程的身份信息为孵化进程,获取所述第一页表项的属性。
进一步的,若父进程的身份信息不为指定身份,则不需要获取所述第一页表项的属性,而可以直接创建第三页表项,并基于所述第三页表项创建子进程。其中,所述第二页表项为对所述第一页表项进行复制所得,即直接将父进程的第一页表项进程复制得到第三页表项,再基于该第三页表项创建子进程。
步骤S240:若所述属性满足目标属性,则判定所述第一页表项不支持被更改,其中,所述目标属性包括共享以及只读、共享以及可执行读中任意一种。
对于一些实施方式,在获取到第一页表的属性后,可以判断该属性是否满足目标属性,当所述属性满足目标属性,则判定所述第一页表项不支持被更改。由于若第一页表项的属性中包括有写相关的属性,则表征其他共享了该第一页表项的进程可以对该第一页表项进行更改,因此,目标属性中可以包括只读以及可执行读。进一步的,又由于通过前述介绍可知,当判定第一页表项不支持被更改后,可以将第一页表项共享给子进程,因此,第一页表项的属性中还应该包括有共享的属性,即目标属性包括共享以及只读、共享以及可执行读中任意一种。
步骤S250:若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项。
步骤S260:基于所述第二页表项创建子进程。
对于一些实施方式,若存在多个子进程是基于第二页表项进行创建的,即该多个子进程都通过共享的第一页表项实现对物理地址分段的访问。此时若该多个进程需要同时执行,即都需要通过第一页表项查找对应的物理地址分段,可以优先使具有较高优先级的进程通过共享的第一页表项查找对应的物理地址分段。其中,可以预先为不同的进程设定不同程度的优先级,该优先级可以与该进程对应的应用程序或系统程序对用户的体验成正相关。即,若用户对该进程对应的应用程序或系统程序感知越强,该进程的优先级就越高;若用户对该进程对应的应用程序或系统程序感知越弱,该进程的优先级就越低。一种示例性的,若该进程对应的应用程序为视频播放应用程序,用户一般对视频播放应用程序的感知较强,因此可以为视频播放应用程序对应的进程设定较高的优先级;若该进程对应的系统程序为软件后台更新,用户一般不太关注后台软件更新的情况,因此可以为该进程设定较低的优先级。
具体的,关于步骤S250和步骤S260的详细介绍,可以参阅前述实施例的介绍,此处就不再赘述。
请参阅图5,图5示出了本申请实施例提供的一种进程创建方法,该内存区域确定方法可以应用于前述实施例中的电子设备100,该电子设备100包括有处理器110、存储器120以及内存130。其中,处理器110分别和存储器120以及内存130连接,存储器120还与内存130连接。具体的,该方法包括步骤S310至步骤S3100。
步骤S310:响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段。
步骤S320:获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段。
步骤S330:获取所述第一页表项的属性。
步骤S340:若所述属性满足目标属性,则判定所述第一页表项不支持被更改,其中,所述目标属性包括共享以及只读、共享以及可执行读中任意一种。
步骤S350:若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项。
步骤S360:基于所述第二页表项创建子进程。
其中,步骤S310至步骤S360可以参阅前述实施例中的介绍,此处就不再赘述。
步骤S370:响应于页面回收请求,确定所述页面回收请求对应的目标页面。
对于一些实施方式,当电子设备需要对页面进行回收时,该页面即为物理地址分段,例如,具体可以为一个物理地址分段,也可以为多个物理地址分段。电子设备中的系统程序可以发起该页面回收请求,一种是理性的,可以是在需要加载一个占用空间较大的进程时,现有物理地址分段对应的空间已经不足以加载该进程,此时可以发起页面回收请求,从而为该进程提供更多的物理地址分段,即更大的空间。另一种是理性的,也可以为预先设定的按指定周期发起页面回收请求。此时电子设备可以响应于该页面回收请求,例如可以为电子设备中的处理器进行响应。具体的,可以确定该页面回收请求对应的目标页面,其中该目标页面即为该页面回收请求需要回收的页面,即需要回收的物理地址分段。
步骤S380:获取与所述目标页面对应第一类型页表项以及第二类型页表项,其中,所述第一类型页表项包括所述第一页表项或所述第二页表项,所述第二类型页表项包括所述第三类型页表项。
步骤S390:基于所述第一类型页表项以及所述第二类型页表项,确定所述目标页面对应的目标进程。
步骤S3100:断开所述目标进程与所述目标页面的对应关系,并对所述目标页面进行回收。
对于一些实施方式,为了回收该物理地址分段,需要先对与目标页面具有映射关系的页表项进行更新,将页表项中对应的目标页面删除。因此,需要首先确定目标页面对应的页表项。对于本申请提供的一种实施方式,可以通过反向映射(RMAP)机制定位指向同一物理地址分段的所有页表项,即可以实现获取目标页面对应的所有目标页表项。
进一步的,还需要通过确定目标页表项,确定该目标页表项对应的进程。当该子进程是通过父进程的第一页表项进行复制得到的第三页表项创建的,则该页表项对应唯一进程,该页表项可以作为第二类型页表项。若该子进程是通过父进程共享的第一页表项得到的第二页表项创建的,则通过第一页表项可以查找到所有通过第二页表项创建的子进程,该页表项可以作为第一类型页表项。即所述第一类型页表项包括所述第一页表项或所述第二页表项,所述第二类型页表项包括所述第三类型页表项。进一步的,目标页表对应的
对于一些实施方式,通过目标页面确定的页表项中,可能存在第一类型页表项,也可能存在第二类型页表项,因此需要基于所述第一类型页表项以及所述第二类型页表项,确定所述目标页面对应的目标进程,也就是说,目标进程中可以包括有第一类型页表项对应的进程,也可以包括有第二类型页表项对应的进程。其中,第一类型页表项对应的进程可以为第一类型进程,第二类型页表项对应的进程可以为第二类型进程,即目标进程可以包括第一类型进程和第二类型进程。
请参阅图6,其中图6示出了本申请实施例提供的一种查找目标页面对应的进程的示意图。具体的,图6中包括有目标页面610、第二类型页表项620以及第二类型进程630,其中第二类型页表项620具体包括有页表项A1、页表项A2直至页表项AN,即包括有N个页表项,其中N为大于或等于1的自然数,相应的,进程630具体包括有进程B1、进程B2直至进程BN。其中,图6中的页表项都为第二类型页表项620,因此进程630都是通过父进程的第一页表项进行复制得到的第三页表项创建的。因此通过反向映射遍历目标页面610对应的第二类型页表项620时,需要遍历N次,此时对应的时间复杂度为o(N)。
请参阅图7,其中图7示出了本申请又一实施例提供的一种查找目标页面对应的进程的示意图。具体的,图7中包括有目标页面710、第一类型页表项720以及第一类型进程730,其中第一类型页表项720具体包括有页表项C,相应的,进程730具体包括有进程D1、进程D2直至进程DM,其中M为大于或等于1的自然数。其中,图7中的页表项都为第一类型页表项720,因此进程730都是通过共享父进程的第一页表项得到的第二页表项创建的。因此,不同的进程都可以对应第一类型页表项720,即通过反向映射遍历目标页面710对应的第一类型页表项720时,只需要遍历1次,此时对应的时间复杂度为o(1)。结合图6和图7可以看出,通过反向映射遍历目标页面得到第一类型页表项的时间复杂度o(1)小于通过反向映射遍历目标页面得到第二类型页表项的时间复杂度o(N);对于通过反向映射遍历目标页面得到第一类型页表项所消耗的计算资源相较于得到第二类型页表项所消耗的计算资源更少。
进一步的,请参阅图8,图8示出了步骤S390的实施方式图,具体包括步骤S391至步骤S393。
步骤S391:基于所述第一类型页表项中任意一个页表项,确定所述第一类型进程。
步骤S392:基于所述第二类型页表项中的每个页表项,确定所述第二类型进程。
步骤S393:基于所述第一类型进程和所述第二类型进程,确定所述目标进程。
通过图7的介绍可知,第一类型的进程都共享有父进程的第一页表项,从而可以仅通过第一类型页表项中任意一个页表项,即可确定出第一类型的进程。一种示例性的,第一页表项属于第一类型页表项,因此可以通过父进程的第一页表项,确定出所有共享了该第一页表项的子进程,即第一类型进程。
进一步的,通过图6的介绍可知,第二类型进程都是通过复制第一页表项得到的第三页表项创建的,因此需要通过每一个第二类型页表项,确定对应的每一个第二类型进程,即基于所述第二类型页表项中的每个页表项,确定所述第二类型进程。
通过上述介绍可知,目标进程即包括第一类型进程和第二类型进程,因此在确定第一类型进程以及第二类型进程后,即可确定目标进程。
进一步的,在对目标页面进行回收前,需要断开所述目标进程与所述目标页面的对应关系。具体的,目标进程与目标页面一般是通过目标进程对应的页表项建立的,因此可以对目标进程的页表项进行更新,使页表项中不包括目标页面对应的物理地址分段,例如可以将页表项中原有的目标页面删除;又例如,可以将原页表项中虚拟地址分段对应的目标页面的物理地址分段,重新映射为另一个与目标页表对应的物理地址分段不同的物理地址分段。进一步的,在断开所述目标进程与所述目标页面的对应关系后,可以对所述目标页面进行回收。其中,被回收的目标页面,可以重新分配给其他进程存储数据,例如与其他进程的虚拟地址分段建立映射关系,从而可以为该进程提供与目标页面对应的物理地址分段的数据交互。
可选的,在对目标页面进行回收前,还可以检测目标进程中是否还存在进程正在调用目标页面对应的物理地址分段中的数据,例如正在读取或写入数据。一种示例性的,可以等待目标进程中所有进程都执行完毕和目标页面对应的物理地址分段的数据交互后,再对所述目标页面进行回收。另一种示例性的,还可以通过将目标页面中的数据转移至其他物理地址分段中暂存,并将目标进程映射的目标页面修改为暂时存储该数据的其他物理地址分段,再对所述目标页面进行回收。
本申请提供了一种进程创建方法、装置、电子设备及计算机可读介质,该方法中电子设备可以响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段;再获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段;若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项;基于所述第二页表项创建子进程。本申请提供的实施例中,仅当该第一页表项不支持被更改时,才将该第一页表项共享给子进程。而基于共享的第一页表项而创建的子进程,该子进程对应的页表项不会占用过多的内存空间,从而可以减少创建子进程时对内存空间的占用。该方法还包括响应于页面回收请求,确定所述页面回收请求对应的目标页面;获取与所述目标页面对应第一类型页表项以及第二类型页表项;于所述第一类型页表项以及所述第二类型页表项,确定所述目标页面对应的目标进程;断开所述目标进程与所述目标页面的对应关系,并对所述目标页面进行回收。由于通过反向映射遍历目标页面0对应的第二类型页表项620时,需要遍历N次,此时对应的时间复杂度为o(N),而对于第一类型页表项720,通过反向映射遍历目标页面对应的第一类型页表项720时,只需要遍历1次,此时对应的时间复杂度为o(1)。因此本申请中对于通过反向映射遍历目标页面得到第一类型页表项所消耗的计算资源相较于得到第二类型页表项所消耗的计算资源更少,从而本申请中通过共享部分第一页表给子进程,还可以提高回收页面时,通过反向映射机制查找目标页面对应的目标进程的效率,从而提高回收页面的整体效率。
请参阅图9,图9示出了本申请实施例提供的一种进程创建方法,该内存区域确定方法可以应用于前述实施例中的电子设备100,该电子设备100包括有处理器110、存储器120以及内存130。其中,处理器110分别和存储器120以及内存130连接,存储器120还与内存130连接。具体的,该方法包括步骤S410至步骤S460。
步骤S410:响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段。
步骤S420:获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段。
步骤S430:若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项。
步骤S440:基于所述第二页表项创建子进程。
其中,步骤S410至步骤S440在前述实施例中已经详细描述,此处就不再赘述。
步骤S450:对所述第一页表项对应的子进程数量进行更新。
对于一些实施方式,可以划分一个指定空间,用于存放基于共享的第一页表项得到的第二页表项而建立的子进程数量。例如,有1000个子进程通过共享的第一页表项得到的第二页表项而建立的,则该指定空间可以存放数据1000。
步骤S460:若所述第一页表项支持被更改,创建第四页表项,并基于所述第四页表项创建子进程,其中,所述第四页表项为对所述第一页表项进行复制所得。
对于一些实施方式,通过前述介绍可知,若第一页表项支持被更改,此时若将第一页表项共享给子进程,可能会导致第一页表项中的数据被更改,从而对父进程或其他共享了该第一页表项的子进程造成影响。因此,当第一页表项支持被更改时,创建第四页表项,并基于所述第四页表项创建子进程,其中,所述第四页表项为对所述第一页表项进行复制所得。
和前述实施例中介绍的类似,可以通过第一页表项的属性,来判断第一页表是否支持被更改。一种示例性的,当该第一页表的属性为共享可写时,即表征该第一页表支持被更改,则此时可以创建第四页表项,并基于所述第四页表项创建子进程。
请参阅图10,其示出了本申请实施例提供的一种进程创建装置1000的结构框图,应用于电子设备,述装置包括:响应单元1010、获取单元1020、处理单元1030以及创建单元1040。
响应单元1010,用于响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段。
获取单元1020,用于获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段。
处理单元1030,用于若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项。
进一步的,处理单元1030还用于获取所述第一页表项的属性;若所述属性满足目标属性,则判定所述第一页表项不支持被更改,其中,所述目标属性包括共享以及只读、共享以及可执行读中任意一种。
进一步的,处理单元1030还用于获取所述父进程的身份信息;若所述父进程的身份信息为指定身份,获取所述第一页表项的属性。
进一步的,处理单元1030还用于若父进程的身份信息不为指定身份,创建第三页表项,并基于所述第三页表项创建子进程,其中,所述第二页表项为对所述第一页表项进行复制所得。其中,所述指定身份包括孵化进程。
进一步的,处理单元1030还用于响应于页面回收请求,确定所述页面回收请求对应的目标页面;获取与所述目标页面对应第一类型页表项以及第二类型页表项,其中,所述第一类型页表项包括所述第一页表项或所述第二页表项,所述第二类型页表项包括所述第三类型页表项;基于所述第一类型页表项以及所述第二类型页表项,确定所述目标页面对应的目标进程;断开所述目标进程与所述目标页面的对应关系,并对所述目标页面进行回收。
进一步的,处理单元1030还用于基于所述第一类型页表项中任意一个页表项,确定所述第一类型进程;基于所述第二类型页表项中的每个页表项,确定所述第二类型进程;基于所述第一类型进程和所述第二类型进程,确定所述目标进程。
进一步的,处理单元1030还用于若所述第一页表项支持被更改,创建第四页表项,并基于所述第四页表项创建子进程,其中,所述第四页表项为对所述第一页表项进行复制所得。
创建单元1040,用于若基于所述第二页表项创建子进程。
进一步的,创建单元1040还用于对所述第一页表项对应的子进程数量进行更新。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,单元相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
请参考图11,其示出了本申请实施例提供的一种电子设备100的结构框图。该电子设备100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器110、存储器120以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图12,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1200中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1200可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1200包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1200具有执行上述方法中的任何方法步骤的程序代码1210的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1210可以例如以适当形式进行压缩。
请参考图13,其示出了本申请实施例提供的一种计算机程序产品的结构框图1300。该计算机程序产品1300中包括计算机程序/指令1310,该计算机程序/指令1310被处理器执行时实现上述方法的步骤。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (13)

1.一种进程创建方法,其特征在于,应用于电子设备,包括:
响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段;
获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段;
若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项;
基于所述第二页表项创建子进程。
2.根据权利要求1所述的方法,其特征在于,所述若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段之前,还包括:
获取所述第一页表项的属性;
若所述属性满足目标属性,则判定所述第一页表项不支持被更改,其中,所述目标属性包括共享以及只读、共享以及可执行读中任意一种。
3.根据权利要求2所述的方法,其特征在于,所述获取所述第一页表项的属性,包括:
获取所述父进程的身份信息;
若所述父进程的身份信息为指定身份,获取所述第一页表项的属性。
4.根据权利要求3所述的方法,其特征在于,还包括:
若父进程的身份信息不为指定身份,创建第三页表项,并基于所述第三页表项创建子进程,其中,所述第二页表项为对所述第一页表项进行复制所得。
5.根据权利要求3或4所述的方法,其特征在于,所述指定身份包括孵化进程。
6.根据权利要求4所述的方法,其特征在于,还包括:
响应于页面回收请求,确定所述页面回收请求对应的目标页面;
获取与所述目标页面对应第一类型页表项以及第二类型页表项,其中,所述第一类型页表项包括所述第一页表项或所述第二页表项,所述第二类型页表项包括所述第三类型页表项;
基于所述第一类型页表项以及所述第二类型页表项,确定所述目标页面对应的目标进程;
断开所述目标进程与所述目标页面的对应关系,并对所述目标页面进行回收。
7.根据权利要求6所述的方法,其特征在于,所述目标进程包括第一类型进程和第二类型进程,所述基于所述第一类型页表项以及所述第二类型页表项,确定所述目标页面对应的目标进程,包括:
基于所述第一类型页表项中任意一个页表项,确定所述第一类型进程;
基于所述第二类型页表项中的每个页表项,确定所述第二类型进程;
基于所述第一类型进程和所述第二类型进程,确定所述目标进程。
8.根据权利要求1所述的方法,其特征在于,还包括:
若所述第一页表项支持被更改,创建第四页表项,并基于所述第四页表项创建子进程,其中,所述第四页表项为对所述第一页表项进行复制所得。
9.根据权利要求1所述的方法,其特征在于,所述基于所述第二页表项创建子进程之后,还包括:
对所述第一页表项对应的子进程数量进行更新。
10.一种进程创建装置,其特征在于,应用于电子设备,包括:
响应单元,用于响应于子进程创建请求,确定执行所述进程创建请求的父进程,所述子进程创建请求对应有指定页表项,所述指定页表项包括子进程的虚拟地址分段;
获取单元,用于获取所述父进程的第一页表项,所述第一页表项的物理地址分段为目标地址分段;
处理单元,用于若所述第一页表项不支持被更改,则将所述子进程的虚拟地址分段指向所述目标地址分段,以得到第二页表项;
创建单元,用于若基于所述第二页表项创建子进程。
11.一种电子设备,其特征在于,包括:一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-9任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-9任一项所述的方法。
13.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-9任一项所述的方法。
CN202211085599.4A 2022-09-06 2022-09-06 进程创建方法、装置、电子设备及计算机可读介质 Pending CN116302376A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211085599.4A CN116302376A (zh) 2022-09-06 2022-09-06 进程创建方法、装置、电子设备及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211085599.4A CN116302376A (zh) 2022-09-06 2022-09-06 进程创建方法、装置、电子设备及计算机可读介质

Publications (1)

Publication Number Publication Date
CN116302376A true CN116302376A (zh) 2023-06-23

Family

ID=86794745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211085599.4A Pending CN116302376A (zh) 2022-09-06 2022-09-06 进程创建方法、装置、电子设备及计算机可读介质

Country Status (1)

Country Link
CN (1) CN116302376A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117724822A (zh) * 2024-02-05 2024-03-19 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117724822A (zh) * 2024-02-05 2024-03-19 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质
CN117724822B (zh) * 2024-02-05 2024-05-24 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US11003625B2 (en) Method and apparatus for operating on file
US20050080986A1 (en) Priority-based flash memory control apparatus for XIP in serial flash memory,memory management method using the same, and flash memory chip thereof
US20150113230A1 (en) Directory storage method and query method, and node controller
US10261918B2 (en) Process running method and apparatus
CN114546295B (zh) 一种基于zns固态硬盘的智能写分配方法和装置
WO2024099448A1 (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
TWI710905B (zh) 資料儲存裝置及邏輯至物理位址映射表之載入方法
WO2021253688A1 (zh) 数据同步方法及装置、数据查询方法及装置
CN114416425A (zh) 进程拷贝方法以及装置
CN114168490A (zh) 确定内存回收阈值的方法及相关设备
CN111158602A (zh) 数据分层存储方法、读取方法、存储主机及存储系统
US20130346714A1 (en) Hardware-Based Accelerator For Managing Copy-On-Write
CN116302376A (zh) 进程创建方法、装置、电子设备及计算机可读介质
CN104866388B (zh) 数据处理方法及装置
CN114546898A (zh) 一种tlb管理方法、装置、设备及存储介质
US10635614B2 (en) Cooperative overlay
US10073851B2 (en) Fast new file creation cache
EP3007067A1 (en) Method of memory access, buffer scheduler and memory module
CN111475099A (zh) 一种数据存储方法、装置及其设备
CN115756838A (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
CN115587053A (zh) 内存区域确定方法、装置、电子设备及计算机可读介质
CN111562983B (zh) 内存优化方法、装置、电子设备及存储介质
US20140181379A1 (en) File Reading Method, Storage Device And Electronic Device
CN115328405A (zh) 数据处理方法、装置及电子设备
CN104636079A (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