CN114020709A - 文件处理方法及装置 - Google Patents

文件处理方法及装置 Download PDF

Info

Publication number
CN114020709A
CN114020709A CN202111156105.2A CN202111156105A CN114020709A CN 114020709 A CN114020709 A CN 114020709A CN 202111156105 A CN202111156105 A CN 202111156105A CN 114020709 A CN114020709 A CN 114020709A
Authority
CN
China
Prior art keywords
file
memory
physical address
page memory
kernel dump
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
CN202111156105.2A
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202111156105.2A priority Critical patent/CN114020709A/zh
Publication of CN114020709A publication Critical patent/CN114020709A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种文件处理方法及装置;方法包括:响应于应用程序处于非正常状态,生成内核转储文件;确定映射内存文件中的大页内存;在所述内核转储文件中存储所述大页内存对应的物理地址与虚拟地址的映射关系,并在第一文件中创建所述大页内存对应的第二文件;所述第二文件与所述物理地址具有对应关系。

Description

文件处理方法及装置
技术领域
本申请涉及计算机技术,尤其涉及一种文件处理方法及装置。
背景技术
在应用程序处于非正常状态时,如应用程序异常终止或崩溃时,系统将生存内核转储(coredump)文件,coredump文件用于存储应用程序的内存信息。
随着互联网和服务器新硬件等技术的不断发展,服务器可能会存在几百GB的物理内存,应用程序的“体积”也越来越大,典型的如一些缓存类应用程序;缓存类应用如分布式存储、分布式缓存、分布式数据库等会消耗巨量的内存,降低系统的性能;因此,如何提高系统的性能是一直追求的目标。
发明内容
本申请实施例提供一种文件处理方法及装置,能够提高系统的性能。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种文件处理方法,包括:响应于应用程序处于非正常状态,生成内核转储文件;
确定映射内存文件中的大页内存;
在所述内核转储文件中存储所述大页内存对应的物理地址与虚拟地址的映射关系,并在第一文件中创建所述大页内存对应的第二文件;所述第二文件与所述物理地址具有对应关系。
在一些实施例中,所述方法还包括:
在所述内核转储文件中存储除所述大页内存以外的内存的信息。
在一些实施例中,所述在所述内核转储文件中存储所述大页内存对应的物理地址与虚拟地址的映射关系,包括:
将所述大页内存对应的物理地址与虚拟地址的映射关系存储至程序头中;
将所述程序头写入所述内核转储文件。
在一些实施例中,所述方法还包括:
从所述内核转储文件中读取程序头;
基于所述程序头中的内容,从所述第一文件中获取所述第二文件中的内容。
在一些实施例中,所述基于所述程序头中的内容,从所述第一文件中获取所述第二文件中的内容包括:
根据所述程序头中的物理地址与虚拟地址的映射关系,在所述第一文件查找与所述物理地址对应的第二文件;
获取所述与所述物理地址对应的第二文件中的内容;所述第二文件中的内容包括所述大页内存的信息。
在一些实施例中,所述根据所述程序头中的物理地址与虚拟地址的映射关系,在所述第一文件查找与所述物理地址对应的第二文件包括:
解析所述程序头中的物理地址与虚拟地址的映射关系,得到所述大页内存对应的物理地址;
基于所述物理地址在所述第一文件中查找与所述物理地址对应的第二文件。
在一些实施例中,所述方法还包括:
从所述内核转储文件中读取负载文件头;
根据所述附在文件头中的信息,从所述内核转储文件中获取除所述大页内存以外的内存的信息。
在一些实施例中,所述第二文件的文件标识为所述大页内存对应的物理地址。
本申请实施例提供一种文件处理装置,所述文件处理装置包括:
生成模块,用于响应于应用程序处于非正常状态,生成内核转储文件;
确定模块,用于确定映射内存文件中的大页内存;
存储模块,用于在所述内核转储文件中存储所述大页内存对应的物理地址与虚拟地址的映射关系,并在第一文件中创建所述大页内存对应的第二文件;所述第二文件与所述物理地址具有对应关系。
在一些实施例中,所述存储模块,还用于在所述内核转储文件中存储除所述大页内存以外的内存的信息。
在一些实施例中,所述存储模块,用于将所述大页内存对应的物理地址与虚拟地址的映射关系存储至程序头中;
将所述程序头写入所述内核转储文件。
在一些实施例中,所述装置还包括读取模块,用于从所述内核转储文件中读取程序头;
基于所述程序头中的内容,从所述第一文件中获取所述第二文件中的内容。
在一些实施例中,所述读取模块,用于根据所述程序头中的物理地址与虚拟地址的映射关系,在所述第一文件查找与所述物理地址对应的第二文件;
获取所述与所述物理地址对应的第二文件中的内容;所述第二文件中的内容包括所述大页内存的信息。
在一些实施例中,所述读取模块,用于解析所述程序头中的物理地址与虚拟地址的映射关系,得到所述大页内存对应的物理地址;
基于所述物理地址在所述第一文件中查找与所述物理地址对应的第二文件。
在一些实施例中,所述读取模块,还用于从所述内核转储文件中读取可执行连接格式文件的文件头;
根据所述附在文件头中的信息,从所述内核转储文件中获取除所述大页内存以外的内存的信息。
在一些实施例中,所述第二文件的文件标识为所述大页内存对应的物理地址。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的文件处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本申请实施例提供的文件处理方法。
本申请实施例提供的文件处理方法,所述方法包括:响应于应用程序处于非正常状态,生成内核转储文件;确定映射内存文件中的大页内存;在所述内核转储文件中存储所述大页内存对应的物理地址与虚拟地址的映射关系,并在第一文件中创建所述大页内存对应的第二文件;所述第二文件与所述物理地址具有对应关系。本申请实施例中,在内存转出文件中仅存储大页内存对应的物理地址与虚拟地址的映射关系,大页内存对应的第二文件并不存储在内核存储文件,而是存储在第一文件中;如此,能够减小内核转储文件的体积,减少内核转储文件的生成时间,降低系统的时延,进而提高系统的性能。
附图说明
图1是本申请实施例提供的内核转出文件的示意图;
图2是本申请实施例提供的应用程序处于非正常状态时的文件处理流程示意图;
图3是本申请实施例提供的文件处理方法的一种可选处理流程示意图;
图4是本申请实施例提供的恢复应用程序的处理过程示意图;
图5是本申请实施例提供的文件处理方法的系统架构示意图;
图6是本申请实施例提供的文件处理方法的详细处理流程示意图;
图7是本申请实施例提供的应用程序恢复方法的详细处理流程示意图;
图8是本申请实施例提供的文件处理装置的组成结构示意图;
图9是本申请实施例提供的电子设备的硬件组成结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。在以下的描述中,所涉及的术语“多个”是指至少两个。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)大页内存(Huge Page),用于对系统进行虚拟内存管理,大页内存可以管理除标准的4KB大小的页面以外的巨大的页面。在虚拟内存管理中,内核维护一个将虚拟内存地址映射到物理地址的表,对于每个页面操作,内核都需要加载相关的映射;若内存页较大,则需要加载的页就会较少,内核加载较少的映射表,优化系统的性能。
2)内存映射文件,是由一个文件到一块内存的映射,使进程虚拟地址空间的某个区域与磁盘上某个文件的部分或全部内容的建立映射。建立映射后,通过该区域可以直接对被映射的磁盘文件进行访问,而不必执行文件输入/输出操作也无需对文件内容进行缓冲处理。
3)内核转储(coredump)文件,当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个Core Dump文件中。
相关技术中,在应用程序(如C/C++进程)处于非正常状态时,内核生成的一种调试转储文件(coredump文件)。coredump文件按可读可链接格式(Executa ble and Linka bleFormat,ELF)构建,但是coredump文件中只有执行视图(Executing View),没有链接视图(LinkingView),因此coredump文件只有程序头部(Program headers)定义,没有分段头部(Section Headers)定义;导致使用readelf命令查看coredump文件时,只能看到报文段(Segment),而看不到区(Section)。
当应用程序处于非正常状态时,系统会通过coredump文件保存应用程序发生异常时的内存、寄存器状态、运行堆栈等信息。coredump文件的数据结构如图1所示,包括ELF文件头(ELF header)、Program header、PT_NOTE Segment、PT_LOAD Segment。其中,PT_NOTESegment是用于保存应用程序发生异常时的线程状态信息(Thread Status)、寄存器信息(Registers)的Segment,PT_LOADSegment是用于应用程序对应的进程已映射的内存段和代码段。
对于分布式存储、分布式缓存、分布式数据库等内存密集型的应用程序可以通过大页内存(Hugepage)分配系统内存;在应用程序处于非正常状态时所产生的coredump文件体积也非常大。coredump文件体积大可能导致coredump文件的生成时间长,不利于系统调试。coredump文件体积大还可能导致系统没有足够的空间包括coredump文件,导致无法进行系统调试。coredump文件体积大还会导致瞬间有上百GB的数据写入系统,造成系统的延时骤然增加和系统抖动,甚至还可能影响其他应用程序的运行。
以系统为Linux系统为例,相关技术中应用程序处于非正常状态时的文件处理流程,如图2所示,包括:应用程序处于非正常状态时,生成coredump文件;根据内存映射文件的数量计算所需的segment的数量;将ELF header写入coredump文件。扫描所有的内存映射文件,将所有的内存信息写入coredump文件。接着,将所有内存数据经过文件系统写入磁盘。最后,将programheader写入coredump文件。至此,完成内存信息的记录和存储。在恢复应用程序时,调试工具读取coredump文件中的ELF header和programheader;根据ELFheader和programheader中的内容读取coredump文件中记录的内存信息;文件系统从磁盘上读取内存信息。
相关技术中,在应用程序处于非正常状态时,全部的内存信息都记录在coredump文件中,导致coredump文件的体积过大,影响系统的性能。
本申请实施例提供一种文件处理方法及装置,能够在应用程序处于非正常状态时,不将全部的内存信息都记录在coredump文件中,而是将大页内存的信息记录在不同于coredump文件的第一文件中,将除大页内存以外的内存的信息记录在coredump文件中;以减小coredump文件的体积,提高系统的性能。
本申请实施例提供的文件处理方法的一种可选处理流程示意图,如图3所示,至少包括以下步骤:
步骤S201,响应于应用程序处于非正常状态,生成内核转储文件。
在一些实施例中,若应用程序发生议程终止或崩溃,则可以认为应用程序处于非正常状态。
步骤S202,确定映射内存文件中的大页内存。
在一些实施例中,判断映射内存文件中是否存在大页内存,若存在大页内存,则执行步骤S203。
其中,大页内存能够管理除标准的4KB大小的页面以外的巨大的页面。
步骤S203,在内核转储文件中存储大页内存对应的物理地址与虚拟地址的映射关系,并在第一文件中创建大页内存对应的第二文件。
在一些实施例中,大页内存对应的内存信息不存储在内核转储文件中,内核转储文件中仅存储大页内存对应的物理地址与虚拟地址的映射关系。具体的,可以将大页内存对应的物理地址与虚拟地址的映射关系存储在内核转储文件的程序头(programheader)中;再将programheader写入内核转储文件。
在一些实施例中,第一文件为hugetlbfs文件,第二文件为hugepage映射文件;大页内存对应的第二文件可以是指第二文件中存储有大页内存对应的内存信息。因此,大页内存对应的内存信息存储在hugetlbfs文件中的hugepage映射文件内。
在一些实施例中,第二文件与大页内存的物理地址具有对应关系;具体的,可以是第二文件的文件名称与大页内存的物理地址具有对应关系,如第二文件的文件名称为大页内存的物理地址。如此,通过在内核转储文件中存储大页内存对应的物理地址与虚拟地址的映射关系,而不存储大页内存对应的内存信息,能够减小内核转储文件的体积。由于内核转储文件的体积变小,因此能够缩短生成内核转储文件的时间。通过建立第二文件与大页内存的物理地址之间的对应关系,能够通过内核转储文件中记录的大页内存对应的物理地址与虚拟地址的映射关系,在第一文件中查找到与大页内存的物理地址具有对应关系的第二文件,进而获取到第二文件中记录的大页内存的内存信息。在获取大页内存的内存信息时,不是通过磁盘来读取数据,而是从第二文件中读取数据,能够减少磁盘的输入和输出消耗,不依赖磁盘的容量。
在一些实施例中,所述方法还可以包括:
步骤S204,在内核转储文件中存储除大页内存以外的内存的信息。
在一些实施例中,除大页内存以外,还可以包括管理标准的4KB大小的页面的标准内存。由于标准内存的内存信息较大页内存的内存信息小,因此,可以将标准内存的内存信息存储在内核转储文件中,即将除大页内存以外的内存的信息存储在内核转储文件中。
上述步骤S201至步骤S204实现了在应用程序处于非正常状态时的内存信息的记录;具体的,在内核转储文件中记录标准内存的内存信息、以及大页内存对应的物理地址与虚拟地址的映射关系;在hugetlbfs文件中的hugepage映射文件内记录大页内存的内存信息,且将hugepage映射文件以大页内存的物理地址命名。
在一些实施例中,若应用程序处于非正常状态,则可以对应用程序进行恢复。具体的,可以在步骤S204之后,执行如图4所述的恢复应用程序的处理过程。恢复应用程序的处理过程,至少可以包括如下步骤:
步骤S301,从内核转储文件中读取程序头,基于程序头中的内容从第一文件中获取第二文件中的内容。
在一些实施例中,通过从内核转读文件中读取programheader,解析大页内存对应的物理地址与虚拟地址的映射关系,得到大页内存对应的物理地址。若需要访问的虚拟地址在大页内存上,则可以在第一文件(hugetblfs文件)中查找文件名称为该物理地址的第二文件(hugepage文件)。进而,进而获取第二文件中的内容。其中,第二文件中的内容包括大页内存的内存信息。
步骤S302,从内核转储文件中读取负载文件头,根据所述附在文件头中的信息,从所述内核转储文件中获取除所述大页内存以外的内存的信息。
在一些实施例中,从内核转储文件中读取PT_LOAD header,PT_LOAD header中记录了segment对应的虚拟地址、大小以及在文件中的偏移;基于PT_LOAD header记录的信息可以获取segment中存储的标准内存的内存信息。
下面基于图5和图6对本申请实施例提供的文件处理方法的详细处理流程进行说明。图5为本申请实施例提供的文件处理方法的系统架构图,图6为本申请实施例提供的文件处理方法的详细处理流程,至少包括如下步骤:
步骤S401,应用程序处于非正常状态时,创建coredump文件。
步骤S402,根据内存映射文件的数量确定Segment的数量。
在一些实施例中,Segment的数量可以比内存映射文件的数量多1。Segement可以用于存放堆栈信息。
在一些实施例中,将ELF header写入内核转储文件,ELF header中记录有programheader的数量。
步骤S403,判断内存映射文件是否为大页内存;若是,则执行步骤S404;若否,则执行步骤S405。
在一些实施例中,管理标准的4KB大小的页面的内存为标准内存,管理大于标准的4KB大小的页面的内存为大页内存。
步骤S404,在一个programheader中记录大页内存对应的虚拟地址和物理地址的映射关系,在hugetlbfs文件中创建文件名称为大页内存的物理地址的hugepage文件。
在一些实施例中,在一个PT_LOAD header中记录segment对应的虚拟地址、segment的大小以及segment的物理地址。
本申请实施例中,通过在hugetlbfs文件中创建文件名称为大页内存的物理地址的hugepage文件,能够建立内核转储文件中的物理地址和hugetlbfs文件中的文件的对应关系;并且,在hugetlbfs文件中创建hugepage文件,能够保证大页内存不会被回收。
步骤S405,将标准内存的内存信息存储至内核转存文件中。
在一些实施例中,利用一个PT_LOAD header记录segment对应的虚拟地址以及segment在文件中的偏移。
图7为本申请实施例提供的应用程序恢复方法的详细处理流程,至少包括如下步骤:
步骤S406,读取内核转储文件中的ELF header、programheader以及堆栈信息。
步骤S407,判断需要访问的虚拟地址是否在大页内存上;若是,执行步骤S408;若否,执行步骤S409。
步骤S408,根据大页内存的虚拟地址确定大页内存的物理地址,在hugetlbfs文件中查找文件名称为该物理地址大页内存文件,读取大页内存文件中的大页内存的信息。
步骤S409,读取核转储文件中的segment,获取标准内存的信息。
需要说明的是,本申请各实施过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请实施例还提供一种文件处理装置,所述文件处理装置500的组成结构示意图,如图8所示,包括:
生成模块501,用于响应于应用程序处于非正常状态,生成内核转储文件;
确定模块502,用于确定映射内存文件中的大页内存;
存储模块503,用于在所述内核转储文件中存储所述大页内存对应的物理地址与虚拟地址的映射关系,并在第一文件中创建所述大页内存对应的第二文件;所述第二文件与所述物理地址具有对应关系。
在一些实施例中,所述存储模块503,还用于在所述内核转储文件中存储除所述大页内存以外的内存的信息。
在一些实施例中,所述存储模块503,用于将所述大页内存对应的物理地址与虚拟地址的映射关系存储至程序头中;
将所述程序头写入所述内核转储文件。
在一些实施例中,所述文件处理装置还包括读取模块504,用于从所述内核转储文件中读取程序头;
基于所述程序头中的内容,从所述第一文件中获取所述第二文件中的内容。
在一些实施例中,所述读取模块504,用于根据所述程序头中的物理地址与虚拟地址的映射关系,在所述第一文件查找与所述物理地址对应的第二文件;
获取所述与所述物理地址对应的第二文件中的内容;所述第二文件中的内容包括所述大页内存的信息。
在一些实施例中,所述读取模块504,用于解析所述程序头中的物理地址与虚拟地址的映射关系,得到所述大页内存对应的物理地址;
基于所述物理地址在所述第一文件中查找与所述物理地址对应的第二文件。
在一些实施例中,所述读取模块504,还用于从所述内核转储文件中读取可执行连接格式文件的文件头;
根据所述附在文件头中的信息,从所述内核转储文件中获取除所述大页内存以外的内存的信息。
在一些实施例中,所述第二文件的文件标识为所述大页内存对应的物理地址。
在一些实施例中,本申请实施例提供的文件处理方法可由终端设备或服务器实现。具体的,终端设备或服务器可以通过运行计算机程序来实现本申请实施例提供的文件处理方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
在一些实施例中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,其中,云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
以本申请实施例提供的文件处理方法是电子设备为例说明,本申请实施例提供的电子设备700的硬件组成结构示意图,图9所示的电子设备700包括:至少一个处理器701、存储器702和至少一个网络接口704。电子设备700中的各个组件通过总线系统705耦合在一起。可理解,总线系统705用于实现这些组件之间的连接通信。总线系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统705。
可以理解,存储器702可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagneticrandom access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,SynchronousStatic Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random AccessMemory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random AccessMemory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data RateSynchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例中的存储器702用于存储各种类型的数据以支持电子设备700的操作。这些数据的示例包括:用于在电子设备700上操作的任何计算机程序,如应用程序7022。实现本申请实施例方法的程序可以包含在应用程序7022中。
上述本申请实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器701可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成前述文件处理方法的步骤。
在示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、FPGA、通用处理器、控制器、MCU、MPU、或其他电子元件实现,用于执行前述的文件处理方法。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的文件处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的文件处理方法,例如,如图3至图7示出的文件处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperTextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (10)

