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