KR100637787B1 - 파일 정보의 기록 처리 방법 및 프로그램 - Google Patents

파일 정보의 기록 처리 방법 및 프로그램 Download PDF

Info

Publication number
KR100637787B1
KR100637787B1 KR1020050028801A KR20050028801A KR100637787B1 KR 100637787 B1 KR100637787 B1 KR 100637787B1 KR 1020050028801 A KR1020050028801 A KR 1020050028801A KR 20050028801 A KR20050028801 A KR 20050028801A KR 100637787 B1 KR100637787 B1 KR 100637787B1
Authority
KR
South Korea
Prior art keywords
file
recording
cluster
information
instruction
Prior art date
Application number
KR1020050028801A
Other languages
English (en)
Other versions
KR20060073407A (ko
Inventor
나오키 아베
Original Assignee
후지쯔 가부시끼가이샤
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 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Publication of KR20060073407A publication Critical patent/KR20060073407A/ko
Application granted granted Critical
Publication of KR100637787B1 publication Critical patent/KR100637787B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47KSANITARY EQUIPMENT NOT OTHERWISE PROVIDED FOR; TOILET ACCESSORIES
    • A47K5/00Holders or dispensers for soap, toothpaste, or the like
    • A47K5/02Soap boxes or receptables
    • A47K5/03Soap boxes or receptables separate from wall or wash-stand
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 전원끊김 등이 발생한 경우에 데이터를 파괴할 위험성이 있는 기간을 단축시킬 수 있는 기록 처리 방법을 제공하는 것을 목적으로 한다.
본 발명의 파일 정보의 기록 처리 방법은 애플리케이션으로부터의 파일 정보의 기록 지시에 대응하여, 빈 영역 검색부(12)에 의해, 컴퓨터 기억 수단의 실데이터 영역 중 빈 영역인 클러스터를 검색하여 취득하고, 빈 영역인 클러스터가 존재할 경우에 기록부(13)에 의해, 상기 애플리케이션으로부터의 기록 지시의 대상이 되는 상기 기억 수단의 실데이터 영역내의 1이상의 클러스터에 덮어쓰기해야 하는 정보를 그 빈 영역인 클러스터에 기록하고, 기록부(13)에 의해, 기록 대상이 되는 클러스터 직전의 클러스터에 대응하는 포인터 정보를 그 기록을 행한 클러스터 중의 선두 클러스터를 가리키도록 변경하며, 해방부(15)에 의해, 빈 영역 클러스터에 기록된 정보가 덮어쓰기되기로 되어 있었던 클러스터를 해방하는 것을 특징으로 한다.

Description

파일 정보의 기록 처리 방법 및 프로그램{METHOD AND PROGRAM FOR FILE INFORMATION WRITE PROCESSING}
도 1은 파일 시스템을 포함하는 시스템 전체의 프로세스 사이의 호출 관계를 설명한 도면.
도 2는 애플리케이션으로부터의 지시가 파일 덮어쓰기였던 경우에 파일 시스템측에서 기동되는 프로세스 사이의 호출 관계를 도시한 도면.
도 3은 본 발명의 제1 실시형태의 기록 처리부의 구성을 도시한 블록도.
도 4는 제1 실시형태의 기록 처리부의 동작을 설명한 도면(1)이다.
도 5는 제1 실시형태의 기록 처리부의 동작을 설명한 도면(2)이다.
도 6은 제1 실시형태의 기록 처리부의 동작을 설명한 도면(3)이다.
도 7은 제1 실시형태의 기록 처리부의 동작을 설명한 도면(4)이다.
도 8은 제1 실시형태의 덮어쓰기 처리의 플로우 차트이다.
도 9는 애플리케이션으로부터의 지시가 파일 이동이었던 경우에 파일 시스템측에서 기동되는 프로세스 사이의 호출 관계를 도시한 도면이다.
도 10은 본 발명의 제2 실시형태의 기록 처리부의 구성을 도시한 블록도.
도 11은 제2 실시형태의 기록 처리부의 동작을 설명한 도면(1)이다.
도 12는 제2 실시형태의 기록 처리부의 동작을 설명한 도면(2)이다.
도 13은 제2 실시형태의 기록 처리부의 동작을 설명한 도면(3)이다.
도 14는 제2 실시형태의 이동 처리의 플로우 차트이다.
도 15는 본 발명의 각 실시 형태를 프로그램으로 실현하는 경우의 하드웨어 환경을 도시한 도면이다.
도 16은 프로그램의 로딩을 설명한 도면이다.
도 17은 파일 시스템의 데이터 구조를 도시한 도면이다.
도 18은 덮어쓰기 지시를 접수하기 전 파일의 상태를 도시한 도면이다.
도 19는 덮어쓰기 지시를 접수한 후 종래의 파일 시스템의 동작을 설명한 도면(1)이다.
도 20은 덮어쓰기 지시를 접수한 후 종래의 파일 시스템의 동작을 설명한 도면(2)이다.
도 21은 덮어쓰기 지시를 접수한 후 종래의 파일 시스템의 동작을 설명한 도면(3)이다.
도 22는 덮어쓰기 지시를 접수한 경우의 종래의 파일 시스템의 처리를 도시한 플로우 차트이다.
도 23은 이동 지시를 접수하기 전 파일의 상태를 도시한 도면이다.
도 24는 이동 지시를 접수한 후 종래의 파일 시스템의 동작을 설명한 도면(1)이다.
도 25는 이동 지시를 접수한 후 종래의 파일 시스템의 동작을 설명한 도면(2)이다.
도 26은 이동 지시를 접수한 후 종래의 파일 시스템의 동작을 설명한 도면(3)이다.
도 27은 이동 지시를 접수한 경우의 종래의 파일 시스템의 처리를 도시한 플로우 차트이다.
〈도면의 주요부분에 대한 부호의 설명〉
11: 기록 대상 특정부
12: 빈 영역 검색부
13: 기록부
14: 판정부
15: 해방부
16: 송신 안테나
21: 기록부
22: 엔트리 삭제부
23: 검색부
24: 엔트리 빈 영역 검색부
25: 엔트리 검색부
26: 해방부
본 발명은 파일 정보의 기록 처리 방법 및 프로그램에 관한 것이다.
컴퓨터 시스템에 있어서의 파일 액세스는 애플리케이션, 파일 시스템(미들웨어), 장치 드라이버의 3개의 프로그램의 조합에 의해 실현된다. 여기서, 애플리케이션이란, 워드 프로세서, CAD 소프트 등의 각종 애플리케이션 프로그램이다. 또한, 장치 드라이버란, 자기 디스크, 플래쉬메모리 등의 전원이 오프로 되어도 기억 내용이 유지되는(비휘발성의) 2차 기억내의 각 영역에 대하여 판독/기록을 행하는 제어 프로그램이다. 또한, 파일 시스템(미들웨어)이란, 애플리케이션과 장치 드라이버 사이에 설치되어 애플리케이션으로부터의 파일 정보의 기록 지시에 대응하는 지시를 장치 드라이버측에 출력하는 처리를 행한다.
이러한 파일 시스템에 있어서는 데이터의 기록 도중에 전원끊김 등에 의해 기록 불량이 발생했을 경우에 그 기록에 관한 파일 정보를 어떻게 복원할지 여부가 종종 문제가 된다. 그리고 그 관계로부터 특허 문헌 1 등의 다수의 문헌에 그와 같은 기록 불량에 대처하는 방법이 개시되어 있다.
[특허 문헌 1] 일본 특허 공개 평2003-169293호 공보 「데이터 기록 재생 장치, 데이터 기록 재생 방법 및 디지털 카메라」
이하에서는 컴퓨터에서의 파일 액세스시에 있어서, 애플리케이션으로부터 파일 시스템에 부여되는 기록 지시가 파일 덮어쓰기 지시인 경우와 파일 이동 지시인 경우를 설명한다.
우선, 파일 덮어쓰기 지시가 애플리케이션으로부터 미들웨어로 된 경우에 그 덮어쓰기 지시에 대응하여 미들웨어측에서 행해지는 처리에 대해서 설명한다.
도 17은 파일 시스템의 데이터 구조를 도시한 도면이다.
도 17에 도시된 바와 같이, 파일 시스템은 부트 섹터(Boot Sector), 파일 올로케이션 테이블(File Allocation Table, FAT), 실데이터 영역의 3개의 영역으로 구성된다.
여기서, 부트 섹터란, 파일 시스템의 용량, 실데이터 영역의 처리 단위인 클러스터의 크기, 실데이터 영역내의 루트 디렉토리의 위치 등의 파일 시스템 전반에 관한 정보가 기술되어 있다. 또한, 실데이터 영역 개개의 클러스터에 대응하는 FAT의 개개의 항목에는 그 클러스터가 어떤 클러스터에 이어지는지를 나타내는 링크 목적지 포인터 정보가 저장되어 있다. 이어지는 목적지가 없을 경우는 이 포인터 정보에 「End」가 설정된다. 또한, 클러스터가 해방되어 있을 경우는 이 포인터 정보에 「NULL」이 설정된다(도면에는 공란으로 되어 있음). 즉, FAT 테이블상의「NULL」 이외의 포인터치가 설정되어 있는 항목에 대응하는 클러스터내에 유지되는 데이터는 의미를 갖는 데이터이다.
또한, 실데이터 영역은 클러스터라고 불리는 (처리)단위로 구분지어 사용되고, 파일이나 디렉토리에 대한 실제의 정보가 저장된다. 또한, 도 17에서는 간단하게 하기 위해, 실데이터 영역을 16개의 클러스터로 분할하고, 이들 클러스터는 우측 위에서부터 좌측 아래로 진행하는 것에 따라서, 순차, 16 진수의 0번∼15번의 선두 어드레스, 즉, 「0 x 0」,「0 x 1」,「0 x 2」, 「0 x 3」,「0 x 4」,「0 x 5」,「0 x 6」,「0 x 7」,「0 x 8」,「0 x 9」,「0 x A」,「0 x B」, 「0 x C」,「0 x D」,「0 x E」,「0 x F」를 갖는 것으로 하고 있다.
예컨대, 도 17에서는 부트 섹터를 참조함으로써, 실데이터 영역의 루트 디렉토리가 「O x 0번」인 클러스터에 대응하는 것을 알 수 있으며, 그 「0 x 0번」의 클러스터 내용으로부터, 그 루트 디렉토리에는 디렉토리 엔트리로서, 데이터 길이(Length) = 5이고, 선두 실데이터(Data1)가 「0 x 1번」인 클러스터에 어떤 파일(file1)이 있는 것으로 표시되어 있다.
FAT 테이블에는 실데이터 영역 클러스터 사이의 관계에 대한 정보(클러스터 체인 정보)가 저장되어 있기 때문에 도 17에 있어서, FAT 테이블을 참조함으로써 「0 x 1번」의 클러스터의 데이터(Data1)의 후속 데이터로서, 「0 x 2번」의 클러스터의 데이터(Data2)가, 또한, 「0 x 2번」의 클러스터의 데이터(Data2)의 후속 데이터로서, 「0 x B 번」의 클러스터 데이터(Data3)가, 또한, 「0 x B번」의 클러스터 데이터(Data3)의 후속 데이터로서, 「0 x E번」의 클러스터 데이터(Data4)가, 또한, 「0 x E번」의 클러스터 데이터(Data4)의 후속 데이터로서, 「0 x 5번」의 클러스터 데이터(Data5)가 존재하는 것을 알 수 있으며, 또한, 그 「0 x 5번」의 클러스터에 대응하는 FAT 테이블의 항목이 「End」라고 되어 있는 것으로부터, 그「0 x 5번」의 클러스터 데이터(Data5)로 그 파일(file1) 데이터가 종료하는 것을 알 수 있다. 또한, 이와 같이, (루트 디렉토리의)디렉토리 엔트리 file1이 Data1, Data2, Data3, Data4, Data5의 순서로 이어져 구성되어 있는 것을 도 17의 하단에 도시된 바와 같이 도시하는 것으로 한다.
이러한 file1에 대하여, 그 file1을 출력한 애플리케이션으로부터의 덮어쓰 기 지시가 이루어진다. 도 18은 그 덮어쓰기 지시가 이루어지기 전의 파일 상태를 도시한 도면이다.
파일 시스템(미들웨어)은 애플리케이션으로부터의 파일 덮어쓰기 지시에 포함되는 덮어쓰기의 개시 위치와 길이에 대한 정보를 이용하여, 그 기록 대상이 되는 2차 기억(실데이터 영역)내의 클러스터(하나 또는 복수)를 특정한다. 여기서는 Data2, Data3, Data4에 대응하는 클러스터를 그와 같이 하여 특정된 클러스터로 한다.
즉, 우선, 도 19에 도시한 바와 같이, Data2에 대응하는 클러스터 내용이 덮어쓰기되고, 이어서, 도 20에 도시한 바와 같이, Data3에 대응하는 클러스터의 내용이 덮어쓰기되며, 또한, 도 21에 도시한 바와 같이, Data4에 대응하는 클러스터의 내용이 덮어쓰기된다.
도 22는 종래의 파일 덮어쓰기 처리의 플로우 차트이다.
도 22에 있어서, 우선, 단계 S301에서 덮어쓰기 대상으로서 특정된 실데이터 영역내의 하나 또는 복수의 클러스터에 대하여 데이터의 덮어쓰기(기록) 처리가 이루어지고, 계속해서 단계 S302에서 파일 정보, 예컨대, 최종 갱신 일시의 정보를 변경(갱신)한다.
그러나, 이러한 순서로 파일 덮어쓰기를 행하면, 예컨대, 도 19, 도 20, 도 21에 도시한 바와 같은 1회째, 2회째, 3회째의 기록 도중에 전원끊김 등의 기록 불량이 발생한 경우는 그 기록 도중의 클러스터, 즉, Data2, Data3 또는 Data4에 대응하는 클러스터의 데이터가 불완전한 상태로 2차 기억내에 저장되게 된다. 즉, 도 19의 Data2에 대응하는 클러스터의 덮어쓰기가 시작되고나서부터 도 21의 Data4에 대응하는 클러스터의 덮어쓰기를 완료하기 전까지의 기간은 전원끊김 등이 발생한 경우에 불완전 데이터가 2차 기억내에 남는 기간, 즉, 데이터 파괴의 위험성이 있는 기간이 된다.
다음에, 파일 이동 지시가 애플리케이션으로부터 미들웨어로 된 경우에 그 이동 지시에 대응하여 미들웨어측에서 행해지는 처리에 대해서 설명한다.
도 23은 파일이 이동되기 전의 데이터 구조를 도시한 도면이다. 도 23의 설명에서 도 17과 중복되는 부분은 기본적으로 생략된다.
도 23에 있어서, 부트 섹터(도시되지 않음)의 내용으로부터 디렉토리 dir의 디렉토리 엔트리에 대응하는 실데이터 영역 클러스터로서, 「0 x 0번」의 클러스터가 참조되고, 그 디렉토리 dir의 내용으로부터 그 디렉토리 dir의 아래로 디렉토리 dir1과 dir2가 있으며 디렉토리 dir1의 디렉토리 엔트리는 「0 x 3번」의 클러스터에 저장되어 있는 것, 또한, 디렉토리 dir2의 디렉토리 엔트리는 「0 x 4번」의 클러스터에 저장되어 있는 것을 알 수 있다.
「0 x 3번」의 클러스터를 참조하면, 디렉토리 dir1은 파일 file1을 갖고, 그 데이터 길이=3이며, 그 파일 file1의 선두 데이터가 「0 x 1번」의 클러스터에 저장되어 있는 것을 알 수 있다. 또한, 「0 x 4번」의 클러스터를 참조하면, 디렉토리 dir2는 파일 file2를 갖고, 그 데이터 길이=3이며, 그 파일 file2의 선두 데이터가「0 x 8번」의 클러스터에 저장되어 있는 것을 알 수 있다. 그리고, 전술한 바와 같이, FAT 테이블을 참조함으로써, 파일 file1은 Data1, Data2, Data3의 클러 스터가 그 Data1, Data2, Data3의 순서로 이어져 구성되는 것을 알 수 있다. 또한, 파일 file2는 Data4, Data5, Data6의 클러스터가 그 Data4, Data5, Data6의 순서로 이어져 구성되는 것을 알 수 있다.
즉, 도 23의 하반부에 도시되는 실데이터 영역과 FAT 테이블은 도 23의 상반부에 도시되는 것 같은 파일(디렉토리) 구성을 표시하고 있는 것을 알 수 있다.
이하에서는 ¥dir ¥dir1 ¥file1을 ¥dir ¥dir2 ¥file2로 이동하는 경우를 도 24∼도 26을 참조하여 설명한다. 도 23의 예로서는 이동 목적지에 ¥dir ¥ dir2 ¥file2가 이미 존재하기 때문에 이 이동 처리에서는 파일 덮어쓰기가 수반된다.
도 24는 애플리케이션으로부터의 이동 지시에 대하여 파일 시스템측에서 행해지는 처리(그 1)이다. 도 24에 있어서, 우선, 상기한 「¥dir ¥dir1 ¥file1을 ¥dir ¥dir2 ¥file2으로 이동한다」는 취지의 정보를 파일 시스템이 애플리케이션으로부터 수취하면, 그 정보에 기초하여 2차 기억내의 실데이터 영역의 이동원(the source of the movement) 파일 file1의 디렉토리 엔트리가 1차 기억에 로드된 후, 2차 기억의 실데이터 영역에서 그 이동원 파일 file1의 디렉토리 엔트리가 삭제된다.
계속해서, 도 25에 도시된 바와 같이, 이동 목적지에 미리 존재하고 있는 파일인 file2를 삭제한다. 즉, 2차 기억의 실데이터 영역에서 그 이동 목적지(the destination of the movement) 파일 file2의 디렉토리 엔트리가 삭제됨과 동시에 FAT 테이블에서 파일 file2를 구성하는 실데이터로서의 Data4, Data5, Data6에 대 응하는 항목의 포인터 정보가 클리어된다(Data4에 대응하는 항목 이후의 체인이 클리어됨).
그리고, 도 26에 도시된 바와 같이, 1차 기억에 유지되어 있는 이동원 파일 file1의 디렉토리 엔트리 정보를 참조하여, 디렉토리 dir2의 디렉토리 엔트리에 파일 file2가 이동원 파일 file1의 선두 실데이터인 Data1을 가리키도록 실데이터 영역내에 작성된다(기록됨).
도 27은 종래의 파일 이동 처리의 플로우 차트이다.
도 27에 있어서, 우선, 단계 S401에서 2차 기억내의 실데이터 영역의 이동원 파일의 디렉토리 엔트리가 1차 기억에 로드된 후, 2차 기억의 실데이터 영역에서 그 이동원 파일의 디렉토리 엔트리가 삭제된다. 그리고, 단계 S402에서 이동 목적지로 파일을 덮어쓰기할지가 판정된다. 단계 S402에서 덮어쓰기함으로써 판정된 경우는 단계 S403에 있어서, 미리 존재하고 있었던 이동 목적지 파일을 삭제하고, 단계 S404로 진행한다. 한편, 단계 S402에서 덮어쓰기하지 않는다고 판정된 경우는 즉시 단계 S404로 진행한다.
단계 S404에서는 이동원 파일의 선두 실데이터를 가리키도록 이동 목적지 디렉토리의 디렉토리 엔트리에 이동 목적지 파일 정보를 기록한다. 또한, 이상의 각 단계에서는 이동 대상을 파일로서 설명했지만, 이동 대상은 디렉토리이어도 좋다. 플로우를 파일과 디렉토리와의 양쪽에 대응시키기 위해서는 이동 대상이 디렉토리인지 여부를 판정하는 단계 S405와 이동 대상이 디렉토리인 경우에 그 이동되는 디렉토리의 모(母) 디렉토리 ". ." 에 대한 정보를 이동원에서 이동 목적지로 변경( 갱신)하는 단계 S406을 추가하면 좋다.
이상 설명한 바와 같은 순서로 파일 이동을 행하면, 도 24에 있어서 2차 기억내의 실데이터 영역의 이동원 파일 file1의 디렉토리 엔트리로부터 그 이동원 파일 file1의 정보를 삭제한 후로부터, 도 26에 있어서 그 이동원 파일 file1의 정보를 1차 기억으로부터 판독하기까지의 기간은 전원끊김 등의 기록 불량이 발생한 경우에 이동원 파일 선두 실데이터가 저장된 클러스터의 위치에 대한 정보가 없어지는 기간, 즉, 데이터 파괴의 위험성이 있는 기간이 된다.
본 발명의 과제는 전원끊김 등이 발생한 경우에 데이터를 파괴하는 위험성이 있는 기간을 단축시킬 수 있는 기록 처리 방법 및 프로그램을 제공하는 것이다.
본 발명의 제1 형태의 기록 처리 방법은 애플리케이션으로부터의 파일 정보의 기록 지시에 대응하는 지시를 장치 드라이버측에 출력하는 처리를 컴퓨터가 실행하는 기록 처리 방법에 있어서, 상기 컴퓨터 기억 수단의 실데이터 영역 중 빈 영역인 클러스터를 검색하여 취득하고, 빈 영역인 클러스터가 존재하는 경우에 상기 애플리케이션으로부터의 기록 지시의 대상이 되는 상기 기억 수단의 실데이터 영역내의 1이상의 클러스터에 덮어쓰기해야 하는 정보를 그 빈 영역인 클러스터에 기록하고, 빈 영역 클러스터에 기록된 정보에 의해 덮어쓰기되게 되어 있었던 클러스터를 해방하는 것을 특징으로 하는 파일 정보의 기록 처리 방법이다.
여기서, 검색되어 취득된 실데이터 영역 중 빈 영역 클러스터에 기록 대상으로서 특정된 클러스터에 덮어쓰기해야 하는 데이터를 기록하기 때문에 그 빈 영역 인 클러스터가 그 기록 대상의 클러스터 수만큼 확보된 경우에는 그 빈 영역 클러스터에 그 덮어쓰기해야 하는 데이터를 한번에 기록할 수 있다. 이 경우에는 그 기록 대상의 클러스터에 직접 데이터를 덮어쓰기 하는 종래예와 비교하여, 데이터 덮어쓰기 중에 전원끊김이 발생함으로써 불완전한 데이터가 실데이터 영역 중에 저장되는 리스크를 없애는 것이 가능해지며 전원끊김 등이 발생한 경우에 데이터를 파괴하는 위험성이 있는 기간을 단축할 수 있다. 덮어쓰기해야 하는 정보란, 갱신 정보 즉, Data New이다.
본 발명의 제2 형태의 기록 처리 방법은 애플리케이션으로부터의 파일 정보의 기록 지시에 대응하는 지시를 장치 드라이버측에 출력하는 처리를 컴퓨터가 실행하는 기록 처리 방법에 있어서, 이동 목적지 디렉토리의 엔트리를 검색하여 상기 기록 지시가 덮어쓰기를 수반하는 파일 이동인지 여부를 판정하기 위해 검색하고, 상기 기록 지시가 덮어쓰기를 수반하는 파일 이동인지 여부에 따라서, 이동원 파일의 디렉토리 엔트리와 파일 실데이터가 링크되어 있는 상태에서 이동 목적지 파일의 디렉토리 엔트리를 이동원 파일의 실데이터에 링크시키도록 변경 또는 작성하여 이동원 파일의 디렉토리 엔트리를 삭제하는 것을 특징으로 하는 파일 정보의 기록 처리 방법이다.
여기서 이동원 파일의 디렉토리 엔트리와 파일 실데이터가 링크되어 있는 상태에서, 이동 목적지 파일의 디렉토리 엔트리를 이동원 파일의 실데이터에 링크시키도록 변경 또는 작성하고 있기 때문에 종래예와 같이 이동원 파일 정보가 1차 기억에만 존재하는 기간이 없어지고, 전원끊김 등이 발생한 경우에 데이터를 파괴할 위험성이 있는 기간을 단축할 수 있다.
이하, 본 발명의 실시형태를 도면을 참조하면서 상세히 설명한다.
도 1은 파일 시스템을 포함하는 시스템 전체의 프로세스 사이의 호출 관계를 설명하는 도면이다. 도 1에 도시한 바와 같이, 애플리케이션으로부터의 「파일 작성」,「파일 이동」,「파일 복사」,「파일 덮어쓰기」의 각 지시에 대하여, 대응하는 프로세스가 파일 시스템(미들웨어)측에서 기동된다. 예컨대 「파일 작성」에 대해서는 디렉토리 엔트리에 그 작성되는 파일이 추가된다. 또한, 「파일 이동」에 대해서는 이동원 디렉토리와 이동 목적지 디렉토리의 디렉토리 엔트리가 변경된다. 또한, 「파일 복사」에서는 복사 목적지 디렉토리의 디렉토리 엔트리에 복사되는 파일이 추가됨과 동시에 그 복사되는 파일의 실데이터가 실데이터 영역에 작성된다. 또한, 「파일 덮어쓰기」에서는 후술하는 바와 같이 파일 덮어쓰기 대상이 되는 실데이터 영역내의 클러스터의 데이터가 빈 영역 클러스터에 기록됨과 동시에 FAT 테이블의 정보도 그 기록 처리에 대응하여 변경된다.
도 2는 애플리케이션으로부터의 지시가 파일 덮어쓰기였던 경우에 파일 시스템측에서 기동되는 프로세스 사이의 호출 관계를 도시한 도면이다. 도 2에 도시한 바와 같이, 애플리케이션으로부터(그 애플리케이션이 출력함) 파일에 덮어쓰기 지시가 파일 시스템측에 출력되면 그 파일 시스템측에서는 대응하는 「파일 덮어쓰기」의 프로세스가 호출된다.
이 「파일 덮어쓰기」의 프로세스로부터는 FAT 테이블을 판독함으로써 행해지는 「빈 영역 검색」 프로세스, FAT 테이블, 실데이터 영역의 데이터를 갱신하기 위한 각 프로세스, 즉, 이들 FAT 테이블, 실데이터 영역을 미디어(2차 기억)로부터 1차 기억에서 판독「FAT 판독」 및 「실데이터 판독」 프로세스, 1차 기억내에 서 갱신된 FAT 테이블, 실데이터 영역의 데이터를 미디어(2차 기억)에 기록하는 「FAT 기록」 및 「실데이터 기록」 프로세스의 각 프로세스가 호출된다.
도 3은 본 발명의 제1 실시 형태의 기록 처리부의 구성을 도시한 블록도이다.
도 3에 있어서, 기록 처리부는 애플리케이션과 장치 드라이버 사이에 설치되고, 상기 애플리케이션으로부터의 파일 정보의 기록 지시에 대응하는 지시를 상기 장치 드라이버측에 출력하는 처리를 행한다. 이 애플리케이션으로부터의 파일 정보의 기록 지시는 덮어쓰기의 개시 위치, 길이 및 그 길이를 갖는 데이터에 의해 구성되는 덮어쓰기해야 하는 정보로서 1차 기억내에 유지된다.
도 3에 있어서, 기록 처리부는 애플리케이션으로부터의 파일 정보의 기록 지시에 기초하여 기록 지시의 대상이 되는 클러스터(하나 또는 복수)를 특정하는 기록 대상 특정부(11)와 2차 기억의 실데이터 영역 중 빈 영역인 클러스터를 검색하여 취득하는 빈 영역 검색부(12)와 빈 영역인 클러스터가 존재할 경우에 애플리케이션으로부터의 기록 지시의 대상이 되는 상기 2차 기억의 실데이터 영역내의 1이상의 클러스터에 덮어쓰기해야 하는 정보를 그 빈 영역인 클러스터에 기록하는 기록부(13)와 기록 지시의 대상이 되는 클러스터 중에 빈 영역 클러스터에 기록된 정보가 덮어쓰기되게 되어 있었던 클러스터를 해방하는 해방부(15)와 상기 기록 지시(덮어쓰기해야 하는 정보)에 포함되는 데이터 중 빈 영역 클러스터에 기록되어 있 지 않은 부분이 있는지 여부를 판정하는 판정부(14)를 구비한다. 또한, 도 3의 각부는 예컨대, 도 15의 CPU(51)와 RAM(53)의 조합에 대응한다.
이하에, 본 실시형태의 기록 처리부의 동작에 대해서 설명한다.
우선, 애플리케이션으로부터의 파일 덮어쓰기 지시를 기록부(13)가 접수하면, 그 덮어쓰기 지시를 접수한 것을 트리거로 하여 기록 대상 특정부(11)와 빈 영역 검색부(12)가 기동된다.
기록 대상 특정부(11)에서는 그 애플리케이션으로부터의 기록 지시에 포함되는 덮어쓰기해야 하는 정보 중 덮어쓰기의 개시 위치와 길이에 대한 정보를 이용하여, 그 기록의 대상이 되는 2차 기억(실데이터 영역)내의 클러스터(하나 또는 복수)를 특정한다. 또한, 빈 영역 검색부(12)는 FAT 테이블을 판독하고(참조하여), 실데이터 영역내의 빈 영역 클러스터(사용되고 있지 않는 클러스터)를 검색하여 취득한다.
빈 영역 검색부(12)로부터 검색 결과의 정보, 예컨대, 빈 영역 클러스터의 위치를 나타내는 정보를 수취한 기록부(13)는 그 검색 결과의 정보로부터 빈 영역 클러스터가 실데이터 영역에 존재하는지 여부를 판정한다. 존재할 경우, 기록부(13)에 의해, 특정된 기록 지시의 대상이 되는 실데이터 영역내의 클러스터(하나 또는 복수)에 덮어쓰기해야 하는 정보가 검색 결과 중 빈 영역 클러스터에 기록된다. 또한, 상기 실데이터 영역의 선두 클러스터와 마지막 클러스터에는 변경되지 않은 데이터 부분이 포함되는 경우가 있지만, 그와 같은 경우는 합성부(도시되지 않음)에 의해, 그 변경되지 않는 데이터 부분과 새롭게 덮어쓰기되는 데이터 부분 과이 합성되고, 이들 클러스터에 기록해야 되는 데이터가 생성된다.
이 기록 처리 후에, 해방부(15)에 의해 빈 영역 클러스터에 기록된 정보가 덮어쓰기되게 되어 있었던 기록 지시의 대상이 되는 클러스터 중 대응하는 클러스터가 해방된다. 그리고 판정부(14)에 의해, 상기 기록 지시에 포함되는 데이터 중, 빈 영역 클러스터에 기록되어 있지 않은 부분이 있는지 여부가 판정된다. 그와 같은 부분이 기록 지시에 포함되는 데이터 중에 존재할 경우는 기록부(13)에 의해, 빈 영역 검색부(12)가 기동되어 다시 빈 영역의 검색이 행해진다. 이 검색에 있어서는 해방부(15)에 의해 해방된 클러스터 수 이상의 빈 영역을 얻을 수 있기 때문에 기록부(13)는 그 해방된 클러스터 수 이상의 빈 영역에 대해서, 기록 처리를 실행한다. 그리고 마찬가지로, 기록된 데이터가 덮어쓰기되게 되어 있었던 클러스터의 해방이 해방부(15)에 의해 행해진다.
이하에 본 실시형태의 기록 처리부가 애플리케이션으로부터의 파일 덮어쓰기 지시를 처리하는 프로세스를 도 4∼도 7을 참조하여 설명하지만, 이들 도면에 있어서는 종래 기술과의 비교를 위해, 종래 기술의 설명에서 이용한 것과 같은 파일 구성에 대하여 애플리케이션으로부터 같은 덮어쓰기 지시가 주어진 것으로 하고 있다.
즉, 종래 기술의 경우와 마찬가지로, 도 4에 있어서, 애플리케이션으로부터의 덮어쓰기 지시에 포함되는 덮어쓰기의 개시 위치와 길이와의 정보를 이용하여 기록 대상 특정부(11)에 의해, 실데이터 영역내의 덮어쓰기 대상이 되는 클러스터가 Data2, Data3, Data4에 대응하는 클러스터에 특정된 것으로 한다.
본 실시형태에 있어서는 전술한 바와 같이, 빈 영역 검색부(12)에 의해, FAT 테이블이 판독되고, 그 테이블상에서 포인터가 NULL(도면에서는 공란으로 되어 있음)인 항목에 대응하는 클러스터가 빈 영역 클러스터로 판정된다. 이 경우, 기록부(13)에 의해, 예컨대, 번지가 작은 클러스터로부터 순서대로 Data2, Data3, Data4에 대응하는 새로운 데이터(Data2 New, Data3 New, Data4 New)가 기록되어 있다.
계속하여 도 5에서는 「Data2 New」,「Data3 New」,「Data4 New」가 이 순서대로 이어지는 것을 도시함과 동시에 「Data4 New」가 「Data5」에 이어지는 것을 도시하는 정보(포인터 정보)가 「Data2 New」,「Data3 New」,「Data4 New」의 각 클러스터에 대응하는 FAT 테이블의 항목에 기록된다.
또한, 계속하여 도 6에서는 기록부(13)에 의해, 「Data1」의 클러스터에 대응하는 FAT 테이블의 항목 포인터가 「Data2 New」의 클러스터를 가리키도록 변경된다.
또한, 계속하여 도 7에서는 기록부(13)에 의해, 「Data2」,「Data3」,「Data4」의 클러스터에 대응하는 FAT 테이블 항목의 포인터가 NULL로 설정됨으로써 실데이터 영역인 「Data2」,「Data3」,「Data4」의 클러스터가 해방된다.
도 8은 제1 실시형태의 덮어쓰기 처리의 플로우 차트이다. 이 플로우는 도 3의 기록 처리부에 의해 행해진다.
도 8에 있어서, 우선, 단계 S101에서 FAT 테이블을 판독함으로써 빈 영역 검색부(12)에 의해 실데이터 영역 중 빈 영역 클러스터가 검색된다.
기록부(13)는 수취한 검색 결과로부터 빈 영역이 있는지 여부를 단계 S102에 서 판정한다. 빈 영역 클러스터가 존재하지 않은 경우는 (빈 영역)에러로서 일련의 처리를 종료한다. 한편, 빈 영역 클러스터가 (1이상)존재한 경우는 단계 S103로 진행하고, 그 단계 S103에서 기록부(13)에 의해, 덮어쓰기 대상으로서 특정된 클러스터에 덮어쓰기해야 하는 데이터가 검색 결과 빈 영역 클러스터에 기록된다. 그리고 계속하여 단계 S104에서, 단계 S103에서 기록을 행한 빈 영역 클러스터에 대응하는 FAT 테이블의 포인터 정보를 변경한다. 그리고, 단계 S105에서 덮어쓰기 대상이 된 파일의 실데이터를 저장하는 클러스터 중, 덮어쓰기 대상으로서 특정된 클러스터 직전의 클러스터에 대응하는 FAT 테이블의 포인터를 단계 S103에서 기록을 행한 클러스터 중, 선두 클러스터를 가리키도록 변경한다.
계속하여 단계 S106에서는 파일 정보, 예컨대, 최종 갱신 일시를 변경(갱신)한다. 그리고 단계 S107에서 덮어쓰기 대상으로서 특정된 클러스터에 대응하는 FAT 테이블 항목의 포인터를 NULL로 설정함으로써, 그 덮어쓰기 대상의 클러스터(영역)를 해방한다(빈 영역으로 함).
계속하여 단계 S108에서는 모든 데이터가 기록 완료하였는지, 즉, 기록 지시(덮어쓰기해야 하는 정보)에 포함되는 데이터 중에 그 정보가 빈 영역 클러스터에 기록되어 있지 않은 부분이 있는지 여부가 판정부(14)에 의해 판정된다. 모든 데이터의 기록이 완료되어 있지 않을 경우, 즉, 단계 S101에서 검색되어 취득된 빈 영역 클러스터가 덮어쓰기 대상으로서 특정된 클러스터보다 수가 적은 경우, 단계 S101로 되돌아가 빈 영역을 재차 검색한다. 한편, 모든 데이터의 기록이 완료되어 있을 경우, 일련의 처리를 종료한다.
이와 같이, 제1 실시형태에 있어서는 검색되어 취득된 실데이터 영역 중 빈 영역 클러스터에 기록 대상으로서 특정된 클러스터에 덮어쓰기해야 하는 데이터를 기록하기 때문에 그 빈 영역인 클러스터가 애플리케이션으로부터의 기록 지시에 포함되는 데이터에 대응하는 클러스터의 수만큼 확보할 수 있던 경우에는 그 빈 영역 클러스터에 그 덮어쓰기해야 하는 데이터를 한번에 기록할 수 있다. 이 경우, 그 기록 대상의 클러스터에 직접 데이터를 덮어쓰기 하는 종래예와 비교하여 데이터 덮어쓰기 중에 전원끊김이 발생함으로써, 불완전한 데이터가 실데이터 영역 중에 저장되는 리스크를 없애는 것이 가능해지고 전원끊김 등이 발생한 경우에 데이터를 파괴할 위험성이 있는 기간을 단축할 수 있다.
계속하여 제2 실시형태에 대해서 설명한다. 제1 실시형태에서는 파일 덮어쓰기 처리를 취급했지만, 제2 실시형태에서는 파일 이동 처리를 취급한다.
도 9는 애플리케이션으로부터의 지시가 파일 이동인 경우에 파일 시스템측에서 기동되는 프로세스 사이의 호출 관계를 도시한 도면이다. 도 9에 도시한 바와 같이, 애플리케이션으로부터 (그 애플리케이션이 출력함)파일에의 이동 지시가 파일 시스템측에 출력되면 그 파일 시스템측에서는 대응하는 「파일 이동」의 프로세스가 호출된다.
이 「파일 이동」의 프로세스로부터는 디렉토리 엔트리를 변경하기 위한 프로세스로서 「디렉토리 판독」과 「디렉토리 기록」의 프로세스가 호출된다. 「디렉토리 판독」의 프로세스로부터는 FAT 테이블, 실데이터 영역을 미디어(2차 기억)로부터 1차 기억에서 판독하는 「FAT 판독」 및 「실데이터 판독」 프로세스가 호 출되고, 「디렉토리 기록」의 프로세스로부터는 1차 기억내에서 갱신된 FAT 테이블, 실데이터 영역의 데이터를 미디어(2차 기억)에 기록하는 「FAT 기록」 및 「실데이터 기록」 프로세스가 호출된다.
도 10은 본 발명의 제2 실시 형태의 기록 처리부의 구성을 도시하는 블록도 이다.
도 10에 있어서, 기록 처리부는 애플리케이션과 장치 드라이버 사이에 설치되고, 상기 애플리케이션으로부터의 파일 정보의 기록 지시에 대응하는 지시를 상기 장치 드라이버측에 출력하는 처리를 행한다.
도 10에 있어서, 기록 처리부는 이동 목적지 디렉토리의 엔트리를 검색하여 상기 기록 지시가 덮어쓰기를 수반하는 파일 이동인지 여부를 검색하는 검색부(23)와 상기 기록 지시가 덮어쓰기를 수반하는 파일 이동인지 여부에 따라서, 이동원 파일의 디렉토리 엔트리와 파일 실데이터가 링크되어 있는 상태에서 이동 목적지 파일의 디렉토리 엔트리를 이동원 파일 실데이터에 링크시키도록 변경 또는 작성하는 기록부(21)와 이동원 파일의 디렉토리 엔트리를 삭제하는 엔트리 삭제부(22)와 상기 검색에 있어서, 상기 기록 지시가 덮어쓰기를 수반하는 파일 이동이라고 판정된 경우에 이동 목적지 파일이 이동 지시 전에 포인트하고 있었던 실데이터를 해방하는 해방부(26)를 구비한다. 또한, 도 10의 각부는 예컨대, 도 15의 CPU(51)와 RAM(53)과의 조합에 대응한다.
이하에, 본 실시형태의 기록 처리부의 동작에 대해서 설명한다.
우선, 애플리케이션으로부터의 파일 이동 지시를 기록부(21)가 접수하면, 그 이동 지시를 접수한 것을 트리거로 하여 검색부(23)가 기동된다. 이 검색부(23)는 엔트리 검색부(24)와 엔트리 빈 영역 검색부(25)를 구비한다. 엔트리 검색부(24)에 의해, 우선, 이동 목적지 디렉토리의 디렉토리 엔트리에 이동 지시 중에 지정된 이동 목적지 파일 이름과 일치하는 것이 없는지 여부가 검색된다. 일치하는 것이 없으면, 이동 지시는 덮어쓰기를 수반하지 않는 것으로 판정되고, 계속해서, 엔트리 빈 영역 검색부(25)에 의해, 이동 목적지 디렉토리에 추가되는 파일의 엔트리 정보를 기록하는 공간이 그 이동 목적지 디렉토리의 디렉토리 엔트리를 저장하는 클러스터에 있는지 여부가 검색된다. 그 디렉토리 엔트리에 공간이 있으면, 추가되는 파일의 엔트리 정보는 이동원 파일의 실데이터에 링크하도록 그 디렉토리 엔트리의 빈 영역에 기록된다.
한편, 엔트리 검색부(24)의 검색에 있어서, 이동 목적지 디렉토리의 디렉토리 엔트리에 이동 지시 중에 지정된 이동 목적지 파일명과 일치하는 것이 있다고 판정된 경우는 그 일치한 파일의 엔트리 정보가 이동원 파일의 실데이터에 링크시키도록 변경된다. 엔트리 검색부(24)의 검색 결과가 어느 쪽의 경우라도 엔트리 삭제부(22)에 의해, 이동원 파일의 디렉토리 엔트리가 삭제된다.
기록부(21)는 검색부(23)로부터의 검색 결과를 참조하여, 기록 지시가 덮어쓰기를 수반하는 파일 이동인지 여부를 판정한다. 그리고 덮어쓰기를 수반하는 이동이라고 판정된 경우에 해방부(26)가 기동되어, 이동 목적지 파일이 이동 지시 전에 포인트하고 있었던 실데이터를 해방하기 위해 FAT 테이블의 대응 항목이 클리어 된다.
이하에, 본 실시형태의 기록 처리부가 애플리케이션으로부터의 파일 이동 지시를 처리하는 프로세스를 도 11∼도 13을 참조하여 설명하지만, 이들의 도면에 있어서는 종래 기술과의 비교를 위해, 종래 기술의 설명과 마찬가지로 ¥dir ¥dir1¥file1을 ¥dir ¥dir2 ¥file2로 이동하는 경우를 취급한다.
도 11에서는 이동 목적지 디렉토리 dir2내에 파일 file2가 이미 존재하고 있는 경우를 도시하고 있다. 따라서, 엔트리 검색부(25)는 검색 결과로서 이미 동일한 명칭의 파일 file2가 이동 목적지 디렉토리 dir2내에 존재하고 있는 취지를 검색 결과로서 기록부(21)에 돌려준다.
기록부(21)는 그 검색 결과의 정보에 기초하여, 이동 목적지 파일 file2의 디렉토리 엔트리를 이동원 파일 file1의 선두 실데이터 Data1를 가리키도록 변경한다. 즉, 실데이터 영역의 이동 목적지 파일 file2의 디렉토리 엔트리가 변경된다.
또한, 종래 기술에서는 우선, 이동원 파일의 디렉토리 엔트리를 1차 기억에 보존한 후에 그 디렉토리 엔트리를 삭제하고 있는 관계로부터 도 11과 같이, 이동원과 이동 목적지 디렉토리 엔트리 중에 Data1에 대응하는 실데이터 영역 클러스터를 포인트하는 파일(file1, file2)이 존재하게 되지 않았다.
이것은 「파일 이동에 대한 처리의 일부에 파일 삭제 기능을 이용한다」고 하는 습관에 종래 사로잡혀 있었기 때문에 도 11에 도시하는 바와 같은 상태는 file1 또는 file2를 지정하여 파일 삭제 기능을 이용하면, 어느 쪽 파일의 디렉토리 엔트리에도 접속하고 있는, 필요한 데이터인 Data1 이하의 클러스터 체인도 동시에 삭제되어 버리는 상태가 되어 바람직하지 못하다고 생각되고 있었기 때문이 다.
본 실시형태에 있어서는 파일 삭제 기능의 일부인 엔트리 삭제 기능을 이용하여 도 12에 도시한 바와 같이, 이동원 파일의 디렉토리 엔트리로부터 그 이동원 파일에 대한 정보를 삭제함으로써 전술한 문제점을 회피하고 있다.
또한, 본 실시형태의 이동 순서는 불의의 전원끊김에 의해, 기록 불량이 발생하는 기간을 단축한다고 하는 효과도 갖는다. 즉, 2차 기억내의 이동원 파일의 디렉토리 엔트리에 그 이동원 파일 정보가 존재하고 있는 중에 이동 목적지 파일의 디렉토리 엔트리에 있어서, 그 이동 목적지 파일 정보를 이동원 파일의 선두 실데이터 Data1을 가리키도록 변경하고 있기 때문에 종래 기술과 같이, 이동원 파일 정보가 1차 기억에만 존재하는 기간이 없어지고, 불의의 전원끊김에 의해 기록 불량이 발생하는 기간이 단축된다.
계속하여 도 13에 있어서, 이동원 파일의 디렉토리 엔트리가 이전에 포인트하고 있었던 실데이터 Data4 이후의 클러스터 체인을 FAT 테이블의 대응 항목을 클리어함으로써 해방된다.
또한, 이상에서는 이동 지시에 있어서 지정된 파일명(file2)과 동일한 명칭의 파일이 이동 목적지 디렉토리(dir2)에 존재하는 경우를 설명했지만, 이동 목적지 디렉토리에 동일한 명칭의 파일이 존재하지 않은 경우의 처리도 마찬가지로 생각된다. 이 경우, 기록부(21)는 검색 결과의 정보에 기초하여, 이동 목적지 디렉토리 dir2에 이동 목적지 파일 file2의 정보를 이동원 파일 file1의 선두 실데이터 Data1를 가리키도록 작성한다.
도 14는 제2 실시 형태의 이동 처리의 플로우 차트이다. 이 플로우는 도 10의 기록 처리부에 의해 행해진다.
또한, 도 14의 플로우는 파일 이동을 설명하기 위한 것이지만, 디렉토리 이동의 경우는 단계 S201 및 S202의 처리가 추가된다. 즉, 단계 S201에서 이동 대상이 디렉토리인지 여부를 판정하고, 디렉토리인 경우에 단계 S202에서 그 디렉토리의 모 디렉토리 ". ." 에 대한 정보를 이동원 (모)디렉토리로부터 이동 목적지 (모)디렉토리로 변경한다.
계속하여 단계 S203에서는 이동 목적지 디렉토리를 검색하고, 그 디렉토리내에 이동 목적지로서 지정한 파일이 이미 존재하는지 여부에 따라서, 기록부(21)에 의해, 이동 목적지 디렉토리의 디렉토리 엔트리의 파일 정보가 이동원 파일의 선두 실데이터를 가리키도록 변경되거나 추가된다.
그리고 단계 S204에서는 엔트리 삭제부(22)에 의해 이동원 디렉토리의 디렉토리 엔트리로부터 이동원 파일 정보가 삭제된다.
계속하여 단계 S205에서는 이동 목적지에서 파일 정보를 덮어쓰기했는지 여부가 판정된다. 덮어쓰기하지 않았다고 판정된 경우는 일련의 처리를 즉시 종료하고, 덮어쓰기했다고 판정된 경우는 이동 목적지 파일이 이동 지시 전에 포인트하고 있었던 실데이터가 해방된다.
본 발명의 각 실시형태의 기록 처리부는 소프트웨어로서 구성하는 것이 가능하다. 도 15는 본 발명의 각 실시형태를 프로그램으로 실현하는 경우의 하드웨어 환경을 도시한 도면이다.
도 15에 있어서, 하드웨어로서의 컴퓨터는 CPU(51), ROM(52), RAM(53), 통신인터페이스(54), 입출력 장치(56), 기억 장치(55), (기록 매체) 판독 장치(58)가 버스(57)을 통해 접속됨으로써 구성되어 있다.
도 15에 있어서, CPU(51)는 컴퓨터 전체를 제어하고, RAM(53)은 프로그램 실행, 데이터 갱신 등일 때에 기억 장치(55)를 비롯한 2차 기억내에 기억되는 데이터를 일차적으로 저장하는 1차 기억이다.
사용자는 입출력 장치(56)를 통해 애플리케이션에 덮어쓰기나 이동 등의 각종 지시를 부여할 수 있다. 또한, 본 실시형태의 기록 처리부에 의해 처리된 결과의 정보가 애플리케이션을 통해 사용자에게 제시된다.
기억 장치(55)에 기억되는 프로그램이나 데이터 외에, 판독 장치(58)를 통해 판독된 가반 기억 매체(59)의 프로그램이나 데이터, 네트워크(62), 통신 인터페이스(54)를 통해 판독된 정보 제공자(61)의 프로그램이나 데이터를 컴퓨터 내부에서 이용할 수 있다.
도 16은 프로그램의 로딩을 설명하는 도면이다.
본 발명의 파일 덮어쓰기 처리, 이동 처리 등의 파일 기록 처리는 당연히 일반적인 컴퓨터(74)에 의해 실현하는 것이 가능하다. 이 경우, 컴퓨터(74) 기억 장치(72)로부터 본 발명의 처리를 위한 프로그램 등을 컴퓨터(74) 메모리에 로드하여 실행하는 것도, 가반형 기억 매체(73)로부터 본 발명의 처리를 위한 프로그램 등을 컴퓨터(74)의 메모리에 로드하여 실행하는 것도, 또한, 프로그램 제공자(70)의 기억 장치(71)측으로부터 네트워크를 통해 본 발명의 처리를 위한 프로그램 등을 컴 퓨터(74)의 메모리에 로드하고 실행하는 것도 가능하다.
본 발명에 의하면, 검색되어 취득된 실데이터 영역 중 빈 영역 클러스터에 기록 대상으로서 특정된 클러스터에 덮어쓰기해야 하는 데이터를 기록하기 때문에 그 빈 영역인 클러스터가 애플리케이션으로부터의 기록 지시에 포함되는 데이터에 대응하는 클러스터의 수만큼 확보할 수 있던 경우에는 그 빈 영역 클러스터에 그 덮어쓰기해야 하는 데이터를 한번에 기록할 수 있다. 이 경우에는 그 기록 대상의 클러스터에 직접 데이터를 덮어쓰기하는 종래예와 비교하여, 데이터 덮어쓰기 중에 전원끊김이 발생함으로써 불완전한 데이터가 실데이터 영역 중에 저장되는 리스크 를 없애는 것이 가능해지며, 전원끊김 등이 발생한 경우에 데이터를 파괴할 위험성이 있는 기간을 단축할 수 있다.
또한, 본 발명에 의하면, 이동원 파일의 디렉토리 엔트리와 파일 실데이터가 링크되어 있는 상태에서 이동 목적지 파일의 디렉토리 엔트리를 이동원 파일의 실데이터에 링크시키도록 변경 또는 작성하고 있기 때문에 종래예와 같이 이동원 파일 정보가 1차 기억에만 존재하는 기간이 없어지며, 전원끊김 등이 발생한 경우에 데이터를 파괴할 위험성이 있는 기간을 단축할 수 있다.

Claims (10)

  1. 애플리케이션으로부터의 파일 정보의 기록 지시에 대응하는 지시를 장치 드라이버측에 출력하는 처리를 컴퓨터가 실행하는 기록 처리 방법에 있어서,
    상기 컴퓨터 기억 수단의 실데이터 영역 중의 빈 영역인 클러스터를 검색하여 취득하는 단계와,
    빈 영역인 클러스터가 존재할 경우에 상기 애플리케이션으로부터의 기록 지시의 대상이 되는 상기 기억 수단의 실데이터 영역내의 1이상의 클러스터에 덮어쓰기해야 하는 정보를 그 빈 영역인 클러스터에 기록하는 단계와,
    빈 영역 클러스터에 기록된 정보에 의해 덮어쓰기되게 되어 있었던 클러스터를 해방하는 단계
    를 포함하는 것을 특징으로 하는 파일 정보의 기록 처리 방법.
  2. 제1항에 있어서, 상기 덮어쓰기해야 하는 정보 중에 그 정보가 빈 영역 클러스터에 기록되어 있지 않은 부분이 있는지 여부를 판정하는 단계와,
    기록되어 있지 않은 부분이 있을 경우에 상기 검색, 기록, 해방을 재차 실행하는 단계
    를 더 포함하는 것을 특징으로 하는 파일 정보의 기록 처리 방법.
  3. 제1항에 있어서, 상기 빈 영역에의 기록에 후속하여,
    그 기록을 행한 빈 영역 클러스터에 대응하는 포인터 정보를 더 설정하는 단계와,
    기록 대상이 되는 클러스터 직전의 클러스터에 대응하는 포인터 정보를 그 기록을 행한 클러스터 중 선두 클러스터를 가리키도록 변경하는 단계
    를 더 포함하는 것을 특징으로 하는 기록 처리 방법.
  4. 애플리케이션으로부터의 파일 정보의 기록 지시에 대응하는 지시를 장치 드라이버측에 출력하는 처리를 컴퓨터가 실행하는 기록 처리 방법에 있어서,
    이동 목적지 디렉토리의 엔트리를 검색하여 상기 기록 지시가 덮어쓰기를 수반하는 파일 이동인지 여부를 판정하도록 검색하는 단계와,
    상기 기록 지시가 덮어쓰기를 수반하는 파일 이동인지 여부에 따라서, 이동원 파일의 디렉토리 엔트리와 파일 실데이터가 링크되어 있는 상태에서 이동 목적지 파일의 디렉토리 엔트리를 이동원 파일의 실데이터에 링크시키도록 변경 또는 작성하는 단계와,
    이동원 파일의 디렉토리 엔트리를 삭제하는 단계
    를 포함하는 것을 특징으로 하는 파일 정보의 기록 처리 방법.
  5. 제4항에 있어서, 상기 판정에 있어서 상기 기록 지시가 덮어쓰기를 수반하는 파일 이동이라고 판정된 경우에, 이동 목적지 파일이 이동 지시 전에 포인트하고 있었던 실데이터를 해방하는 단계를 더 포함하는 것을 특징으로 하는 파일 정보의 기록 처리 방법.
  6. 애플리케이션으로부터의 파일 정보의 기록 지시에 대응하는 지시를 장치 드라이버측에 출력하는 처리를 컴퓨터에 실행시키는 기록 처리 프로그램을 기록한 기록 매체에 있어서,
    상기 컴퓨터 기억 수단의 실데이터 영역 중 빈 영역인 클러스터를 검색하여 취득하는 단계와,
    빈 영역인 클러스터가 존재할 경우에 상기 애플리케이션으로부터의 기록 지시의 대상이 되는 상기 기억 수단인 실데이터 영역내 1이상의 클러스터에 덮어쓰 기해야 하는 정보를 그 빈 영역인 클러스터에 기록하는 단계와,
    빈 영역 클러스터에 기록된 정보에 의해 덮어쓰기되게 되어 있었던 클러스터를 해방하는 단계를 상기 컴퓨터에 실행시키는 단계
    를 포함하는 것을 특징으로 하는 파일 정보의 기록 처리 프로그램을 기록한 기록 매체.
  7. 제6항에 있어서, 상기 덮어쓰기해야 하는 정보 중에 그 정보가 빈 영역 클러스터에 기록되어 있지 않은 클러스터가 있는지 여부를 판정하는 단계와,
    기록되어 있지 않은 클러스터가 있을 경우에 상기 검색 단계, 기록 단계, 해방 단계를 재차 상기 컴퓨터에 실행시키는 단계
    를 더 포함하는 것을 특징으로 하는 파일 정보의 기록 처리 프로그램을 기록한 기록 매체.
  8. 제6항에 있어서, 상기 기록 단계에 이어서,
    그 기록을 행한 빈 영역 클러스터에 대응하는 포인터 정보를 설정하는 단계와,
    기록 대상이 되는 클러스터 직전의 클러스터에 대응하는 포인터 정보를 그 기록을 행한 클러스터 중의 선두인 클러스터를 가리키도록 변경하는 단계
    를 더 포함하는 것을 특징으로 하는 기록 처리 프로그램을 기록한 기록 매체.
  9. 애플리케이션으로부터의 파일 정보의 기록 지시에 대응하는 지시를 장치 드라이버측에 출력하는 처리를 컴퓨터에 실행시키는 기록 처리 프로그램을 기록한 기록 매체에 있어서,
    이동 목적지 디렉토리의 엔트리를 검색하여 상기 기록 지시가 덮어쓰기를 수반하는 파일 이동인지 여부를 판정하도록 검색하는 단계와,
    상기 기록 지시가 덮어쓰기를 수반하는 파일 이동인지 여부에 따라서, 이동원 파일의 디렉토리 엔트리와 파일 실데이터가 링크되어 있는 상태에서 이동 목적지 파일의 디렉토리 엔트리를 이동원 파일의 실데이터에 링크시키도록 변경 또는 작성하는 단계와,
    이동원 파일의 디렉토리 엔트리를 삭제하는 단계를 상기 컴퓨터에 실행시키는 단계
    를 포함하는 것을 특징으로 하는 파일 정보의 기록 처리 프로그램을 기록한 기록 매체.
  10. 제9항에 있어서, 상기 판정 단계에 있어서, 상기 기록 지시가 덮어쓰기를 수반하는 파일 이동이라고 판정된 경우에 이동 목적지 파일이 이동 지시 전에 포인트하고 있었던 실데이터를 해방하는 단계를 상기 컴퓨터에 실행시키는 단계를 더 포함하는 것을 특징으로 하는 파일 정보의 기록 처리 프로그램을 기록한 기록 매체.
KR1020050028801A 2004-12-24 2005-04-07 파일 정보의 기록 처리 방법 및 프로그램 KR100637787B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004375074A JP4806183B2 (ja) 2004-12-24 2004-12-24 ファイル情報の書き込み処理方法およびプログラム
JPJP-P-2004-00375074 2004-12-24

Publications (2)

Publication Number Publication Date
KR20060073407A KR20060073407A (ko) 2006-06-28
KR100637787B1 true KR100637787B1 (ko) 2006-10-24

Family

ID=36738074

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050028801A KR100637787B1 (ko) 2004-12-24 2005-04-07 파일 정보의 기록 처리 방법 및 프로그램

Country Status (4)

Country Link
US (2) US20060173923A1 (ko)
JP (1) JP4806183B2 (ko)
KR (1) KR100637787B1 (ko)
CN (2) CN100524316C (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5471547B2 (ja) * 2010-02-10 2014-04-16 ソニー株式会社 情報記録装置、撮像装置、情報更新方法及びプログラム
JP6053274B2 (ja) * 2011-10-31 2016-12-27 キヤノン株式会社 ファイル管理装置、ファイル管理方法およびプログラム
JP6142669B2 (ja) * 2013-05-22 2017-06-07 株式会社ソシオネクスト データ編集プログラム、データ編集装置、データ編集方法
US11435922B2 (en) 2017-06-27 2022-09-06 Sigmastar Technology Ltd. Control method for storage device of driving recorder and storage device control system
TWI631461B (zh) * 2017-06-27 2018-08-01 晨星半導體股份有限公司 行車記錄器之儲存裝置的控制方法與儲存裝置控制系統
CN113703985B (zh) * 2021-09-23 2023-10-10 瑞芯微电子股份有限公司 内存管理方法、介质及电子设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512405A (ja) * 1991-07-03 1993-01-22 Matsushita Electric Ind Co Ltd 画像情報記憶検索装置
JPH07175700A (ja) * 1993-12-20 1995-07-14 Fujitsu Ltd データベース管理方式
KR100614469B1 (ko) * 1997-12-05 2006-08-25 동경 엘렉트론 디바이스 주식회사 기억장치
US6714949B1 (en) * 2000-04-25 2004-03-30 Adaptec, Inc. Dynamic file system configurations
JP2002007204A (ja) * 2000-06-26 2002-01-11 Sony Corp 情報処理装置、情報処理方法
JP2002091806A (ja) * 2000-09-20 2002-03-29 Olympus Optical Co Ltd ファイルシステム
JP3722057B2 (ja) * 2001-11-30 2005-11-30 ソニー株式会社 データ記録再生装置及びデータ記録再生方法、並びにデジタルカメラ
JP2003271408A (ja) * 2002-03-14 2003-09-26 Hitachi Ltd 電子データの更新方法及びパッチデータ作成方法
US20050262033A1 (en) * 2002-03-29 2005-11-24 Kazuhiko Yamashita Data recording apparatus, data recording method, program for implementing the method, and program recording medium
JP4391793B2 (ja) * 2002-10-17 2009-12-24 パナソニック株式会社 ファイル更新装置
DE60318477T2 (de) * 2002-10-17 2008-04-30 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur dateiaktualisierung
JP4292882B2 (ja) * 2003-03-18 2009-07-08 株式会社日立製作所 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
US7085909B2 (en) * 2003-04-29 2006-08-01 International Business Machines Corporation Method, system and computer program product for implementing copy-on-write of a file
JP4647492B2 (ja) * 2003-08-06 2011-03-09 パナソニック株式会社 半導体メモリカード、アクセス装置及びアクセス方法
US20050052550A1 (en) * 2003-09-04 2005-03-10 Pentax Corporation Image-file managing system and optical apparatus for observing object

Also Published As

Publication number Publication date
KR20060073407A (ko) 2006-06-28
CN101114304A (zh) 2008-01-30
JP2006184979A (ja) 2006-07-13
CN100524316C (zh) 2009-08-05
CN1794205A (zh) 2006-06-28
CN100367237C (zh) 2008-02-06
US20090024785A1 (en) 2009-01-22
US8468290B2 (en) 2013-06-18
US20060173923A1 (en) 2006-08-03
JP4806183B2 (ja) 2011-11-02

Similar Documents

Publication Publication Date Title
US8180956B2 (en) Method for controlling memory card and method for controlling nonvolatile semiconductor memory
KR100844058B1 (ko) 파일 삭제 방법, 파일·오픈 방법, 파일 삭제 프로그램, 및파일·오픈·프로그램
US8069320B1 (en) System and method for consolidation of backups
KR100637787B1 (ko) 파일 정보의 기록 처리 방법 및 프로그램
JPH04186447A (ja) 情報処理装置
US20110320692A1 (en) Access device, information recording device, controller, real time information recording system, access method, and program
JP2006277737A (ja) アドレス予測機能をもつ不揮発性記憶装置
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
US9009114B1 (en) Version mapped incremental backups
JP4944033B2 (ja) 情報処理システム、情報処理方法、実行バイナリイメージ作成装置、実行バイナリイメージ作成方法、実行バイナリイメージ作成プログラム、実行バイナリイメージ作成プログラムを記録したコンピュータ読み取り可能な記録媒体、実行バイナリイメージ実行装置、実行バイナリイメージ実行方法、実行バイナリイメージ実行プログラム及び実行バイナリイメージ実行プログラムを記録したコンピュータ読み取り可能な記録媒体
JPWO2007026484A6 (ja) 実行バイナリイメージの作成及び実行を行う装置、方法、プログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体
JP5057887B2 (ja) データ更新装置及びデータ更新方法及びデータ更新プログラム
US20050149493A1 (en) Data recording apparatus and data recording method
CN111258503B (zh) 一种cirros文件系统的管理方法和装置
JP2008513758A (ja) コンピュータが停止したときにデータの取り込みを一時停止することを可能にするシステムおよび自動車に搭載されたコンピュータ
US20100094804A1 (en) Method and Device for Updating a Database, and Computer Program Product
JP2008123104A (ja) データアクセス装置
JP2006127377A (ja) Fatファイルシステム
JP2008134777A (ja) ファイル割当テーブルのキャッシュ方法
GB2540179A (en) An integrated system for the transactional management of main memory and data storage
JP2008065779A (ja) 情報処理装置および情報処理方法、プログラム、並びに、プログラム格納媒体
JP2003036201A (ja) メモリアクセス管理装置
JPH04156626A (ja) Vtocのファイルエントリ作成方式
JPH07104758B2 (ja) レコード処理方式
JPWO2004023308A1 (ja) データ抽出方法およびデータ抽出装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120924

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130924

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 13