1.一种文件处理方法,所述方法包括:
响应于应用程序处于非正常状态,生成内核转储文件;
确定映射内存文件中的大页内存;
在所述内核转储文件中存储所述大页内存对应的物理地址与虚拟地址的映射关系,并在第一文件中创建所述大页内存对应的第二文件;所述第二文件与所述物理地址具有对应关系。
2.根据权利要求1所述的方法,所述方法还包括:
在所述内核转储文件中存储除所述大页内存以外的内存的信息。
3.根据权利要求1所述的方法,所述在所述内核转储文件中存储所述大页内存对应的物理地址与虚拟地址的映射关系,包括:
将所述大页内存对应的物理地址与虚拟地址的映射关系存储至程序头中;
将所述程序头写入所述内核转储文件。
4.根据权利要求1至3任一项所述的方法,所述方法还包括:
从所述内核转储文件中读取程序头;
基于所述程序头中的内容,从所述第一文件中获取所述第二文件中的内容。
5.根据权利要求4所述的方法,所述基于所述程序头中的内容,从所述第一文件中获取所述第二文件中的内容包括:
根据所述程序头中的物理地址与虚拟地址的映射关系,在所述第一文件查找与所述物理地址对应的第二文件;
获取所述与所述物理地址对应的第二文件中的内容;所述第二文件中的内容包括所述大页内存的信息。
6.根据权利要求5所述的方法,所述根据所述程序头中的物理地址与虚拟地址的映射关系,在所述第一文件查找与所述物理地址对应的第二文件包括:
解析所述程序头中的物理地址与虚拟地址的映射关系,得到所述大页内存对应的物理地址;
基于所述物理地址在所述第一文件中查找与所述物理地址对应的第二文件。
7.根据权利要求2所述的方法,所述方法还包括:
从所述内核转储文件中读取负载文件头;
根据所述附在文件头中的信息,从所述内核转储文件中获取除所述大页内存以外的内存的信息。
8.根据权利要求1至3任一项所述的方法,所述第二文件的文件标识为所述大页内存对应的物理地址。
9.一种文件处理装置,所述装置包括:
生成模块,用于响应于应用程序处于非正常状态,生成内核转储文件;
确定模块,用于确定映射内存文件中的大页内存;
存储模块,用于在所述内核转储文件中存储所述大页内存对应的物理地址与虚拟地址的映射关系,并在第一文件中创建所述大页内存对应的第二文件;所述第二文件与所述物理地址具有对应关系。
10.根据权利要求9所述的装置,所述存储模块,还用于在所述内核转储文件中存储除所述大页内存以外的内存的信息。
CN202111156105.2A 2021-09-29 2021-09-29 文件处理方法及装置 Pending CN114020709A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111156105.2A CN114020709A (zh) 2021-09-29 2021-09-29 文件处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111156105.2A CN114020709A (zh) 2021-09-29 2021-09-29 文件处理方法及装置

