一种文件分配表处理方法和装置的制造方法

文档序号:10552630阅读:229来源:国知局
一种文件分配表处理方法和装置的制造方法
【专利摘要】本发明提供了一种文件分配表处理方法和装置,包括:监测用户触发的文件写入/删除指令;对文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,簇状态信息包括簇标识和簇存储状态;将包括簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中;将簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中。通过本发明,提高了文件分配表的更新速度,延长了磁盘的使用寿命。
【专利说明】
一种文件分配表处理方法和装置
技术领域
[0001]本发明涉及文件系统领域,具体而言,涉及一种文件分配表处理方法和装置。
【背景技术】
[0002]目前,在计算机、闪存或者移动终端等具有存储介质(如:磁盘)的计算设备中,数据都是存储在计算设备的存储介质的物理扇区中,计算设备的文件系统通过预设的存储单位簇对物理扇区进行管理,为了使计算设备对簇进行管理,文件系统中预先设置了文件分配表(File Allocat1n Table,FAT)对簇进行管理,簇状态信息会预先存储在FAT中的多个扇区中。
[0003]相关技术中,在对文件系统中存储的文件进行写入/删除处理的过程中,就会进行簇的分配或释放操作,那么文件系统就会先计算该被分配或释放的簇的簇标识在FAT中的哪个扇区,然后将该扇区的数据从磁盘读取到内存缓存区中,然后根据该簇标识修改扇区中相应簇状态信息,并将修改后的扇区的数据存储回磁盘中的FAT中。
[0004]在对FAT中的簇状态信息进行修改的过程中,每一次对簇状态信息的修改都需要将FAT读取到内存缓冲区中并在修改完毕后又存储到磁盘中,所以完成一次文件的写入或删除操作的处理时,FAT表的更新耗费时间比较长,当有大量文件需要写入/删除处理时,会大大降低整个文件系统的读写速度,而且操作繁琐,增加了系统资源的消耗,降低了磁盘的使用寿命,给人们的日常操作带来了极大的不便,降低了用户的体验感。

【发明内容】

[0005]有鉴于此,本发明实施例的目的在于提供一种文件分配表处理方法和装置,以提高FAT表的更新速度,延长磁盘的使用寿命,方便人们的日常文件处理。
[0006]第一方面,本发明实施例提供了一种文件分配表处理方法,包括:监测用户触发的文件写入/删除指令,所述文件写入/删除指令用于指示待写入/删除的文件;
[0007]对所述文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,所述簇状态信息包括簇标识和簇存储状态;
[0008]将包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,存储所述簇状态信息的扇区被缓存在预设的缓存区中;
[0009]将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中。
[0010]结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述方法还包括:获取所述文件分配表的属性信息;根据所述文件分配表的属性信息,读取存储在所述磁盘中的所述文件分配表;将读取的所述文件分配表缓存到预设的缓存区中。
[0011]结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述通过包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,包括:
[0012]根据所述簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的所述文件分配表中,确定包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识;
[0013]判断预先创建的所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
[0014]如果是,则将所述扇区标识对应的链表节点中记录的同步标志标识为未同步状态;
[0015]如果否,则向所述扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。
[0016]结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,在所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点之前,所述方法还包括:
[0017]判断内存中是否创建有所述簇扇区链表;
[0018]如果是,则执行所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点步骤;
[0019]如果否,则在所述内存中创建所述簇扇区链表,并执行所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点步骤。
[0020]结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中,包括:
[0021 ]通过链表节点中记录的同步标志,判断所述簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步;
[0022]判断需要进行数据同步的扇区的扇区标识是否连续;
[0023]如果是,则将连续的扇区标识加入同步序列,将所述同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中;
[0024]如果否,当通过所述同步序列将所述扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表后,将不连续的所述扇区标识加入同步序列,使得不连续的所述扇区标识对应的所述扇区的数据也被同步到所述磁盘中存储的所述文件分配表中。
[0025]第二方面,本发明实施例提供了一种文件分配表处理装置,所述装置包括:用户指令监测模块,用于监测用户触发的文件写入/删除指令,其中,所述文件写入/删除指令用于指示待写入/删除的文件;
[0026]簇状态信息存储模块,用于对所述文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,其中,所述簇状态信息包括簇标识和簇存储状态;
[0027]簇扇区链表创建模块,用于将包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,所述存储簇状态信息的扇区被缓存在预设的缓存区中;
[0028]磁盘同步模块,用于将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中。
[0029]结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述装置还包括:信息获取模块,用于获取所述文件分配表的属性信息;
[0030]文件分配表读取模块,用于根据所述文件分配表的属性信息,读取存储在所述磁盘中的所述文件分配表;
[0031]文件分配表缓存模块,用于将读取的所述文件分配表缓存到预设的缓存区中。
[0032]结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,所述簇扇区链表创建模块包括:
[0033]扇区标识确定单元,用于根据所述簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的所述文件分配表中,确定包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识;
[0034]链表节点判断单元,用于判断预先创建的所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
[0035]同步标志标识单元,用于链表节点判断单元的判断结果为是时,将所述扇区标识对应的链表节点中记录的同步标志标识为未同步状态;
[0036]链表节点生成单元,用于链表节点判断单元的判断结果为否时,则向所述扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。
[0037]结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,所述簇扇区链表创建模块还包括:
[0038]簇扇区链表判断单元,用于判断当前所述内存中是否创建有所述簇扇区链表;
[0039]第一执行单元,用于当所述簇扇区链表判断单元得到的判断结果为是时,触发所述链表节点判断单元判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
[0040]第二执行单元,用于当所述簇扇区链表判断单元得到的判断结果为否时,则触发所述链表节点判断单元在所述内存中创建所述簇扇区链表,并判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点。
[0041]结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,所述磁盘同步模块包括:
[0042]扇区数据同步判断单元,用于通过链表节点中记录的同步标志,判断所述簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步;
[0043 ]连续性判断单元,用于判断需要进行数据同步的扇区的扇区标识是否连续;
[0044]第三执行单元,用于当连续性判断单元得到的判断结果为是时,将连续的扇区标识加入同步序列,将所述同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中;
[0045]第四执行单元,用于当连续性判断单元得到的判断结果为否时,当通过所述同步序列将所述扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表后,将不连续的所述扇区标识加入同步序列,使得不连续的所述扇区标识对应的所述扇区的数据也被同步到所述磁盘中存储的所述文件分配表中。
[0046]本发明实施例提供的一种文件分配表处理方法和装置,通过监测到用户触发的文件写入/删除指令,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,并将由簇存储状态发生变化的簇状态信息的扇区的扇区标识生成的链表节点加入到预先创建的簇扇区链表中,与现有技术中每一次对簇状态信息的修改都需要将FAT读取到内存缓冲区中并在修改完毕后又存储到磁盘中的过程相比,只需将缓冲区中包括簇存储状态发生变化的簇的簇状态信息的扇区的数据从缓冲区中同步到磁盘中的FAT中,从而缩短了完成一次FAT表的更新耗费时间,即使有大量文件需要写入/删除处理,也不会降低整个文件系统的读写速度,而且操作简单,避免了对系统资源的消耗,进而增加了磁盘的使用寿命,给人们的日常操作带来了方便,提高了用户的体验。
【附图说明】
[0047]为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0048]图1示出了本发明实施例1所提供的一种文件分配表处理方法的流程图;
[0049]图2示出了本发明实施例1所提供的一种文件分配表处理方法的结构示意图。
[0050]图3示出了本发明实施例2所提供的一种文件分配表处理装置的结构示意图。
【具体实施方式】
[0051]下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]考虑到相关技术中,在对FAT中的簇状态信息进行修改的过程中,每一次对簇状态信息的修改都需要将FAT读取到内存缓冲区中并在修改完毕后又存储到磁盘中,所以完成一次FAT表的更新耗费时间比较长,当有大量文件需要写入/删除处理时,会大大降低整个文件系统的读写速度,而且操作繁琐,增加了系统资源的消耗,降低了磁盘的使用寿命,给人们的日常操作带来了极大的不便,降低了用户的体验感。基于此,本发明实施例提供了一种文件分配表处理方法和装置,下面通过实施例进行描述。
[0053]实施例1
[0054]参见图1,本实施例提供一种文件分配表处理方法,包括以下步骤:
[0055]步骤100、监测用户触发的文件写入/删除指令,文件写入/删除指令用于指示待写入/删除的文件。
[0056]步骤101、对文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,簇状态信息包括簇标识和簇存储状态。
[0057]在步骤101中,确定文件写入操作时簇存储状态发生变化的簇状态信息的过程包括:在创建一个文件时,有文件写入文件系统时就会给该文件在磁盘中分配簇,首先在FAT表中查找未被占用的空簇,如簇标识为第5簇的簇为未被占用的空簇,就会把第5簇分配给该文件,并且把第5簇标记为结束簇标识,当该文件内容继续增加时,一个簇已经满足不了该文件的存储需求时,就会再次查找FAT表中的未被占用的空簇,如查找结果为第8簇为未被占用的空簇,就会把第8簇也分配给该文件,把第5簇的标记标识为下一簇的簇标识,这里是8,同时表示该簇是占用状态,然后再把第8簇的标记标识为结束簇标识;如内容继续增加循环上述操作,不再一一赘述,从而在文件写入操作时,将文件系统分配给该文件的簇确定为簇存储状态发生变化的簇。
[0058]其中,簇状态信息包括簇标识和簇存储状态,簇标识即为簇号,由数字表示;簇存储状态有两种,一种为未被占用的状态,为空簇,一种为被占用的状态,可以分别用“O”和“下一簇的簇标识或结束簇标识”表示。
[0059]确定文件删除操作时簇存储状态发生变化的簇状态信息时,会根据文件系统中预先存储的待删除文件的文件属性信息,确定该待删除文件的所存储的簇的簇标识,从而在文件删除操作时,将文件系统中待删除文件的文件属性信息中记录的簇确定为簇存储状态发生变化的簇。
[0060]文件属性信息,除了包括文件存储的簇的簇标识之外,还可以包括文件名称、文件大小等文件信息。
[0061]步骤102、将包括簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的链表节点加入到预先创建的簇扇区链表中,存储簇状态信息的扇区被缓存在预设的缓存区中。
[0062]步骤102具体包括步骤(I)至步骤(4):
[0063](I)根据簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的文件分配表中,确定包括簇存储状态发生变化的簇状态信息的扇区的扇区标识;
[0064](2)判断预先创建的簇扇区链表中是否具有包括簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点,如果是则执行步骤3,如果否则执行步骤4;
[0065](3)将扇区标识对应的链表节点中记录的同步标志标识为未同步状态;
[0066](4)向扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。
[0067]上述步骤是将变化的簇状态信息所在的扇区的扇区标识,即扇区号和预设的同步标志,生成链表节点加入到在缓存区内已经创建的簇扇区链表中,如642簇被标记,该簇信息所在的扇区的扇区号为5和同步标志形成链表节点,判断链表中是否已经有此扇区号的节点,如果有就只将簇扇区链表中的这个结点的同步标志标识为未同步,如果没有则将此节点加入到簇扇区链表中。
[0068]簇扇区链表,具体结构参见图2,包括的是缓存区内FAT表中有簇分配或者释放操作的簇状态信息所对应的扇区标识,用于对包括簇存储状态发生变化的簇的扇区的数据进行更新。
[0069]在判断簇扇区链表中是否具有包括簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点之前,该步骤102还包括以下步骤(5)至步骤(7):
[0070](5)判断内存中是否创建有簇扇区链表,如果是则执行步骤6,如果否则执行步骤7;
[0071](6)返回执行步骤2;
[0072](7)在内存中创建簇扇区链表;
[0073](8)返回执行步骤2。
[0074]综上所述,通过在内存中创建簇扇区链表,方便进行多个有关扇区的同步操作,从而在向磁盘中同步文件分配表时,只需要将簇扇区链表中未同步的扇区同步到磁盘中即可,不必将整个文件分配表全部都同步到磁盘中,这样节省了大量的文件分配表更新的时间,方便了人们的日常操作。
[0075]步骤103、将簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中。
[0076]本实施例提出的文件分配表处理方法可以应用到苹果U盘中,实现对移动终端存储容量的扩充的目的。
[0077]综上所述,本实施例提供的一种文件分配表处理方法,通过监测到用户触发的文件写入/删除指令,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,并将由簇存储状态发生变化的簇状态信息的扇区的扇区标识生成的链表节点加入到预先创建的簇扇区链表中,与现有技术中每一次对簇状态信息的修改都需要将FAT读取到内存缓冲区中并在修改完毕后又存储到磁盘中的过程相比,只需将缓冲区中包括簇存储状态发生变化的簇的簇状态信息的扇区的数从缓冲区中同步到磁盘中的FAT中,从而缩短了完成一次FAT表的更新耗费时间,即使有大量文件需要写入/删除处理,也不会降低整个文件系统的读写速度,而且操作简单,避免了对系统资源的消耗,进而增加了磁盘的使用寿命,给人们的日常操作带来了方便,提高了用户的体验。
[0078]为了增加文件分配表的获取速度,提高对簇状态信息的更新效率,本实施例提供的文件分配表处理方法中还包括以下步骤(I)至步骤(3):
[0079](I)获取文件分配表的属性信息;
[0080](2)根据文件分配表的属性信息,读取存储在磁盘中的文件分配表;
[0081](3)将读取的文件分配表缓存到预设的缓存区中。
[0082]文件分配表的属性信息,预先存储在文件系统中。
[0083]相关技术中,在簇的存储状态发生变化时,一次只能将一个扇区的数据同步到磁盘中的FAT中,导致FAT更新效率低,所以,为了一次将多个扇区同步到FAT中,本实施例提供的文件分配表处理方法中,将簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中,包括以下步骤(I)至步骤(4):
[0084](I)通过链表节点中记录的同步标志,判断簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步;
[0085](2)判断需要进行数据同步的扇区的扇区标识是否连续,如果是则执行步骤3,如果否则执行步骤4;
[0086](3)将连续的扇区标识加入同步序列,将同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中;
[0087](4)将不连续的扇区标识加入同步序列,使得不连续的扇区标识对应的扇区的数据也被同步到磁盘中存储的文件分配表中。
[0088]在上述步骤2中,如果簇扇区链表中记录的需要进行数据同步的扇区的扇区标识分别是5、6和8,那么就可以确定需要进行数据同步的扇区的扇区标识5和6是连续的;扇区标识8与5、6是不连续的。这时就先将同步序列中的扇区标识5和扇区标识6对应将缓冲区中第5扇区和缓冲区中第6扇区同步到磁盘FAT表的第5扇区和第6扇区,并且将簇扇区链表的这两个链表节点的扇区标识标识为已经同步;将扇区标识8另外加入到同步序列,检查簇扇区链表没有需要同步的扇区标识,再将同步序列上的这个扇区标识8对应缓冲区中第8扇区同步到磁盘FAT表的第8扇区;最后将簇扇区链表的扇区标识为8的节点标识为已同步。
[0089]综上所述,通过查找簇扇区链表中的链表节点中记录的同步标志即可知道哪些缓存区的扇区需要同步到磁盘中的文件分配表中,并且可以根据扇区标识来判断需要同步的扇区是否连续,将连续的扇区可以一次同步到磁盘中,与每修改一次同步到磁盘中的操作相比,节约了大量的时间,减少了磁盘的同步次数,延长了磁盘的使用寿命。
[0090]实施例2
[0091]参见图3,本实施例提供一种文件分配表处理装置,用于执行上述的文件分配表处理方法,该装置包括:
[0092]用户指令监测模块,用于监测用户触发的文件写入/删除指令,其中,文件写入/删除指令用于指示待写入/删除的文件;
[0093]簇状态信息存储模块,用于对文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,其中,簇状态信息包括簇标识和簇存储状态;
[0094]簇扇区链表创建模块,用于将包括簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的链表节点加入到预先创建的簇扇区链表中,存储簇状态信息的扇区被缓存在预设的缓存区中;
[0095]磁盘同步模块,用于将簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中。
[0096]进一步地,文件分配表处理装置还包括:信息获取模块,用于获取文件分配表的属性信息;文件分配表读取模块,用于根据文件分配表的属性信息,读取存储在磁盘中的文件分配表;文件分配表缓存模块,用于将读取的文件分配表缓存到预设的缓存区中。
[0097]具体地,簇扇区链表创建模块12包括:扇区标识确定单元,用于根据簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的文件分配表中,确定包括簇存储状态发生变化的簇状态信息的扇区的扇区标识;
[0098]链表节点判断单元,用于判断预先创建的簇扇区链表中是否具有包括簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
[0099]同步标志标识单元,用于链表节点判断单元的判断结果为是时,将扇区标识对应的链表节点中记录的同步标志标识为未同步状态;
[0100]链表节点生成单元,用于链表节点判断单元的判断结果为否时,则向扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。
[0101]可选地,簇扇区链表创建模块12还包括:簇扇区链表判断单元,用于判断内存中是否创建有簇扇区链表;
[0102]第一执行单元,用于当簇扇区链表判断单元得到的判断结果为是时,触发链表节点判断单元判断簇扇区链表中是否具有包括簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点;
[0103]第二执行单元,用于当簇扇区链表判断单元得到的判断结果为否时,,则触发链表节点判断单元在内存中创建簇扇区链表,并判断簇扇区链表中是否具有包括簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点。
[0104]具体地,磁盘同步模块13包括:扇区数据同步判断单元,用于通过链表节点中记录的同步标志,判断簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步;
[0105 ]连续性判断单元,用于判断需要进行数据同步的扇区的扇区标识是否连续;
[0106]第三执行单元,用于当连续性判断单元得到的判断结果为是时,将连续的扇区标识加入同步序列,将同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表中;
[0107]第四执行单元,用于当连续性判断单元得到的判断结果为否时,当通过同步序列将扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的文件分配表后,将不连续的扇区标识加入同步序列,使得不连续的扇区标识对应的扇区的数据也被同步到磁盘中存储的文件分配表中。
[0108]综上所述,本实施例提供的一种文件分配表处理装置,通过监测到用户触发的文件写入/删除指令,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,并将簇存储状态发生变化的簇状态信息的扇区的扇区标识生成的链表节点加入到预先创建的簇扇区链表中,与现有技术中每一次对簇状态信息的修改都需要将FAT读取到内存缓冲区中并在修改完毕后又存储到磁盘中的过程相比,只需将缓冲区中包括簇存储状态发生变化的簇的簇状态信息的扇区的数从缓冲区中同步到磁盘中的FAT中,从而缩短了完成一次FAT表的更新耗费时间,即使有大量文件需要写入/删除处理,也不会降低整个文件系统的读写速度,而且操作简单,避免了对系统资源的消耗,进而增加了磁盘的使用寿命,给人们的日常操作带来了方便,提高了用户的体验。
[0109]本发明实施例所提供的文件分配表处理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
[0110]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0111]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【主权项】
1.一种文件分配表处理方法,其特征在于,包括: 监测用户触发的文件写入/删除指令,所述文件写入/删除指令用于指示待写入/删除的文件; 对所述文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,所述簇状态信息包括簇标识和簇存储状态; 将包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,存储所述簇状态信息的扇区被缓存在预设的缓存区中; 将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 获取所述文件分配表的属性信息; 根据所述文件分配表的属性信息,读取存储在所述磁盘中的所述文件分配表; 将读取的所述文件分配表缓存到预设的缓存区中。3.根据权利要求2所述的方法,其特征在于,所述通过包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,包括: 根据所述簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的所述文件分配表中,确定包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识; 判断预先创建的所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点; 如果是,则将所述扇区标识对应的链表节点中记录的同步标志标识为未同步状态;如果否,则向所述扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。4.根据权利要求3所述的方法,其特征在于,在所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点之前,所述方法还包括: 判断内存中是否创建有所述簇扇区链表; 如果是,则执行所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点步骤; 如果否,则在所述内存中创建所述簇扇区链表,并执行所述判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点步骤。5.根据权利要求3所述的方法,其特征在于,所述将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中,包括: 通过链表节点中记录的同步标志,判断所述簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步; 判断需要进行数据同步的扇区的扇区标识是否连续; 如果是,则将连续的扇区标识加入同步序列,将所述同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中; 如果否,当通过所述同步序列将所述扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表后,将不连续的所述扇区标识加入同步序列,使得不连续的所述扇区标识对应的所述扇区的数据也被同步到所述磁盘中存储的所述文件分配表中。6.一种文件分配表处理装置,其特征在于,所述装置包括: 用户指令监测模块,用于监测用户触发的文件写入/删除指令,其中,所述文件写入/删除指令用于指示待写入/删除的文件; 簇状态信息存储模块,用于对所述文件写入/删除指令中指示的文件进行写入/删除操作,确定文件写入/删除操作时簇存储状态发生变化的簇状态信息,其中,所述簇状态信息包括簇标识和簇存储状态; 簇扇区链表创建模块,用于将包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识生成链表节点,并将生成的所述链表节点加入到预先创建的簇扇区链表中,所述存储簇状态信息的扇区被缓存在预设的缓存区中; 磁盘同步模块,用于将所述簇扇区链表的链表节点中记录的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中。7.根据权利要求6所述的装置,其特征在于,所述装置还包括: 信息获取模块,用于获取所述文件分配表的属性信息; 文件分配表读取模块,用于根据所述文件分配表的属性信息,读取存储在所述磁盘中的所述文件分配表; 文件分配表缓存模块,用于将读取的所述文件分配表缓存到预设的缓存区中。8.根据权利要求7所述的装置,其特征在于,所述簇扇区链表创建模块包括: 扇区标识确定单元,用于根据所述簇存储状态发生变化的簇状态信息中记录的簇标识,从缓存的所述文件分配表中,确定包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识; 链表节点判断单元,用于判断预先创建的所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点; 同步标志标识单元,用于链表节点判断单元的判断结果为是时,将所述扇区标识对应的链表节点中记录的同步标志标识为未同步状态; 链表节点生成单元,用于链表节点判断单元的判断结果为否时,则向所述扇区标识分配具有未同步状态的同步标志,生成新的链表节点加入到预先创建的簇扇区链表中。9.根据权利要求8所述的装置,其特征在于,所述簇扇区链表创建模块还包括: 簇扇区链表判断单元,用于判断当前所述内存中是否创建有所述簇扇区链表; 第一执行单元,用于当所述簇扇区链表判断单元得到的判断结果为是时,触发所述链表节点判断单元判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点; 第二执行单元,用于当所述簇扇区链表判断单元得到的判断结果为否时,则触发所述链表节点判断单元在所述内存中创建所述簇扇区链表,并判断所述簇扇区链表中是否具有包括所述簇存储状态发生变化的簇状态信息的扇区的扇区标识的链表节点。10.根据权利要求8所述的装置,其特征在于,所述磁盘同步模块包括: 扇区数据同步判断单元,用于通过链表节点中记录的同步标志,判断所述簇扇区链表中是否有链表节点记录的扇区标识对应的扇区的数据需要同步; 连续性判断单元,用于判断需要进行数据同步的扇区的扇区标识是否连续; 第三执行单元,用于当连续性判断单元得到的判断结果为是时,将连续的扇区标识加入同步序列,将所述同步序列的扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表中; 第四执行单元,用于当连续性判断单元得到的判断结果为否时,当通过所述同步序列将所述扇区标识对应的扇区的数据从缓存区同步到磁盘中存储的所述文件分配表后,将不连续的所述扇区标识加入同步序列,使得不连续的所述扇区标识对应的所述扇区的数据也被同步到所述磁盘中存储的所述文件分配表中。
【文档编号】G06F3/06GK105912267SQ201610206635
【公开日】2016年8月31日
【申请日】2016年4月5日
【发明人】龙金东
【申请人】深圳市四季宏胜科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1