CN108052541B - 基于多级页表目录结构的文件***的实现、访问方法、终端 - Google Patents
基于多级页表目录结构的文件***的实现、访问方法、终端 Download PDFInfo
- Publication number
- CN108052541B CN108052541B CN201711174508.3A CN201711174508A CN108052541B CN 108052541 B CN108052541 B CN 108052541B CN 201711174508 A CN201711174508 A CN 201711174508A CN 108052541 B CN108052541 B CN 108052541B
- Authority
- CN
- China
- Prior art keywords
- directory
- page
- level
- file
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于多级页表目录结构的文件***的实现、访问方法、终端,包括:以页为单位管理文件***中所有文件数据;在文件***中设置iNode区和数据区;所述数据区包括目录页和数据页,所述iNode区所存储的iNode节点包括iNode节点信息字段、页表级数字段N和根目录地址字段;以文件所对应的第N级目录页页号为根目录,以第(N‑1)级目录页页号为第1级子目录,以此类推,第1级目录页页号为第(N‑1)级子目录,形成一个N级页表目录结构来对文件数据进行存储管理,第1级目录页为数据页;将数据页的逻辑顺序作为多级页表目录结构的遍历顺序。本发明的基于多级页表目录结构的文件***的实现、访问方法、终端实现了文件数据在物理存储空间内的随机存储。
Description
技术领域
本发明涉及文件***,特别是涉及一种基于多级页表目录结构的文件***的实现、访问方法、终端。
背景技术
随着NVDIMM、3D Xpoint等新型存储技术的发展及IBM对存储级内存(StorageClass Memory,SCM)架构的提出,基于混合内存***架构及管理的非易失存储器N(on-volatile Memory,NVM)成为研究热点。新型存储技术SCM具有非易失性、读快写快、功耗低等特点,但与DRAM相比仍有差距,有限的写擦循环寿命也降低了***的可靠性。现有技术中,基于新型存储技术SCM提出过多种内存组织方式和优化方法。
随着大数据、云计算、物联网等技术的发展,数据正以前所未有的速度不断增长和累积。如何管理和组织这些数据,对传统的文件***来说是一个挑战。尽管当前的文件***为应用提供了一种易用的数据组织方式,然而该数据组织方式是基于块设备的硬件特点设计的,无法充分发挥SCM可随机访问的性能特点。因此,如何有效地组织数据,让应用程序能够以更接近内存的方式使用和访问,而又能保持文件***可靠、易维护和共享等优势,最大化地提高***整体运行效率成为亟待解决的问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于多级页表目录结构的文件***的实现、访问方法、终端,基于多级页表目录结构管理文件***存储在物理地址空间的数据,实现文件数据在物理存储空间内的随机存储,而无需按文件逻辑顺序在物理地址空间顺序存储,从而最大化地提高文件***整体的运行效率。
为实现上述目的及其他相关目的,本发明提供一种基于多级页表目录结构的文件***的实现方法,包括:以页为单位管理文件***中所有文件数据;在文件***中设置iNode区和数据区;所述数据区包括目录页和数据页,所述目录页用于存储多级页表结构中下一级目录页或数据页的物理地址,所述数据页用于存储文件数据;所述数据页和所述目录页在数据区混排;所述iNode区所存储的iNode节点包括iNode节点信息字段、页表级数字段N和根目录地址字段;所述页表级数字段N用于标识文件储存数据所采用的页表级数,所述根目录页地址字段用于存储文件第N级目录页的起始物理地址;以文件所对应的第N级目录页页号为根目录,以第(N-1)级目录页页号为第1级子目录,以此类推,第1级目录页页号为第(N-1)级子目录,形成一个N级页表目录结构来对文件数据进行存储管理,第1级目录页为数据页;将数据页的逻辑顺序作为多级页表目录结构的遍历顺序。
于本发明一实施例中,还包括将文件***存储于与CPU统一编址的NVM储存设备之中。
于本发明一实施例中,还包括所述数据页和所述目录页是在向文件写入数据时动态分配的;在向文件写入数据时,根据写入地址判定数据页是否已经存在,若不存在,则分配数据页,并补齐该数据页至根目录之间路径上所需的目录页。
于本发明一实施例中,所述文件***应用于64位操作***。
本发明提供一种基于多级页表目录结构的文件***的访问方法,所述文件***根据上述的基于多级页表目录结构的文件***的实现方法生成,所述访问方法包括以下步骤:
基于应用进程的请求打开被访问文件;
基于被访问文件所采用的页表级数字段,计算与该页表级数所对应的单个文件所能储存数据的最大容量;
基于所述最大容量确定与挂载文件页表相对应的应用进程目录项;
在应用进程的地址空间,按所确定的应用进程目录项对齐方式,为被访问文件一次分配与所述最大容量等容量的虚拟地址空间;
将被访问文件页表挂载到所确定的应用进程相应目录项,建立文件数据与应用进程地址空间映射关系,以实现应用进程对文件数据的随机访问。
于本发明一实施例中,将被访问文件页表挂载到所确定的应用进程相应目录项包括以下步骤:
基于分配的应用进程虚拟地址空间的起始地址,计算出该起始地址所对应的各级目录项;
判断所需挂载的目录项是否存在;若存在,将被访问文件的第N级目录页起始物理地址挂载到应用进程相应的挂载目录中;
若所需挂载的目录项不存在,则判断挂载目录项的上一级目录项是否存在;若存在,将被访问文件的第N级目录页起始物理地址挂载到应用进程相应的挂载目录中;若不存在,补齐该挂载目录所在目录页至根目录之间路径上所需的目录页。
于本发明一实施例中,以mmap方式实现应用进程对文件数据的访问。
于本发明一实施例中,当应用进程访问文件数据时,基于页表级数字段N实现不同级数的文件页表在应用进程相应目录项级别的挂载。
最后,本发明提供一种终端,包括处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行上述的基于多级页表目录结构的文件***的访问方法。
如上所述,本发明的基于多级页表目录结构的文件***的实现、访问方法、终端,具有以下有益效果:
(1)基于多级页表目录结构管理文件***存储在物理地址空间的数据,实现文件数据在物理存储空间内的随机存储,而无需按文件逻辑顺序在物理地址空间顺序存储;
(2)最大化地提高了文件***整体的运行效率;
(3)当应用进程访问文件数据时,将文件的页表结构挂载到进程的目录结构,以实现内存方式的文件访问,从而提高了文件的读写访问速度,节省了有限的DRAM资源。
附图说明
图1显示为本发明的基于多级页表目录结构的文件***的实现方法于一实施例中的流程图;
图2显示为本发明的文件***于一实施例中的结构示意图;
图3显示为本发明中iNode节点于一实施例中的结构示意图;
图4显示为本发明的N级页表目录结构于一实施例中的结构示意图;
图5显示为本发明的基于多级页表目录结构的文件***的访问方法于一实施例中的流程图;
图6显示为本发明中被访问文件采用4级页表目录结构时的目录挂载示意图;
图7显示为本发明中被访问文件采用3级页表目录结构时的目录挂载示意图;
图8显示为本发明中被访问文件采用2级页表目录结构时的目录挂载示意图;
图9显示为本发明中被访问文件采用1级页表目录结构时的目录挂载示意图;
图10显示为本发明的终端于一实施例中的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的基于多级页表目录结构的文件***的实现、访问方法、终端应用于由NVM与DRAM统一编址的内存级存储架构的64位操作***中,该随机访问的文件***基于多级页表目录结构管理文件***存储在物理地址空间的数据,实现文件数据在物理存储空间内的随机存储,而无需按文件逻辑顺序在物理地址空间顺序存储。其中,NVM包括但不限于相变存储器、阻变存储器、磁存储器、铁电存储器等。
如图1所示,于一实施例中,本发明的基于多级页表目录结构的文件***的实现方法包括以下步骤:
步骤S11、以页为单位管理文件***中所有文件数据。
优选地,页的大小与操作***内存页的大小一致。通常,4K大小的数据为一页。数据页、目录页大小都是4K,只是因存储的内容不同而分为数据页和目录页。
步骤S12、在文件***中设置索引节点(iNode)区和数据区;所述数据区包括目录页(NodePage)和数据页(DataPage),所述目录页用于存储多级页表结构中下一级目录页或数据页的物理地址,所述数据页用于存储文件数据;所述数据页和所述目录页在数据区混排;所述iNode区所存储的iNode节点包括iNode节点信息字段、页表级数字段N和根目录地址字段;所述页表级数字段N用于标识文件储存数据所采用的页表级数,所述根目录页地址字段用于存储文件第N级目录页的起始物理地址。
由于采用上述多级页表目录结构,本发明能够实现文件数据在文件***中的随机存储。
具体地,本发明的数据区与现有技术中文件***的数据区不同。本发明的数据区的页分为数据页和目录页。目录页用于存储多级页表结构中下一级目录页或数据页的物理地址,数据页用于存储文件数据。
与现有技术中相同,本发明的文件***包括超级块区、位图区、iNode区和数据区,如图2所示。在iNode区,用于记录文件管理信息的iNode节点在现有的iNode节点信息字段的基础上增加了页表级数字段N和根目录地址字段,如图3所示。其中,所述iNode节点信息字段用于存储文件的管理信息,如创建人、创建时间、存放目录、权限等等;所述页表级数字段N用于标识文件储存数据所采用的页表级数;所述根目录页地址字段用于存储文件第N级目录页的起始物理地址。
由于一个文件***中的不同文件可以采用不同的页表目录结构级数,因此每个文件对应的iNode节点中标识该文件存储数据所采用页表级数字段N所存储的内容可以不同,可以是1、2、3、4等不同值。基于不同文件采用的页表级数不同,iNode节点中的根目录地址字段保存的起始物理地址的所对应目录页NodePageN的级数也不同。例如,采用1级页表目录结构管理的文件,则iNode节点的根目录地址字段保存的起始物理地址所对应的目录页是该文件的第1级目录页NodePage1;采用2级页表目录管理的文件,则iNode节点的根目录地址段保存的起始物理地址所对应的目录页是该文件的第2级目录页NodePage2;采用3级页表目录结构管理的文件,则iNode节点的根目录地址字段保存的起始物理地址所对应的目录页是该文件的第3级目录页NodePage3;以此类推,将文件采用的多级页表目录结构所对应第N级目录页NodePageN的物理地址写入到iNode节点的根目录地址字段。
步骤S13、以文件所对应的第N级目录页页号为根目录,以第(N-1)级目录页页号为第1级子目录,以此类推,第1级目录页页号为第(N-1)级子目录,形成一个N级页表目录结构来对文件数据进行存储管理,第1级目录页为数据页。
具体地,根据文件数据所在的物理存储空间,以第N级目录页NodePageN页号为根目录,以第(N-1)级目录页NodePageN-1页号为第1级子目录,以此类推,第1级目录页NodePage1页号为第(N-1)级子目录,形成一个N级页表目录结构来对文件数据进行存储管理。在N级页表目录结构中每一级目录以页表方式管理其子目录,每级子目录的个数固定为512个。如图4所示,所有数据页占据N级页表目录结构的最后一级目录页,即第1级目录页NodePage1页为数据页,其根目录物理地址和目录的级数被记录在iNode区中该文件所对应的iNode节点中。也就是说,从根目录到第N-2级子目录用来组织管理目录页,第N-1级子目录用来组织管理数据页。根目录存储第1级目录对应的目录页的物理地址;第1级子目录存储第2级子目录对应的目录页的物理地址;以此类推,第(N-2)级子目录存储第(N-1)级子目录对应的目录页的物理地址。第1级目录页为数据页,所有数据页占据N级页表目录结构的最后一级目录。因此,目录页中存储的页物理地址可以为下一级目录页物理地址,也可以为数据页物理地址。
特别地,当文件采用的N级页表目录结构中N为1时,该文件只有一个第1级目录页。对应的N级页表目录结构中只有一个以第1级目录页NodePage1页号为根目录,该NodePage1页直接存储的是文件数据,其实质是数据页。
步骤S14、将数据页的逻辑顺序作为多级页表目录结构的遍历顺序。
其中,数据页在多级页表目录结构遍历时的序号为该数据页在文件中的逻辑页号。因此,可以根据文件中的逻辑地址推算出该地址所在的数据页的逻辑页号及该数据页到根目录的路径。
本发明的文件***中的文件具有逻辑长度和物理长度。逻辑长度表示该文件当前的多级页表目录结构,若将目录结构补充完整,全部数据页能够存储的数据量。物理长度表示该文件当前的多级页表目录结构已创建的所有目录页占据的页的数据量之和。因此,逻辑长度为文件的长度,物理长度则用来计算文件***的占用空间和剩余空间。
于本发明一实施例中,还包括将文件***存储于与CPU统一编址的NVM储存设备之中,以便于CPU可通过内存接口直接访问NVM存储设备,实现文件存储数据的内存访问。
于本发明一实施例中,本发明的文件***应用于64位操作***。基于页表级数动态管理,可实现不同级别容量文件数据储存,单文件数据储存可达512G。一个文件***中包含多个文件,每个文件采用多级页表目录结构管理该文件所存储在物理地址空间的数据。在同一个文件***内,不同的文件可以拥有不同的级数。基于每个文件所采用页表目录结构的级数不同,可实现不同容量级别的数据存储。例如,采用1级页表目录结构管理的文件,其存储数据最大容量不超过4K;采用2级页表目录结构管理的文件,其存储数据最大容量可达2M;采用3级页表目录结构管理的文件,其存储数据最大容量可达1G;采用4级页表目录结构管理的文件,其存储数据最大容量可达512G。因此,一个文件***可实现不同容量级别的文件存储,以满足对不同容量级别需求的文件数据存储。
于本发明一实施例中,还包括数据页和目录页是在向文件写入数据时动态分配的。具体地,向文件写入数据时,根据写入地址判定数据页是否已经存在,若不存在,则分配数据页,并补齐该数据页至根目录之间路径上所需的目录页,从而实现文件数据在物理存储空间内的随机存储,而无需按文件逻辑顺序在物理地址空间顺序存储。
下面详细介绍以下本发明的基于多级页表目录结构的文件***的访问方法。如图5所示,于一实施例中,本发明的基于多级页表目录结构的文件***的访问方法,包括以下步骤:
步骤S21、基于应用进程的请求打开被访问文件。
步骤S22、基于被访问文件所采用的页表级数字段N,计算与该页表级数N所对应的单个文件所能储存数据的最大容量Rmax。
步骤S23、基于所述最大容量Rmax确定与挂载文件页表相对应的应用进程目录项。
步骤S24、在应用进程的地址空间,按所确定的应用进程目录项对齐方式,为被访问文件一次分配与所述最大容量等容量的虚拟地址空间。
步骤S25、将被访问文件页表挂载到所确定的应用进程相应目录项,建立文件数据与应用进程地址空间映射关系,以实现应用进程对文件数据的随机访问。
优选的,将被访问文件页表挂载到所确定的应用进程相应目录项包括以下步骤:
A)基于分配的应用进程虚拟地址空间的起始地址,计算出该起始地址所对应的各级目录项。
B)判断所需挂载的目录项是否存在;若存在,将被访问文件的第N级目录页起始物理地址挂载到应用进程相应的挂载目录中。
具体地,若所需挂载的目录项存在,则说明该文件的目录结构已经挂载到了进程的目录结构中,故可直接将被访问文件的第N级目录页起始物理地址挂载到应用进程相应的挂载目录中。
C)若所需挂载的目录项不存在,则判断挂载目录项的上一级目录项是否存在;若存在,将被访问文件的第N级目录页起始物理地址挂载到应用进程相应的挂载目录中;若不存在,补齐该挂载目录所在目录页至根目录之间路径上所需的目录页。
具体地,首先基于分配的应用进程虚拟地址空间的起始地址address计算出相对应的目录项PGDaddress、PUDaddress、PMDaddress、PTEaddress。
若被访问文件采用4级页表目录结构管理存储数据时,则直接将文件的第4级目录页的起始地址FPageaddress挂载到PGDaddress目录项即可,目录挂载如图6所示。
若被访问文件采用3级页表目录结构管理存储数据时,则文件的第3级目录页的起始地址FPageaddress需挂载到虚拟地址相对应的PUDaddress目录项,目录挂载如图7所示。具体包括以下步骤:首先判断PGDaddress目录项是否为空,若PGDaddress目录项为空,则分配PUD目录页P1,并将该物理页P1的起始地址储存在PGDaddress目录项内,然后将文件的第3级目录页的起始地址FPageaddress储存到PUD目录页P1相应的PUDaddress目录项内。若PGDaddress目录项不为空,则直接将文件的第3级目录页的起始地址FPageaddress储存到PGDaddress目录项所存储物理地址对应的PUD目录页的PUDaddress目录项内。
若被访问文件采用2级页表目录结构管理存储数据时,则文件的第2级目录页的起始地址FPageaddress需挂载到虚拟地址相对应的PMDaddress目录项,目录挂载如图8所示。具体包括以下步骤:首先判断PGDaddress目录项是否为空,若PGDaddress目录项为空,则分配PUD目录页P1,并将该物理页P1的起始地址储存在PGDaddress目录项内,再分配一个PMD目录页P2,并将该物理页P2的起始地址储存在与PUD目录页P1项对应的PUDaddress目录项内,然后将文件的第2级目录页的起始地址FPageaddress储存到PMD目录页P2相应的PMDaddress目录项内。
若PGDaddress目录项不为空,则判断PGDaddress目录项所存储物理地址对应的PUD目录页的PUDaddress目录项是否为空,若PUDaddress目录项为空,则分配一个PMD目录页P1,并将物理页P1的起始地址储存在PUDaddress目录项内,然后将文件的第2级目录页的起始地址FPageaddress储存到PMD目录页P1相应的PMDaddress目录项内;若PUDaddress目录项不为空,直接将文件的第2级目录页的起始地址FPageaddress储存到PUDaddress目录项所存储物理地址所对应的PMD目录页的PMDaddress目录项内。
若被访问文件采用1级页表目录结构管理存储数据时,则文件的第1级目录页的起始地址FPageaddress需挂载到虚拟地址相对应的PTEaddress目录项,目录挂载如图9所示。具体包括以下步骤:
首先判断PGDaddress目录项是否为空,若PGDaddress目录项为空,则分配PUD目录页P1,并将该物理页P1的起始地址储存在PGDaddress目录项内,再分配一个PMD目录页P2,并将该物理页P2的起始地址储存在与PUD目录页P1项对应的PUDaddress目录项内,然后再分配一个PTE目录页P3,并将该物理页P3的起始地址储存在PMD目录页P2相对应的PMDaddress目录项内,最后将然后将文件的第1级目录页的起始地址FPageaddress储存到PTE目录页P3的PTEaddress目录项内。
若PGDaddress页表项不为空,则判断PGDaddress目录项所存储物理地址对应的PUD目录页的PUDaddress目录项是否为空,若PUDaddress目录项为空,则分配一个PMD目录页P1,并将该物理页P1的起始地址储存在PUDaddress目录项内,然后再分配一个PTE目录页P2,并将该物理页P2的起始地址储存在PMD目录页P1相对应的PMDaddress目录项内,最后将然后将文件的第1级目录页的起始地址FPageaddress储存到PTE目录页P2的相应PTEaddress目录项内。
若PUD目录项不为空,则判断PUDaddress目录项所存储物理地址所对应的PMD目录页的PMDaddress目录项是否为空,若PMD目录项为空则分配一个PTE目录页P1,并将该物理页P1的起始地址储存相对应的PMDaddress目录项内,最后将然后将文件的第1级目录页的起始地址FPageaddress储存到PTE目录页P1的相应PTEaddress目录项内;若PMD目录项不为空,直接将文件的第1级目录页的起始地址FPageaddress储存到PMD目录项存储物理地址相应PTE目录页的PTEaddress目录项内。
于一实施例中,基于多级页表目录结构的文件***的访问方法包括:以mmap方式实现应用进程对文件数据的访问。具体地,当应用进程打开文件时,为被打开文件统一分配虚拟地址空间段,并将第N级目录页起始物理地址挂载到应用进程相应的目录结构中,以建立文件数据与应用进程地址空间映射关系,实现数据储存与随机访问相统一。
于本发明一实施例中,还包括:当应用进程访问文件数据时,基于页表级数字段N实现不同级数的文件页表在应用进程相应目录项级别的挂载。
具体地,当基于多级页表目录结构的随机访问的文件***应用于64位操作***时,每个文件所采用页表目录结构的级数不同,单个文件存储数据的最大容量不同,应用进程访问文件数据访问时所需分配的虚拟地址空间的容量级别也不同,文件页表挂载到应用进程相应的的目录项级别必然不一样。例如,采用1级页表目录结构管理的文件,其存储数据最大容量不超过4K,文件的页表挂载到进程相应的PTE目录项,就可实现单个文件的4K的寻址空间;采用2级页表目录结构管理的文件,其存储数据最大容量可达2M,文件的2级页表需要挂载到进程的相应的PMD目录项,以实现对单个文件的2M的寻址空间;采用3级页表目录结构管理的文件,其存储数据最大容量可达1G,文件的3级页表需要挂载到进程相应的PUD目录项,以实现对单个文件的1G的寻址空间;采用4级页表目录结构管理的文件,其存储数据最大容量可达512G,则文件的4级页表需要挂载到进程相应的PGD目录项,以实现对单个文件的512G的寻址空间。因此,应用进程访问文件数据时,基于页表级数字段N,不同容量级别文件的页表可挂载到应用进程的目录项级别不同,以实现应用进程访问文件数据时,文件的多级页表目录结构与应用进程的目录结构对齐。
如图10所示,本发明的终端包括处理器31及存储器32。
所述存储器32用于存储计算机程序。
优选地,所述存储器32包括但不限于ROM、RAM、NAND以及相变存储器、阻变存储器、磁存储器、铁电存储器等各种新型随机非易失存储介质。
所述处理器31与所述存储器32相连,用于执行所述存储器32存储的计算机程序,以使所述终端执行上述的基于多级页表目录结构的文件***的访问方法访问存储于新型随机非易失存储介质内的基于多级页表目录结构的文件***。
优选地,处理器31可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
综上所述,本发明的基于多级页表目录结构的文件***的实现、访问方法、终端基于多级页表目录结构管理文件***存储在物理地址空间的数据,实现文件数据在物理存储空间内的随机存储,而无需按文件逻辑顺序在物理地址空间顺序存储;最大化地提高了文件***整体的运行效率;当应用进程访问文件数据时,将文件的页表结构挂载到进程的目录结构,以实现内存方式的文件访问,从而提高了文件的读写访问速度,节省了有限的DRAM资源。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (8)
1.一种基于多级页表目录结构的文件***的访问方法,所述文件***根据基于多级页表目录结构的文件***的实现方法生成,其特征在于:
所述基于多级页表目录结构的文件***的实现方法包括:
以页为单位管理文件***中所有文件数据;
在文件***中设置iNode区和数据区;所述数据区包括目录页和数据页,所述目录页用于存储多级页表结构中下一级目录页或数据页的物理地址,所述数据页用于存储文件数据;所述数据页和所述目录页在数据区混排;所述iNode区所存储的iNode节点包括iNode节点信息字段、页表级数字段N和根目录地址字段;所述页表级数字段N用于标识文件储存数据所采用的页表级数,所述根目录页地址字段用于存储文件第N级目录页的起始物理地址;
以文件所对应的第N级目录页页号为根目录,以第(N-1)级目录页页号为第1级子目录,以此类推,第1级目录页页号为第(N-1)级子目录,形成一个N级页表目录结构来对文件数据进行存储管理,第1级目录页为数据页;根目录存储第1级目录对应的目录页的物理地址;第1级子目录存储第2级子目录对应的目录页的物理地址;以此类推,第(N-2)级子目录存储第(N-1)级子目录对应的目录页的物理地址;
将数据页的逻辑顺序作为多级页表目录结构的遍历顺序;
所述访问方法包括以下步骤:
基于应用进程的请求打开被访问文件;
基于被访问文件所采用的页表级数字段,计算与该页表级数所对应的单个文件所能储存数据的最大容量;
基于所述最大容量确定与挂载文件页表相对应的应用进程目录项;
在应用进程的地址空间,按所确定的应用进程目录项对齐方式,为被访问文件一次分配与所述最大容量等容量的虚拟地址空间;
将被访问文件页表挂载到所确定的应用进程相应目录项,建立文件数据与应用进程地址空间映射关系,以实现应用进程对文件数据的随机访问。
2.根据权利要求1所述的基于多级页表目录结构的文件***的访问方法,其特征在于:将被访问文件页表挂载到所确定的应用进程相应目录项包括以下步骤:
基于分配的应用进程虚拟地址空间的起始地址,计算出该起始地址所对应的各级目录项;
判断所需挂载的目录项是否存在;若存在,将被访问文件的第N级目录页起始物理地址挂载到应用进程相应的挂载目录中;
若所需挂载的目录项不存在,则判断挂载目录项的上一级目录项是否存在;若存在,将被访问文件的第N级目录页起始物理地址挂载到应用进程相应的挂载目录中;若不存在,补齐该挂载目录所在目录页至根目录之间路径上所需的目录页。
3.根据权利要求1所述的基于多级页表目录结构的文件***的访问方法,其特征在于:以mmap方式实现应用进程对文件数据的访问。
4.根据权利要求1所述的基于多级页表目录结构的文件***的访问方法,其特征在于:当应用进程访问文件数据时,基于页表级数字段N实现不同级数的文件页表在应用进程相应目录项级别的挂载。
5.根据权利要求1所述的基于多级页表目录结构的文件***的访问方法,其特征在于:所述基于多级页表目录结构的文件***的实现方法还包括将文件***存储于与CPU统一编址的NVM储存设备之中。
6.根据权利要求1所述的基于多级页表目录结构的文件***的访问方法,其特征在于:所述基于多级页表目录结构的文件***的实现方法还包括所述数据页和所述目录页是在向文件写入数据时动态分配的;在向文件写入数据时,根据写入地址判定数据页是否已经存在,若不存在,则分配数据页,并补齐该数据页至根目录之间路径上所需的目录页。
7.根据权利要求1所述的基于多级页表目录结构的文件***的访问方法,其特征在于:所述文件***应用于64位操作***。
8.一种终端,其特征在于:包括处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行权利要求1-7之一所述的基于多级页表目录结构的文件***的访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711174508.3A CN108052541B (zh) | 2017-11-22 | 2017-11-22 | 基于多级页表目录结构的文件***的实现、访问方法、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711174508.3A CN108052541B (zh) | 2017-11-22 | 2017-11-22 | 基于多级页表目录结构的文件***的实现、访问方法、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108052541A CN108052541A (zh) | 2018-05-18 |
CN108052541B true CN108052541B (zh) | 2021-07-27 |
Family
ID=62119980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711174508.3A Active CN108052541B (zh) | 2017-11-22 | 2017-11-22 | 基于多级页表目录结构的文件***的实现、访问方法、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108052541B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881025B (zh) * | 2018-06-01 | 2021-04-09 | 国电南瑞科技股份有限公司 | 基于云终端方式的多电网调控***画面统一浏览集成方法 |
CN110609812A (zh) * | 2019-07-30 | 2019-12-24 | 深圳光大同创新材料有限公司 | 一种标签化文件***的设计方法 |
CN113157647B (zh) * | 2021-03-29 | 2024-04-26 | 普联技术有限公司 | 一种访问挂载文件的方法及装置 |
CN113806803B (zh) * | 2021-09-17 | 2023-06-02 | 厦门服云信息科技有限公司 | 一种数据存储方法、***、终端设备及存储介质 |
CN116112243B (zh) * | 2023-01-17 | 2023-09-05 | 广州鲁邦通物联网科技股份有限公司 | 工业控制***智能计算机物理入侵检测防御***和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496909B1 (en) * | 1999-04-06 | 2002-12-17 | Silicon Graphics, Inc. | Method for managing concurrent access to virtual memory data structures |
CN103164343A (zh) * | 2013-02-27 | 2013-06-19 | 山东大学 | 基于相变存储器的分页、ecc校验及多位预取方法及其结构 |
CN106354890A (zh) * | 2016-11-22 | 2017-01-25 | 中国科学院上海微***与信息技术研究所 | 一种基于N‑ary树结构的随机访问的文件***的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130050156A (ko) * | 2011-11-07 | 2013-05-15 | 한국전자통신연구원 | 가상 주소 공간 전환 장치 |
-
2017
- 2017-11-22 CN CN201711174508.3A patent/CN108052541B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496909B1 (en) * | 1999-04-06 | 2002-12-17 | Silicon Graphics, Inc. | Method for managing concurrent access to virtual memory data structures |
CN103164343A (zh) * | 2013-02-27 | 2013-06-19 | 山东大学 | 基于相变存储器的分页、ecc校验及多位预取方法及其结构 |
CN106354890A (zh) * | 2016-11-22 | 2017-01-25 | 中国科学院上海微***与信息技术研究所 | 一种基于N‑ary树结构的随机访问的文件***的实现方法 |
Non-Patent Citations (1)
Title |
---|
基于 RTL8169 网卡的零拷贝技术研究与实现;刘靖龙,刘颖,张思东;《计算机技术与发展》;20110831;第21卷(第8期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108052541A (zh) | 2018-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108052541B (zh) | 基于多级页表目录结构的文件***的实现、访问方法、终端 | |
CN107168657B (zh) | 一种基于分布式块存储的虚拟磁盘分层缓存设计方法 | |
JP6205650B2 (ja) | 不均等アクセス・メモリにレコードを配置するために不均等ハッシュ機能を利用する方法および装置 | |
CN107180092B (zh) | 一种文件***的控制方法、装置及终端 | |
US10565125B2 (en) | Virtual block addresses | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件*** | |
US20180089074A1 (en) | Techniques to Manage Key-Value Storage at a Memory or Storage Device | |
US11061788B2 (en) | Storage management method, electronic device, and computer program product | |
US9355121B1 (en) | Segregating data and metadata in a file system | |
KR102440128B1 (ko) | 통합된 객체 인터페이스를 위한 메모리 관리 장치, 시스템 및 그 방법 | |
AU2010265984A1 (en) | Scalable indexing in a non-uniform access memory | |
US20150324281A1 (en) | System and method of implementing an object storage device on a computer main memory system | |
CN106570113B (zh) | 一种海量矢量切片数据云存储方法及*** | |
CN103150122B (zh) | 一种磁盘缓存空间管理方法和装置 | |
Lee et al. | An efficient index buffer management scheme for implementing a B-tree on NAND flash memory | |
WO2021159711A1 (zh) | 一种b+树的存取方法、装置和计算机可读存储介质 | |
WO2021174763A1 (zh) | 基于查找表的数据库管理方法和装置 | |
CN116364148A (zh) | 一种面向分布式全闪存储***的磨损均衡方法及*** | |
KR20100083976A (ko) | 해시 인덱스 구성 방법과 그 장치, 및 상기 장치를 구비하는 데이터 저장 장치, 및 상기 방법을 구현하는 프로그램이 기록된 기록매체 | |
Zhang et al. | FlameDB: A key-value store with grouped level structure and heterogeneous Bloom filter | |
WO2024108939A1 (zh) | 一种多级映射框架、数据操作请求处理方法及*** | |
CN115079957B (zh) | 请求处理方法、装置、控制器、设备及存储介质 | |
CN106168883A (zh) | 一种高效的数据组织与访问方法 | |
CN114115711B (zh) | 基于非易失内存文件***的快速缓存*** | |
US11144249B2 (en) | Storage system including nonvolatile memory module for converting random logical addresses to sequential logical addresses and operating method of the nonvolatile memory module |
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 |