Publications (1)

Publication Number Publication Date
CN114020709A true CN114020709A (zh) 2022-02-08

Family

ID=80055201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111156105.2A Pending CN114020709A (zh) 2021-09-29 2021-09-29 文件处理方法及装置

Country Status (1)

Country Link
CN (1) CN114020709A (zh)

Similar Documents

Publication Publication Date Title
CN103729442A (zh) 记录事务日志的方法和数据库引擎
CN112579698B (zh) 数据同步方法、装置、网关设备及存储介质
CN113448938A (zh) 数据处理方法、装置、电子设备及存储介质
CN111897493B (zh) 存储空间管理方法、装置及电子设备、存储介质
CN112306986A (zh) 分布式文件系统的存储方法、装置、设备及存储介质
CN112667246A (zh) 应用功能扩展的方法、装置及电子设备
CN109646947B (zh) 游戏数据的存盘方法、装置、设备和存储介质
EP3264254B1 (en) System and method for a simulation of a block storage system on an object storage system
CN111443992B (zh) docker镜像的差量导出方法、计算机存储介质及电子设备
CN115249057A (zh) 用于图形节点采样的系统和由计算机实现的方法
CN117131014A (zh) 数据库迁移方法、装置、设备及存储介质
CN110795920B (zh) 一种文档生成方法及设备
CN110928890B (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
CN113449216A (zh) 一种文件处理方法、装置及存储介质
CN115774701B (zh) 数据共享方法、装置、电子设备及存储介质
CN114020709A (zh) 文件处理方法及装置
CN111090782A (zh) 一种图数据存储方法、装置、设备及存储介质
CN109522277A (zh) 一种多格式文件阅读的方法和装置
CN111221817B (zh) 业务信息数据存储方法、装置、计算机设备及存储介质
CN114356446A (zh) 一种进程间事件的处理方法、装置、设备以及存储介质
CN113961298A (zh) 一种页面切换方法、装置、设备及介质
CN114064725A (zh) 一种数据处理方法、装置、设备及存储介质
US9471569B1 (en) Integrating information sources to create context-specific documents
CN115242874B (zh) 应用开发阶段的网络请求代理优化方法、系统、设备及存储介质
CN112541327A (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