JP4086600B2 - ロールバック可能fatファイルシステム及びプログラム - Google Patents

ロールバック可能fatファイルシステム及びプログラム Download PDF

Info

Publication number
JP4086600B2
JP4086600B2 JP2002263857A JP2002263857A JP4086600B2 JP 4086600 B2 JP4086600 B2 JP 4086600B2 JP 2002263857 A JP2002263857 A JP 2002263857A JP 2002263857 A JP2002263857 A JP 2002263857A JP 4086600 B2 JP4086600 B2 JP 4086600B2
Authority
JP
Japan
Prior art keywords
cluster
file
fat
contents
update
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.)
Expired - Fee Related
Application number
JP2002263857A
Other languages
English (en)
Other versions
JP2004102660A (ja
Inventor
一貴 中川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC System Technologies Ltd
Original Assignee
NEC System Technologies Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC System Technologies Ltd filed Critical NEC System Technologies Ltd
Priority to JP2002263857A priority Critical patent/JP4086600B2/ja
Publication of JP2004102660A publication Critical patent/JP2004102660A/ja
Application granted granted Critical
Publication of JP4086600B2 publication Critical patent/JP4086600B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、FAT(File Allocation Table)ファイルシステムに関し、特に、瞬断リセット時にロールバックを行う技術に関する。
【0002】
【従来の技術】
近年、携帯電話機などのモバイル機器は、その機能拡大に伴い、大容量の記憶域が必要になってきており、フラッシュメモリもファイル領域として扱われるようになってきている。また、ファイルシステムには、他の機器との相互運用性が高く一般に普及しているFATファイルシステムが用いられることが多い。ここで、従来のFATファイルシステムについて説明しておく。
【0003】
図12は、新規ファイル作成時の動作を説明するための図である。不揮発メモリには、FATエリアと、ルートディレクトリエントリ(RDE)と、ファイル領域とが設けられている。FATエリアには、FAT(ファイルアロケーションテーブル)が格納されており、FATにはクラスタをチェイン付けするチェイン情報が格納されている。RDEには、ノード情報テーブルが格納されており、ノード情報テーブルには、ファイル領域に格納されている各ファイルのファイル情報(ファイル名、属性、先頭クラスタ番号、サイズなど)が格納されている。ファイル領域には、ファイルが格納されている。
【0004】
図12を参照すると、新規ファイルの作成は、以下のようにして行われる。
【0005】
(1)ファイルオープン時、新規作成するファイルのファイル情報(ファイル名や属性)を、RDE中のノード情報テーブルに書き込む。
【0006】
(2)ファイル書き込み時、FATエリア中のFATに基づいて、ファイルサイズに応じた数の空きクラスタを検索する。図12の例は、ファイルサイズが4クラスタ分で、空きクラスタとして第15番目〜第18番目のクラスタが検索された場合を示している。
(3)FATのチェイン情報を更新する。
(4)ファイル領域中の空きクラスタ(第15番目〜第18番目のクラスタ)にデータを書き込む。
【0007】
(5)ファイルクローズ時、新規作成ファイルのファイル情報(サイズや先頭クラスタ番号)をRDE中のノード情報テーブルに書き込む。
【0008】
次に、図13を参照して既存ファイルに対して再作成(トランケートオープン)を行う場合の動作を説明する。
【0009】
(1)ファイルオープン時、ノード情報テーブルに格納されている対象ファイルのファイル情報の内のサイズを「0」に変更する。図13の例は、対象ファイルを先頭クラスタ番号が「0」のファイルとしている。
(2)FAT上の、対象ファイルのチェイン情報をクリアする。
【0010】
(3)ファイル書き込み時、FATよりファイルサイズ分の空きクラスタを検索する。図13の例は、ファイルサイズが4クラスタ分であり、空きクラスタとして第20番目〜第23番目のクラスタが検索されたことを示している。
(4)FATのチェイン情報を更新する。
(5)空きクラスタ(第20番目〜第23番目のクラスタ)にデータを書き込む。
【0011】
(6)ファイルクローズ時、ファイル情報(サイズや先頭クラスタ番号)をRDE中のノード情報テーブルに書き込む。
【0012】
次に、図14を参照して既存ファイルに対して上書き更新を行う場合の動作を説明する。
【0013】
(1)ファイルオープン時、FATエリア中のFATを参照し、対象ファイルのチェイン情報を取得する。
【0014】
(2)ファイル書き込み時、対象ファイルのクラスタを更新する。
【0015】
(3)ファイルクローズ時、ノード情報テーブルにファイル情報を書き込む。
【0016】
以上が従来のFATファイルシステムについての説明である。
【0017】
ところで、モバイル機器のファイルシステムとしては高い耐障害性が求められ、ファイル更新中に瞬断リセットが発生しても、ファイルシステムの整合性だけでなく、データに矛盾を発生させないことが求められる。
【0018】
しかし、上述した従来のFATファイルシステムでは、ファイル更新中に瞬断リセットが発生すると、格納データに矛盾が発生してしまうという問題がある。例えば、図12に示した新規ファイルの作成時においては、(1)の処理後から(5)の処理前までに瞬断リセットが発生すると、中途半端なファイル状態となり、データに矛盾が発生してしまう。また、図13に示した再作成時においては、(1)の処理後から(6)の処理前までに瞬断リセットが発生すると、中途半端なファイル状態となり、データに矛盾が発生してしまう。また、図14に示した上書き更新時には、(2)の処理中から(3)の処理前までに瞬断リセットが発生すると、中途半端なファイル状態となり、データに矛盾が発生してしまう。
【0019】
ところで、壊れてしまったファイルを復元する従来の技術として、ハードディスク(不揮発メモリに対応)のドライブからセクタ情報を検出し、検出されたセクタ情報からFAT、ルートディレクトリ及びデータ情報を分析して破損したディレクトリ情報を検索し、検索器インタフェースを用いて見つけられたディレクトリを復元する技術が知られている(例えば、特許文献1参照)。
【0020】
【特許文献1】
特開2001−184247号公報
【0021】
【発明が解決しようとする課題】
しかし、特許文献1に記載されている技術は、壊れてしまったファイルに対し、手動で復元を行うものであって、ファイル更新前の状態に、FATファイルシステムを自動的にロールバックすることはできなかった。
【0022】
【発明の目的】
そこで、本発明の目的は、FATファイルシステムにおいて、ファイル更新中に瞬断リセットが発生した場合、自動的に更新前の状態にロールバックできるようにすることにある。
【0023】
【課題を解決するための手段】
本発明のロールバック可能FATファイルシステムは、FATやノード情報テーブルを更新中に瞬断リセットが発生した場合においても、更新前の状態にロールバックできるようにするため、
不揮発メモリに、FATエリア、ルートディレクトリエントリ及びファイル領域が設けられたFATファイルシステムにおいて、
ファイルオープン時、前記FATエリアに格納されているFATを主記憶装置上にコピーし、FATの更新時、前記主記憶装置上にコピーしたFATに対して更新処理を行うFAT更新手段と、
ファイルオープン時、前記ルートディレクトリエントリに格納されているノード情報テーブルを前記主記憶装置上にコピーし、ノード情報テーブルの更新時、前記主記憶装置にコピーしたノード情報テーブルに対して更新処理を行うノード情報テーブル更新手段と、
ファイルクローズ時、前記主記憶装置上のFAT及びノード情報テーブルの内容を、それぞれ前記不揮発メモリ上のFATエリア及びルートディレクトリエントリに書き戻す不揮発書き込み手段と、
ファイルの更新時、前記ファイル中の更新箇所に対応するクラスタの内容をそのままにして空きクラスタに更新後の内容を書き込む処理と、前記ファイル中の最も前の更新箇所と最も後ろの更新箇所とによって挟まれる区間の情報が格納されているクラスタの内の、前記ファイルの更新対象箇所と対応していないクラスタの内容を空きクラスタにコピーする処理とを行う空きクラスタ書き込み手段とを備え、且つ、
前記FAT更新手段が、前記ファイルの更新時、前記空きクラスタ書き込み手段が更新後の内容を書き込んだ空きクラスタ及びコピー先とした空きクラスタからなるクラスタ群を対象にして該クラスタ群を構成するクラスタのチェイン付けがファイル内容に合ったものになるように前記主記憶装置上にコピーされたFATの内容を更新する処理と、前記ファイル中の最も前の更新箇所と対応するクラスタよりも1つ前のクラスタが、前記クラスタ群中の先頭のクラスタとチェイン付けされるように前記主記憶装置上にコピーされたFATの内容を更新する処理と、前記ファイル中の最も後ろの更新箇所と対応するクラスタよりも1つ後ろのクラスタが、前記クラスタ群中の最後尾のクラスタとチェイン付けされるように前記主記憶装置上にコピーされているFATの内容を更新する処理とを行う構成を有し、
前記不揮発書き込み手段が、前記主記憶装置上のFATの内容を前記不揮発メモリ上のFATエリアに書き戻す際、最初に前記クラスタ群に関するチェイン情報をセクタ単位で書き戻し、その後、更新前のファイルの内容が格納されているクラスタに関するチェイン情報を、セクタ単位で最終チェインから先頭に向かって順番に書き戻す構成を有する。
【0026】
【作用】
FATやノード情報テーブルの更新を、FATやノード情報テーブルを主記憶装置上にコピーしてから行うので、FATやノード情報テーブルの更新時に瞬断リセットが発生しても、不揮発メモリ上のFATやノード情報テーブルは、更新前の状態であり、ファイル状態は自動的に更新前の状態にロールバックされる。
【0027】
また、ファイルのデータを不揮発メモリに書き込む場合、ファイルの更新箇所に対応するクラスタの内容をそのままにして空きクラスタに更新後の内容を書き込むので、ファイルデータを不揮発メモリに書き込んでいる時に瞬断リセットが発生しても、更新前の状態に自動的にロールバックされる。
【0028】
更に、FATの内容を不揮発メモリ上のFATエリアに書き戻す際、最初にクラスタ群(更新後の内容が格納されているクラスタ及びコピー先とされたクラスタ)に関するチェイン情報をセクタ単位で書き戻し、その後、更新前のファイルの内容が格納されているクラスタに関するチェイン情報を、セクタ単位で最終チェインから先頭に向かって順番に書き戻すようにしているので、FATを不揮発メモリに書き戻している時に瞬断リセットが発生しても、更新前の状態に自動的にロールバックされる。
【0029】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0030】
図1は、本発明に係るロールバック可能FATファイルシステムの実施例のブロック図であり、コンピュータ100と、フラッシュメモリ等の不揮発メモリ110と、主記憶装置120と、キーボード等の入力部130と、LCD等の表示部140と、記録媒体Kとから構成されている。
【0031】
不揮発メモリ110には、FATエリア111と、RDE113と、ファイル領域115とが設けられている。
【0032】
ファイル領域115は、複数のクラスタから構成されており、1つ或いは複数のファイルが格納される。
【0033】
FATエリア111には、FAT112が格納されている。FAT112には、ファイル領域115に格納されている各ファイルそれぞれのチェイン情報が格納されている。
【0034】
RDE113には、ノード情報テーブル114が格納されている。ノード情報テーブル114には、ファイル領域115に格納されている各ファイルそれぞれのファイル情報(ファイル名、属性、先頭クラスタ位置、サイズなど)が格納されている。
【0035】
コンピュータ100上には、FAT更新手段101と、ノード情報テーブル更新手段102と、空きクラスタ書き込み手段103と、不揮発書き込み手段104とが設けられている。
【0036】
FAT更新手段101は、ファイルオープン時、不揮発メモリ110上のFAT112を主記憶装置120上にコピーする機能や、ファイルの更新に伴ってFATを更新することが必要になった場合、主記憶装置120上にコピーしたFATに対して更新処理を行う機能等を有する。
【0037】
ノード情報テーブル更新手段102は、ファイルオープン時、不揮発メモリ110上のノード情報テーブル114を主記憶装置120上にコピーする機能や、ファイルの更新に伴ってノード情報テーブル114を更新することが必要になった場合、主記憶装置120上にコピーしたノード情報テーブルに対して更新処理を行う機能等を有する。
【0038】
空きクラスタ書き込み手段103は、ファイル領域115に格納されているファイルの更新時、ファイルの更新箇所に対応するクラスタの内容をそのままにして空きクラスタに更新後の内容を書き込む機能等を有する。
【0039】
不揮発書き込み手段104は、ファイルクローズ時、主記憶装置120上にコピーされているFAT、ノード情報テーブルを不揮発メモリ110に書き戻す機能を有する。
【0040】
記録媒体Kは、ディスク、半導体メモリ、その他の記録媒体であり、コンピュータ100をロールバック可能FATファイルシステムの一部として機能させるためのプログラムが記録されている。このプログラムは、コンピュータ100によって読み取られ、その動作を制御することで、コンピュータ100上に、FAT更新手段101、ノード情報テーブル更新手段102、空きクラスタ書き込み手段103、不揮発書き込み手段104を実現する。
【0041】
次に、本実施例の動作について説明する。
【0042】
先ず、新規ファイルを作成する場合の動作について説明する。
【0043】
図2,図3を参照すると、新規ファイルの作成は、以下のようにして行われる。
【0044】
(1)ファイルオープン時、FAT更新手段101が、不揮発メモリ110のFATエリア111に格納されているFAT112を主記憶装置120上にコピーし、主記憶装置120上にFAT121を生成する(図3、ステップS31)。
(2)ノード情報テーブル更新手段102が、不揮発メモリ110上のRDE113に格納されているノード情報テーブル114を、主記憶装置120上にコピーし、更に、主記憶装置120上にコピーしたノード情報テーブル122に新規ファイルのファイル情報(ファイル名や属性)を格納する(ステップS32)。
【0045】
(3)ファイル書き込み時、空きクラスタ書き込み手段103が、主記憶装置120上のFAT121を参照し、ファイル領域115に存在する空きクラスタを検索する(ステップS33)。図2の例は、空きクラスタとして第20番目から第23番目のクラスタが探し出された場合を示している。
(4)その後、空きクラスタ書き込み手段103が、空きクラスタにファイルのデータを書き込む(ステップS34)。
(5)更に、FAT更新手段101が、主記憶装置120上のFAT121のチェイン情報を更新する(ステップS35)。
【0046】
(6)ファイルクローズ時、不揮発書き込み手段104が、更新されている主記憶装置120上のFAT121を、不揮発メモリ110のFATエリア111に書き戻す(ステップS36)。
(7)不揮発書き込み手段104が、主記憶装置120上のノード情報テーブル122にファイル情報(ファイルサイズや先頭クラスタ番号)を書き込み、その後、ノード情報テーブル122を不揮発メモリ110上のRDE113に書き戻す(ステップS37)。
【0047】
以上の処理手順により、ファイルオープンからファイルクローズまでの間に瞬断リセットが発生しても、不揮発メモリ110上のFAT112およびノード情報テーブル114は更新されてないため、更新(ファイルオープン)以前の状態が復元される。
【0048】
次に、既存ファイルに対して再作成(トランケート)を行う場合の動作を、図4、図5を参照して説明する。
【0049】
(1)ファイルオープン時、FAT更新手段101が、不揮発メモリ110のFATエリア111に格納されているFAT112を主記憶装置120上にコピーし、主記憶装置120上にFAT121を生成する(ステップS51)。
(2)ノード情報テーブル更新手段102が、ノード情報テーブル114を主記憶装置120上にコピーしてノード情報テーブル122を生成すると共に、既存ファイルのノード情報を読み込み、先頭クラスタ番号を覚える(ステップS52)。
(3)ノード情報テーブル更新手段102が、主記憶装置120上のノード情報テーブル122に、新規ファイルのファイル情報(ファイルサイズ「0」やステップS52で覚えた先頭クラスタ番号)を格納する(ステップS53)。
【0050】
(4)ファイル書き込み時、空きクラスタ書き込み手段103がFAT121を参照し、ファイル領域115上に存在する空きクラスタを検索する(ステップS54)。図4の例は、空きクラスタとして第20番目〜第23番目のクラスタが検索された場合を示している。
(5)その後、空きクラスタ書き込み手段103が、空きクラスタに第15番目〜第18番目のクラスタのデータを書き込む(ステップS55)。
(6)その後、FAT更新手段101が、主記憶装置120上のFAT121のチェイン情報を更新する(ステップS56)。
【0051】
(7)ファイルクローズ時、FAT更新手段101が、主記憶装置120上のFATの、既存ファイルのチェイン情報を、未使用クラスタを示す情報「00」に書き換える(ステップS57)。
(8)不揮発書き込み手段104が、更新された主記憶装置120上のFAT121を、不揮発メモリ110のFATエリア111に書き戻す(ステップS58)。
(9)不揮発書き込み手段104が、主記憶装置120上のノード情報テーブル122を不揮発メモリ110のRDE113に書き戻す(ステップS59)。
【0052】
以上の処理手順により、ファイルオープンからファイルクローズまでの間に瞬断リセットが発生しても、FAT112およびノード情報テーブル114が更新されてないため、以前の状態が復元される。
【0053】
次に、図6〜図10を参照して既存ファイルに対して上書き更新を行う場合の動作を説明する。
【0054】
(1)ファイルオープン時、FAT更新手段101が、不揮発メモリ110上のFATエリア111に格納されているFAT112を主記憶装置120上にコピーし、主記憶装置120上にFAT121を生成する(図7、ステップS71)。
(2)ノード情報テーブル更新手段102が、不揮発メモリ110上のRDE113に格納されているノード情報テーブル114を主記憶装置120上にコピーし、主記憶装置120上にノード情報テーブル122を生成する(ステップS72)。
【0055】
ファイル書き込み時、空きクラスタ書き込み手段103により空きクラスタ書き込み処理が行われる(ステップS73)。このステップS73の空きクラスタ書き込み処理の詳細を、図8の流れ図を参照して説明する。
【0056】
今、第15番目〜第18番目のクラスタに格納されているファイルの第16番目のクラスタに対応する部分のみが更新対象部分となったとする。
【0057】
(3)空きクラスタ書き込み手段103は、第16番目のクラスタが最初の更新部分であるので(図8、ステップS81がYES)、主記憶装置120上のFAT121を参照し、ファイル領域115上の空きクラスタを1つ検索する(ステップS82)。今、例えば、第21番目のクラスタが空きクラスタとして検索されたとする。
(4)その後、空きクラスタ書き込み手段103は、空きクラスタである第21番目のクラスタに、ファイルの更新後の内容を書き込む(ステップS83)。
【0058】
その後、FAT更新手段101によるFAT更新処理が行われる(ステップS74)。このステップS74のFAT更新処理を図9の流れ図を参照して詳細に説明する。
(5)FAT更新手段101は、第16番目のクラスタが最初の更新部分であるので(図9、ステップS91がYES)、FAT121の第16番目のクラスタに対応する情報を空きクラスタを示す「00」とすると共に(ステップS92)、チェイン情報を更新する(ステップS93)。この例の場合、ステップS93では、FAT121の第15番目のクラスタに対応するチェイン情報を第21番目のクラスタ(更新後のファイル内容が格納された空きクラスタ)を示すものにし、第21番目のクラスタに対応するチェイン情報を第17番目のクラスタ(更新部分の次の内容が格納されているクラスタ)を示すものに変更する。
【0059】
ファイルクローズ時、不揮発書き込み手段104による書き戻し処理が行われる(ステップS75)。このステップS75の書き戻し処理を図10の流れ図を参照して詳細に説明する。
(6)ファイルクローズ時、不揮発書き込み手段104は、先ず、更新後のファイル内容が格納されているクラスタ及びコピーが格納されているクラスタ(図6の例では、コピーされているクラスタはなく、更新後のファイル内容が格納されている第21番目のクラスタ)のチェイン情報を不揮発メモリ110上のFAT112に書き戻し(図10、ステップS101)、その後、更新前のファイルの内容が格納されているクラスタ(図6の例では、第15番目〜第18番目のクラスタ)のチェイン情報を、セクタ単位で最終チェインから先頭に向かって順番にFAT112に書き戻す(ステップS102)。
(7)その後、不揮発書き込み手段104が、主記憶装置120上のノード情報テーブル122の内容を不揮発メモリ110上のノード情報テーブル114に書き戻す(図7、ステップS76)。
【0060】
次に、図7〜図11を参照して、ファイルの複数のクラスタに対応する部分を更新する場合の動作を説明する。なお、ファイルの更新は、ファイルの前から後ろに向かって行われるとする。
【0061】
今、例えば、第16番目〜第25番目のクラスタに格納されているファイルが更新対象ファイルであるとする。この時、不揮発メモリ110上のFAT112の内容は、図11(A)に示すものとなっている。
【0062】
先ず、図7のステップS71,S72の処理が行われ、主記憶装置120上にFAT121、ノード情報テーブル122がコピーされる。
【0063】
その後、ファイルの上書き更新で、第18番目のクラスタが更新対象となったとする。空きクラスタ書き込み手段103は、第18番目のクラスタが最初の更新部分であるので(図8、ステップS81がYES)、主記憶装置120上のFAT121を参照し、ファイル領域115上の空きクラスタを1つ検索する(ステップS82)。今、例えば、第53番目のクラスタが空きクラスタとして検索されたとする。その後、空きクラスタ書き込み手段103は、空きクラスタである第53番目のクラスタに、ファイルの更新後の内容を書き込む(ステップS83)。
【0064】
その後、FAT更新手段101によるFAT更新処理が行われる(ステップS74)。このステップS74のFAT更新処理では、次のような処理が行われる。
【0065】
FAT更新手段101は、第18番目のクラスタが最初の更新部分であるので(図9、ステップS91がYES)、FAT121の第18番目のクラスタに対応する情報を空きクラスタを示す「00」とすると共に(ステップS92)、チェイン情報を更新する(ステップS93)。この例の場合、ステップS93では、FAT121の第17番目のクラスタに対応するチェイン情報を第53番目のクラスタ(更新後のファイル内容が格納された空きクラスタ)を示すものにし、第53番目のクラスタに対応するチェイン情報を第19番目のクラスタ(ファイルの更新箇所の次の部分が格納されているクラスタ)を示すものに変更する。
【0066】
その後、第24番目のクラスタが更新対象になったとする。第24番目のクラスタが更新対象になると、空きクラスタ書き込み手段103は、第24番目のクラスタが最初の更新箇所でないので(図8、ステップS81がNO)、前回の更新箇所(第18番目のクラスタ)から今回の更新箇所(第24番目のクラスタ)までのクラスタ数よりも1つ少ない空きクラスタを、FAT121から検索する(ステップS84)。この例の場合、第54番目〜第59番目の6個のクラスタが空きクラスタとして検索されたとする。その後、空きクラスタ書き込み手段103は、第59番目のクラスタに更新後の内容を書き込むと共に、前回の更新箇所と今回の更新箇所とによって挟まれる部分を空きクラスタにコピーする(ステップS85)。この例の場合、第19番目〜第23番目のクラスタの内容が、それぞれ第54番目〜第58番目のクラスタにコピーされることになる。
【0067】
その後、FAT更新手段101によるFAT更新処理が行われる(図7、ステップS74)。FAT更新処理において、FAT更新手段101は、第24番目のクラスタが最初の更新箇所でないので(図9、ステップS91がNO)、FAT121のチェインを図11(C)に示すように更新する(ステップS94)。即ち、前回更新後の内容を格納した第53番目のクラスタに対応するチェイン情報を、今回コピーした部分の先頭部分が格納されている第54番目のクラスタを指し示すように変更し、今回コピー部分が格納されている第54番目〜第58番目のクラスタに対応するチェイン情報を、それぞれ第55番目〜第59番目のクラスタを示すものに変更し、今回更新した内容を格納した第59番目のクラスタに対応するチェイン情報を、今回更新したファイル部分の次の部分が格納されている第25番目のクラスタを指し示すものに変更する。
【0068】
その後、ファイルクローズ時に、不揮発書き込み手段104による書き戻し処理が行われる(図7、ステップS75)。書き戻し処理において、不揮発書き込み手段104は、先ず、更新後のファイル内容が格納されているクラスタ及びコピーが格納されているクラスタ(図11の例では、第53番目〜第59番目のクラスタ)のチェイン情報をセクタ単位で不揮発メモリ110上のFAT112に書き戻し(図10、ステップS101)、その後、更新前のファイルの内容が格納されているクラスタ(図11の例では、第16番目〜第25番目のクラスタ)のチェイン情報を、セクタ単位で最終チェインから先頭に向かって順番にFAT112に書き戻す(ステップS102)。従って、図11(D)に示すように、セクタ3が最初に不揮発メモリ110に書き戻され、その後、セクタ2、セクタ1の順で不揮発メモリ110に書き戻されることになる。
【0069】
これにより、セクタ3を書き込んだ後に瞬断リセットが発生した場合、あるいはセクタ3とセクタ2を書き込んだ後に瞬断リセットが発生した場合でも、FAT112は更新前の状態のままであるので、更新前の状態に自動的にロールバックされる。
【0070】
【発明の効果】
以上説明したように、本発明は、FATやノード情報テーブルの更新を、FATやノード情報テーブルを主記憶装置上にコピーしてから行うので、FATやノード情報テーブルの更新時に瞬断リセットが発生しても、不揮発メモリ上のFATやノード情報テーブルは、更新前の状態であり、ファイル状態は自動的に更新前の状態にロールバックされる。また、主記憶装置にコピーしたFAT、ノード情報テーブルを使用するので、不揮発メモリ上のFAT、ノード情報テーブルをアクセスする場合に比較して、アクセス速度を向上させることができる。
【0071】
また、本発明は、ファイルのデータを不揮発メモリに書き込む場合、ファイルの更新箇所に対応するクラスタの内容をそのままにして空きクラスタに更新後の内容を書き込むので、ファイルデータを不揮発メモリに書き込んでいる時に瞬断リセットが発生しても、更新前の状態に自動的にロールバックされる。
【0072】
更に、本発明は、FATの内容を前記不揮発メモリ上のFATエリアに書き戻す際、最初にクラスタ群(更新後の内容が格納されているクラスタ及びコピー先とされたクラスタ)に関するチェイン情報をセクタ単位で書き戻し、その後、更新前のファイルの内容が格納されているクラスタに関するチェイン情報を、セクタ単位で最終チェインから先頭に向かって順番に書き戻すようにしているので、FATを不揮発メモリに書き戻している時に瞬断リセットが発生しても、更新前の状態に自動的にロールバックされる。
【図面の簡単な説明】
【図1】本発明の実施例のブロック図である。
【図2】新規ファイル作成時の動作を説明するための図である。
【図3】新規ファイル作成時の処理例を示す流れ図である。
【図4】ファイル再作成時の動作を説明するための図である。
【図5】ファイル再作成時の処理例を示す流れ図である。
【図6】ファイル更新時の動作を説明するための図である。
【図7】ファイル更新時の処理例を示す流れ図である。
【図8】空きクラスタ書き込み手段103が行う空きクラスタ書き込み処理の詳細を示した流れ図である。
【図9】FAT更新手段101が行うFAT更新処理の詳細を示した流れ図である。
【図10】不揮発書き込み手段104が行う書き戻し処理の詳細を示した流れ図である。
【図11】ファイル更新時の動作を説明するための図である。
【図12】従来の技術における新規ファイル作成時の動作を説明するための図である。
【図13】従来の技術におけるファイル再作成時の動作を説明するための図である。
【図14】従来の技術におけるファイル更新時の動作を説明するための図である。
【符号の説明】
100…コンピュータ
101…FAT更新手段
102…ノード情報テーブル更新手段
103…空きクラスタ書き込み手段
104…不揮発書き込み手段
110…不揮発メモリ
111…FATエリア
112…FAT
113…RDE(ルートディレクトリエントリ)
114…ノード情報テーブル
115…ファイル領域
120…主記憶装置
130…入力部
140…表示部
K…記録媒体

Claims (4)

  1. 不揮発メモリに、FATエリア、ルートディレクトリエントリ及びファイル領域が設けられたFATファイルシステムにおいて、
    ファイルオープン時、前記FATエリアに格納されているFATを主記憶装置上にコピーし、FATの更新時、前記主記憶装置上にコピーしたFATに対して更新処理を行うFAT更新手段と、
    ファイルオープン時、前記ルートディレクトリエントリに格納されているノード情報テーブルを前記主記憶装置上にコピーし、ノード情報テーブルの更新時、前記主記憶装置にコピーしたノード情報テーブルに対して更新処理を行うノード情報テーブル更新手段と、
    ファイルクローズ時、前記主記憶装置上のFAT及びノード情報テーブルの内容を、それぞれ前記不揮発メモリ上のFATエリア及びルートディレクトリエントリに書き戻す不揮発書き込み手段と、
    ファイルの更新時、前記ファイル中の更新箇所に対応するクラスタの内容をそのままにして空きクラスタに更新後の内容を書き込む処理と、前記ファイル中の最も前の更新箇所と最も後ろの更新箇所とによって挟まれる区間の情報が格納されているクラスタの内の、前記ファイルの更新対象箇所と対応していないクラスタの内容を空きクラスタにコピーする処理とを行う空きクラスタ書き込み手段とを備え、且つ、
    前記FAT更新手段が、前記ファイルの更新時、前記空きクラスタ書き込み手段が更新後の内容を書き込んだ空きクラスタ及びコピー先とした空きクラスタからなるクラスタ群を対象にして該クラスタ群を構成するクラスタのチェイン付けがファイル内容に合ったものになるように前記主記憶装置上にコピーされたFATの内容を更新する処理と、前記ファイル中の最も前の更新箇所と対応するクラスタよりも1つ前のクラスタが、前記クラスタ群中の先頭のクラスタとチェイン付けされるように前記主記憶装置上にコピーされたFATの内容を更新する処理と、前記ファイル中の最も後ろの更新箇所と対応するクラスタよりも1つ後ろのクラスタが、前記クラスタ群中の最後尾のクラスタとチェイン付けされるように前記主記憶装置上にコピーされているFATの内容を更新する処理とを行う構成を有し、
    前記不揮発書き込み手段が、前記主記憶装置上のFATの内容を前記不揮発メモリ上のFATエリアに書き戻す際、最初に前記クラスタ群に関するチェイン情報をセクタ単位で書き戻し、その後、更新前のファイルの内容が格納されているクラスタに関するチェイン情報を、セクタ単位で最終チェインから先頭に向かって順番に書き戻す構成を有することを特徴とするロールバック可能FATファイルシステム。
  2. 請求項1記載のロールバック可能FATファイルシステムにおいて、
    前記不揮発メモリがフラッシュメモリであることを特徴とするロールバック可能FATファイルシステム。
  3. FATエリア、ルートディレクトリエントリ及びファイル領域が設けられた不揮発メモリを備えたコンピュータを、
    ファイルオープン時、前記FATエリアに格納されているFATを主記憶装置上にコピーし、FATの更新時、前記主記憶装置上にコピーしたFATに対して更新処理を行うFAT更新手段、
    ファイルオープン時、前記ルートディレクトリエントリに格納されているノード情報テーブルを前記主記憶装置上にコピーし、ノード情報テーブルの更新時、前記主記憶装置にコピーしたノード情報テーブルに対して更新処理を行うノード情報テーブル更新手段、
    ファイルクローズ時、前記主記憶装置上のFAT及びノード情報テーブルの内容を、それぞれ前記不揮発メモリ上のFATエリア及びルートディレクトリエントリに書き戻す不揮発書き込み手段、
    ファイルの更新時、前記ファイル中の更新箇所に対応するクラスタの内容をそのままにして空きクラスタに更新後の内容を書き込む処理と、前記ファイル中の最も前の更新箇所と最も後ろの更新箇所とによって挟まれる区間の情報が格納されているクラスタの内の、前記ファイルの更新対象箇所と対応していないクラスタの内容を空きクラスタにコピーす る処理とを行う空きクラスタ書き込み手段として機能させ、且つ、
    前記FAT更新手段が、前記ファイルの更新時、前記空きクラスタ書き込み手段が更新後の内容を書き込んだ空きクラスタ及びコピー先とした空きクラスタからなるクラスタ群を対象にして該クラスタ群を構成するクラスタのチェイン付けがファイル内容に合ったものになるように前記主記憶装置上にコピーされたFATの内容を更新する処理と、前記ファイル中の最も前の更新箇所と対応するクラスタよりも1つ前のクラスタが、前記クラスタ群中の先頭のクラスタとチェイン付けされるように前記主記憶装置上にコピーされたFATの内容を更新する処理と、前記ファイル中の最も後ろの更新箇所と対応するクラスタよりも1つ後ろのクラスタが、前記クラスタ群中の最後尾のクラスタとチェイン付けされるように前記主記憶装置上にコピーされているFATの内容を更新する処理とを行う構成を有し、
    前記不揮発書き込み手段が、前記主記憶装置上のFATの内容を前記不揮発メモリ上のFATエリアに書き戻す際、最初に前記クラスタ群に関するチェイン情報をセクタ単位で書き戻し、その後、更新前のファイルの内容が格納されているクラスタに関するチェイン情報を、セクタ単位で最終チェインから先頭に向かって順番に書き戻す構成を有することを特徴とするプログラム。
  4. 請求項3記載のプログラムにおいて、
    前記不揮発メモリがフラッシュメモリであることを特徴とするプログラム。
JP2002263857A 2002-09-10 2002-09-10 ロールバック可能fatファイルシステム及びプログラム Expired - Fee Related JP4086600B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002263857A JP4086600B2 (ja) 2002-09-10 2002-09-10 ロールバック可能fatファイルシステム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002263857A JP4086600B2 (ja) 2002-09-10 2002-09-10 ロールバック可能fatファイルシステム及びプログラム

Publications (2)

Publication Number Publication Date
JP2004102660A JP2004102660A (ja) 2004-04-02
JP4086600B2 true JP4086600B2 (ja) 2008-05-14

Family

ID=32263452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002263857A Expired - Fee Related JP4086600B2 (ja) 2002-09-10 2002-09-10 ロールバック可能fatファイルシステム及びプログラム

Country Status (1)

Country Link
JP (1) JP4086600B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134123A (ja) * 2004-11-08 2006-05-25 Ishida Co Ltd データ記録装置及びそれを備える商品処理装置
JP4811685B2 (ja) * 2009-01-29 2011-11-09 横河電機株式会社 制御用コントローラ
JP2014067112A (ja) 2012-09-25 2014-04-17 Sony Corp 情報処理装置および方法、並びにプログラム

Also Published As

Publication number Publication date
JP2004102660A (ja) 2004-04-02

Similar Documents

Publication Publication Date Title
US11853549B2 (en) Index storage in shingled magnetic recording (SMR) storage system with non-shingled region
US7363540B2 (en) Transaction-safe FAT file system improvements
US8296264B1 (en) Method and system for file-level continuous data protection
US8005797B1 (en) File-level continuous data protection with access to previous versions
US7174420B2 (en) Transaction-safe FAT file system
US7747664B2 (en) Storage system format for transaction safe file system
US7647361B2 (en) Automatically maintaining metadata in a file backup system
US7970804B2 (en) Journaling FAT file system and accessing method thereof
JPH04233639A (ja) ファイル管理システム
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
JPH10510642A (ja) コンピュータデータの記憶装置
KR20020028624A (ko) 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2007241576A (ja) 不揮発性記憶装置およびそのデータ書込み方法
CN107391669A (zh) 一种基于文件系统的多版本文件管理方法及装置
US9009114B1 (en) Version mapped incremental backups
US5337197A (en) Method and system for maintaining directory consistency in magneto-optic media
US20050262033A1 (en) Data recording apparatus, data recording method, program for implementing the method, and program recording medium
US20060015681A1 (en) Apparatus and method for writing and reading data
JP2008090378A (ja) ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体
JP4086600B2 (ja) ロールバック可能fatファイルシステム及びプログラム
TWI740429B (zh) 管理資料備份的方法及系統
JP2008269520A (ja) 記録装置及び記録方法
KR100775141B1 (ko) 저널링이 적용된 fat 파일 시스템의 구현 방법
JP2004030305A (ja) ファイルシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080219

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4086600

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120229

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120229

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130228

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130228

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140228

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees