发明内容
鉴于上述问题,本发明致力于提供一种文件更新设备和一种文件更新方法,用于在不需要把只在异常时间才有用的信息记录到记录介质上的情况下,解决与记录介质上的文件相关的不一致问题,这种不一致问题在文件的更新被中断时会出现。
为了实现上述目的,依照本发明的文件更新设备能够安装可移除的第一记录介质,用于存储示出构成文件内容的数据在所述第一记录介质上的存储位置的位置信息,并且所述文件更新设备还能够执行多个更新步骤来更新所述文件。所述文件更新设备包括第二记录介质;进展记录单元,该进展记录单元用于把进展信息记录到所述第二记录介质上,该进展信息示出了在更新所述文件时哪些更新步骤已经执行;新数据记录单元,该新数据记录单元用于把构成更新后的文件的内容的数据记录到所述第一记录介质上,并且记录到与构成更新前的文件的内容的数据不同的存储位置中;更新信息记录单元,该更新信息记录单元用于把更新信息记录到所述第二记录介质上,该更新信息示出了构成更新后的文件的内容的数据在第一记录介质上的存储位置;以及更新单元,该更新单元用于在已经记录了更新信息之后,根据所述更新信息更新所述位置信息,从而示出构成更新后的文件内容的数据的存储位置。
根据此结构,即使例如因为如下原因:第一记录介质的存取装置遇到掉电、或者第一记录介质被从文件更新设备移除等,而中断了利用多个步骤对第一记录介质上的位置信息进行的更新,进而导致出现位置信息和数据存储位置之间的不一致,如果使用第二记录介质上的信息,就能够再次更新(在下文称为“重新更新”)所述位置信息,从而结束所述更新。此外,由于用于处理在异常时间的不一致的进展信息和更新信息没有被保存在第一记录介质上,所以第一记录介质的区域能够被有效地用于记录文件。
即使当例如把第一记录介质从文件更新设备移除时,存在于第一记录介质上的、除用于解决不一致之外通常是无意义的信息很可能使假定可以存取此信息的用户迷惑。相反,依照本发明的文件更新设备可以把这种通常无意义的信息记录到设备内的第二记录介质上,而不是记录到可移除的第一记录介质上。这暗含了该信息不会向设备外部传递。因而,当用户为了观看目的而把第一记录介质从文件更新设备中移除时,减小了对用户造成迷惑的可能性。
这里,所述进展信息可以包括用于识别所述更新信息是否已经记录的信息,并且所述文件更新设备还可以包括重新更新单元,如果预定条件得以满足,那么该单元用于根据所述进展信息判断是否已经记录了所述更新信息,并且在判断为肯定时,根据所述更新信息对所述位置信息进行更新,从而示出构成更新后的文件的内容的数据的存储位置。
预定条件包括例如:在由于第一记录介质的存取装置遭受掉电而使对第一记录介质上的文件进行更新变成不可能之后,重新供电。换言之,预定条件是这样一种条件,其要求为了恢复文件并且解决不一致,再次执行更新,并且当该更新重新回到执行状态时,该预定条件得到满足。在因为把第一记录介质从文件更新设备移除而导致所述更新在中途被中断之后,所述预定条件可以例如通过把第一记录介质重新添加到文件更新设备中而得以满足。
因此,即使更新处理在中途被中断,也能够在预定条件得到满足之后重新更新第一记录介质上的信息(例如FAT、目录条目等中的位置信息),以便所述信息在更新之后与第一记录介质上的文件的状态(即,文件更新后的状态)一致。此外,只要没有删除更新信息,如果所述第二记录介质例如是非易失性存储器,或者是易失性存储器,那么即使当文件更新到中途时切断对第一记录介质的供电,也可以实现此功效,其中该易失性存储器被构造来从与第一记录介质的存取装置的电源不同的电源接收长时间供电。
这里,所述文件更新设备还可以包括:ID记录单元,用于在更新所述文件之前,从第一记录介质读取惟一的介质标识符信息,并且将该介质标识符信息保存在所述文件更新设备内;以及重新更新禁止单元,用于从安装在所述文件更新设备上的可移除的记录介质中读取介质标识符信息,并将读取的介质标识符信息与保存的介质标识符信息进行比较,并且如果读取的介质标识符信息与保存的介质标识符信息不匹配,就禁止重新更新单元更新位置信息。
只有当恢复时安装的记录介质与更新时安装的记录介质相同时,才进行文件恢复(即,重新更新位置信息以便使其与文件数据的记录状态一致)。此结构例如能够防止其他记录介质的内容被破坏。
这里,所述位置信息可以示出构成第一记录介质上所有文件内容的数据的存储位置,所述文件更新设备可以把多个文件作为更新目标,所述进展记录单元可以为每个目标文件记录进展信息,所述新数据记录单元可以为每个目标文件执行把构成更新后的文件内容的数据记录到第一记录介质的操作,所述更新信息记录单元可以为已经由新数据记录单元进行数据记录的每个文件执行更新信息的记录,所述更新单元为其更新信息已经被记录的文件更新位置信息,该位置信息的更新是基于文件的更新信息而执行的,并且如果所述预定条件得以满足,那么当基于所述文件的进展信息判断出已经记录了与所述文件相关的更新信息时,所述重新更新单元可以为每个文件执行位置信息的更新。
依照此结构,即使当同时更新多个文件时,也能够解决第一记录介质上位置信息的不一致问题,从而示出每个文件的更新后的状态。每个文件的更新信息指的是例如:与首簇相关的信息,和示出后续簇的链接关系的信息。
这里,所述文件更新设备还可以包括:关闭指令接收单元,用于接收关闭指令,该关闭指令与已经由新数据记录单元执行数据记录的单个文件相关,所述进展信息可以包括用于识别是否已经接收到关闭指令的信息,所述更新单元可以仅仅在已经记录了与所述文件相关的更新信息并且已经接收到与所述文件相关的关闭指令之后,才对每个文件进行位置信息的更新,如果所述预定条件得以满足,那么只有当基于所述文件的进展信息判断出:已经记录了与所述文件相关的更新信息并且已经接收到与所述文件相关的关闭指令时,所述重新更新单元才可以对每个文件进行位置信息的更新。
只在已经接收到关闭指令之后,才对第一记录介质上的位置信息执行更新和重新更新,从而示出更新后的文件数据的位置。因此,根据此结构,不对与仍未被关闭的文件相关的第一记录介质上的位置信息进行更新。换言之,因为在多个文件的更新结束之前(即,文件处于关闭前的状态)的第一记录介质上的位置信息示出更新前的文件数据的位置,所以位置信息的更新实际上是通过关闭来确定的。因此,当多个相关的文件形成单个组时,在对该组中所有文件的时间进行同步的同时,可以通过在所有文件的更新已经完成时关闭每个文件,更新第一记录介质上的位置信息。
这里,第一记录介质可以存储(i)FAT信息,用于对于第一记录介质上的多个簇中的每一个,示出在该簇中是否存储有构成任一文件的内容的数据,并且示出存储构成同一文件的内容的数据的簇是链接的,以及(ii)目录信息,用于对于第一记录介质上的每个文件,示出存储构成该文件的内容的数据的第一簇,所述位置信息可以由所述目录信息和除未使用的簇的信息外的所有FAT信息形成,未使用的簇的FAT信息是示出了该簇没有存储构成任何文件内容的数据的FAT信息,与经历了由所述新记录单元执行的数据记录的每个文件相关的更新信息可以由如下信息形成:(i)连续(consecutive)关系信息,表明存储构成更新后的文件的内容数据的簇是链接的,以及(ii)条目信息,用于示出存储构成更新后的文件的内容数据的第一簇,对于已经记录了更新信息的每个文件,所述更新单元可以(i)基于所述文件的连续关系信息来更新所述FAT信息,以便表明用于存储构成更新后的文件的内容的数据的簇是链接的,以及(ii)根据所述文件的条目信息来更新与所述文件相关的目录信息,以便表明用于存储构成更新后文件的内容的数据的第一簇,并且所述重新更新单元可以通过基于所述连续关系信息更新所述FAT信息并且基于所述条目信息来更新目录信息,从而来更新所述位置信息。
当对已经依照一文件系统记录的第一记录介质上的文件进行更新期间发生异常的中断时,此结构使得在不需要专门将恢复所需的信息记录到第一记录介质上的情况下,能够执行恢复,其中所述文件系统使用FAT信息和目录信息来表述文件存储位置。连续关系信息等同于如实施例所示的主FAT的部分或者子FAT的部分。
这里,所述文件更新设备还可以包括:区域释放单元,对于已经记录了更新信息的每个文件,该区域释放单元用于把空闲空间信息记录到所述第二记录介质上,该空闲空间信息表明存储有构成更新前的文件内容的数据的簇没有存储构成当前任何文件内容的数据,所述更新单元可以对FAT信息进行更新,从而使所述空闲空间信息在未使用的簇信息中得以反映,并且所述重新更新单元也可以对FAT信息进行更新,以使所述空闲空间信息在未使用的簇信息中得以反映。
即使为响应文件的更新而对FAT信息进行更新以示出更新后的文件的数据的存储位置以及存储更新前的文件数据的簇现在没被使用的处理在中途时被异常地终止,此结构也能够对FAT信息进行更新,然后示出这种未使用的簇。
这里,所述文件更新设备还可以包括:FAT信息复制单元,用于在更新任何文件之前,把第一记录介质上的FAT信息作为工作FAT信息复制到所述第二记录介质上的工作FAT区域中;以及关闭指令接收单元,用于接收与单个文件相关的关闭指令,该单个文件已经由所述新数据记录单元执行了数据记录,所述进展信息可以包括用于识别是否已经接收到关闭指令的信息,所述新数据记录单元可以基于如下信息把更新后的文件的内容数据记录到没有存储构成其他更新后的文件的内容的数据的簇中:(i)工作FAT信息以及(ii)已使用区域的信息或者连续关系信息,所述更新信息记录单元可以使所述工作FAT信息反映(i)已经接收到关闭指令的每个文件的连续关系信息,以及(ii)空闲空间信息,该空闲空间信息示出存储有构成更新前文件的内容数据的簇没有存储构成当前任何文件的内容数据,所述更新单元可以基于所述工作FAT信息来更新FAT信息,并且如果所述预定条件得以满足,那么所述重新更新单元可以(i)当基于所述文件的进展信息判断出已经接收到与该文件相关的关闭指令时,使工作FAT信息为每个文件反映出与该文件相关的连续关系信息以及空闲空间信息,(ii)基于所述工作FAT信息更新FAT信息,并且(iii)基于其进展信息表明已经接收到关闭指令的每个文件的条目信息来对目录信息进行更新。
对于关闭之前的已更新文件,此结构允许将存储有构成文件内容的数据的第一记录介质上的簇作为不可用(即,非空)簇来进行管理,并且将构成更新后的文件的内容的新数据只记录到空簇中。只有在文件被关闭以后,才使第一记录介质上的FAT信息和目录信息反映更新后的文件数据。
这里,所述文件更新设备还可以包括:更新指令接收单元,用于当每次重新更新时,接收更新指令,该更新指令表明如果第一记录介质存储有构成更新后的文件的内容的数据,所述位置信息将会被更新,从而示出所述数据的存储位置,如果所述预定条件得以满足并且已经接收到更新指令,那么当基于所述文件的进展信息判断出已经记录了与该文件相关的更新信息时,所述重新更新单元便可以使工作FAT信息在用于更新FAT信息之前,为每个文件反映与该文件相关的连续关系信息和空闲空间信息。
依照此结构,即使文件还未被关闭,一旦对所述文件更新设备进行指示,倘若更新后的文件数据被记录在了第一记录介质上,就能够对第一记录介质上的FAT信息进行更新。
这里,第一记录介质可以包括相互独立的认证区域和常规(normal)区域,预定存取限制只适用于两个区域中的认证区域,所述位置信息可以由如下信息形成:(i)第一位置信息,示出了所述认证区域中构成所述认证区域中所有文件内容的数据的存储位置,以及(ii)第二位置信息,示出了在常规区域内构成常规区域中的所有文件内容的数据的存储位置,所述进展信息可以由以下信息形成:(i)第一进展信息,为所述认证区域中的每个文件示出了在更新文件时已经执行了哪些更新步骤,以及(ii)第二进展信息,为常规区域中的每个文件示出了在更新文件时已经执行了哪些更新步骤,所述新数据记录单元可以(i)对于作为更新目标的认证区域中的每个文件,执行把构成更新后的文件的内容的数据记录到认证区域中的操作,以及(ii)对于作为更新目标的常规区域中的每个文件,执行把构成更新后的文件的内容的数据记录到常规区域中的操作,所述更新信息可以由如下信息形成:(i)第一更新信息,对于已经由所述新数据记录单元记录了数据的认证区域中的每个文件,示出了在认证区域内构成更新后的文件的内容的数据的存储位置,以及(ii)第二更新信息,对于已经由所述新数据记录单元记录了数据的常规区域中的每个文件,示出了在常规区域内构成更新后的文件的内容的数据的存储位置,并且所述更新单元可以(i)对于已经记录了第一更新信息的认证区域中的每个文件,基于该文件的第一更新信息来更新第一位置信息,以及(ii)对于已经记录了第二更新信息的常规区域中的每个文件,基于该文件的第二更新信息来更新第二位置信息。
针对具有认证区域和常规区域的记录介质,此结构能够在任一区域中分别恢复文件。
这里,所述第一记录介质可以是闪存,而所述第二记录介质可以是存取速度比第一记录介质更快的存储器。
换言之,就是把恢复闪存中的文件所需的更新信息记录在存取速度快于该闪存的存储器中。在一定程度上,当记录部分数据时,此结构能够防止由于闪存存取速度慢的特点而引起的文件更新延迟,这往往在把更新信息记录在闪存中时发生。
这里,所述第二记录介质可以是RAM,并且由与第一记录介质的电源不同的电源来供电。
依照此结构,即使第一记录介质上的文件的更新在中途时因为对第一记录介质的供电被切断而被中断,RAM的供电也不会被切断。这里,通常能够使用相对高速的RAM,只要存在供电,该RAM就可以保存所记录的内容。由于RAM中的更新信息不会在正常情况下丢失,即使当切断对第一记录介质的供电时也一样,所以在恢复对第一记录介质的供电之后,能够使用该更新信息来恢复文件。
依照本发明的文件更新方法执行多个更新步骤来更新第一记录介质上的文件,该第一记录介质存储有示出构成文件内容的数据第一记录介质上的存储位置的位置信息,并且所述文件更新方法包括如下步骤:把示出在更新所述文件时已经执行了哪些更新步骤的进展信息记录到第二记录介质上;把构成更新后的文件的内容的数据记录到第一记录介质上,并且记录到与构成更新前的文件的内容的数据不同的存储位置中;把示出构成更新后文件的内容的数据在第一记录介质上的存储位置的更新信息记录到所述第二记录介质上;并且在已经记录了该更新信息之后,基于该更新信息更新所述位置信息,从而示出构成更新后的文件的内容的数据的存储位置。
依照此结构,即使因为例如第一记录介质的存取装置遭受掉电、或者第一记录介质被从文件更新设备移除而中断了使用多个步骤对第一记录介质上的位置信息进行的更新,并由此导致位置信息和数据存储位置之间的不一致,那么,例如如果使用第二记录介质上的信息,就能够再次更新所述位置信息,从而结束所述更新。此外,因为用于处理在异常时间时的不一致的进展信息和更新信息没有被保存在第一记录介质上,所以第一记录介质的区域可以被有效地用于记录文件。
发明详述
现在将参考附图说明依照本发明实施例的信息处理设备。
实施例1
设备以及数据结构
图5示出了依照本发明的实施例1的信息处理设备的结构。
信息处理设备300是例如:个人计算机(PC)或者个人数字助理(PDA)。设备300包括存储卡槽等,该存储卡槽用于安装信息记录介质360(例如存储卡等),并且当介质360被安装到其中时,可以用于对介质360上的文件进行编辑并且更新。
如图5所示,信息处理设备300包括CPU 310、主电源320、非易失性存储器330、RAM340以及辅助电源350。虽然没有描述,设备300还包括用于接收经由按键、按钮等进行的用户操作的输入接口,用于向用户呈现信息的监视器等等。
这里,主电源320是可充电的电池,并且向信息记录介质360和信息处理设备300的各个元件供电。假设主电源320不能长时间供电,例如:连续使用信息处理设备300好几个小时或好几天,将会使电池彻底耗光。
非易失性存储器330存储在CPU 310控制下运行的计算机程序。具体来讲,存储器330存储文件处理程序331以及应用程序和系统程序等等(没有描述),其中所述文件处理程序331用于文件更新和恢复相关处理。这里,“恢复”指的是再次更新与文件相关的信息(“重新更新”),以便解决在更新处理期间由断电等原因引起的文件更新未完成而导致的异常。
RAM 340接收来自于辅助电源350的连续供电,并且持续地保存数据。即使例如切断从主电源320向信息处理设备300的元件的供电,RAM 340也能继续保存数据。辅助电源350是能够在一给定时期内连续供电的原电池。
RAM 340存储用于示出数据在信息记录介质360上的物理存储位置的主FAT 341,用于示出文件更新后新记录的数据的物理存储位置的子FAT 342,以及为作为更新目标的每个文件而存在的打开文件信息343。主FAT 341和子FAT 342以簇为单位示出了这些存储位置。打开文件信息343包括条目信息344、处理状态345和恢复信息346。
这里,条目信息344包括诸如作为更新目标的文件的文件名、存储所述文件数据(即,构成文件内容的数据)的第一簇的簇号(在下文称为“起始簇号”)、以及该数据的大小之类的信息。
处理状态345示出了更新处理过程中到达的阶段。换言之,它是示出了在形成更新过程的多个步骤中,哪些步骤已经被执行的信息。处理状态345随着文件更新处理中每个步骤的完成而顺序地改变,并且在恢复处理期间被涉及,所述恢复处理是为解决当文件更新在中途被中断时出现的文件管理信息不一致的问题而执行的。
恢复信息346是用于把示出文件在信息记录介质360上的位置的信息返回到更新前的状态所必需的信息,并且由诸如第一簇的簇号(即,起始簇号)的信息组成,所述第一簇用于存储构成更新前的文件的内容的数据。
信息记录介质360上记录的数据是使用FAT文件系统来进行管理的。介质360包括:主引导记录(MBR)和分区表361,该主引导记录(MBR)和分区表361存储用于将记录区域作为多个分区管理的信息;分区引导扇区362,用于存储单个分区的管理信息;FAT 363和364,用于示出单个簇当前是否存储了文件数据,以及簇之间的链接关系,其中簇是由预定数目的扇区形成的扇区组;根目录条目365,用于存储与根目录下已有的文件和/或目录相关的信息;以及数据区域366,用于存储文件数据。FAT 363和364是复制的表,并且通常假定它们具有相同的内容。簇之间的所述“链接关系”指的是存储构成同一文件的内容的数据的簇之间存在的连接。
信息记录介质360上的文件数据的存储位置由存储在根目录条目365或者数据区域366中的目录条目和FAT 363或者364指定。
操作
现在将描述信息处理设备300的操作。
在信息处理设备300上一次运行时,如果在完成文件更新之前发生由断电等原因引起的异常终止,那么当例如响应用户按下供电按钮而从主电源320供电时,设备300开始恢复处理(如下所述),该恢复处理是通过CPU 310执行文件处理程序331来执行的;也就是说,在设备300被引导时执行。然后,在继续进行到对单个文件执行更新处理(如下所述)之前,设备300对安装在它里面的信息记录介质360执行设置处理(setup processing)。
设置处理包括:把信息记录介质360上的FAT 363复制到RAM340中的主FAT 341中,清除子FAT 342(即,把所有FAT条目设置为值“0”),并且使所有的打开文件信息无效。
图6示出了在设置处理完成之后的信息记录介质360的示例性内容,以及RAM 340的示例性内容。
在图6中,信息记录介质360上的目录条目之一涉及其文件名为“FILE1.TXT”的42KB文件。构成此文件的内容的数据从簇号“3”开始存储。图6中数据区域中的阴影部分示出了存储构成所述文件内容的数据的簇。
图6中所示的FAT代表FAT1以及FAT2,两者都具有相同的内容。在给出的例子中第3、第4和第5簇是链接的。通过参考所述FAT以及目录条目,可以揭示的是,构成文件“FILE1.TXT”的内容的数据依照第3、第4和第5簇的顺序被记录在这三个簇中。与第5簇对应的FAT条目存储“0xFFF”,其表明构成该文件的内容的数据以该簇结束(即,链接的尾簇)。与后续簇(即,第6、第7簇等)对应的FAT条目存储“0”,表明文件数据没有被分配给这些簇。
通过所述设置处理,RAM 340中存储有与FAT 363相同的主FAT,已经清除了所有FAT条目(即,设置为“0”)的子FAT,以及已经无效的打开文件信息。无效的打开文件信息的存储表明不存在有效的打开文件信息。
以下描述涉及在信息处理设备300中通过执行部分文件处理程序331实现的更新处理。
图7是由信息处理设备300执行的更新处理的概况的流程图。
对于作为更新目标的单个文件,独立地执行更新处理,并且假设可以同时对多个文件执行更新处理。当在执行应用程序或者系统程序期间请求更新文件时,文件处理程序331执行更新处理。
如果文件的更新没有完全地完成,那么为了能够使信息记录介质360上的文件返回至更新前的状态,信息处理设备300首先执行如下操作:打开处理,其主要涉及复制已有的数据(步骤S11);更新后的数据记录处理,用于响应文件的更新,把更新后的数据记录到信息记录介质360上,直到接收到关闭指令(步骤S12,S13);在接收到关闭指令时的关闭处理,其表示更新已经完成(步骤S14);以及管理信息记录处理,它把用于管理更新后的文件数据的存储位置的信息记录到信息记录介质360上(步骤S15)。关闭指令是通过应用程序或者系统程序响应于用户操作或者基于预定条件判断而给出的。
现在将给出对步骤S11、S12、S14以及S15的处理的详细说明,同时涉及通过这些处理导致的数据经历的变化。
图8是由信息处理设备300执行的打开处理的流程图。
通过CPU 310执行文件处理程序331,信息处理设备300从信息记录介质360获得与文件相关的目录条目,该文件是应用程序或者系统程序更新的目标,并且把获得的目录条目写入RAM 340中的打开文件信息的条目信息,该条目信息与该目标文件相关(步骤S501)。设备300把打开文件信息中的处理状态设置为“0”。
然后,信息处理设备300参照在步骤S501获得的目录条目中的文件大小,在RAM 340中的主FAT 341和子FAT 342中搜索空闲空间区域,该空闲空间区域使得能够在数据区域366中容纳此种大小的文件(步骤S502)。如果这种空闲空间区域不存在,那么设备300在监视器上显示错误消息并且结束更新处理。在步骤S502的搜索过程中,设备300判断在主和子FAT中具有FAT条目“0”的簇是空闲空间区域。
在步骤S502之后,信息处理设备300参考在步骤S501获得的目录条目中的起始簇号,把所述起始簇号作为恢复信息记录在打开文件信息中(步骤S503),并且把与最先搜索到的空闲空间对应的簇号作为起始簇号记录在打开文件信息的条目信息中(步骤S504)。
然后,在步骤S505,信息处理设备300把链接写入与空簇(即,搜索到的空闲空间区域)对应的子FAT 342中的FAT条目中,并且把构成目标文件的内容的数据复制到信息记录介质360上的对应簇中,该对应簇是空闲空间区域(步骤S506)。设备300重复所述步骤S505和S506的处理,直到所有的目标文件数据都已经以簇大小为单位被复制(步骤S507)。当所有目标文件数据已经被复制时,设备300把与目标文件相关的打开文件信息中的处理状态设置为“1”(步骤S508)。
因为除了把与作为更新目标的文件相关的信息读入RAM并且进行文件存取设置以外,信息处理设备300还把构成目标文件的内容的数据复制到信息记录介质360上的空闲空间区域中,并且对复制的数据进行更新处理,所以如果更新处理在中途时被中断,那么此打开处理能够把文件返回至打开时的状态(即,恢复文件)。
图9举例说明了打开处理完成之后的数据状态。
在图9的例子中,信息记录介质360上作为更新目标的文件是FILE1.TXT。构成这个文件更新前的内容的数据被记录在第3、第4和第5簇中,因此与这些簇对应的所述FAT(即,FAT 1&2)以及主FAT中的FAT条目具有不同于“0”的值。
假设文件大小为42KB,在步骤S502对空闲空间区域的搜索导致搜索到第6、第7和第8簇。这里,信息记录介质360的容量为64MB,而单个簇的大小是16KB。
图9描述了通过步骤S503把目录条目中的起始簇号“3”记录到恢复信息中之后的状态,通过步骤S504,条目信息的起始簇号已经被设置为“6”,链接已经被存储在与子FAT 342中的第6、第7和第8簇对应的FAT条目中,并且通过步骤S505至S507,已经把构成更新前的文件的内容的数据复制到第6至第8簇中,并且通过步骤S508,处理状态已经被设置为“1”。
图10是由信息处理设备300执行的更新后的数据记录处理的流程图。
信息处理设备300根据主FAT 341和子FAT 342确定写入位置(步骤S701),并且把构成更新后的文件的内容的数据记录到信息记录介质360上已确定的写入位置中(步骤S702)。在重写数据的情况下,设备300参考子FAT 342来确定重写位置,以及在增加数据的情况下,设备300从主FAT 341和子FAT 342检索空闲空间区域,并且把检索到的空闲空间区域确定为写入位置。所述更新后的文件内容是通过应用程序或者系统程序响应于用户操作或者基于预定计算来确定的。
在步骤S702记录数据之后,如果所述FAT 342要求通过所述记录改变的话,那么信息处理设备300更新子FAT 342中的链接,以便对应于存储所述记录数据的簇(步骤S703),如果所述文件大小已经改变,那么更新包括在与目标文件相关的打开文件信息中的条目信息中的文件大小(步骤S704),然后把打开文件信息中的处理状态设置为“2”(步骤S705)。
图11举例说明了更新后的数据记录处理完成之后的数据状态。
图11中的描述的状态遵循图9中描述的状态。图11中的数据区域示出了第7簇的内容的更新(重写),其存储“FILE1.TXT”文件数据,并且示出了添加的第9簇,用于存储“FILE1.TXT”文件的数据(步骤S701,S702)。
图11还示出了已经被更新了的子FAT中的FAT条目(步骤S703),以及作为链接簇的第6至第9簇。此外,条目信息中的文件大小已经从42KB更新为60KB(步骤S704),并且处理状态已经被设置为“2”(步骤S705)。
图12是由信息处理设备300执行的关闭处理的流程图。
信息处理设备300把与更新目标文件相关的打开文件信息中的处理状态设置为“3”(步骤S901),然后在条目信息中获得起始簇号(步骤S902)。
在步骤S902之后,信息处理设备300从子FAT 342获得从所获得的起始簇号开始的链接,并且把获得的链接复制到主FAT 341中(步骤S903)。当已经复制了所有链接时,设备300释放子FAT 342中的这些链接(步骤S904)。链接是通过改变FAT条目的内容来释放的,所述FAT条目与一个簇相对应,包含其它簇的簇号或者值“0xFFF”至“0”。
在完成步骤S904之后,信息处理设备300把与目标文件相关的打开文件信息中的处理状态设置为“4”(步骤S905)。然后,设备300参考示出了更新前的起始簇号(即,存储更新前文件数据的起始簇的编号)的恢复信息,并且设备300获得此起始簇号(步骤S906),从所述主FAT释放从与此起始簇对应的FAT条目开始的链接(步骤S907),并且把处理状态设置为“5”(步骤S908)。
图13举例说明了步骤S903的关闭处理完成之后的数据状态。图13中描述的状态遵循图11中描述的状态。
图13示出了从条目信息获得的簇号“6”,将其作为起始簇号(步骤S902),以及与第7、第8和第9簇对应的FAT条目的内容,第7、第8和第9簇是从与已经被复制到主FAT的子FAT中的第6簇对应的FAT条目开始链接的(步骤S903)。
图14示出了当同时处理多个作为更新目标的文件时正被更新的主FAT。
只有在已经关闭文件以后,才通过关闭处理中的步骤S903,将与构成所述文件的数据相关的子FAT中的链接信息复制到主FAT中。在图14的例子中,在已经接收了关闭指令后,将示出了存储更新后的文件“FILE1.TXT”的内容数据的簇的链接信息从子FAT复制到主FAT。然而,在还没有接收到关闭指令时(即,仍然在被更新),示出了存储更新后的文件“FILE2.TXT”的内容数据的簇的链接信息被示出只存在于所述子FAT中,并且没有从子FAT复制到主FAT。因为通过管理信息记录处理(描述见后)而被复制到信息记录介质360上的FAT中的是主FAT,所以只把示出构成已关闭的更新后的文件内容的数据的存储位置的信息记录到介质360上的FAT中。
图15举例说明了关闭处理的步骤S905完成之后的数据状态。图15中描述的状态遵循图13中描述的状态。
在图15中,已经通过步骤S904清除了图13中的子FAT中的链接信息,该链接信息示出存储更新后的“FILE1.TXT”文件数据的簇,并且已经通过步骤S905把处理状态设置为“4”。
图16举例说明了关闭处理完成之后的数据状态。图16中描述的状态遵循图15中描述的状态。
在图16中,已经通过步骤S907清除了在图15中的主FAT中的链接信息,该链接信息示出存储更新后的“FILE1.TXT”文件数据的簇,并且已经通过步骤S908把处理状态设置为“5”。
图17是由信息处理设备300执行的管理信息记录处理的流程图。
信息处理设备300通过把RAM 340中的主FAT的内容复制到FAT中来更新信息记录介质360上的FAT(步骤S1301)。这里,其中复制有主FAT的“FAT”具体指的是FAT1和2两者。
在更新所述FAT之后,信息处理设备300执行写操作,以便RAM340中与已关闭文件相关的打开文件信息中的条目信息被反映在信息记录介质360上的对应文件的目录条目中(步骤S1302)。然后,在结束管理信息记录处理之前,设备300清除打开文件信息,并且把处理状态设置为“0”(步骤S1303)。
图18举例说明了管理信息记录处理完成之后的数据状态。图18中描述的状态遵循图16中描述的状态。
在图18中,已经通过步骤S1301清除了在图16中的FAT中示出的用于存储更新前的“FILE1.TXT”文件数据(即,存储在与第3至第5簇对应的FAT条目中的值)的簇的链接信息。此外,所述目录条目已经被更新,并且与“FILE1.TXT”相关的打开文件信息已经被清除。
以下描述涉及恢复处理,该恢复处理是在信息处理设备300中通过执行部分文件处理程序331来实现的。
例如,当文件更新在中途由于主电源的供电被切断而中断时,在恢复来自主电源的供电之后,可执行恢复处理。例如可以在对电池(主电源)再次充电后、由用户打开电源时重新供电。
图19是由信息处理设备300执行的恢复处理的流程图。
在恢复处理开始时,信息处理设备300首先顺序地关注保存在RAM 340中的每条打开文件信息,并且判断其中包括的处理状态(步骤S1501)。如果判断处理状态为“3”,那么设备300在子FAT中搜索从与所关注的文件打开信息的条目信息中的起始簇号对应的FAT条目开始的链接,并且继续搜索,直到包含“0xFFF”的FAT条目。在把处理状态设置为“4”(步骤S1503)之前,设备300把这些FAT条目的内容复制到与主FAT中的簇对应的FAT条目中,并且清除子FAT中的这些FAT条目(步骤S1502)。
因为处理状态“3”表明在从子FAT向主FAT复制期间或者释放子FAT中的链接期间更新处理停止,所以执行步骤S1502的恢复处理。
在更新处理在释放子FAT中的链接的中途被中断时,由于与条目信息中的起始簇号对应的子FAT中的链接信息已经被设置为“0”,所以设备300在步骤S1502在主FAT中搜索从与所关注的打开文件信息的条目信息中起始簇号对应的FAT条目开始的链接,并且继续搜索,直到包含“0xFFF”的FAT条目,并且清除与主FAT中相同簇对应的子FAT中的FAT条目的内容。
如果已经执行了步骤S1503,或者在步骤S1501判断处理状态为“4”,那么信息处理设备300获得构成更新前的文件内容的数据的起始簇号,该起始簇号在所关注的打开文件信息的恢复信息中示出,并且清除主FAT中链接到与此起始簇号对应的FAT条目的所有FAT条目,以便释放这些链接(步骤S1504),并且把处理状态设置为“5”(步骤S1505)。
在信息处理设备300首先把该链接信息(即,其链接接下来会被释放的FAT条目的簇号)以及包含该链接信息的FAT条目的簇号存储在恢复信息中之后,通过清除FAT条目中的该链接信息来释放主FAT中的链接。即使在释放这些链接期间更新处理停止,也能够正确地释放主FAT中的链接。通过执行发布给CPU310的单个命令,可以把簇号和FAT条目的链接信息记录在恢复信息中。
考虑释放与簇号3、4和5对应的FAT条目的链接的例子。在把“3、4”存储在恢复信息中后,信息处理设备300把主FAT中与簇号3对应的FAT条目设置为“0”(即,示出了空闲空间区域)。然后,在把恢复信息改变为“4、5”之后,信息处理设备300把与FAT中的簇号4对应的FAT条目设置为“0”。最后,在把恢复信息设置为“5、0xFFF”之后,设备300把与FAT中的簇号5对应的FAT条目设置为“0”,并把恢复信息设置为“0”。通过依照此步骤释放主FAT中的链接,即使在释放链接期间更新处理中断,也能够在下次执行恢复处理时继续执行释放处理。
在完成步骤S1505之后,或者如果在步骤S1501判断出所关注的打开文件信息中的处理状态是“0”、“1”、“2”或“5”中的一个,那么信息处理设备300判断是否所有打开文件信息都已被关注(步骤S1506)。如果仍存在没有关注过的打开文件信息,那么设备300关注此打开文件信息并且返回到步骤S1501以便重复所述处理。当已经关注了所有打开文件信息时,设备300把RAM 340中主FAT的内容复制到信息记录介质360上的FAT1和2中(步骤S1507)。
在步骤S1507之后,信息处理设备300从所有打开文件信息中检索那些处理状态是“5”的信息,并且执行写操作,以便所有被检索到的打开文件信息中的条目信息被反映在信息记录介质360上相应文件的目录条目中(步骤S1508)。然后,设备300清除所有打开文件信息并且结束该恢复处理。
通过上述恢复处理,其更新处理在接收到关闭指令之后中断的那些文件被恢复为更新后的状态,而其更新处理在接收到关闭指令之前中断的那些文件则被返回到打开时的状态(即,更新前的状态)。此外,信息处理设备300关注单个的打开文件信息,并且依照它们各自的处理状态来分别地恢复文件。因此,即使同时更新多个文件,也能够根据各自在更新处理中已达到的相应阶段来适当地恢复文件;也就是说,能够进行重新更新,以便消除与用于管理文件的FAT和目录条目相关的不一致问题。
实施例2
设备以及数据结构
图20示出了依照本发明的实施例2的信息处理设备的结构。
依照实施例2的信息处理设备1300具有与实施例1中描述的信息处理设备300基本上相同的结构。设备1300与设备300的不同在于:它在不使用子FAT的情况下执行文件的更新和恢复。在图20中,使用相同的参考数字示出了设备1300中与设备300中的元件相同的元件。
当在信息处理设备1300中重复地更新信息记录介质360上的文件时,最新的更新状态被反映在介质360上的FAT和目录条目中,即使还没有给出关闭所述文件的指令。由此,如果更新处理因例如被切断来自主电源的供电而中断,那么只要所述数据早已被更新并且已经把示出此数据更新的存储位置的信息存储在RAM中,就可以通过重新更新FAT等等来恢复所述文件,从而使它们返回到上一次更新时的状态。
如图20所示,信息处理设备1300包括CPU 310、主电源320、非易失存储器1330、RAM 1340以及辅助电源350。虽然没有描述,设备1300还包括用于接收经由按键、按钮等产生的用户操作的输入接口,以及用于向用户呈现信息的监视器等等。
非易失存储器1330存储在CPU 310控制下运行的计算机程序。具体来讲,存储器1330存储在文件更新/恢复相关处理中使用的文件处理程序1331。采用程序1331,能够在关闭文件之前进行更新。存储器1330还存储应用程序和系统程序等(没有描述)。
RAM 1340接收来自于辅助电源350(电池等)的连续供电,并且持续地保存数据。即使例如从主电源320向信息处理设备1300的元件的供电被切断,RAM 1340也能继续保存数据。RAM 1340存储在更新信息记录介质360上的FAT中使用的主FAT 1341,以及存储为作为更新目标的每个文件而存在的打开文件信息1343。主FAT 1341示出了数据在介质360上的存储位置;也就是说,不同数据段存储在哪些簇中。
打开文件信息1343包括条目信息1344、处理状态1345以及恢复信息1346。这里,条目信息1344与条目信息344相同。处理状态1345示出了更新处理中达到的阶段。换言之,它是示出了在形成更新处理的多个步骤中哪些已经被执行的信息。处理状态1345随着文件更新过程中每个步骤的完成而顺序地改变,并且在恢复处理期间被参考,所述恢复处理是为解决在文件更新的中途被中断时出现文件管理信息不一致的问题而执行的。
恢复信息1346是恢复文件所必需的,并且由存储构成更新后的文件的内容的数据的第一簇的簇号(在下文称为“新的链接起始簇号”)、以及存储构成更新前的文件的内容的数据的第一簇的簇号(在下文称为“更新起始簇号”)组成。
操作
现在将描述信息处理设备1300的操作。
在信息处理设备1300上一次运行时,如果在文件更新完成之前发生由断电等原因引起的异常终止,那么当例如响应用户按下供电按钮而从主电源320供电时,设备1300开始恢复处理(如下所述),所述恢复处理通过CPU 310执行文件处理程序1331来执行;也就是说,当设备1300被引导时执行。然后,在执行对单个文件的更新处理(如下所述)之前,设备1300对安装在其上的信息记录介质360执行设置处理。
设置处理包括把信息记录介质360上的FAT 363复制到RAM1340中的主FAT 1341中,并且使所有打开文件信息的内容无效。
通过设置处理,RAM 1340存储和FAT 363相同的主FAT,以及已经无效的打开文件信息。存储有无效的打开文件信息表明不存在有效的打开文件信息。
以下描述涉及在信息处理设备1300中通过执行部分文件处理程序1331实现的更新处理。
图21是由信息处理设备1300执行的更新处理的概况的流程图。
更新处理针对作为更新目标的单个文件独立地执行,并且被假设为可以同时针对多个文件执行。当在执行应用程序或者系统程序期间请求更新文件时,文件处理程序1331执行更新处理。
信息处理设备1300首先执行打开处理(步骤S21)、文件更新处理,直到接收到关闭指令为止(步骤S22、S23),以及执行管理信息记录处理(步骤S24),其中所述文件更新处理包括响应文件的更新、把更新后的数据记录到信息记录介质360上,所述管理信息记录处理用于把管理更新后文件数据的存储位置的信息记录到信息记录介质360上。
以下是在参考实施例1中给出的文件“FILE1.TXT”的更新例子的同时,对步骤S21,S22,S24的处理进行的详细说明。
图22是由信息处理设备1300执行的打开处理的流程图。
信息处理设备1300首先从信息记录介质360获得与作为更新目标的文件相关的目录条目,并且把获得的目录条目作为与目标文件相关的打开文件信息的条目信息记录在RAM 1340中(步骤S1601)。换言之,在对应的打开文件信息的条目信息中设置了文件名FILE1.TXT、更新起始簇号以及文件大小。
然后,设备1300把与目标文件相关的打开文件信息中的处理状态设置为“11”(步骤S1602),并且结束所述打开处理。
图23是由信息处理设备1300执行的文件更新处理的流程图。
信息处理设备1300参考作为条目信息记录在打开文件信息中的文件大小,并且在RAM 1340中的主FAT 1341中搜索空闲空间区域,所述空闲空间区域使得能够在数据区域366中容纳此种大小的文件(步骤S1701)。在步骤S1701的搜索中,设备1300判断主FAT 1341中具有FAT条目“0”的簇是空闲空间区域。
在步骤S1701之后,信息处理设备1300把所述文件的新链接起始簇号(即,与首先检索到的空闲空间区域对应的簇号)以及更新起始簇号记录到打开文件信息的恢复信息中(步骤S1702),并且把处理状态设置为“12”(步骤S1703)。在步骤S1702,新链接起始簇号还被设置为条目信息中的起始簇号。
在步骤S1703之后,信息处理设备1300把构成更新后的文件内容的数据写入信息记录介质360的数据区域366中的空闲空间区域(步骤S1704),更新所述主FAT以便示出被写入数据的簇的链接(步骤S1705),更新条目信息中的文件大小,以便示出写入数据的文件大小(步骤S1706),并且把处理状态设置为“13”(步骤S1707)。
在步骤S1707之后,信息处理设备1300释放在RAM 1340中主FAT中的、示出存储更新前的文件数据的簇的链接(步骤S1708),把处理状态设置为“14”(步骤S1709),并且结束该文件更新处理。
图24举例说明了文件更新处理的步骤S1703完成之后的数据状态。
如图24中给出的信息记录介质360的示例性内容所示,介质360上的构成目标文件的数据被存储在数据区域366的第3、第4和第5簇中。此文件的文件名是“FILE1.TXT”,文件大小是42KB。
如图24所示,在与文件“FILE1.TXT”相关的打开文件信息的恢复信息中已经设置了存储更新前的文件数据的首簇的簇号“3”,并将其作为更新起始簇号,并且计划来存储更新后的文件数据的首簇的簇号“6”(即,在步骤S1701作为空闲空间被搜索到的簇)已经被设置为新链接起始簇号。所述处理状态已经被设置为“12”。
图25举例说明了文件更新处理的步骤S1707完成之后的数据状态。图25中描述的状态遵循图24中描述的状态。
如图25所示,所述更新后的文件数据已经被记录在信息记录介质360上的第6至第9簇中,并且响应于此,通过步骤S1705在主FAT中第6至第9FAT条目中设置示出第6至第9簇是链接的值。另外,条目信息中的文件大小已经通过步骤S1706被更新为60KB,并且处理状态已经通过步骤S1707被设置为“13”。
图26举例说明了文件更新处理完成之后的数据状态。图26中描述的状态遵循图25中描述的状态。
如图26所示,通过步骤S1708已经从主FAT释放了与存储更新前的文件数据的簇相关的链接;也就是说,已经清除了主FAT中与第3、第4和第5簇对应的FAT条目的内容。所述处理状态已经被设置为“14”。
在首先将FAT条目中的此链接信息和簇号存储到恢复信息之后,信息处理设备1300通过清除FAT条目中的链接信息来释放主FAT中的链接。即使在释放这些链接期间更新处理停止,也能够正确地释放主FAT中的链接。考虑释放与簇号3、4和5对应的FAT条目的链接的例子。在把“3、4”存储在恢复信息中后,设备1300把信息记录介质360上FAT中的与簇号3对应的FAT条目设置为“0”(即,示出了空闲空间区域)。然后,在把恢复信息改变为“4、5”之后,设备1300把FAT中与簇号4对应的FAT条目设置为“0”。最后,在把恢复信息设置为“5,0xFFF”之后,设备1300把FAT中与簇号5对应的FAT条目设置为“0”,并且把所述恢复信息设置为“0”。通过依照此步骤释放主FAT中的链接,即使在释放链接期间更新处理中断,也能够在下次进行恢复处理时继续执行释放处理。通过依照此步骤释放链接,图26中所示的恢复信息被设置为“0”。
图27是由信息处理设备1300执行的管理信息记录处理的流程图。
如图27所示,信息处理设备1300首先通过把主FAT复制到FAT中来更新信息记录介质360上的FAT(步骤S2101)。这里,其中复制有主FAT的“FAT”具体指的是FAT1和2两者。在FAT的更新之后,设备1300执行写操作,以便把RAM 1340中与所述文件相关的打开文件信息中包括的条目信息反映在介质360上对应文件的目录信息中(步骤S2102)。然后,在结束所述处理之前,设备1300清除打开文件信息,并且把处理状态设置为“0”(步骤S2103)。
以下描述涉及在信息处理设备1300中通过执行部分文件处理程序1331实现的恢复处理。
图28是由信息处理设备1300执行的恢复处理的流程图。
当开始执行恢复处理时,信息处理设备1300首先顺序地关注保存在RAM 1340中的每条打开文件信息,并且判断其中包括的处理状态(步骤S2201)。根据此判断结果,设备1300执行步骤S2202、S2204或者S2206。
如果在步骤S2201判断所述处理状态是“12”,那么,信息处理设备1300参考所关注的打开文件信息的恢复信息中的新链接起始簇号,并且在把处理状态设置为“11”(步骤S2203)之前,释放从主FAT1341中与新链接起始簇号对应的FAT条目开始的链接(步骤S2202)。
这里,在首先更新恢复信息中的新链接起始簇号、并且把FAT条目的链接信息和簇号存储在恢复信息中之后,信息处理设备1300把主FAT中的FAT条目中的链接信息重写为“0”。即使在释放这些链接期间更新处理停止,也能够在步骤S2202正确地重新开始释放主FAT中的链接。考虑释放与簇号3、4和5对应的FAT条目的链接的例子。把“3、4”存储在恢复信息中后,设备1300把主FAT中与簇号3对应的FAT条目设置为“0”(即,示出了空闲空间区域)。然后,在把恢复信息改变为“4、5”之后,设备1300把FAT中与簇号4对应的FAT条目设置为“0”。最后,在把所述恢复信息设置为“5,0xFFF”之后,设备1300把FAT中与簇号5对应的FAT条目设置为“0”,并且把所述恢复信息设置为“0”。通过依照此步骤释放主FAT中的链接,即使在释放链接期间更新处理中断,也能够在下次进行恢复处理时继续执行释放处理。
如果在步骤S2101判断出处理状态是“13”,那么,设备1300参考所关注的打开文件信息的恢复信息中的更新起始簇号,并且在把处理状态设置为“14”(步骤S2205)之前,释放从主FAT 1341中与更新起始簇号对应的FAT条目开始的链接(步骤S2204)。如同在步骤S2202,在首先更新恢复信息中的更新起始簇号、并且把FAT条目的链接信息和簇号存储在恢复信息中之后,设备1300把主FAT中FAT条目中的链接信息重写为“0”,以此来释放主FAT中的链接。
在完成步骤S2203或者S2205之后,或者如果在步骤S2201判断出所关注的打开文件信息中的处理状态是“0”、“11”或者“14”中的一个,那么信息处理设备1300判断所有打开文件信息是否都已经被关注过(步骤S2206)。如果仍存在没有被关注的打开文件信息,那么设备1300关注此打开文件信息并且返回到步骤S2201以便重复所述处理。当已经关注了所有打开文件信息时,设备1300把RAM1340中主FAT的内容复制到信息记录介质360上的FAT1和2中(步骤S2207)。
在步骤S2207之后,信息处理设备1300从所有打开文件信息中检索那些处理状态是“14”的信息,并且执行写操作,以便所有被检索到的打开文件信息中的条目信息被反映在信息记录介质360上相应文件的目录条目中(步骤S2208)。然后,设备1300清除所有打开文件信息并且结束恢复处理。
通过上述恢复处理,如果已经把更新后的文件数据记录到信息记录介质360上、并且把与数据存储位置相关的信息保存在RAM 1340中,那么就把文件恢复为更新后的状态;也就是说,在这些存储位置已经表述在主FAT和条目信息中之后。在所有其他情况下,恢复的文件被返回到更新前的状态。此外,信息处理设备1300关注单个的打开文件信息,并且依照它们各自的处理状态来分别地恢复文件。因此,即使同时更新多个文件,也能够依照各个文件在更新处理过程中已达到的相应阶段来适当地恢复文件;也就是说,能够进行重新更新,以便消除与用于管理文件的FAT和目录条目相关的不一致性问题。
实施例3
以下描述涉及这样一种信息处理设备(在下文称为“组合信息处理设备”),该设备以文件大小为单位,有选择地运用上面实施例1和2中的信息处理设备300和1300进行的文件更新和恢复功能的组合。
所述组合信息处理设备包括信息处理设备300和1300的元件的组合。
采用所述组合信息处理设备,假设在单个文件被作为更新目标时(即,被打开),由反映用户操作等情况的应用程序或者系统程序来指定两种处理类型中之一来进行处理。在第一类型中,在目标文件被关闭之前,更新是无效的,如实施例1所述。在第二类型中,甚至在目标文件被关闭之前,更新也是有效的,如实施例2所述样。依照所选择的类型,所述设备实现图7或者图21中所示的更新处理。应该注意的是,在图21的文件更新处理的步骤S1701中(参见图23),更新处理已经被稍微修改了。在实施例3中,搜索空闲空间区域包括子FAT以及主FAT。
以下描述涉及在所述组合信息处理设备中通过执行文件更新程序实现的恢复处理。
图29是由所述组合信息处理设备执行的恢复处理的流程图。
在开始执行恢复处理时,所述组合信息处理设备首先顺序地关注保存在RAM中的每条打开文件信息,并且判断其中包括的处理状态(步骤S2401)。根据此判断结果,所述设备执行步骤S2402、S2403、S2404、S2405或者S2406。
如果在步骤S2401判断出所述处理状态是“3”,那么所述组合信息处理设备在子FAT中搜索链接,所述链接从与所述起始簇号对应的FAT条目开始,所述起始簇号位于所关注的打开文件信息的条目信息中,并且继续搜索,直到FAT条目包含“0xFFF”为止,并且把这些FAT条目的内容复制到主FAT中与同一簇对应的FAT条目中。然后,所述设备清除子FAT中这些FAT条目的内容,并且把所述处理状态设置为“4”(步骤S2402)。
如果在步骤S2401判断处理状态是“4”,或者如果步骤S2402已经被执行,那么所述组合信息处理设备获得更新前的文件数据的起始簇号,该起始簇号在所关注的打开文件信息的恢复信息中示出,清除从主FAT中的与获得的起始簇号对应的FAT条目开始链接的所有FAT条目的值以便释放链接,并且把处理状态设置为“5”(步骤S2403)。
如果在步骤S2401判断处理状态是“12”,那么所述组合信息处理设备参考所关注的打开文件信息的恢复信息中的新链接起始簇号,释放从主FAT中与新链接起始簇号对应的FAT条目开始的链接,,并且把处理状态设置为“11”(步骤S2404)。
如果在步骤S2401判断处理状态是“13”,那么所述组合信息处理设备参考所关注的打开文件信息的恢复信息中的更新起始簇号,释放从主FAT中与更新起始簇号对应的FAT条目开始的链接,并且把处理状态设置为“14”(步骤S2405)。
在完成步骤S2403,S2404或者S2405之后,或者如果在步骤S2401判断出被关注的打开文件信息中的处理状态是“0”、“1”、“2”、“5”、“11”或者“14”中的一个,那么所述组合信息处理设备判断所有打开文件信息是否已经被关注过(步骤S2406)。如果仍存在没有被关注过的打开文件信息,那么设备关注此打开文件信息并且返回到步骤S2401以便重复所述处理。当已经关注了所有打开文件信息时,设备把RAM中的主FAT的内容复制到信息记录介质360上的FAT1和2中(步骤S2407)。
在步骤S2407之后,所述组合信息处理设备从所有打开文件信息中检索那些处理状态是“5”或“14”的信息,并且执行写操作,以便使所有被检索到的打开文件信息中的条目信息被反映在信息记录介质360上相应文件的目录条目中(步骤S2408)。然后,所述设备清除所有打开文件信息并且结束所述恢复处理。
实施例4
设备以及数据结构
图30示出了依照本发明的实施例4的信息处理设备的结构。
依照实施例4的信息处理设备2300例如是:PDA、移动电话等。设备2300包括用于安装信息记录介质2370(诸如SD存储卡这样的半导体存储卡等)的槽,并且具有编辑和更新已安装在其上的介质2370上的文件的功能。这里,所述SD(安全数字)存储卡是指由松下(Matsushita Electric Industrial股份有限公司)、SanDisk(SanDisk公司)和东芝(Toshiba公司)联合开发和规定的技术。
安装在信息处理设备2300上的信息记录介质2370包括介质标识符(介质ID)2371,并且具有认证区域2372和常规(normal)区域2376。介质2370还具有控制单元2780,用于进行涉及与外部设备之间进行的相互认证以及数据接收的控制。所述认证区域是用于存储文件等的区域,在进行与设备2300之间的相互认证时需要该区域。预定存取限制适用于此区域。用于非认证目的的常规区域是用于存储由图像、音频以及其他数据构成的文件的区域。预定存取限制通常不适用于此区域。
使用FAT文件系统来管理记录在认证区域2372和常规区域2376两者中的数据。认证区域2372包括FAT 2373、根目录条目2374和数据区域2375。常规区域2376包括FAT 2377、根目录条目2378和数据区域2379。
如图30所示,信息处理设备2300包括CPU 310、主电源320、非易失性存储器2330、RAM 2340以及辅助电源350。虽然没有描述,设备2300还包括用于接收由按键、按钮等产生的用户操作的输入接口,以及用于向用户呈现信息的监视器等。在图30中,使用相同的参考数字示出了与信息处理设备300中的元件相同的设备2300的元件。这里省略了对这些元件的详细说明。
非易失性存储器2330是存储在CPU 310控制下运行的计算机程序的存储器。具体来讲,存储器2330存储介质ID获取程序2331、认证文件处理程序2332以及常规文件处理程序2333,其中所述介质ID获取程序2331用于从信息记录介质2370获得对介质为惟一的介质ID,所述认证文件处理程序2332用于实现与更新和恢复认证区域中的文件相关的处理,所述常规文件处理程序2333用于实现与更新和恢复常规区域中的文件相关的处理。存储器2330还存储应用程序和系统程序等(没有描述)。
RAM 2340是用于接收来自于辅助电源350的(电池等)连续供电的存储器,并且持续地保存数据。即使例如:从主电源320向信息处理设备2300的元件供电被切断,RAM 2340也能继续保存数据。
RAM 2340存储:介质信息2341,在介质信息2341中,通过介质ID获取程序2331从信息记录介质2370获得的介质ID被设置为一个值;认证主FAT 2342,它示出了认证区域中数据的物理存储位置;认证子FAT 2343,示出了通过文件更新而最新记录在认证区域中的数据的物理存储位置;常规主FAT 2345,用于更新常规区域中的数据;认证打开文件信息2344,它为认证区域中作为更新目标的每个文件而存在;以及常规打开文件信息2346,它为常规区域中作为更新目标的每个文件而存在。FAT 2342、2343以及2345示出了以簇为单位的信息记录介质2370上的数据的存储位置。
认证打开文件信息2344具有与实施例1中描述的打开文件信息343相同的数据格式,并且包括条目信息2361、处理状态2362以及恢复信息2363。常规打开文件信息2346具有与实施例2中描述的打开文件信息1343相同的数据格式,并且包括条目信息2364、处理状态2365以及恢复信息2366。
操作
现在将描述信息处理设备2300的操作。
在信息处理设备2300上一次运行时,如果在文件更新完成之前发生由断电等引起的异常终止,那么当例如响应用户按下供电按钮而从主电源320供电时,设备2300开始恢复处理(如下所述),所述恢复处理通过CPU 310执行各种步骤来执行;也就是说,当设备2300被引导时执行。然后,在进行到对单个文件执行更新处理之前,设备2300进行设置处理,把信息记录介质2370安装到其中。
所述设置处理包括当把信息记录介质2370安装到其中时,信息处理设备2300首先使用CPU 310执行介质ID获取程序2331。通过执行程序2331,设备2300依照预定的认证过程在设备2300和介质2370的控制单元2780之间进行相互认证。如果认证成功(即,如果满足合法的信息处理设备与合法的信息记录介质之间的关系),那么设备2300经由控制单元2780获得介质2370上的介质ID 2371,并且把获得的介质ID 2371作为介质信息2341存储在RAM 2340中。接下来,设备2300把介质2370上的FAT 2373复制到RAM 2340中的认证主FAT 2342中,把介质2370上的FAT 2377复制到RAM 2340中的常规主FAT 2345中,并且使所有认证打开文件信息和常规打开文件信息的内容无效。
当认证区域中的文件被作为更新目标时,所述更新处理包括信息处理设备2300执行与实施例1中描述的更新处理相同的处理。这是通过使用认证主FAT 2342、认证子FAT 2343和认证打开文件信息2344,执行认证文件处理程序2332来实现的(参见图7、8、10、12、17)。这里,认证主FAT 2342对应于主FAT 341,认证子FAT 2343对应于子FAT 342,而认证打开文件信息2344对应于打开文件信息343。
当常规区域中的文件被作为更新目标时,所述更新处理包括信息处理设备2300执行与实施例2中描述的更新处理相同的处理。这是通过使用常规主FAT 2345和常规打开文件信息2346,执行常规文件处理程序2333来实现的(参见图21-23,27)。这里,常规主FAT 2345对应于主FAT 1341,而常规打开文件信息2346对应于打开文件信息1343。
以下描述涉及在信息处理设备2300中执行的恢复处理。
当文件更新到中途,由于例如切断从主电源供电等原因而中断时,在恢复来自主电源的供电之后,执行恢复处理。例如可以在对电池(主电源)再次充电后、由用户打开电源时恢复供电。
图31是由信息处理设备2300执行的恢复处理的流程图。
当开始执行恢复处理时,信息处理设备2300首先经由控制单元2780从信息记录介质2370读取介质ID(步骤S3101),并且在步骤S3102对读取的介质ID和存储在RAM 2340中的介质信息2341进行比较,介质信息2341是在上次设备2300工作时(即,在断电等之前)通过执行设置处理而被存储在RAM 2340中的。如果读取的介质ID与介质信息2341不匹配,那么这表明当前安装的信息记录介质不同于上次进行文件更新所采用的信息记录介质。在这种情况下,所述恢复处理被结束,而不进行文件恢复。
如果在步骤S3102判断出读取的介质ID与介质信息2341匹配,那么信息处理设备2300执行部分认证文件处理程序2332,以便对认证区域中的文件执行恢复处理(步骤S3103)。在步骤S3103进行的恢复处理与实施例1中描述的恢复处理相同(参见图19)。
在步骤S3103之后,信息处理设备2300执行部分常规文件处理程序2333,以便对常规区域中的文件执行恢复处理(步骤S3104)。在步骤S3 104进行的恢复处理与实施例2中描述的恢复处理相同(参见图28)。
变形
以下描述涉及实施例1至4中所示的信息处理设备执行的恢复处理的变形。
图32是恢复选择处理的流程图,其是恢复处理的变形。
实施例1至4中所示的恢复处理可以由图32中所示的恢复选择处理替代。
依照本变形的信息处理设备(在下文称为“变形信息处理设备”)判断RAM中的每个打开文件信息的处理状态是否是“0”(步骤S3201至S3203)。如果所有打开文件信息的处理状态都为“0”,那么这表明更新处理在中途一直没有中断。在该情况下,所述设备结束所述处理。
如果存在一条其处理状态不是“0”的打开文件信息,那么所述变形信息处理设备在监视器上显示消息,以表明存在用于恢复的信息(步骤S3204)。然后,所述设备在监视器上显示消息,用于使用户选择是执行恢复还是卸载恢复信息,并且接收用户选择(步骤S3205)。这里,所述恢复信息参考RAM中的主FAT和打开文件信息,并且如果存在子FAT,还参考该子FAT。
如果接收到的选择表明执行恢复(步骤S3206=是),那么所述变形信息处理设备执行上述实施例中所示的恢复处理(步骤S3207),并结束所述恢复选择处理。如果所接收到的选择表明丢弃所述恢复信息(步骤S3206=否),那么所述变形信息处理设备清除恢复信息(步骤S3208),并结束所述恢复选择处理。
由于这种恢复选择处理允许用户选择是否执行恢复,所以当发生以下情况时,用户能够停止执行恢复处理,例如:恢复时的信息记录介质不同于更新时的信息记录介质,或者在被重新安装到原始信息处理设备之前,更新时的信息记录介质已经被不同于最初执行更新处理的信息处理设备重写。换言之,在这些情况下,恢复处理不能有效执行。
补充
虽然已经基于如上实施例描述了依照本发明的文件更新设备,但是本发明当然不局限于这些实施例。以下描述涉及上述实施例的变形。
(1)在实施例1给出的例子中,即使已经完成文件的更新,在接收到关闭指令之前,也无法执行对信息记录介质上的FAT和目录条目的更新,从而示出更新后的文件数据的位置。然而,只要RAM中的子FAT信息和打开文件信息示出了更新后的文件数据的位置,在接收到关闭指令之前,作为更新处理的一部分,信息记录介质上的FAT和目录条目就可以被更新,以便示出更新后文件数据的位置。并且即使在接收到关闭指令之前更新处理被中断,那么作为恢复处理的一部分,用户也可以选择是否更新信息记录介质上的FAT和目录条目,并且可以响应于用户的选择来进行恢复。
(2)实施例1中所示的主电源320不局限于可充电的电池,它可以被构造成把从家庭墙装插座获得的电源提供给信息处理设备300和信息记录介质360中的元件。此外,如果能够独立于主电源320接收供电,那么辅助电源350不局限于是原电池。
(3)虽然上述实施例中所示的文件更新和恢复方法涉及使用FAT文件系统,但是所述文件系统不局限于FAT文件系统。例如对于FAT32文件系统等,能够使用相同的文件更新和恢复方法。此外,信息记录介质的存储容量不局限于64MB,单个簇的大小也不局限于16KB。此外,虽然FAT条目值“0”用于示出未使用的簇,但是这可以由不同于“0”的数值来表明。同样,虽然把“0xFFF”用于示出链接的终止,这也可以由不同于“0xFFF”的数值表明。
(4)在上述实施例中,恢复信息(即,恢复文件所需的信息)被保存在RAM中,该RAM由辅助电源持续地供电。然而,只要在切断从主电源供电时保存的恢复信息不会丢失,所述恢复信息可以保存在其他类型的存储器中(例如,非易失性存储器等)。
所述信息记录介质可以是闪存。具体来讲,如果所述信息记录介质是闪存,并且存储恢复信息的存储器是存取速度比闪存快的存储器,那么当更新闪存上的文件时,能够极大地减少记录仅对恢复有用的信息所需的时间。
(5)在实施例2中,通过从文件的首部开始重写来执行更新(参见图23)。然而,即使当文件中的任意位置被重写时,或者当把数据添加到文件时,也可以执行相同的过程。
此外,在实施例2中,获得用于写入新数据的空闲空间区域并且把新数据写入此空闲空间区域。然而,如果旧数据被破坏也无关紧要的话,只要已经开始文件更新处理,就可以把新数据直接写到旧数据上,而不必获得空闲空间区域。
(6)在实施例4中,所述信息处理设备使用从信息记录介质获得的介质ID来判断恢复时安装的介质是否与更新时安装的介质相同。然而,本发明不局限于使用对单个信息记录介质为惟一的介质ID。所述设备可以使用存储在介质指定位置中的散列值等来判断介质是否相同。
(7)在实施例1至4以及变形中所描述的由信息处理设备执行的处理步骤(即,图7流程图中示出的那些处理等等)还可以经由各种通信信道等等来散布或者分配,或者通过把将被计算机等设备执行的计算机步骤记录到记录介质上来运行。此记录介质可以是IC卡、光盘、软盘、ROM等等。被散布/分配的计算机步骤可以被安装在例如计算机等设备上以供使用,并且通过计算机等设备执行计算机步骤可以进行诸如实施例1至4以及变形中所示的更新、恢复和恢复选择处理的过程。