CN105912267A - 一种文件分配表处理方法和装置 - Google Patents
一种文件分配表处理方法和装置 Download PDFInfo
- Publication number
- CN105912267A CN105912267A CN201610206635.6A CN201610206635A CN105912267A CN 105912267 A CN105912267 A CN 105912267A CN 201610206635 A CN201610206635 A CN 201610206635A CN 105912267 A CN105912267 A CN 105912267A
- Authority
- CN
- China
- Prior art keywords
- sector
- bunch
- chained list
- mark
- allocation table
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种文件分配表处理方法和装置,包括:监测用户触发的文件写入/删除指令;对文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,簇状态信息包括簇标识和簇存储状态;将包括簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中;将簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中。通过本发明,提高了文件分配表的更新速度,延长了磁盘的使用寿命。
Description
技术领域
本发明涉及文件系统领域,具体而言,涉及一种文件分配表处理方法和装置。
背景技术
目前,在计算机、闪存或者移动终端等具有存储介质(如:磁盘)的计算设备中,数据都是存储在计算设备的存储介质的物理扇区中,计算设备的文件系统通过预设的存储单位簇对物理扇区进行管理,为了使计算设备对簇进行管理,文件系统中预先设置了文件分配表(File AllocationTable,FAT)对簇进行管理,簇状态信息会预先存储在FAT中的多个扇区中。
相关技术中,在对文件系统中存储的文件进行写入/删除处理的过程中,就会进行簇的分配或释放操作,那么文件系统就会先计算该被分配或释放的簇的簇标识在FAT中的哪个扇区,然后将该扇区的数据从磁盘读取到内存缓存区中,然后根据该簇标识修改扇区中相应簇状态信息,并将修改后的扇区的数据存储回磁盘中的FAT中。
在对FAT中的簇状态信息进行修改的过程中,每一次对簇状态信息的修改都需要将FAT读取到内存缓冲区中并在修改完毕后又存储到磁盘中,所以完成一次文件的写入或删除操作的处理时,FAT表的更新耗费时间比较长,当有大量文件需要写入/删除处理时,会大大降低整个文件系统的读写速度,而且操作繁琐,增加了系统资源的消耗,降低了磁盘的使用寿命,给人们的日常操作带来了极大的不便,降低了用户的体验感。
发明内容
有鉴于此,本发明实施例的目的在于提供一种文件分配表处理方法和装置,以提高FAT表的更新速度,延长磁盘的使用寿命,方便人们的日常文件处理。
第一方面,本发明实施例提供了一种文件分配表处理方法,包括:监测用户触发的文件写入/删除指令,所述文件写入/删除指令用于指示待写入/删除的文件;
对所述文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,所述簇状态信息包括簇标识和簇存储状态;
将包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,存储所述簇状态信息的扇区被缓存在预设的缓存区中;
将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述方法还包括:获取所述文件分配表的属性信息;根据所述文件分配表的属性信息,读取存储在所述磁盘中的所述文件分配表;将读取的所述文件分配表缓存到预设的缓存区中。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述通过包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,包括:
根据所述簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的所述文件分配表中,确定包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识;
判断预先创建的所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
如果是,则将所述扇区标识对应的链表节点中记录的同步标志标识为未同步状态;
如果否,则向所述扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,在所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点之前,所述方法还包括:
判断内存中是否创建有所述簇扇区链表;
如果是,则执行所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点步骤;
如果否,则在所述内存中创建所述簇扇区链表,并执行所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点步骤。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中,包括:
通过链表节点中记录的同步标志,判断所述簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步;
判断需要进行数据同步的扇区的扇区标识是否连续;
如果是,则将连续的扇区标识加入同步序列,将所述同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中;
如果否,当通过所述同步序列将所述扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表后,将不连续的所述扇区标识加入同步序列,使得不连续的所述扇区标识对应的所述扇区的数据也被同步到所述磁盘中存储的所述文件分配表中。
第二方面,本发明实施例提供了一种文件分配表处理装置,所述装置包括:用户指令监测模块,用于监测用户触发的文件写入/删除指令,其中,所述文件写入/删除指令用于指示待写入/删除的文件;
簇状态信息存储模块,用于对所述文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,其中,所述簇状态信息包括簇标识和簇存储状态;
簇扇区链表创建模块,用于将包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,所述存储簇状态信息的扇区被缓存在预设的缓存区中;
磁盘同步模块,用于将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述装置还包括:信息获取模块,用于获取所述文件分配表的属性信息;
文件分配表读取模块,用于根据所述文件分配表的属性信息,读取存储在所述磁盘中的所述文件分配表;
文件分配表缓存模块,用于将读取的所述文件分配表缓存到预设的缓存区中。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,所述簇扇区链表创建模块包括:
扇区标识确定单元,用于根据所述簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的所述文件分配表中,确定包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识;
链表节点判断单元,用于判断预先创建的所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
同步标志标识单元,用于链表节点判断单元的判断结果为是时,将所述扇区标识对应的链表节点中记录的同步标志标识为未同步状态;
链表节点生成单元,用于链表节点判断单元的判断结果为否时,则向所述扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。
结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,所述簇扇区链表创建模块还包括:
簇扇区链表判断单元,用于判断当前所述内存中是否创建有所述簇扇区链表;
第一执行单元,用于当所述簇扇区链表判断单元得到的判断结果为是时,触发所述链表节点判断单元判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
第二执行单元,用于当所述簇扇区链表判断单元得到的判断结果为否时,则触发所述链表节点判断单元在所述内存中创建所述簇扇区链表,并判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点。
结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,所述磁盘同步模块包括:
扇区数据同步判断单元,用于通过链表节点中记录的同步标志,判断所述簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步;
连续性判断单元,用于判断需要进行数据同步的扇区的扇区标识是否连续;
第三执行单元,用于当连续性判断单元得到的判断结果为是时,将连续的扇区标识加入同步序列,将所述同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中;
第四执行单元,用于当连续性判断单元得到的判断结果为否时,当通过所述同步序列将所述扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表后,将不连续的所述扇区标识加入同步序列,使得不连续的所述扇区标识对应的所述扇区的数据也被同步到所述磁盘中存储的所述文件分配表中。
本发明实施例提供的一种文件分配表处理方法和装置,通过监测到用户触发的文件写入/删除指令,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,并将由簇存储状态发生变化的簇状态信息的扇区的扇区标识生成的链表节点加入到预先创建的簇扇区链表中,与现有技术中每一次对簇状态信息的修改都需要将FAT读取到内存缓冲区中并在修改完毕后又存储到磁盘中的过程相比,只需将缓冲区中包括簇存储状态发生变化的簇的簇状态信息的扇区的数据从缓冲区中同步到磁盘中的FAT中,从而缩短了完成一次FAT表的更新耗费时间,即使有大量文件需要写入/删除处理,也不会降低整个文件系统的读写速度,而且操作简单,避免了对系统资源的消耗,进而增加了磁盘的使用寿命,给人们的日常操作带来了方便,提高了用户的体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例1所提供的一种文件分配表处理方法的流程图;
图2示出了本发明实施例1所提供的一种文件分配表处理方法的结构示意图。
图3示出了本发明实施例2所提供的一种文件分配表处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到相关技术中,在对FAT中的簇状态信息进行修改的过程中,每一次对簇状态信息的修改都需要将FAT读取到内存缓冲区中并在修改完毕后又存储到磁盘中,所以完成一次FAT表的更新耗费时间比较长,当有大量文件需要写入/删除处理时,会大大降低整个文件系统的读写速度,而且操作繁琐,增加了系统资源的消耗,降低了磁盘的使用寿命,给人们的日常操作带来了极大的不便,降低了用户的体验感。基于此,本发明实施例提供了一种文件分配表处理方法和装置,下面通过实施例进行描述。
实施例1
参见图1,本实施例提供一种文件分配表处理方法,包括以下步骤:
步骤100、监测用户触发的文件写入/删除指令,文件写入/删除指令用于指示待写入/删除的文件。
步骤101、对文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,簇状态信息包括簇标识和簇存储状态。
在步骤101中,确定文件写入操作时簇存储状态发生变化的簇状态信息的过程包括:在创建一个文件时,有文件写入文件系统时就会给该文件在磁盘中分配簇,首先在FAT表中查找未被占用的空簇,如簇标识为第5簇的簇为未被占用的空簇,就会把第5簇分配给该文件,并且把第5簇标记为结束簇标识,当该文件内容继续增加时,一个簇已经满足不了该文件的存储需求时,就会再次查找FAT表中的未被占用的空簇,如查找结果为第8簇为未被占用的空簇,就会把第8簇也分配给该文件,把第5簇的标记标识为下一簇的簇标识,这里是8,同时表示该簇是占用状态,然后再把第8簇的标记标识为结束簇标识;如内容继续增加循环上述操作,不再一一赘述,从而在文件写入操作时,将文件系统分配给该文件的簇确定为簇存储状态发生变化的簇。
其中,簇状态信息包括簇标识和簇存储状态,簇标识即为簇号,由数字表示;簇存储状态有两种,一种为未被占用的状态,为空簇,一种为被占用的状态,可以分别用“0”和“下一簇的簇标识或结束簇标识”表示。
确定文件删除操作时簇存储状态发生变化的簇状态信息时,会根据文件系统中预先存储的待删除文件的文件属性信息,确定该待删除文件的所存储的簇的簇标识,从而在文件删除操作时,将文件系统中待删除文件的文件属性信息中记录的簇确定为簇存储状态发生变化的簇。
文件属性信息,除了包括文件存储的簇的簇标识之外,还可以包括文件名称、文件大小等文件信息。
步骤102、将包括簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的链表节点加入到预先创建的簇扇区链表中,存储簇状态信息的扇区被缓存在预设的缓存区中。
步骤102具体包括步骤(1)至步骤(4):
(1)根据簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的文件分配表中,确定包括簇存储状态发生变化的簇状态信息的扇区的扇区标识;
(2)判断预先创建的簇扇区链表中是否具有包括簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点,如果是则执行步骤3,如果否则执行步骤4;
(3)将扇区标识对应的链表节点中记录的同步标志标识为未同步状态;
(4)向扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。
上述步骤是将变化的簇状态信息所在的扇区的扇区标识,即扇区号和预设的同步标志,生成链表节点加入到在缓存区内已经创建的簇扇区链表中,如642簇被标记,该簇信息所在的扇区的扇区号为5和同步标志形成链表节点,判断链表中是否已经有此扇区号的节点,如果有就只将簇扇区链表中的这个结点的同步标志标识为未同步,如果没有则将此节点加入到簇扇区链表中。
簇扇区链表,具体结构参见图2,包括的是缓存区内FAT表中有簇分配或者释放操作的簇状态信息所对应的扇区标识,用于对包括簇存储状态发生变化的簇的扇区的数据进行更新。
在判断簇扇区链表中是否具有包括簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点之前,该步骤102还包括以下步骤(5)至步骤(7):
(5)判断内存中是否创建有簇扇区链表,如果是则执行步骤6,如果否则执行步骤7;
(6)返回执行步骤2;
(7)在内存中创建簇扇区链表;
(8)返回执行步骤2。
综上所述,通过在内存中创建簇扇区链表,方便进行多个有关扇区的同步操作,从而在向磁盘中同步文件分配表时,只需要将簇扇区链表中未同步的扇区同步到磁盘中即可,不必将整个文件分配表全部都同步到磁盘中,这样节省了大量的文件分配表更新的时间,方便了人们的日常操作。
步骤103、将簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中。
本实施例提出的文件分配表处理方法可以应用到苹果U盘中,实现对移动终端存储容量的扩充的目的。
综上所述,本实施例提供的一种文件分配表处理方法,通过监测到用户触发的文件写入/删除指令,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,并将由簇存储状态发生变化的簇状态信息的扇区的扇区标识生成的链表节点加入到预先创建的簇扇区链表中,与现有技术中每一次对簇状态信息的修改都需要将FAT读取到内存缓冲区中并在修改完毕后又存储到磁盘中的过程相比,只需将缓冲区中包括簇存储状态发生变化的簇的簇状态信息的扇区的数从缓冲区中同步到磁盘中的FAT中,从而缩短了完成一次FAT表的更新耗费时间,即使有大量文件需要写入/删除处理,也不会降低整个文件系统的读写速度,而且操作简单,避免了对系统资源的消耗,进而增加了磁盘的使用寿命,给人们的日常操作带来了方便,提高了用户的体验。
为了增加文件分配表的获取速度,提高对簇状态信息的更新效率,本实施例提供的文件分配表处理方法中还包括以下步骤(1)至步骤(3):
(1)获取文件分配表的属性信息;
(2)根据文件分配表的属性信息,读取存储在磁盘中的文件分配表;
(3)将读取的文件分配表缓存到预设的缓存区中。
文件分配表的属性信息,预先存储在文件系统中。
相关技术中,在簇的存储状态发生变化时,一次只能将一个扇区的数据同步到磁盘中的FAT中,导致FAT更新效率低,所以,为了一次将多个扇区同步到FAT中,本实施例提供的文件分配表处理方法中,将簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中,包括以下步骤(1)至步骤(4):
(1)通过链表节点中记录的同步标志,判断簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步;
(2)判断需要进行数据同步的扇区的扇区标识是否连续,如果是则执行步骤3,如果否则执行步骤4;
(3)将连续的扇区标识加入同步序列,将同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中;
(4)将不连续的扇区标识加入同步序列,使得不连续的扇区标识对应的扇区的数据也被同步到磁盘中存储的文件分配表中。
在上述步骤2中,如果簇扇区链表中记录的需要进行数据同步的扇区的扇区标识分别是5、6和8,那么就可以确定需要进行数据同步的扇区的扇区标识5和6是连续的;扇区标识8与5、6是不连续的。这时就先将同步序列中的扇区标识5和扇区标识6对应将缓冲区中第5扇区和缓冲区中第6扇区同步到磁盘FAT表的第5扇区和第6扇区,并且将簇扇区链表的这两个链表节点的扇区标识标识为已经同步;将扇区标识8另外加入到同步序列,检查簇扇区链表没有需要同步的扇区标识,再将同步序列上的这个扇区标识8对应缓冲区中第8扇区同步到磁盘FAT表的第8扇区;最后将簇扇区链表的扇区标识为8的节点标识为已同步。
综上所述,通过查找簇扇区链表中的链表节点中记录的同步标志即可知道哪些缓存区的扇区需要同步到磁盘中的文件分配表中,并且可以根据扇区标识来判断需要同步的扇区是否连续,将连续的扇区可以一次同步到磁盘中,与每修改一次同步到磁盘中的操作相比,节约了大量的时间,减少了磁盘的同步次数,延长了磁盘的使用寿命。
实施例2
参见图3,本实施例提供一种文件分配表处理装置,用于执行上述的文件分配表处理方法,该装置包括:
用户指令监测模块,用于监测用户触发的文件写入/删除指令,其中,文件写入/删除指令用于指示待写入/删除的文件;
簇状态信息存储模块,用于对文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,其中,簇状态信息包括簇标识和簇存储状态;
簇扇区链表创建模块,用于将包括簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的链表节点加入到预先创建的簇扇区链表中,存储簇状态信息的扇区被缓存在预设的缓存区中;
磁盘同步模块,用于将簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中。
进一步地,文件分配表处理装置还包括:信息获取模块,用于获取文件分配表的属性信息;文件分配表读取模块,用于根据文件分配表的属性信息,读取存储在磁盘中的文件分配表;文件分配表缓存模块,用于将读取的文件分配表缓存到预设的缓存区中。
具体地,簇扇区链表创建模块12包括:扇区标识确定单元,用于根据簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的文件分配表中,确定包括簇存储状态发生变化的簇状态信息的扇区的扇区标识;
链表节点判断单元,用于判断预先创建的簇扇区链表中是否具有包括簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
同步标志标识单元,用于链表节点判断单元的判断结果为是时,将扇区标识对应的链表节点中记录的同步标志标识为未同步状态;
链表节点生成单元,用于链表节点判断单元的判断结果为否时,则向扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。
可选地,簇扇区链表创建模块12还包括:簇扇区链表判断单元,用于判断内存中是否创建有簇扇区链表;
第一执行单元,用于当簇扇区链表判断单元得到的判断结果为是时,触发链表节点判断单元判断簇扇区链表中是否具有包括簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
第二执行单元,用于当簇扇区链表判断单元得到的判断结果为否时,,则触发链表节点判断单元在内存中创建簇扇区链表,并判断簇扇区链表中是否具有包括簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点。
具体地,磁盘同步模块13包括:扇区数据同步判断单元,用于通过链表节点中记录的同步标志,判断簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步;
连续性判断单元,用于判断需要进行数据同步的扇区的扇区标识是否连续;
第三执行单元,用于当连续性判断单元得到的判断结果为是时,将连续的扇区标识加入同步序列,将同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中;
第四执行单元,用于当连续性判断单元得到的判断结果为否时,当通过同步序列将扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表后,将不连续的扇区标识加入同步序列,使得不连续的扇区标识对应的扇区的数据也被同步到磁盘中存储的文件分配表中。
综上所述,本实施例提供的一种文件分配表处理装置,通过监测到用户触发的文件写入/删除指令,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,并将簇存储状态发生变化的簇状态信息的扇区的扇区标识生成的链表节点加入到预先创建的簇扇区链表中,与现有技术中每一次对簇状态信息的修改都需要将FAT读取到内存缓冲区中并在修改完毕后又存储到磁盘中的过程相比,只需将缓冲区中包括簇存储状态发生变化的簇的簇状态信息的扇区的数从缓冲区中同步到磁盘中的FAT中,从而缩短了完成一次FAT表的更新耗费时间,即使有大量文件需要写入/删除处理,也不会降低整个文件系统的读写速度,而且操作简单,避免了对系统资源的消耗,进而增加了磁盘的使用寿命,给人们的日常操作带来了方便,提高了用户的体验。
本发明实施例所提供的文件分配表处理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种文件分配表处理方法,其特征在于,包括:
监测用户触发的文件写入/删除指令,所述文件写入/删除指令用于指示待写入/删除的文件;
对所述文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,所述簇状态信息包括簇标识和簇存储状态;
将包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,存储所述簇状态信息的扇区被缓存在预设的缓存区中;
将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述文件分配表的属性信息;
根据所述文件分配表的属性信息,读取存储在所述磁盘中的所述文件分配表;
将读取的所述文件分配表缓存到预设的缓存区中。
3.根据权利要求2所述的方法,其特征在于,所述通过包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,包括:
根据所述簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的所述文件分配表中,确定包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识;
判断预先创建的所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
如果是,则将所述扇区标识对应的链表节点中记录的同步标志标识为未同步状态;
如果否,则向所述扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。
4.根据权利要求3所述的方法,其特征在于,在所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点之前,所述方法还包括:
判断内存中是否创建有所述簇扇区链表;
如果是,则执行所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点步骤;
如果否,则在所述内存中创建所述簇扇区链表,并执行所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点步骤。
5.根据权利要求3所述的方法,其特征在于,所述将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中,包括:
通过链表节点中记录的同步标志,判断所述簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步;
判断需要进行数据同步的扇区的扇区标识是否连续;
如果是,则将连续的扇区标识加入同步序列,将所述同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中;
如果否,当通过所述同步序列将所述扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表后,将不连续的所述扇区标识加入同步序列,使得不连续的所述扇区标识对应的所述扇区的数据也被同步到所述磁盘中存储的所述文件分配表中。
6.一种文件分配表处理装置,其特征在于,所述装置包括:
用户指令监测模块,用于监测用户触发的文件写入/删除指令,其中,所述文件写入/删除指令用于指示待写入/删除的文件;
簇状态信息存储模块,用于对所述文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,其中,所述簇状态信息包括簇标识和簇存储状态;
簇扇区链表创建模块,用于将包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,所述存储簇状态信息的扇区被缓存在预设的缓存区中;
磁盘同步模块,用于将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
信息获取模块,用于获取所述文件分配表的属性信息;
文件分配表读取模块,用于根据所述文件分配表的属性信息,读取存储在所述磁盘中的所述文件分配表;
文件分配表缓存模块,用于将读取的所述文件分配表缓存到预设的缓存区中。
8.根据权利要求7所述的装置,其特征在于,所述簇扇区链表创建模块包括:
扇区标识确定单元,用于根据所述簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的所述文件分配表中,确定包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识;
链表节点判断单元,用于判断预先创建的所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
同步标志标识单元,用于链表节点判断单元的判断结果为是时,将所述扇区标识对应的链表节点中记录的同步标志标识为未同步状态;
链表节点生成单元,用于链表节点判断单元的判断结果为否时,则向所述扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。
9.根据权利要求8所述的装置,其特征在于,所述簇扇区链表创建模块还包括:
簇扇区链表判断单元,用于判断当前所述内存中是否创建有所述簇扇区链表;
第一执行单元,用于当所述簇扇区链表判断单元得到的判断结果为是时,触发所述链表节点判断单元判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
第二执行单元,用于当所述簇扇区链表判断单元得到的判断结果为否时,则触发所述链表节点判断单元在所述内存中创建所述簇扇区链表,并判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点。
10.根据权利要求8所述的装置,其特征在于,所述磁盘同步模块包括:
扇区数据同步判断单元,用于通过链表节点中记录的同步标志,判断所述簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步;
连续性判断单元,用于判断需要进行数据同步的扇区的扇区标识是否连续;
第三执行单元,用于当连续性判断单元得到的判断结果为是时,将连续的扇区标识加入同步序列,将所述同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中;
第四执行单元,用于当连续性判断单元得到的判断结果为否时,当通过所述同步序列将所述扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表后,将不连续的所述扇区标识加入同步序列,使得不连续的所述扇区标识对应的所述扇区的数据也被同步到所述磁盘中存储的所述文件分配表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610206635.6A CN105912267B (zh) | 2016-04-05 | 2016-04-05 | 一种文件分配表处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610206635.6A CN105912267B (zh) | 2016-04-05 | 2016-04-05 | 一种文件分配表处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105912267A true CN105912267A (zh) | 2016-08-31 |
CN105912267B CN105912267B (zh) | 2019-01-18 |
Family
ID=56745480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610206635.6A Active CN105912267B (zh) | 2016-04-05 | 2016-04-05 | 一种文件分配表处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105912267B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966313A (zh) * | 2021-04-07 | 2021-06-15 | 北京安天网络安全技术有限公司 | 安全删除文件的方法、装置及计算机可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006127377A (ja) * | 2004-11-01 | 2006-05-18 | Canon Inc | Fatファイルシステム |
CN1790340A (zh) * | 2005-12-31 | 2006-06-21 | 北京中星微电子有限公司 | 文件分配表访问装置、芯片及访问方法 |
CN101634997A (zh) * | 2009-06-02 | 2010-01-27 | 福州思迈特数码科技有限公司 | 增强基于NAND Flash的FAT文件系统稳定性的方法 |
CN102841894A (zh) * | 2011-06-22 | 2012-12-26 | 比亚迪股份有限公司 | 一种文件分配表的数据存储方法 |
CN104657471A (zh) * | 2015-02-13 | 2015-05-27 | 厦门雅迅网络股份有限公司 | 一种fat文件系统的预分配文件建立方法及系统 |
CN105302501A (zh) * | 2015-11-27 | 2016-02-03 | 浙江宇视科技有限公司 | 一种磁盘扇区的控制方法和装置 |
-
2016
- 2016-04-05 CN CN201610206635.6A patent/CN105912267B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006127377A (ja) * | 2004-11-01 | 2006-05-18 | Canon Inc | Fatファイルシステム |
CN1790340A (zh) * | 2005-12-31 | 2006-06-21 | 北京中星微电子有限公司 | 文件分配表访问装置、芯片及访问方法 |
CN101634997A (zh) * | 2009-06-02 | 2010-01-27 | 福州思迈特数码科技有限公司 | 增强基于NAND Flash的FAT文件系统稳定性的方法 |
CN102841894A (zh) * | 2011-06-22 | 2012-12-26 | 比亚迪股份有限公司 | 一种文件分配表的数据存储方法 |
CN104657471A (zh) * | 2015-02-13 | 2015-05-27 | 厦门雅迅网络股份有限公司 | 一种fat文件系统的预分配文件建立方法及系统 |
CN105302501A (zh) * | 2015-11-27 | 2016-02-03 | 浙江宇视科技有限公司 | 一种磁盘扇区的控制方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966313A (zh) * | 2021-04-07 | 2021-06-15 | 北京安天网络安全技术有限公司 | 安全删除文件的方法、装置及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105912267B (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105787093B (zh) | 一种基于LSM-Tree结构的日志文件系统的构建方法 | |
CN104301360A (zh) | 一种日志数据记录的方法、日志服务器及系统 | |
CN104731864A (zh) | 一种海量非结构化数据的数据存储方法 | |
CN113821171B (zh) | 一种基于哈希表与lsm树的键值存储方法 | |
CN103336849A (zh) | 一种数据库检索系统中提高检索速度的方法及装置 | |
CN101866305A (zh) | 支持数据查询和快速恢复的连续数据保护方法及系统 | |
CN100424699C (zh) | 一种属性可扩展的对象文件系统 | |
CN104899297A (zh) | 具有存储感知的混合索引结构 | |
CN103544156A (zh) | 文件存储方法及装置 | |
CN106682077A (zh) | 一种基于Hadoop技术的海量时序数据存储实现方法 | |
CN101986649A (zh) | 应用于电信行业计费系统的共享数据中心 | |
CN108287869A (zh) | 一种基于快速存储设备的海量小文件解决方法 | |
CN102915340A (zh) | 一种扩展的基于b+树对象文件系统 | |
CN103942301B (zh) | 一种面向多数据类型访问应用的分布式文件系统 | |
CN105512325B (zh) | 多版本数据索引的更新、删除与建立方法及装置 | |
CN110083649A (zh) | 一种基于冷、温、热数据的数据管理系统和数据管理方法 | |
CN103049574A (zh) | 实现文件动态副本的键值文件系统及方法 | |
CN104281673A (zh) | 一种数据库的缓存构建系统及对应的构建方法 | |
KR100907477B1 (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
CN106326040A (zh) | 一种快照元数据管理方法和装置 | |
TW201021027A (en) | Disk layout method for object-based storage device | |
CN103530067B (zh) | 一种数据操作的方法和设备 | |
CN107506466A (zh) | 一种小文件存储方法及系统 | |
CN107402819A (zh) | 一种客户端缓存的管理方法及系统 | |
CN102799583B (zh) | 一种面向对象的存取方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |