用于在文件系统中创建文件的方法和装置的制作方法

文档序号:6348109阅读:145来源:国知局
专利名称:用于在文件系统中创建文件的方法和装置的制作方法
技术领域
本发明总体上涉及存储设备领域,例如个人视频录像机(PVR),具体而言,本发明涉及一种用于在文件系统中创建文件的方法和装置。
背景技术
目前PVR产品使用硬盘作为存储设备。随着硬盘价格急剧下降,在PVR产品中使用了具有较大容量的硬盘。当PVR录像机创建一个记录时,其需要在硬盘上创建数个文件, 然后用户才能把流数据写入其中。这个文件创建可能需要1秒多时间。在最差的情况下可能需要4或5秒。图1是现有技术的文件系统中如何管理文件的图示。文件系统是目录的层级结构 (也称为文件树),用于组织PVR、计算机或存储介质上的文件和数据以便于寻找和存取。如图1所示,在文件系统中具有一个根目录,其下有文件4和两个目录-目录1和目录2。在目录1下面具有文件1和2,而在目录2下面具有文件N和子目录3。当所述文件系统创建文件时,其首先需要为文件头分配一些空间,然后将信息写入硬盘上用于此文件的所述文件头中。所述文件创建过程消耗的大部分时间用于为所述文件头分配空间。文件头空间分配所需时间取决于存储介质的分区尺寸、分区碎片状态等。 例如,如果分区尺寸很大并且在存储介质中有很多碎片,上述过程将消耗几百毫秒。不幸的是,在PVR运转将几次之后,磁盘上的碎片很难避免。这将对PVR产品用户产生负面影响。当用户观看直播电视并找到某些感兴趣的内容时,他按下“REC”按键以开始记录。在上述情况下,用户可能需要等待几秒钟才能真正记录数据,这将导致几秒钟的数据丢失。另外,记录的开始时间也是无法预测的。已经进行了某些研究以提高开始记录的效率。其中一个方案是在创建记录文件时采用流缓冲器来保持数据。由于流缓冲器需要比较大,该缓冲器将在硬盘而非RAM上实现,这将增加硬盘的使用并从而增加功率需求。

发明内容
根据本发明的第一个方面,提供了一种包括文件系统的设备。所述设备包括存储模块,用于存储多个预先创建的文件头,其中在请求创建文件之前创建所述文件头,每个文件头包括用于将存储在所述文件系统中的文件的预先分配的描述符;和处理器,用于当文件存储或者将存储在所述存储模块中时更新给定文件头的预先分配的描述符。所述设备还包括多个指针(pointer),其中每个指针指向预先创建的可用文件头的位置。另外,所述设备中的所述多个文件头包括删除文件的文件头可以用于以后的文件。另外,在所述装置中具有最大和最小数量的预先创建的文件头。另外,只有当所述文件头的数量处于所述最大数量与最小数量之间时所述删除文件的文件头才能再次使用。根据本发明的第二个方面,提供了一种用于在文件系统中创建文件的方法。所述方法包括存储多个预先创建的文件头,其中在请求创建文件之前创建所述文件头,每个文件头包括预先分配的描述符;并且当给定文件头与文件相关联时更新所述给定文件头的预先分配的描述符。


图1是现有技术的文件系统中的文件夹和文件结构的实例的图示;图2是显示了包括文件头和文件主体的文件结构的图示;图3是根据本发明一个实施方式的具有文件头库的文件系统的图示;图4是根据本发明一个实施方式的文件头库的位置的图示;图5是示出了示例性文件头中包含的信息的表;图6是示出了当要记录文件时采用的示例性文件头中包含的信息的表;图7是当要记录文件时的示例性文件头的总体图示;和图8是根据本发明的实施方式的处理器进行的处理过程的流程图。
具体实施例方式图2是显示了文件系统中包括文件头和文件主体的文件结构的图示。所述文件主体在不同的文件系统中表现形式不同。基本上,所述文件主体包括文件的数据并占用了大部分的文件大小。文件头通常只占用很小空间。但是,由于文件头包括指向文件主体的入口指针(entry pointer)File Body Entry,因此文件头非常重要。没有文件头中的信息,则将无法读出文件主体中的数据。图3是显示了根据本发明实施方式的包括具有文件头库310的文件系统的电子设备300。例如,所述电子设备300可以是PVR。在本实施方式中,由处理器330在用于文件系统的存储设备320上创建所述文件头库。所述存储设备可以是硬盘。文件头库310包括多个文件头并且是在所述文件系统首次安装(例如文件系统首次连接至PVR的当前可存取文件系统)时创建。还可以将安装操作考虑为读取硬盘中的数据、在存储器中构建文件系统结构等。在本实施方式中,处理器330将文件头库310分配至在硬盘分区中具有固定地址的存储设备的区域。当创建所述文件系统时定义所述固定地址。图4示出了一个实例, 其中文件头库310位于“超级块(super block)”之后的块。所述“超级块”是存储设备上最初的一个或多个块并包含关于文件系统的信息。当在一个目录(例如目录1)下创建文件时,可以从文件头库选择文件头以进行使用。图5是示出了当文件系统首次安装时示例性文件头中包含的信息的表。在文件头库中具有指向文件头自身的索引。这些索引是文件头的地址,即指针。例如,文件头1具有索引8000,其指向存储介质上的块8000,文件头1位于其中。在文件头1中,处理器330预先分配了某些元数据,这些元数据文件由处理器330设置初始值。“地址”示出了文件头在存储设备上的物理位置。所述存储设备被分为具有相同大小(例如IOM字节)的多个块。 在所述实例中,为文件头分配的地址是编号为8000的块。“文件名”指出所述文件头关联的文件的名称。在图4中,所述文件名被赋值为“Null”,因为还没有文件与该文件头关联。字段“创建时间”显示与该文件头相关联的文件是何时创建的。“修改时间”显示与该文件头相关联的文件最后一次修改是何时。“大小”指出与该文件头关联的文件的大小。“用户 ID”表示谁创建了该文件。由于没有相关文件,“修改时间”、“大小”和“用户ID”都具有初始值“0”。对文件中包含的数据信息,通常可以记录“数据起始地址”和“长度”。“数据起始地址”指明数据从哪个块开始写入,“长度”显示数据占据了多少块。由于没有特定文件与所述文件头关联,数据如入口 1、2. . . N的“数据起始地址”和“长度”都设置为“0”。图6是示出了示例性文件头在被文件使用时包含信息的表。当创建一文件(例如用户开始记录PVR视频文件)时,处理器将在文件头库310中进行搜索以寻找未使用的文件头并将该寻找到的文件头分配给将创建的文件。在将文件头与特定文件相关联后,由处理器330对初始设置值进行再分配或更新。例如,在图6中,当记录过程开始时所述文件没有名称,文件创建时间是“1/12/2008,12 :pm”,修改时间也是“1/12/2008,12 :pm,,(因为这是第一次编辑该文件),用户ID是500 (表示ID为500的用户创建此文件)。在此时该文件中没有数据。在向存储介质上的所述文件中写入数据之后,数据入口 1、2...N将得到更新,即将数据起始地址和长度写入上述表中。当文件头库中的文件头被文件使用时,其相应的地址将从文件头库中除去。例如,当使用文件头1时,地址8000将被除去。图7是示出了文件头最终如何在文件系统中组织的总体图示。在记录了文件之后,图6中缺少的某些信息将被写入。文件名现在为“文件1”,记录的文件大小为10M00 字节。对于第一块数据,物理地址为8100并且长度为1块。对于第二块数据,物理地址为 8300并且长度为10块(从块8300至8309)。提前确定预创建的文件头的数量。当文件头库中的某些文件头已经被使用并且文件头的数量小于最小阈值时,创建新的文件头直至文件头的数量等于最大阈值。因此,保持文件头库中文件头的数量,从而确保当创建新文件时,可以立即从文件头库中使用文件头。随后,当再次安装文件系统时,文件系统将探测在文件头库中是否具有充足的文件头,即文件头库中的文件头数量是否大于最小阈值。如果否,文件系统将创建某些额外的文件头。在另外的实例中,具有较低优先级的程序探测文件头库状态以保证在文件头库中具有特定数量的文件头。如果在文件头库中不具有足够的文件头,该程序将创建特定数量的文件头。图8是根据本发明的实施方式的处理器330进行的处理过程的流程图。所述过程 800开始于步骤810。当首次安装一文件系统时,在步骤820,处理器330创建具有多个文件头的文件头库310。在所述文件头中包含数个元数据字段,包括“地址”字段,显示文件头在所述存储设备上的物理位置;“文件名称”,指示与文件头相关联的文件的名称;“创建时间”,显示与文件头相关联的文件何时创建;“修改时间”,显示与文件头相关联的文件何时修改;“大小”,指示与文件头相关联的文件的大小;“用户ID”,标明进行记录的用户;“数据起始地址”,指明从那个块开始写入文件数据;“长度”,显示文件数据占据多少块。在步骤 830处理器330将每个字段初始化为初始值。当用户希望记录PVR节目(例如电视节目、 电影、体育节目等)并按下“记录”按钮时,处理器330从现有文件头库中采用文件头,如步骤840所示。然后在步骤850修改文件头中的元数据。例如,将文件头中的“创建时间”字段改为当前时间,根据PVR节目的要求将“文件名称”字段改为实际名称,等等。根据本实施方式,PVR记录将包括一个以上的文件,例如流文件、元数据文件、索引文件、统计文件等。这些文件将具有不同名称。然后分配新空间用于写入该文件,并且采用的文件头中的“数据入口”将指向分配的空间,即如步骤860所示更新所选文件头中的“数据入口”。此后,过程在步骤870结束。作为选择,当从文件系统中删除文件时,如果文件头库中的文件头数量小于阈值, 其删除文件的文件头将被放回文件头库中。当文件被删除时,文件主体将被首先释放。艮口, PVR的存储器上由所述文件数据占据的空间将被交还至文件系统并由其他文件使用。随后将所述文件的文件头插入至现有文件头库中,这意味着该文件头的地址将在文件头库中注册。因为有阈值来限制文件头的最大数量,只有文件头库未满时,才将所述删除文件的文件头插入文件头库中。根据该方式,所述文件头将在未来的文件记录中使用,不必对文件头进行新的空间分配。根据本发明的实施方式,文件头包括下列字段“文件名称”、“创建时间”、“修改时间”、“大小”、“用户ID”。还可以增加其他字段,例如显示对文件的访问权限的字段等。上面对本发明的几个实施方式进行了说明。但是可以理解,能够进行多种修改。另外,本领域普通技术人员可以理解,说明中的结构和过程可以用以大体相同的方式、执行大体相同的功能、获得大体相同的结果的其他结构和过程来替代。因此,说明书中的说明只是用于说明的目的,本领域普通技术人员可以理解,在不脱离由所附权利要求限定的本发明的原理和范围的情况下,可以对所述实施方式进行各种修改和改变。因此,这些实施方式都可以根据本发明的说明获得并属于所附权利要求的范围。
权利要求
1.一种设备(300),包括文件系统,其特征在于,还包括存储模块(320),用于存储多个预先创建的文件头,其中在请求创建文件之前创建所述文件头,每个文件头包括用于将存储在所述文件系统中的文件的预先分配的描述符;和处理器(330),用于当文件存储或者将存储在所述存储模块中时更新给定文件头的预先分配的描述符。
2.根据权利要求1所述设备(300),还包括多个指针,其中每个指针指向预先创建的可用文件头的位置
3.根据权利要求1或2所述设备(300),其中所述多个文件头包括删除文件的文件头可以用于以后的文件。
4.根据权利要求3所述设备(300),其中具有最大和最小数量的预先创建的文件头。
5.根据权利要求4所述设备(300),其中只有当所述文件头的数量处于所述最大数量与最小数量之间时所述删除文件的文件头才能再次使用。
6.一种用于在文件系统中创建文件的方法,包括存储多个预先创建的文件头,其中在请求创建文件之前创建所述文件头,每个文件头包括预先分配的描述符(820,830);并且当给定文件头与文件相关联时更新所述给定文件头的预先分配的描述符(850, 860)。
全文摘要
本发明提供了一种用于在文件系统中创建文件的方法和装置。在所述文件系统中具有文件头库,可以在安装所述文件系统时建立所述文件头库。当将要创建新文件时,从所述文件头库采用文件头,需要做的是根据当前文件中的现实信息改变采用的文件头中的信息。
文档编号G06F3/06GK102272710SQ201080004026
公开日2011年12月7日 申请日期2010年1月5日 优先权日2009年1月6日
发明者屈冬生, 张晓龙 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1