KR100597411B1 - 파일의 효율적인 데이터 관리를 위한 방법 및 장치 - Google Patents

파일의 효율적인 데이터 관리를 위한 방법 및 장치 Download PDF

Info

Publication number
KR100597411B1
KR100597411B1 KR1020040061435A KR20040061435A KR100597411B1 KR 100597411 B1 KR100597411 B1 KR 100597411B1 KR 1020040061435 A KR1020040061435 A KR 1020040061435A KR 20040061435 A KR20040061435 A KR 20040061435A KR 100597411 B1 KR100597411 B1 KR 100597411B1
Authority
KR
South Korea
Prior art keywords
file
block
mapping
list
deletion
Prior art date
Application number
KR1020040061435A
Other languages
English (en)
Other versions
KR20060012793A (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 삼성전자주식회사
Priority to KR1020040061435A priority Critical patent/KR100597411B1/ko
Priority to US11/193,347 priority patent/US20060036663A1/en
Priority to CNB2005100889295A priority patent/CN100399294C/zh
Publication of KR20060012793A publication Critical patent/KR20060012793A/ko
Application granted granted Critical
Publication of KR100597411B1 publication Critical patent/KR100597411B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Abstract

본 발명은 파일의 효율적인 데이터 관리를 위한 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따른 파일의 효율적인 데이터 관리를 위한 방법은 파일 삭제 요청을 수신하는 단계, 파일을 구성하는 데이터 블록에 대한 정보를 저장한 매핑 블록들의 집합인 블록 맵에서 상기 파일에 대한 매핑 블록을 검색하는 단계, 및 상기 검색 결과 얻은 매핑 블록이 구성하는 연결 리스트를 삭제 리스트에 추가하는 단계를 포함한다.
파일 시스템, FAT(File Allocation Table), 삭제, 저장, 블록 맵, 데이터 블록

Description

파일의 효율적인 데이터 관리를 위한 방법 및 장치{Method and apparatus for effective data management of file}
도 1은 종래의 파일 시스템과 저장매체의 구성을 보여주는 블록도이다.
도 2는 종래의 파일 시스템에서 블록 맵을 통해 파일의 저장을 보여주는 개념도이다.
도 3은 종래의 파일 시스템에서 파일 삭제시 발생한 오류가 저장 매체에 미치는 영향을 보여주는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 파일 시스템과 저장장치의 구성을 보여준다.
도 5a내지 5c는 본 발명의 일 실시예에 따른 파일 삭제의 일 실시예를 보여주는 개념도이다.
도 6은 본 발명의 일 실시예에 따른 블록할당부가 파일을 저장하는 과정을 보여주는 개념도이다.
도 7은 본 발명의 다른 실시예에 따른 파일 삭제의 예를 보여주는 블록도이다.
도 8은 본 발명의 일 실시예에 따른 삭제 리스트를 가용 저장 공간으로 환원하는 블록도이다.
도 9는 본 발명의 일 실시예에 따른 파일의 삭제 과정을 보여주는 순서도이다.
도 10은 본 발명의 일 실시예에 따른 파일의 저장 과정을 보여주는 순서도이다.
<도면의 주요 부분에 대한 부호의 설명>
10 : 파일 시스템 12 : 삭제 리스트
14 : 블록할당부 100 : 블록 맵
200 : 데이터 블록
본 발명은 파일의 효율적인 데이터 관리를 위한 방법 및 장치에 관한 것이다.
파일은 데이터의 집합, 모음으로 하드디스크, 메모리 카드, CD-ROM 등에 저장되는 것을 의미한다. 파일은 컴퓨터, PDA, 휴대폰과 같은 시스템에 정보를 제공하거나, 어떤 기능을 동작시키거나 혹은 사용자에게 정보를 제공하는 등의 다양한 기능을 한다.
파일 시스템(File System)은 파일을 쓰고, 읽고, 사용하기 위한 방법과 기능을 제공한다. 컴퓨터와 같은 디지털 장치에는 FAT(File Allocation Table), NTFS(New Technology File System), HPFS(High Performance File System) 등이 존 재하고 있다. 파일 시스템은 파일의 효율적인 관리를 위한 기능을 수행하며, 데이터의 빠른 검색, 복구, 대용량 데이터의 지원등을 제공하고 있다. 파일 시스템은 CPU와 같은 프로세서에 비해 상대적으로 느린 처리 속도를 가진 저장 매체가 시스템에 가져다 주는 병목 현상을 줄이고, 파일의 처리를 원활하게 하여, 전체 시스템의 성능 향상에 주력하고 있다. 한편 디지털 멀티미디어를 다루는 많은 디지털 기기들은 컴퓨터와 호환 가능한 파일 시스템을 사용하여 컴퓨터를 통한 파일의 교환을 가능하게 한다. 따라서, 현재 많은 디지털 기기들은 파일 시스템을 사용하여 멀티미디어 데이터를 저장하고 있다.
과거 파일 시스템은 파일의 삭제의 속도보다는 읽고 쓰는 부분에 많이 집중을 했다. 왜냐면, 과거에는 하나의 파일이 대용량을 점유하는 경우가 적었고, 많은 파일의 효율적인 관리가 중요 관건이기 때문이다.
그러나, 대용량의 파일이 증가하고, 또한 이 대용량의 파일이 단지 하드 디스크와 같은 컴퓨터의 저장매체가 아닌, 메모리 카드 등의 이동성 저장 매체를 통해서 다양하게 이동, 복사되는 현실에서, 파일의 삭제는 파일 시스템의 성능 평가에서 주요 관건이 되고 있다.
도 1은 종래의 파일 시스템과 저장매체의 구성을 보여주는 블록도이다. FAT, HPFS, NTFS와 같은 파일 시스템은 파일을 블록 맵을 통해 관리한다. 도 1의 (a)와 같이 하드 디스크 또는 메모리 카드등은 크게 데이터 블록과 블록 맵으로 나뉘어진다.
데이터 블록은 데이터를 저장하기 위한 하나의 단위가 되며, 저장 공간에서 데이터가 저장되는 하나의 단위가 될 수 있다. 512 byte 혹은 1024 byte와 같이 데이터를 저장하는 단위가 되며, 이보다 큰 데이터들은 상기 저장 단위의 크기에 따라 나누어 저장하게 된다. FAT을 사용하는 파일 시스템에서는 이러한 데이터 블록을 클러스터(cluster)라고 부른다.
블록 맵은 상기 데이터 블록에 대한 정보들의 모음이다. 따라서 (a)에서 알 수 있듯이, 블록 맵(100)과 데이터 블록(200)은 저장 장치에 저장될 수 있다. 그리고 블록 맵(100)과 데이터 블록(200)간의 매핑과 파일을 관리하기 위해 파일 시스템(10)이 존재한다.
블록 맵과 데이터 블록의 구조는 (b)와 같다. 블록 맵을 구성하는 각 블록들(101, 102)은 해당 데이터 블록의 상태를 보여준다. 즉, 상기 데이터 블록에 파일이 저장되어 있는지, 혹은 데이터 블록이 저장 가능한지를 알려주는 정보를 가지고 있다. FAT 시스템에서 파일 할당 테이블(File Allocation Table)이 블록 맵의 한 예이다. 상기 블록 맵을 구성하는 블록들의 정보를 검토하면, 전체 데이터 블록을 직접 살펴보지 않고 해당 데이터 블록의 상태를 알 수 있다. 블록 맵의 블록이 가지는 값은 다음 데이터의 위치를 나타내거나 해당 데이터 블록에 데이터가 저장되지 않음을 나타낸다. 또한 해당 데이터 블록, 예를 들어 클러스터가 파일을 저장할 수 없게 손상이 된 경우, 그 손상여부를 표시할 수도 있다. 블록 맵은 편의상 1부터 주소를 붙여서 설명하고자 하며, 이는 파일 시스템의 구현의 한 실시예일뿐이다. 1번지의 블록 맵은 1번지의 데이터 블록에 대한 정보를 보여준다.
FAT 시스템에서 블록 맵의 블록이 표시하는 값을 살펴보면 표 1과 같다.
FAT12 FAT16 FAT32
사용 가능을 표시 000 0000 00000000
예약된 클러스터 표시 001 0001 00000001
사용자 데이터 002-FF6 0002-FFF6 00000002-0FFFFFF6
배드 클러스터 FF7 FFF7 0FFFFFF7
종료 표시 FF8-FFF FFF8-FFFF 0FFFFFF8-0FFFFFFF
상기 블록이 표시하는 값은 시스템의 구현에 따라 달라질 수 있다. NTFS 혹은 HPFS와 같은 다른 파일 시스템에서는 해당 파일 시스템의 약속된 정의에 따라 값을 표시한다.
그런데, 이들 데이터가 항시 순차적으로 저장될 수는 없다. 파일들이 삭제되고 저장되는 과정에서 사용할 수 있는 저장 공간은 저장 매체의 곳곳에 산발적으로 존재할 수 있다. 블록 맵은하나의 파일을 구성하는 여러 데이터 블록에서 순차적으로 데이터를 읽을 수 있도록 블록의 위치를 연결 리스트로 구성한다. 이러한 연결은 블록 맵의 블록을 통해 이루어진다.
이하 본 명세서에서는 블록 맵을 구성하는 블록을 매핑 블록이라 한다.
도 2는 종래의 파일 시스템에서 블록 맵을 통해 파일의 저장을 보여주는 개념도이다. 블록 맵은 전술한 바와 같이, 데이터 영역의 저장 단위인 데이터 블록에 대한 정보를 가지고 있다. 데이터 블록은 512 byte, 1024 byte 등 파일 시스템에 따라 달라질 수 있다.
file.txt가 저장된 방식을 살펴보면 file.txt는 시작되는 데이터 블록의 정보를 보여주는 매핑 블록의 시작 위치를 가리킨다. 블록 맵의 내부는 이 파일이 저장된 데이터 블록들을 나타내는 매핑 블록들을 순차적으로 연결하여 링크를 구성하 고 있다. file.txt는 3이라는 데이터 블록에 저장되어 있음을 알 수 있다. 따라서 이 파일의 데이터를 읽기 위해서는 3이라는 주소의 매핑 블록을 참조해야 한다. 이하 설명의 편의를 위해 blockmap(k)는 k 주소의 매핑 블록을 의미하고, datablock(k)는 k 주소의 데이터 블록을 의미한다.
blockmap(3)는 0004을 가지는데, 이는 이 파일을 구성하는 다음 데이터가 4번지, 즉 datablock(4)에 저장되어 있음을 의미한다. 이 4번지의 데이터 블록에 대한 정보는 4번지의 매핑 블록에 저장되어 있다. 그리고 blockmap(4)에는 0006의 값을 가지는데, 이는 다음 데이터가 데이터 블록 6번지에 저장됨을 보여준다. 이렇게 블록 맵은 파일을 구성하는 데이터들을 순차적으로 읽을 수 있도록 한다. 도 2의 예에서 file.txt는 매핑 블록의 연결을 통해, 데이터 블록 3번지, 4번지, 6번지, 7번지, 8번지에 순차적으로 저장됨을 보여준다. blockmap(8)의 값은 0xffff인데 이는 파일의 종료를 의미한다. 0xffff가 아닌 다른 값을 약속하여 파일의 종료를 나타낼 수도 있다. 그러나 혼돈을 피하기 위해 매핑 블록의 주소와는 겹치지 않는 값이어야 한다. 예를 들어, 0xffff을 주소로 하는 매핑 블록이 존재하면 혼돈이 발생하므로 이보다 더 큰 값 혹은 겹치지 않는 다른 값을 사용해야 할 것이다.
블록 맵을 바탕으로 한 파일 시스템을 이용할 경우, 물리적으로 연결되어있지 않는 경우에도 논리적인 연결을 제공하여 데이터를 저장할 수 있는 장점이 있다. 그런데 파일의 삭제에 있어서 문제가 발생한다.
상기 블록 맵에서 사용 가능한 데이터 블록을 표시하는 것은 미리 약속된 소정의 값(예를 들어 0과 같은)을 통해 가능하다. 따라서 하나의 파일을 삭제할 경 우, 상기 파일이 저장된 위치의 데이터 블록에 대한 정보를 포함하는 매핑 블록의 정보를 모두 바꾸어주어야 한다.
즉, 도 2에서 file.txt를 삭제할 경우, 블록 맵의 3번지, 4번지, 6번지, 7번지, 8번지 매핑 블록의 값을 모두 0으로 만들어야 하는 문제가 발생한다. 이는 파일 사이즈가 작은 경우에는 큰 문제가 되지 않는다. 그러나, 최근 멀티미디어 기술의 발달로 인해 대용량의 파일이 증가하면서 이러한 과정은 많은 프로세싱 시간을 요한다. 예를 들어 30M byte의 파일을 삭제하는 경우, 데이터 블록의 크기가 512byte라면 30 Mbyte/512 byte 로 계산할 때에 61440개(=30x1024x1024/512)의 매핑 블록 정보를 상기 파일이 차지함을 알 수 있다. 따라서 블록 맵 내의 61440개의 매핑 블록의 정보를 0으로 바꾸어주어야 하므로, 많은 프로세싱 타임을 요한다. 또한 쓰기 연산에 민감한 NAND 플래쉬 메모리의 경우 불필요한 파일 시스템의 블록 맵 데이터의 수정 때문에 저장 장치의 효율을 떨어뜨릴 수 있다.
한편 삭제 과정에서 오류가 발생하여 삭제가 중단된 경우, 그 중간 부분의 매핑 블록의 정보는 수정되지도 못한 상태에서 저장 공간을 차지할 수 있다. 이러한 경우는 도 3과 같다.
도 3은 종래의 파일 시스템에서 파일 삭제시 발생한 오류가 저장 매체에 미치는 영향을 보여주는 블록도이다.
도 3에서는 도 2의 file.txt를 삭제하는 과정을 보여준다. file.txt는 5개의 데이터 블록으로 되어 있다. 파일을 삭제하기 위해서는 5개의 데이터 블록에 해당하는 매핑 블록을 0의 값으로 해야 한다. 그런데 blockmap(6)을 0으로 변환하는 과 정에서 오류가 발생할 경우, 매핑 블록 6번지, 7번지, 8번지 값은 모두 그대로 존재하게 된다. 그러나, file.txt는 단지 2번지만 가르키므로 6번지에서 매핑 블록의 수정이 완료되지 못해 중지되었음을 알 수 없다. 그 결과 6, 7, 8 번지는 사용할 수 없는 데이터 블록으로 존재하게 된다. 이 블록은 특정 파일에 소속된 것도 아니므로 삭제할 수 없다. 이후 디스크 검사등을 통해 삭제가 이루어 질 수는 있으나, 이는 전체 저장매체를 대상으로 하는 작업이며, 항시 일어나는 것이 아니다. 그리고 이러한 디스크 검사는 상당한 프로세싱 시간을 요하므로, 자주 수행할 수 없다.
도 3에서 보여준 문제는 대용량 파일의 경우 더욱 빈번히 일어날 수 있다. 수정해야 하는 매핑 블록의 숫자가 늘어날수록, 수정을 완료하는데 걸리는 시간이 늘어나며, 그 사이에 발생할 수 있는 오류의 가능성은 증가하기 때문이다. 따라서 삭제에서 발생하는 오류와 삭제에 소요되는 시간을 줄이는 방안이 필요하다.
종래에 파일의 사용에 있어서 비트맵을 사용하여 해당 비트가 나타내는 블록의 정보를 표시하는 방법과 장치에 대한 특허(한국 공개특허 2002-0087707)가 존재했으나 이는 블록의 저장 여부를 표시하여, 삭제시에 모든 비트를 변경해야 하는 불편함이 존재한다.
특히, 동영상의 촬영이 빈번한 디지털 장치의 증가로, 대용량의 동영상을 빨리 삭제하여 새로이 다른 동영상을 저장하는 것은 디지털 장치의 속도 개선에 많은 영향을 준다
본 발명의 기술적 과제는 파일을 신속하게 삭제하고 저장하는데 있다.
본 발명의 다른 기술적 과제는 파일의 삭제와 저장시의 수행하는 연산을 줄이는데 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명은 파일의 효율적인 데이터 관리를 위한 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따른 파일의 효율적인 데이터 관리를 위한 방법은 파일 삭제 요청을 수신하는 단계, 파일을 구성하는 데이터 블록에 대한 정보를 저장한 매핑 블록들의 집합인 블록 맵에서 상기 파일에 대한 매핑 블록을 검색하는 단계, 및 상기 검색 결과 얻은 매핑 블록이 구성하는 연결 리스트를 삭제 리스트에 추가하는 단계를 포함한다.
본 발명의 다른 실시예에 따른 파일의 효율적인 데이터 관리를 위한 방법은 파일 저장 공간 할당의 요청을 수신하는 단계, 파일을 구성하는 데이터 블록에 대한 정보를 저장한 블록 맵에서 삭제 리스트를 구성하는 매핑 블록을 사용하여 저장 공간을 확보하는 단계, 및 상기 삭제 리스트를 구성하는 매핑 블록에서 상기 저장 공간에 사용된 매핑 블록을 제외하는 단계를 포함한다.
본 발명의 일 실시예에 따른 파일의 효율적인 데이터 관리를 위한 장치는 파일의 데이터가 저장된 데이터 블록, 상기 데이터 블록에 대한 정보를 저장한 매핑 블록들의 집합인 블록 맵, 이전에 삭제한 파일에 대한 매핑 블록들의 집합인 삭제 리스트, 및 상기 삭제 리스트의 매핑 블록을 사용하여 파일을 저장할 공간을 할당하는 블록할당부를 포함한다.
본 명세서에서 사용하는 용어를 정리하면 다음과 같다.
컴퓨터를 구성하는 저장매체는 파일 시스템과 실제 저장되는 데이터들로 구성된다. 파일 시스템은 전술한 바와 같이, 파일을 효율적으로 관리하기 위한 시스템을 의미한다. 현재 많은 시스템에서 다양하게 사용되는 파일 시스템에 대해 간략히 살펴보면 다음과 같다.
- FAT(File Allocation Table)
FAT은 윈도우시스템에서 지원하는 파일 시스템으로, 디스크에 파일 테이블의 형태로 존재한다. FAT의 손상시 복구를 위해 FAT는 두 개가 존재한다. 윈도우 NT가 지원하는 파일 시스템중 가장 심플한 형태이다. FAT은 초기 파일 시스템으로 현재 FAT12, FAT16, FAT32등이 등장하고 있다. FAT16은 윈도우 운영 체계외에도 다른 운영체계에서도 사용 가능하다.
- HPFS(High Performance File System)
OS/2 1.2에서 도입한 파일 시스템으로, FAT의 디렉토리 구조를 포함하지만 파일 이름에 기반한 자동 정렬 기능을 포함하고 있다. 이름 관습(Naming convention)에 대한 유연성을 증대시키며 파일 할당에 있어서의 단위를 클러스터에서 물리적 섹터로 하여 디스크의 손실을 줄이고 있다. HPFS는 하나의 파일을 일련의 연결된 섹터에 저장할 수 있게 하여 속도를 증가시키고 있다.
- NTFS(New Technology File System)
NTFS는 파일을 디렉토리로 관리하며 HPFS와 같이 정렬을 가능하게 한다. 또한 파일 시스템의 오류에 대한 복구와 섹터의 삭제를 막기 위한 기능을 제공한다. 파일에 대해 행해진 작업들이 무엇인지 검토하여 이러한 작업을 취소시킴으로써 파일 시스템 내의 일치성을 유지하도록 한다. 윈도우 NT에서 주로 사용하며, 리눅스에서도 사용하는 파일 시스템이다.
이러한 파일 시스템은 컴퓨터 이외에도 데이터를 저장하는 디지털 장치에도 적용된다. 따라서 휴대폰, PDA, 노트북, 디지털 TV 등 디지털 데이터를 다루는 기기에도 파일 시스템을 적용할 수 있다.
또한 저장 매체인 하드 디스크, 컴팩트 디스크 외에도, 외장형 저장 매체인 플래쉬 메모리, 메모리 스틱 듀오, 또는 SD 카드나 MMC(MultiMedia Card) 메모리등에도 파일 시스템을 적용할 수 있다.
최근 디지털 멀티미디어 데이터에 대한 관심이 높아지면서 파일 시스템은 디지털 기기에 필요한 구성이므로, 디지털 멀티미디어 정보를 다루는 장치의 내장형 메모리에도 본 발명의 일 실시예에 해당하는 파일 시스템과 파일의 삭제, 저장 방법 및 장치를 적용할 수 있다.
파일 시스템들은 각각의 특징을 가지고 있다. 상기에 열거한 파일 시스템을 포함한 대부분의 파일 시스템의 구조는 도 1과 같다. 각 파일의 위치에 대한 정보를 가지는 블록 맵과 이들 파일을 구성하는 데이터(비트)들의 모음이다.
도 4는 본 발명의 일 실시예에 따른 파일 시스템과 저장장치의 구성을 보여 준다.
본 실시예에서 사용되는 '~부'라는 용어, 즉 '~모듈'은 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 기능들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
파일 시스템(10)에는 삭제 리스트(12)와 블록할당부(14)가 존재한다. 삭제 리스트(12)는 삭제된 파일들의 매핑 블록들의 리스트를 관리한다. 삭제 리스트(12)는 파일이 삭제될 때, 그 파일을 구성하는 매핑 블록들을 0으로 수정하는 대신에 삭제 리스트(12)에 연결한다. 삭제 리스트(12)는 파일의 형식(trash.sys와 같이)으로 구성될 수 있고, 또는 파일 시스템(10) 내의 특정한 값으로 존재할 수도 있다. 삭제 리스트는 각 시스템에 따라 다양하게 구현될 수 있다. 한편 상기 삭제 리스트 (12)는 파일의 삭제가 일어나지 않은 경우 생성되지 못할 경우가 있다. 특히 파일을 통해 삭제 리스트(12)를 구현하는 경우 그러하다. 이 때에는 파일 시스템을 마운트 하는 경우 새로이 삭제 리스트(12)를 생성할 수 있고, 또는 파일 시스템에서 삭제 리스트(12)가 존재하지 않을 때에 파일의 삭제 요청이 들어오면 그 파일을 삭제 리스트(12)로 전환하거나, 삭제 리스트를 새로이 생성하여 파일의 삭제를 수행할 수 있다.
블록할당부(14)는 가용 저장 공간을 찾아서 파일을 저장하는데, 종래의 기술이 가용 저장 공간을 매핑 블록의 특정 값(예를 들어 0)을 통해 인식했던 것과 달리, 블록 맵에서 0의 값을 가지는 매핑 블록을 찾거나 또는 상기의 삭제 리스트를 구성하는 매핑 블록들을 사용할 수 있다.
상기 매핑 블록을 사용할 경우, 가용 저장 공간을 찾기 위해 블록 맵에서 0인 값을 가지는 매핑 블록을 찾을 필요 없이, 삭제 리스트를 사용하여 파일을 저장할 수 있다.
따라서 삭제 리스트를 도입할 경우, 삭제에 따른 매핑 블록의 수정을 피할 수 있을 뿐만 아니라, 파일의 저장에 있어서도 매핑 블록들을 연결 리스트로 생성하기 위해 블록 맵을 수정해야 하는 연산을 줄일 수 있다. 특히 쓰기 연산에 민감한 NAND 플래쉬 메모리와 같은 저장매체에 유용하다. 또한 삭제 리스트에 데이터를 할당할 경우 이미 구성된 매핑 블록의 링크(체인, 연결)를 이용하므로 새로이 연결을 생성하는데 필요한 연산 시간을 줄일 수 있다.
삭제 리스트는 삭제된 매핑 블록이 구성하는 연결 리스트의 시작 주소를 가 지고 있을 수 있으며, 더 빠른 실행을 위해 연결 리스트의 마지막 매핑 블록의 주소를 함께 유지할 수도 있다.
도 5a내지 5c는 본 발명의 일 실시예에 따른 파일 삭제의 일 실시예를 보여주는 개념도이다.
도 5a에서 file1.txt와 file2.txt가 존재한다. 삭제 리스트는 도 5a에서는 trash.sys라는 파일의 형태로 구성하여 보여주고 있다. 이는 일 실시예에 해당하며, 파일의 형태가 아닌 특정 값을 지정하는 것으로 구성될 수도 있다. 즉, 파일 시스템 내에 고정적으로 특정 번지를 가리키도록 하여, 그 번지는 삭제된 매핑 블록들의 리스트를 가리키게 하는 메커니즘을 사용할 수 있다.
도 5a에서 trash.sys라는 파일은 0xffff값을 가지는데, 이는 이전에 삭제된 파일의 매핑 블록이 없거나 혹은 삭제된 파일의 매핑 블록이 다시 다른 파일의 데이터를 저장하기 위해 재사용된 경우를 나타낸다. 물론 이 값은 시스템에 따라 달리 정의될 수 있다.
file1.txt는 두 개의 데이터 블록(2->3)으로, file2.txt는 6개의 데이터 블록(5->6->7->8->9->11)으로 구성되어 있음을 블록 맵의 매핑 블록의 연결을 통해 알 수 있다. 파일을 삭제하기 위해서는 삭제할 파일의 첫 매핑 블록을 삭제 리스트인 trash.sys(12)에 연결한다. 연결은 삭제 리스트에 0xffff의 값이 저장된 경우, 이전에 삭제되어 연결된 블록이 없는 것으로 보아서, 상기 삭제할 파일의 시작 위치로 변경할 수 있다. 만약 삭제 리스트에 다른 매핑 블록들의 연결이 존재한다면, 그 매핑 블록 연결의 마지막 매핑 블록이 가지는 값(0xffff)을 삭제할 파일의 매핑 블록의 첫 시작 위치로 수정할 수 있다.
도 5a에서 삭제 리스트인 trash.sys는 어떤 특별한 매핑 블록을 가리키는 것이 아니므로 file1.txt의 삭제는 file1.txt의 시작 매핑 블록인 2의 값을 삭제 리스트로 넘겨주는 것으로 완성된다.
도 5b는 도 5a에서 file1.txt를 삭제한 결과를 보여주고 있다. 삭제 리스트인 trash.sys는 이제 삭제된 file1.txt의 매핑 블록을 가리키고 있다.
file1.txt가 삭제된 상태에서 file2.txt를 삭제할 경우, file2.txt의 시작 주소를 삭제 리스트인 trash.sys의 마지막인 blockmap(3)의 값으로 한다. 이렇게 되면 trash.sys와 file2.txt는 연결된다. 이 과정의 결과는 5c에 존재한다.
여기서 매핑 블록의 수정만 이루어지고 데이터 블록은 수정될 필요가 없다. 왜냐하면 데이터 블록은 현재 어떤 데이터가 남아있다 해도 이는 가비지 값(Garbage)이며, 다른 파일을 저장할 경우 이 데이터 블록에 새로이 값을 기입하면 되기 때문이다.
이후 블록할당부는, 매핑 블록의 값이 0인 데이터 블록을 사용하거나, 삭제 리스트에 있는 매핑 블록이 가리키는 데이터 블록을 할당할 수 있다.
도 6은 본 발명의 일 실시예에 따른 블록할당부가 파일을 저장하는 과정을 보여주는 개념도이다.
도 5c의 블록 맵의 상황에서 새로운 파일을 추가한 결과를 보여준다. 블록할당부는 블록 맵에서 매핑 블록의 값이 0인 공간을 찾을 수 있다. 이는 종래에도 사용하던 방법이다. 상기 방법 외에도 본 발명의 일 실시예에 따른 삭제 리스트를 통 해 저장 공간을 할당할 수 있다. newfile.txt는 2개의 데이터 블록을 필요로 한다. 따라서 삭제 리스트가 가리키는 연결리스트에서 2번지, 3번지를 가져와서 사용할 수 있다. 삭제 리스트인 trash.sys는 2, 3번지의 매핑 블록이 newfile.txt로 할당되었으므로 그 다음 번지인 5번지를 가리키게 된다.
도 7은 본 발명의 다른 실시예에 따른 파일 삭제의 예를 보여주는 블록도이다.
대용량의 파일인 경우 그 파일의 마지막을 표시하는 매핑 블록을 알기 위해서는 링크를 순차적으로 따라가야 하는 시간을 필요로 한다. 물론, 이렇게 매핑 블록의 링크를 따라가며 마지막 매핑 블록의 값을 찾는 것이 매핑 블록의 링크를 따라가며 값을 0으로 수정하는 것보다는 시간이 적게 소요된다.
도 7의 파일 시스템은 링크를 순차적으로 찾는데 걸리는 시간을 줄이기 위해 시작 매핑 블록의 위치 외에도 마지막 매핑 블록의 위치도 함께 유지하고 있다. file2.txt에 대해 알기 위해서 5와 11이라는 위치의 값을 가지고 있다. 5는 file2.txt가 저장된 데이터의 시작 위치를 의미하며, 11은 file2.txt가 저장된 데이터의 마지막 위치를 의미한다. 삭제 리스트인 trash.sys 역시 링크의 시작 위치인 2와 링크의 마지막 위치인 3의 값을 가지고 있다. (a)는 file2.txt가 삭제되기 전의 블록 맵의 구조이다.
한편 file2.txt를 삭제하면 도 5c에서 살펴본 바와 같이 file2.txt의 시작 위치를 trash.sys의 링크 마지막에 추가할 수 있다. 그런데, trash.sys의 링크를 따라가며 마지막을 찾을 필요가 없이, trash.sys의 3이라는 정보를 통해 바로 마지 막 블록을 알 수 있다. 그리고 blockmap(3)의 값을 file2.txt의 시작 값인 5로 저장하고, trash.sys의 마지막 매핑 블록의 값을 file2.txt의 마지막 매핑 블록의 주소인 11로 수정하면 된다. 이후 다른 파일을 삭제할 경우에도 trash.sys의 마지막 위치는 링크를 따라가지 않아도 쉽게 11임을 알 수 있다.
도 8은 본 발명의 일 실시예에 따른 삭제 리스트를 가용 저장 공간으로 환원하는 블록도이다.
삭제 리스트는 파일의 삭제를 용이하게 해주는 장점이 있다. 그러나 SD 카드, MMC 카드와 같은 착탈이 가능한(removable) 저장장치처럼 다른 시스템에서 사용될 수 있는 저장장치에 삭제 리스트가 존재하는 경우 다른 시스템에서는 이를 고려하여 블록을 할당할 수 없으므로 이런 장치에서는 삭제 리스트를 제거하는 것이 좋다. 따라서 블록할당부에서 삭제 리스트를 구성하는 매핑 블록의 값을 0으로 바꾸는 환원 과정이 필요하다.
도 8에서는 도 7의 블록 맵에 대해 블록할당부가 일정 간격을 두고 삭제 리스트의 매핑 블록을 0으로 바꾼 모습을 보여준다. 매핑 블록 2번지와 3번지가 0의 값을 가지고 있다. 그러나 삭제 리스트의 매핑 블록들이 많은 경우 이들을 모두 0으로 바꾸는 것은 시간을 많이 필요로 하므로, 일부분만을 0으로 바꿀 수 있다. 이는 시스템이 오랜 기간 유휴 상태에 있는 경우라면 전체 삭제 리스트의 매핑 블록을 변경할 수도 있다. 블록할당부가 삭제 리스트의 매핑 블록을 수정하는 시간과 수정하는 매핑 블록의 개수는 시스템의 자원과 상황에 따라 달리 설정될 수 있다.
도 9는 본 발명의 일 실시예에 따른 파일의 삭제 과정을 보여주는 순서도이 다.
파일 시스템은 어플리케이션으로부터 파일 삭제 요청을 수신한다(S102). 상기 어플리케이션에는 운영체계(Operating System)일 수 있고, 또는 사용자가 사용하는 프로그램일 수 있다. 상기 요청을 받은 파일 시스템은 블록 맵에서 상기 파일을 구성하는 매핑 블록을 검색한다(S104). 검색이 실패할 경우 파일 에러를 송신하고 종료한다(S120). 검색 결과 파일을 구성하는 매핑 블록을 찾게 되면, 상기 파일의 시작 매핑 블록의 위치를 얻는다(S110). 그리고 삭제 리스트의 마지막 매핑 블록의 위치를 얻는다(S112). 상기 삭제 리스트의 마지막 매핑 블록의 값을 삭제할 파일의 시작 매핑 블록의 주소로 설정하면(S114), 삭제 리스트에 삭제할 파일의 매핑 블록들이 링크의 형태로 논리적으로 연결된다. 이로써 파일의 삭제가 이루어지고 삭제 완료 메시지를 송신한다(S130).
도 9의 순서도는 삭제 리스트의 후단에 삭제 파일의 매핑 블록을 추가하는 것을 보여준다. 다른 실시예에 따를 때, 삭제 리스트의 전단에 삭제 파일의 매핑 블록을 추가할 수 있으며, 이러한 구현은 파일 시스템에 따라 다양하게 구현될 수 있다.
도 10은 본 발명의 일 실시예에 따른 파일의 저장 과정을 보여주는 순서도이다.
파일 시스템은 어플리케이션으로부터 파일 저장 요청을 수신한다(S202). 상기 어플리케이션에는 운영체계(Operating System)일 수 있고, 또는 사용자가 사용하는 프로그램일 수 있다. 상기 요청을 받은 파일 시스템은 블록 맵에서 삭제 리스 트를 검색한다(S204). 삭제 리스트가 없다면 블록 맵에서 사용 가능한 매핑 블록을 검색하여 저장 공간을 할당할 수 있다(S220)
한편 삭제 리스트가 존재한다면 삭제 리스트를 구성하는 매핑 블록을 파일 저장 공간으로 할당한다(S210). 이러한 할당의 일 실시예로는, 삭제 리스트를 구성하는 매핑 블록 중 상기 파일을 저장하기 위해 필요한 매핑 블록들을 연결 리스트로 반환하여, 상기 연결 리스트를 통해 순차적으로 파일을 저장할 수 있게 한다. 만약 삭제 리스트에 파일을 저장하기에 충분한 매핑 블록이 없다면, 매핑 블록을 반환하여 파일의 일부를 저장하고, 나머지 부분은 S220단계와 같이 가용 가능한 매핑 블록을 검색하여 공간을 할당할 수 있다.
이러한 공간 할당이 이루어지면, 상기 매핑 블록은 더 이상 삭제 리스트를 구성할 수 없으므로, 삭제 리스트에서 제외시킨다(S212). 삭제 리스트를 링크의 형태로 구성한 일 실시예에 따를 경우, 제외될 매핑 블록들에 대한 링크를 제거하고, 삭제 리스트는 이전에 삭제 리스트를 구성한 매핑 블록들에서 상기 파일 저장에 할당된 매핑 블록들을 제외하고 링크를 구성할 수 있다.
삭제 리스트에서 파일 저장에 할당된 매핑 블록을 제외한 후 파일 시스템은 파일을 저장하기 위한 공간이 확보되었음을 알린다(S214). 이후 할당된 공간에 파일을 저장할 수 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에 서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명을 구현함으로써 파일을 신속하게 삭제하고 저장할 수 있다.
본 발명을 구현함으로써 파일의 삭제와 저장시에 수행하는 연산을 줄일 수 있다.

Claims (17)

  1. 파일 삭제 요청을 수신하는 단계;
    파일을 구성하는 데이터 블록에 대한 정보를 저장한 매핑 블록들의 집합인 블록 맵에서 상기 파일에 대한 매핑 블록을 검색하는 단계; 및
    상기 검색 결과 얻은 매핑 블록이 구성하는 연결 리스트를 삭제 리스트에 추가하는 단계를 포함하는 파일의 효율적인 데이터 관리를 위한 방법
  2. 제 1항에 있어서
    상기 매핑 블록은 상기 파일의 데이터가 저장된 데이터 블록에 대한 정보를 가지고 있는 파일의 효율적인 데이터 관리를 위한 방법
  3. 제 1항에 있어서
    상기 삭제 리스트는 블록 맵 내의 매핑 블록들의 연결 리스트이며, 상기 매핑 블록은 이전에 삭제한 파일에 대한 매핑 블록인 파일의 효율적인 데이터 관리를 위한 방법
  4. 제 1항에 있어서
    상기 추가하는 단계는 상기 연결 리스트를 구성하는 첫 매핑 블록을 상기 삭제 리스트를 구성하는 마지막 매핑 블록의 뒤에 추가하는 단계를 포함하는 파일의 효율적인 데이터 관리를 위한 방법
  5. 제 1항에 있어서
    상기 추가하는 단계는 상기 연결 리스트를 구성하는 마지막 매핑 블록을 상기 삭제 리스트를 구성하는 첫 매핑 블록의 앞에 추가하는 단계를 포함하는 파일의 효율적인 데이터 관리를 위한 방법
  6. 제 1항에 있어서
    상기 추가하는 단계 이후에,
    상기 삭제 리스트를 구성하는 매핑 블록의 정보를 사용 가능으로 표시하여 상기 삭제 리스트에서 제외하는 단계를 더 포함하는 파일의 효율적인 데이터 관리를 위한 방법
  7. 파일 저장 공간 할당의 요청을 수신하는 단계;
    파일을 구성하는 데이터 블록에 대한 정보를 저장한 블록 맵에서 삭제 리스트를 구성하는 매핑 블록을 사용하여 저장 공간을 확보하는 단계; 및
    상기 삭제 리스트를 구성하는 매핑 블록에서 상기 저장 공간에 사용된 매핑 블록을 제외하는 단계를 포함하는 파일의 효율적인 데이터 관리를 위한 방법
  8. 제 7항에 있어서
    상기 삭제 리스트는 블록 맵 내의 매핑 블록들의 연결 리스트이며, 상기 매 핑 블록은 이전에 삭제한 파일에 대한 매핑 블록인 파일의 효율적인 데이터 관리를 위한 방법
  9. 제 7항에 있어서
    상기 저장 공간을 확보하는 단계는 상기 매핑 블록이 가리키는 데이터 블록에 파일을 저장하는 단계를 포함하는 파일의 효율적인 데이터 관리를 위한 방법
  10. 파일의 데이터가 저장된 데이터 블록;
    상기 데이터 블록에 대한 정보를 저장한 매핑 블록들의 집합인 블록 맵;
    이전에 삭제한 파일에 대한 매핑 블록들의 집합인 삭제 리스트; 및
    상기 삭제 리스트의 매핑 블록을 사용하여 파일을 저장할 공간을 할당하는 블록할당부를 포함하는 파일의 효율적인 데이터 관리를 위한 장치
  11. 제 10항에 있어서
    상기 매핑 블록은 상기 파일의 데이터가 저장된 데이터 블록에 대한 정보를 가지고 있는 파일의 효율적인 데이터 관리를 위한 장치
  12. 제 10항에 있어서
    상기 삭제 리스트는 블록 맵 내의 매핑 블록들의 연결 리스트이며, 상기 매핑 블록은 이전에 삭제한 파일에 대한 블록인 파일의 효율적인 데이터 관리를 위한 장치
  13. 제 10항에 있어서
    상기 삭제 리스트는 삭제된 파일의 연결 리스트를 구성하는 첫 매핑 블록을 상기 삭제 리스트를 구성하는 마지막 매핑 블록의 뒤에 추가하는 파일의 효율적인 데이터 관리를 위한 장치
  14. 제 10항에 있어서
    상기 삭제 리스트는 삭제된 파일의 연결 리스트를 구성하는 마지막 매핑 블록을 상기 삭제 리스트를 구성하는 첫 매핑 블록의 앞에 추가하는 파일의 효율적인 데이터 관리를 위한 장치
  15. 제 10항에 있어서,
    상기 블록할당부는 파일 저장 공간 할당의 요청을 수신하여, 상기 삭제 리스트를 구성하는 매핑 블록을 사용하여 저장 공간을 확보하고,
    상기 삭제 리스트에서 상기 저장 공간에 사용된 매핑 블록을 제외시키는 파일의 효율적인 데이터 관리를 위한 장치
  16. 제 10항에 있어서,
    상기 블록할당부는 상기 삭제 리스트를 구성하는 매핑 블록을 사용 가능한 매핑 블록으로 수정하여 삭제 리스트에서 제외시키는 파일의 효율적인 데이터 관리를 위한 장치
  17. 제 10항에 있어서
    상기 저장 공간의 할당은 상기 블록이 가리키는 데이터 블록에 파일을 저장하는 파일의 효율적인 데이터 관리를 위한 장치
KR1020040061435A 2004-08-04 2004-08-04 파일의 효율적인 데이터 관리를 위한 방법 및 장치 KR100597411B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040061435A KR100597411B1 (ko) 2004-08-04 2004-08-04 파일의 효율적인 데이터 관리를 위한 방법 및 장치
US11/193,347 US20060036663A1 (en) 2004-08-04 2005-08-01 Method and apparatus for effective data management of files
CNB2005100889295A CN100399294C (zh) 2004-08-04 2005-08-03 文件的有效数据管理的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040061435A KR100597411B1 (ko) 2004-08-04 2004-08-04 파일의 효율적인 데이터 관리를 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20060012793A KR20060012793A (ko) 2006-02-09
KR100597411B1 true KR100597411B1 (ko) 2006-07-05

Family

ID=36076869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040061435A KR100597411B1 (ko) 2004-08-04 2004-08-04 파일의 효율적인 데이터 관리를 위한 방법 및 장치

Country Status (3)

Country Link
US (1) US20060036663A1 (ko)
KR (1) KR100597411B1 (ko)
CN (1) CN100399294C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101247388B1 (ko) 2010-09-30 2013-03-25 한양대학교 산학협력단 하이브리드-매핑 ftl에서 trim 명령어를 처리하기 위한 방법 및 장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100818993B1 (ko) * 2006-05-12 2008-04-02 삼성전자주식회사 블록 가상 할당을 이용한 파일 관리 장치 및 방법
US9087004B2 (en) * 2006-06-27 2015-07-21 Ca, Inc. Maintaining a change map of a block level storage device
KR101433859B1 (ko) * 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
WO2011060603A1 (zh) * 2009-11-19 2011-05-26 青岛海信移动通信技术股份有限公司 一种txt文件的解码、阅读方法及装置
WO2011104742A1 (en) * 2010-02-23 2011-09-01 Hitachi, Ltd. Information processing device and data shredding method
US10482065B1 (en) * 2015-03-31 2019-11-19 EMC IP Holding Company LLC Managing deletion of replicas of files
CN108984422B (zh) * 2018-07-31 2023-04-14 成都傲梅科技有限公司 一种基于ntfs和fat32文件系统簇管理节省内存的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131221A (ja) * 1992-10-20 1994-05-13 Csk Corp ファイルのデータ追加・削除システム
JPH0816448A (ja) * 1994-06-24 1996-01-19 Fuji Xerox Co Ltd データ群のデータ削除方法
JPH11120044A (ja) 1997-10-17 1999-04-30 Sony Corp データ処理装置、データ処理方法、データ処理システム及び記録媒体
KR20000061779A (ko) * 1999-03-30 2000-10-25 윤종용 부할당자 메모리 관리방법
JP2001056774A (ja) 1999-08-18 2001-02-27 Victor Co Of Japan Ltd ファイル領域管理方法
KR20010031157A (ko) * 1997-10-16 2001-04-16 도브 모란 플래시 파일 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100577380B1 (ko) * 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
JP4452363B2 (ja) * 2000-02-23 2010-04-21 富士通株式会社 ファイルシステム
CN100359592C (zh) * 2002-12-13 2008-01-02 康佳集团股份有限公司 摄录设备硬盘的数据存储方法
US7272698B2 (en) * 2003-03-19 2007-09-18 Autodesk, Inc. Heap memory management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131221A (ja) * 1992-10-20 1994-05-13 Csk Corp ファイルのデータ追加・削除システム
JPH0816448A (ja) * 1994-06-24 1996-01-19 Fuji Xerox Co Ltd データ群のデータ削除方法
KR20010031157A (ko) * 1997-10-16 2001-04-16 도브 모란 플래시 파일 시스템
JPH11120044A (ja) 1997-10-17 1999-04-30 Sony Corp データ処理装置、データ処理方法、データ処理システム及び記録媒体
KR20000061779A (ko) * 1999-03-30 2000-10-25 윤종용 부할당자 메모리 관리방법
JP2001056774A (ja) 1999-08-18 2001-02-27 Victor Co Of Japan Ltd ファイル領域管理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101247388B1 (ko) 2010-09-30 2013-03-25 한양대학교 산학협력단 하이브리드-매핑 ftl에서 trim 명령어를 처리하기 위한 방법 및 장치

Also Published As

Publication number Publication date
KR20060012793A (ko) 2006-02-09
US20060036663A1 (en) 2006-02-16
CN100399294C (zh) 2008-07-02
CN1734430A (zh) 2006-02-15

Similar Documents

Publication Publication Date Title
US10430286B2 (en) Storage control device and storage system
KR100439675B1 (ko) 대용량 공유 저장장치를 위한 효율적인 스냅샷 수행방법
JP6664218B2 (ja) 効率的なデータオブジェクトストレージ及び検索
US8600939B2 (en) Writable snapshots
US9454534B2 (en) Method and apparatus for fault-tolerant memory management
KR100484147B1 (ko) 플래시 메모리 관리 방법
US7933938B2 (en) File storage system, file storing method and file searching method therein
US6957362B2 (en) Instantaneous restoration of a production copy from a snapshot copy in a data storage system
US8924664B2 (en) Logical object deletion
US20140244935A1 (en) Storage system capable of managing a plurality of snapshot families and method of snapshot family based read
CN108733306B (zh) 一种文件合并方法及装置
WO2017113213A1 (zh) 访问请求处理方法、装置及计算机系统
WO2005124530A2 (en) Method for controlling memory card and method for controlling nonvolatile semiconductor memory
US9430492B1 (en) Efficient scavenging of data and metadata file system blocks
US20060036663A1 (en) Method and apparatus for effective data management of files
JP2003030025A (ja) 動的に生成されるウエブページのための仮想ファイルシステム
US8176103B2 (en) File access method and system
CN113094374A (zh) 分布式存储和检索方法、装置及计算机设备
JPWO2007026484A1 (ja) 情報処理システム、情報処理方法、実行バイナリイメージ作成装置、実行バイナリイメージ作成方法、実行バイナリイメージ作成プログラム、実行バイナリイメージ作成プログラムを記録したコンピュータ読み取り可能な記録媒体、実行バイナリイメージ実行装置、実行バイナリイメージ実行方法、実行バイナリイメージ実行プログラム及び実行バイナリイメージ実行プログラムを記録したコンピュータ読み取り可能な記録媒体
JPWO2007026484A6 (ja) 実行バイナリイメージの作成及び実行を行う装置、方法、プログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体
US10776342B2 (en) Systems and methods for recovering lost clusters from a mounted volume
US10990486B2 (en) Data storage system with repair of mid-level mapping blocks of internal file system
US10235373B2 (en) Hash-based file system
KR100704621B1 (ko) 이동형 저장 장치의 데이터 무결성을 보장하는 방법 및 장치
KR100818993B1 (ko) 블록 가상 할당을 이용한 파일 관리 장치 및 방법

Legal Events

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

Payment date: 20120531

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130531

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee