CN108052541A - 基于多级页表目录结构的文件系统的实现、访问方法、终端 - Google Patents
基于多级页表目录结构的文件系统的实现、访问方法、终端 Download PDFInfo
- Publication number
- CN108052541A CN108052541A CN201711174508.3A CN201711174508A CN108052541A CN 108052541 A CN108052541 A CN 108052541A CN 201711174508 A CN201711174508 A CN 201711174508A CN 108052541 A CN108052541 A CN 108052541A
- Authority
- CN
- China
- Prior art keywords
- page
- file
- data
- catalogue
- file system
- 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
Links
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 (9)
1.一种基于多级页表目录结构的文件系统的实现方法,其特征在于:包括:
以页为单位管理文件系统中所有文件数据;
在文件系统中设置iNode区和数据区;所述数据区包括目录页和数据页,所述目录页用于存储多级页表结构中下一级目录页或数据页的物理地址,所述数据页用于存储文件数据;所述数据页和所述目录页在数据区混排;所述iNode区所存储的iNode节点包括iNode节点信息字段、页表级数字段N和根目录地址字段;所述页表级数字段N用于标识文件储存数据所采用的页表级数,所述根目录页地址字段用于存储文件第N级目录页的起始物理地址;
以文件所对应的第N级目录页页号为根目录,以第(N-1)级目录页页号为第1级子目录,以此类推,第1级目录页页号为第(N-1)级子目录,形成一个N级页表目录结构来对文件数据进行存储管理,第1级目录页为数据页;
将数据页的逻辑顺序作为多级页表目录结构的遍历顺序。
2.根据权利要求1所述的基于多级页表目录结构的文件系统的实现方法,其特征在于:还包括将文件系统存储于与CPU统一编址的NVM储存设备之中。
3.根据权利要求1所述的基于多级页表目录结构的文件系统的实现方法,其特征在于:还包括所述数据页和所述目录页是在向文件写入数据时动态分配的;在向文件写入数据时,根据写入地址判定数据页是否已经存在,若不存在,则分配数据页,并补齐该数据页至根目录之间路径上所需的目录页。
4.根据权利要求1所述的基于多级页表目录结构的文件系统的实现方法,其特征在于:所述文件系统应用于64位操作系统。
5.一种基于多级页表目录结构的文件系统的访问方法,所述文件系统根据权利要求1-4之一所述的基于多级页表目录结构的文件系统的实现方法生成,其特征在于:所述访问方法包括以下步骤:
基于应用进程的请求打开被访问文件;
基于被访问文件所采用的页表级数字段,计算与该页表级数所对应的单个文件所能储存数据的最大容量;
基于所述最大容量确定与挂载文件页表相对应的应用进程目录项;
在应用进程的地址空间,按所确定的应用进程目录项对齐方式,为被访问文件一次分配与所述最大容量等容量的虚拟地址空间;
将被访问文件页表挂载到所确定的应用进程相应目录项,建立文件数据与应用进程地址空间映射关系,以实现应用进程对文件数据的随机访问。
6.根据权利要求5所述的基于多级页表目录结构的文件系统的访问方法,其特征在于:将被访问文件页表挂载到所确定的应用进程相应目录项包括以下步骤:
基于分配的应用进程虚拟地址空间的起始地址,计算出该起始地址所对应的各级目录项;
判断所需挂载的目录项是否存在;若存在,将被访问文件的第N级目录页起始物理地址挂载到应用进程相应的挂载目录中;
若所需挂载的目录项不存在,则判断挂载目录项的上一级目录项是否存在;若存在,将被访问文件的第N级目录页起始物理地址挂载到应用进程相应的挂载目录中;若不存在,补齐该挂载目录所在目录页至根目录之间路径上所需的目录页。
7.根据权利要求5所述的基于多级页表目录结构的文件系统的访问方法,其特征在于:以mmap方式实现应用进程对文件数据的访问。
8.根据权利要求5所述的基于多级页表目录结构的文件系统的访问方法,其特征在于:当应用进程访问文件数据时,基于页表级数字段N实现不同级数的文件页表在应用进程相应目录项级别的挂载。
9.一种终端,其特征在于:包括处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行权利要求5-8之一所述的基于多级页表目录结构的文件系统的访问方法。
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 true CN108052541A (zh) | 2018-05-18 |
CN108052541B 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) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881025A (zh) * | 2018-06-01 | 2018-11-23 | 国电南瑞科技股份有限公司 | 基于云终端方式的多电网调控系统画面统一浏览集成方法 |
CN110609812A (zh) * | 2019-07-30 | 2019-12-24 | 深圳光大同创新材料有限公司 | 一种标签化文件系统的设计方法 |
CN111881062A (zh) * | 2020-06-12 | 2020-11-03 | 海光信息技术有限公司 | 内存页的分页方法、装置、cpu芯片及计算机 |
CN113157647A (zh) * | 2021-03-29 | 2021-07-23 | 普联技术有限公司 | 一种访问挂载文件的方法及装置 |
CN113608749A (zh) * | 2021-06-21 | 2021-11-05 | 雄安城市规划设计研究院有限公司 | 一种空间数据智能编目方法 |
CN113806803A (zh) * | 2021-09-17 | 2021-12-17 | 厦门服云信息科技有限公司 | 一种数据存储方法、系统、终端设备及存储介质 |
CN116112243A (zh) * | 2023-01-17 | 2023-05-12 | 广州鲁邦通物联网科技股份有限公司 | 工业控制系统智能计算机物理入侵检测防御系统和方法 |
CN111881062B (zh) * | 2020-06-12 | 2024-11-08 | 海光信息技术股份有限公司 | 内存页的分页方法、装置、cpu芯片及计算机 |
Citations (4)
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 |
US20130117530A1 (en) * | 2011-11-07 | 2013-05-09 | Electronics And Telecommunications Research Institute | Apparatus for translating virtual address space |
CN103164343A (zh) * | 2013-02-27 | 2013-06-19 | 山东大学 | 基于相变存储器的分页、ecc校验及多位预取方法及其结构 |
CN106354890A (zh) * | 2016-11-22 | 2017-01-25 | 中国科学院上海微系统与信息技术研究所 | 一种基于N‑ary树结构的随机访问的文件系统的实现方法 |
-
2017
- 2017-11-22 CN CN201711174508.3A patent/CN108052541B/zh active Active
Patent Citations (4)
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 |
US20130117530A1 (en) * | 2011-11-07 | 2013-05-09 | Electronics And Telecommunications Research Institute | Apparatus for translating virtual address space |
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 网卡的零拷贝技术研究与实现", 《计算机技术与发展》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881025A (zh) * | 2018-06-01 | 2018-11-23 | 国电南瑞科技股份有限公司 | 基于云终端方式的多电网调控系统画面统一浏览集成方法 |
CN110609812A (zh) * | 2019-07-30 | 2019-12-24 | 深圳光大同创新材料有限公司 | 一种标签化文件系统的设计方法 |
CN111881062A (zh) * | 2020-06-12 | 2020-11-03 | 海光信息技术有限公司 | 内存页的分页方法、装置、cpu芯片及计算机 |
CN111881062B (zh) * | 2020-06-12 | 2024-11-08 | 海光信息技术股份有限公司 | 内存页的分页方法、装置、cpu芯片及计算机 |
CN113157647A (zh) * | 2021-03-29 | 2021-07-23 | 普联技术有限公司 | 一种访问挂载文件的方法及装置 |
CN113157647B (zh) * | 2021-03-29 | 2024-04-26 | 普联技术有限公司 | 一种访问挂载文件的方法及装置 |
CN113608749A (zh) * | 2021-06-21 | 2021-11-05 | 雄安城市规划设计研究院有限公司 | 一种空间数据智能编目方法 |
CN113806803A (zh) * | 2021-09-17 | 2021-12-17 | 厦门服云信息科技有限公司 | 一种数据存储方法、系统、终端设备及存储介质 |
CN113806803B (zh) * | 2021-09-17 | 2023-06-02 | 厦门服云信息科技有限公司 | 一种数据存储方法、系统、终端设备及存储介质 |
CN116112243A (zh) * | 2023-01-17 | 2023-05-12 | 广州鲁邦通物联网科技股份有限公司 | 工业控制系统智能计算机物理入侵检测防御系统和方法 |
CN116112243B (zh) * | 2023-01-17 | 2023-09-05 | 广州鲁邦通物联网科技股份有限公司 | 工业控制系统智能计算机物理入侵检测防御系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108052541B (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108052541A (zh) | 基于多级页表目录结构的文件系统的实现、访问方法、终端 | |
CN102301349B (zh) | 访问存储控制器控制的存储芯片中根据列条带化的行数据 | |
CN102985909B (zh) | 为良好分格的对象提供高扩展性网络存储的方法和设备 | |
US9239691B2 (en) | System and method for distributed computing in non-volatile memory | |
CN102968503B (zh) | 数据库系统的数据处理方法以及数据库系统 | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件系统 | |
US9342247B2 (en) | Leveraging a hybrid infrastructure for dynamic memory allocation and persistent file storage | |
CN107180092B (zh) | 一种文件系统的控制方法、装置及终端 | |
CN101533408B (zh) | 一种海量数据的处理方法及处理装置 | |
US20180089074A1 (en) | Techniques to Manage Key-Value Storage at a Memory or Storage Device | |
CN106354890B (zh) | 一种基于N-ary树结构的随机访问的文件系统的实现方法 | |
CN102446139B (zh) | 一种数据存储方法及装置 | |
CN104536903B (zh) | 一种按数据属性分类存放的混合存储方法及系统 | |
WO2012126317A1 (zh) | 文件存储方法和装置 | |
CN106570113B (zh) | 一种海量矢量切片数据云存储方法及系统 | |
CN105205126A (zh) | 一种地图瓦片的存储方法及其存储系统 | |
CN107016100A (zh) | 一种基于非易失性内存文件系统的元数据管理方法 | |
CN102915340A (zh) | 一种扩展的基于b+树对象文件系统 | |
CN103942161B (zh) | 只读缓存的去冗余系统及方法以及缓存的去冗余方法 | |
CN109933564A (zh) | 基于链表和N-ary树结构实现快速回滚的文件系统管理方法、装置、终端、介质 | |
CN103559229A (zh) | 基于MapFile的小文件管理服务SFMS系统及其使用方法 | |
CN103914483A (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN103164343A (zh) | 基于相变存储器的分页、ecc校验及多位预取方法及其结构 | |
CN107817946A (zh) | 用于混合存储设备读写数据的方法以及装置 | |
CN104216988A (zh) | 分布式大数据的ssd磁盘和hdd磁盘混合存储方法 |
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 |