KR20170043593A - 파일 액세스 방법 및 장치, 그리고 저장 시스템 - Google Patents

파일 액세스 방법 및 장치, 그리고 저장 시스템 Download PDF

Info

Publication number
KR20170043593A
KR20170043593A KR1020177007217A KR20177007217A KR20170043593A KR 20170043593 A KR20170043593 A KR 20170043593A KR 1020177007217 A KR1020177007217 A KR 1020177007217A KR 20177007217 A KR20177007217 A KR 20177007217A KR 20170043593 A KR20170043593 A KR 20170043593A
Authority
KR
South Korea
Prior art keywords
address space
file
virtual address
physical address
target file
Prior art date
Application number
KR1020177007217A
Other languages
English (en)
Other versions
KR101909966B1 (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 KR20170043593A publication Critical patent/KR20170043593A/ko
Application granted granted Critical
Publication of KR101909966B1 publication Critical patent/KR101909966B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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/13File access structures, e.g. distributed indices
    • 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/061Improving I/O performance
    • 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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

파일 액세스 방법 및 장치, 그리고 저장 시스템이 제공된다. 상기 파일 액세스 방법은, 프로세스로부터 파일 액세스 요청을 수신하는 단계 - 상기 파일 액세스 요청은 파일 식별자를 포함함 -; 미리 설정된 제1 가상 주소 공간 및 상기 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라 상기 제1 물리 주소 공간을 액세스하는 단계 - 상기 제1 물리 주소 공간은 파일 시스템을 저장함 -; 타깃 파일의 파일 식별자에 따라 상기 제1 물리 주소 공간으로부터 상기 타깃 파일의 색인 노드를 취득하는 단계; 상기 타깃 파일의, 상기 색인 노드에 포함된, 파일 페이지 테이블 정보에 따라 상기 타깃 파일의 파일 페이지 테이블을 취득하는 단계 - 상기 파일 페이지 테이블은 상기 제1 물리 주소 공간 내의 제2 물리 주소 공간을 기록하고, 상기 타깃 파일의 데이터 페이지는 상기 제2 물리 주소 공간에 저장됨 -; 및 상기 제2 물리 주소 공간에 따라 상기 타깃 파일을 액세스하는 단계를 포함한다. 따라서 파일 액세스 동안의 소프트웨어 실행 오버헤드를 감소시킬 수 있고, 파일 액세스 속도를 증가시킬 수 있다.

Description

파일 액세스 방법, 기기 및 저장 시스템 {FILE ACCESS METHOD, DEVICE AND STORAGE SYSTEM}
본 발명의 실시예는 컴퓨터 분야에 관한 것으로, 더욱 구체적으로는, 파일 액세스 방법 및 장치, 그리고 저장 시스템에 관한 것이다.
종래 기술에서, 파일 시스템은 커널 공간에서만 액세스될 수 있다. 프로세스가 파일 시스템 중의 타깃 파일을 액세스해야 하는 경우, 시스템 호출이 수행되어야 한다. 사용자 공간에서 커널 공간으로의 전환에 의해 타깃 파일을 액세스하는 것은, 파일 액세스 속도에 영향을 미치고, 비교적 높은 소프트웨어 실행 오버헤드를 야기한다.
따라서, 파일 액세스를 사용자 공간에서 직접 구현할 수 있는 방법이 제안되어야 한다.
본 발명의 실시예는, 비교적 낮은 소프트웨어 실행 오버헤드(software running overhead)를 야기하고, 사용자 영역에서 파일 액세스를 구현할 수 있는, 파일 액세스 방법 및 장치, 그리고 저장 시스템을 제공한다.
제1 측면에 따르면, 파일 액세스 방법이 제공되며, 상기 파일 액세스 방법은,
프로세스로부터 파일 액세스 요청을 수신하는 단계 - 상기 파일 액세스 요청은 파일 식별자를 포함하고, 상기 파일 식별자는 액세스될 타깃 파일을 지시하는 데 사용됨 -;
미리 설정된 제1 가상 주소 공간 및 상기 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라 상기 제1 물리 주소 공간을 액세스하는 단계 - 상기 제1 가상 주소 공간은 운영체제에서의 사용자 공간의 일부이고, 상기 제1 물리 주소 공간은 파일 시스템을 저장하고 메모리 공간의 일부임 -;
상기 타깃 파일의 파일 식별자에 따라 상기 제1 물리 주소 공간으로부터 상기 타깃 파일의 색인 노드를 취득하는 단계 - 상기 색인 노드는 상기 타깃 파일의 파일 페이지 테이블 정보를 포함함 -;
상기 색인 노드에 포함된, 상기 타깃 파일의 상기 파일 페이지 테이블 정보에 따라 상기 타깃 파일의 파일 페이지 테이블을 취득하는 단계 - 상기 파일 페이지 테이블은 상기 제1 물리 주소 공간 내의 제2 물리 주소 공간을 기록하고, 상기 타깃 파일의 데이터 페이지는 상기 제2 물리 주소 공간에 저장되고, 상기 타깃 파일의 데이터 페이지는 파일 데이터를 저장하는 데 사용됨 -; 및
상기 제2 물리 주소 공간에 따라 상기 타깃 파일을 액세스하는 단계를 포함한다.
제1 측면을 참조하여, 제1 측면의 제1 가능한 구현 방식에서, 상기 제2 물리 주소 공간에 따라 상기 타깃 파일을 액세스하는 단계는,
상기 타깃 파일에 제2 가상 주소 공간을 할당하는 단계 - 상기 제2 가상 주소 공간은 상기 운영체제에서의 상기 사용자 공간 중, 상기 프로세스에 할당된, 사유 공간(private space)의 일부이고, 상기 제2 가상 주소 공간은 연속한 주소 공간임 -;
상기 제2 물리 주소 공간과 상기 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립하는 단계; 및
상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라, 상기 제2 물리 주소 공간 중의 상기 타깃 파일을 액세스하는 단계를 포함한다.
제1 측면의 제1 가능한 구현 방식을 참조하여, 제1 측면의 제2 가능한 구현 방식에서, 상기 제2 물리 주소 공간과 상기 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립하는 단계는,
상기 타깃 파일의 파일 페이지 테이블을 상기 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크시킴으로써 상기 제2 매핑 관계를 확립하는 단계를 포함한다.
제1 측면의 제1 또는 제2 가능한 구현 방식을 참조하여, 제1 측면의 제3 가능한 구현 방식에서, 상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일을 액세스하는 단계는,
상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 내의 상기 타깃 파일에 대해 판독 조작을 수행하는 단계; 및
상기 판독 조작을 통해 판독될 데이터에 대응하는 가상 주소가 상기 타깃 파일에 대응하는 가상 주소 공간에 포함되지 않는 경우, 상기 판독 조작을 종료하는 단계를 포함한다.
제1 측면의 제1 또는 제2 가능한 구현 방식을 참조하여, 제1 측면의 제4 가능한 구현 방식에서, 상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 내의 상기 타깃 파일을 액세스하는 단계는,
상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일에 대해 기록 조작을 수행하는 단계; 및
상기 기록 조작을 통해 기록될 데이터에 대응하는 가상 주소가 상기 제2 가상 주소 공간에 포함되지 않는 경우, 상기 기록 조작을 종료하는 단계를 포함한다.
제1 측면, 또는 제1 측면의 제1 내지 제4 가능한 구현 방식 중 어느 하나를 참조하여, 제1 측면의 제5 가능한 구현 방식에서, 상기 파일 액세스 방법은,
커널 공간에, 상기 제1 가상 주소 공간과 상기 제1 물리 주소 공간 사이의 상기 제1 매핑 관계를 확립하고, 상기 커널 공간에 대응하는 프로세스 페이지 테이블에, 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 저장하는 단계를 더 포함하고;
상기 프로세스로부터 파일 액세스 요청을 수신하는 단계 이후에, 상기 파일 액세스 방법은,
상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 상기 제1 매핑 관계를 기록하지 않는 것으로 결정하는 단계; 및
상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에, 상기 커널 공간에 저장되는, 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 링크하는 단계를 더 포함한다.
제2 측면에 따르면, 파일 액세스 장치가 제공되며, 상기 파일 액세스 장치는, 프로세스로부터 파일 액세스 요청을 수신하도록 구성된 수신 모듈 - 상기 파일 액세스 요청은 파일 식별자를 포함하고, 상기 파일 식별자는 액세스될 타깃 파일을 지시하는 데 사용됨 -;
미리 설정된 제1 가상 주소 공간 및 상기 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라, 상기 제1 물리 주소 공간을 액세스하도록 구성된 제1 액세스 모듈 - 상기 제1 가상 주소 공간은 운영체제에서의 사용자 공간의 일부이고, 상기 제1 물리 주소 공간은 파일 시스템을 저장하고 메모리 공간의 일부임 -;
상기 타깃 파일의 파일 식별자에 따라 상기 제1 물리 주소 공간으로부터 상기 타깃 파일의 색인 노드를 취득하도록 구성되고 - 상기 색인 노드는 상기 타깃 파일의 파일 페이지 테이블 정보를 포함함 -; 추가로 상기 타깃 파일의, 상기 색인 노드에 포함된, 상기 파일 페이지 테이블 정보에 따라 상기 타깃 파일의 파일 페이지 테이블을 취득하도록 구성된 취득 모듈 - 상기 파일 페이지 테이블은 상기 제1 물리 주소 공간 내의 제2 물리 주소 공간을 기록하고, 상기 타깃 파일의 데이터 페이지는 상기 제2 물리 주소 공간에 저장되고, 상기 타깃 파일의 데이터 페이지는 파일 데이터를 저장하는 데 사용됨 -; 및
상기 제3 취득 모듈에 의해 취득된 상기 파일 페이지 테이블에 의해 지시되는 상기 제2 물리 주소 공간에 따라 상기 타깃 파일을 액세스하도록 구성된 제2 액세스 모듈을 포함한다.
제2 측면을 참조하여, 제2 측면의 제1 가능한 구현 방식에서, 상기 제2 액세스 모듈은,
상기 타깃 파일에 제2 가상 주소 공간을 할당하도록 구성된 할당 유닛 - 상기 제2 가상 주소 공간은 상기 운영체제에서의 상기 사용자 공간 중, 상기 프로세스에 할당된, 사유 공간의 일부이고, 상기 제2 가상 주소 공간은 연속한 주소 공간임 -;
상기 제2 물리 주소 공간과 상기 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립하도록 구성된 확립 유닛; 및
상기 할당 유닛에 의해 할당되는 상기 제2 가상 주소 공간 및 상기 확립 유닛에 의해 확립되는 상기 제2 매핑 관계에 따라, 상기 제2 물리 주소 공간 중의 상기 타깃 파일을 액세스하도록 구성된 액세스 유닛을 포함한다.
제2 측면의 제1 가능한 구현 방식을 참조하여, 제2 측면의 제2 가능한 구현 방식에서, 상기 확립 유닛은 구체적으로,
상기 타깃 파일의 파일 페이지 테이블을 상기 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크시킴으로써 상기 제2 매핑 관계를 확립하도록 구성된다.
제2 측면의 제1 또는 제2 가능한 구현 방식을 참조하여, 제2 측면의 제3 가능한 구현 방식에서, 상기 할당 유닛에 의해 할당되는 상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
상기 액세스 유닛은 구체적으로,
상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일에 대해 판독 조작을 수행하고;
상기 판독 조작을 통해 판독될 데이터에 대응하는 가상 주소가 상기 타깃 파일에 대응하는 가상 주소 공간에 포함되지 않는 경우, 상기 판독 조작을 종료하도록 구성된다.
제2 측면의 제1 또는 제2 가능한 구현 방식을 참조하여, 제2 측면의 제4 가능한 구현 방식에서, 상기 할당 유닛에 의해 할당되는 상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
상기 액세스 유닛은 구체적으로,
상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일에 대해 기록 조작을 수행하고;
상기 기록 조작을 통해 기록될 데이터에 대응하는 가상 주소가 상기 제2 가상 주소 공간에 포함되지 않는 경우, 상기 기록 조작을 종료하도록 구성된다.
제2 측면, 또는 제2 측면의 제1 내지 제4 가능한 구현 방식을 참조하여, 제2 측면의 제5 가능한 구현 방식에서, 상기 파일 액세스 장치는,
커널 공간에, 상기 제1 가상 주소 공간과 상기 제1 물리 주소 공간 사이의 상기 제1 매핑 관계를 확립하고, 상기 커널 공간에 대응하는 프로세스 페이지 테이블에, 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 저장하도록 구성된 확립 모듈;
상기 수신 모듈이 상기 프로세스로부터 상기 파일 액세스 요청을 수신한 이후에, 상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 상기 제1 매핑 관계를 기록하지 않는 것으로 결정하도록 구성된 결정 모듈; 및
상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에, 상기 커널 공간에 저장되는, 상기 확립 모듈에 의해 확립되는 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 링크하도록 구성된 링크 모듈을 더 포함한다.
제3 측면에 따르면, 저장 시스템이 제공되며, 상기 저장 시스템은,
파일 및 프로그램을 저장하도록 구성된 메모리; 및
프로세서를 포함하고,
상기 프로세서는 상기 프로그램을 실행하여,
프로세스로부터 파일 액세스 요청을 수신하는 단계 - 상기 파일 액세스 요청은 파일 식별자를 포함하고, 상기 파일 식별자는 액세스될 타깃 파일을 지시하는 데 사용됨 -;
미리 설정된 제1 가상 주소 공간 및 상기 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라 상기 제1 물리 주소 공간을 액세스하는 단계 - 상기 제1 가상 주소 공간은 운영체제에서의 사용자 공간의 일부이고, 상기 제1 물리 주소 공간은 파일 시스템을 저장하고 메모리 공간의 일부임 -;
상기 타깃 파일의 파일 식별자에 따라 상기 제1 물리 주소 공간으로부터 상기 타깃 파일의 색인 노드를 취득하는 단계 - 상기 색인 노드는 상기 타깃 파일의 파일 페이지 테이블 정보를 포함함 -;
상기 색인 노드에 포함된, 상기 타깃 파일의 상기 파일 페이지 테이블 정보에 따라 상기 타깃 파일의 파일 페이지 테이블을 취득하는 단계 - 상기 파일 페이지 테이블은 상기 제1 물리 주소 공간 내의 제2 물리 주소 공간을 기록하고, 상기 타깃 파일의 데이터 페이지는 상기 제2 물리 주소 공간에 저장되고, 상기 타깃 파일의 데이터 페이지는 파일 데이터를 저장하는 데 사용됨 -; 및
상기 제2 물리 주소 공간에 따라 상기 타깃 파일을 액세스하는 단계를 구현하도록 구성된다.
제3 측면을 참조하여, 제3 측면의 제1 가능한 구현 방식에서, 상기 프로세서는 구체적으로,
상기 타깃 파일에 제2 가상 주소 공간을 할당하고 - 상기 제2 가상 주소 공간은 상기 프로세스에 할당된, 상기 운영체제에서의 상기 사용자 공간 중, 사유 공간의 일부이고, 상기 제2 가상 주소 공간은 연속한 주소 공간임 -;
상기 제2 물리 주소 공간과 상기 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립하고;
상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일을 액세스하도록 구성된다.
제3 측면의 제1 가능한 구현 방식을 참조하여, 제3 측면의 제2 가능한 구현 방식에서, 상기 프로세서는 구체적으로, 상기 타깃 파일의 파일 페이지 테이블을 상기 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크시킴으로써 상기 제2 매핑 관계를 확립하도록 구성된다.
제3 측면의 제1 또는 제2 가능한 구현 방식을 참조하여, 제3 측면의 제3 가능한 구현 방식에서, 상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
상기 프로세서는 구체적으로,
상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일에 대해 판독 조작을 수행하고;
상기 판독 조작을 통해 판독될 데이터에 대응하는 가상 주소가 상기 타깃 파일에 대응하는 가상 주소 공간에 포함되지 않는 경우, 상기 판독 조작을 종료하도록 구성된다.
제3 측면의 제1 또는 제2 가능한 구현 방식을 참조하여, 제3 측면의 제4 가능한 구현 방식에서, 상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
상기 프로세서는 구체적으로,
상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일에 대해 기록 조작을 수행하고;
상기 기록 조작을 통해 기록될 데이터에 대응하는 가상 주소가 상기 제2 가상 주소 공간에 포함되지 않는 경우, 상기 기록 조작을 종료하도록 구성된다.
제3 측면, 또는 제3 측면의 제1 내지 제4 가능한 구현 방식 중 어느 하나를 참조하여, 제3 측면의 제5 가능한 구현 방식에서, 상기 프로세서는 추가로,
커널 공간에, 상기 제1 가상 주소 공간과 상기 제1 물리 주소 공간 사이의 상기 제1 매핑 관계를 확립하고, 상기 커널 공간에 대응하는 프로세스 페이지 테이블에, 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 저장하고;
상기 프로세스로부터 파일 액세스 요청을 수신한 후에, 상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 상기 제1 매핑 관계를 기록하지 않는 것으로 결정하고;
상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에, 상기 커널 공간에 저장되는, 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 링크하도록 구성된다.
본 발명의 실시예에서 제공되는 파일 액세스 방법 및 장치, 그리고 저장 시스템에서는, 사용자 공간 중의 제1 가상 주소 공간과 파일 시스템을 저장하는 제1 물리 주소 공간 사이의 매핑 관계에 따라, 제1 가상 주소 공간을 사용하여 제1 물리 주소 공간을 액세스할 수 있으므로, 파일 시스템 중의 타깃 파일을 액세스할 수 있다. 본 발명의 실시예에서 제공되는 파일 액세스 방법에서는, 직접 사용자 공간에서 파일 액세스를 구현하고, 종래기술에서의 파일 액세스 중의 빈번한 시스템 호출을 회피하므로, 파일 액세스 동안의 소프트웨어 실행 오버헤드를 효과적으로 감소시킬 수 있고, 파일 액세스 속도를 증가시킬 수 있다.
본 발명의 실시예에서의 기술적 방안을 더욱 명확하게 설명하기 위해, 이하에 실시예의 설명에 필요한 첨부도면을 간략하게 소개한다.
도 1a는 본 발명의 실시예에 따른 운영체제에서의 가상 주소 공간의 개략도이다.
도 1b는 본 발명의 실시예에 따른 운영체제에서의 가상 주소 공간의 다른 계략도이다.
도 2는 본 발명의 실시예에 따른 파일 액세스 방법의 개략 흐름도이다.
도 3은 본 발명의 실시예에 따른 파일 페이지 테이블의 개략도이다.
도 4는 본 발명의 실시예에 따른 다른 파일 액세스 방법의 개략 흐름도이다.
도 5는 본 발명의 실시예에 따른 또 다른 파일 액세스 방법의 개략 흐름도이다.
도 6은 본 발명의 실시예에 따른 파일 액세스 장치의 개략 구성 블록도이다.
도 7은 본 발명의 실시예에 따른 다른 파일 액세스 장치의 개략 구성 블록도이다.
도 8은 본 발명의 실시예에 따른 또 다른 파일 액세스 장치의 개략 구성 블록도이다.
도 9는 본 발명의 실시예에 따른 저장 시스템의 개략 구성 블록도이다.
이하에 본 발명의 실시예에서의 첨부도면을 참조하여 본 발명의 실시예에서의 기술적 방안을 명확하게 설명한다. 명백히, 설명하는 실시예는 본 발명의 실시예의 전부가 아니라 일부이다.
본 발명의 실시예를 이해하기 쉽도록, 여기에 일부 관련 개념을 먼저 설명한다:
1. 파일 시스템:
운영체제에서, 파일 데이터를 저장하고 관리하는데 사용되는 소프트웨어를 파일 시스템이라고 한다. 파일 시스템은 데이터를 저장 및 조직하고(organize), 파일 액세스 정책을 정의하는 데 사용된다. 파일 시스템 중의 데이터는 메타데이터(metadata)와 데이터로 분류되며, 데이터는 일반 파일 중의 실제 데이터를 나타내고, 메타데이터는 파일의 특성을 설명하는 데 사용되는 시스템 데이터를 나타낸다. 메타데이터는, 예를 들어, 액세스 권한(access permission), 파일 소유자, 및 파일 데이터 블록의 배포 정보 "inode"를 포함할 수 있다. 사용자가 파일을 조작해야 하는 경우, 사용자는 먼저 파일의 메타데이터를 취득한 다음, 파일의 위치를 알고 파일 콘텐츠 또는 관련 파일 속성을 취득할 수 있다. 메타데이터는 데이터에 대한 데이터이고, 파일 시스템 필드에서, 각각의 파일은 하나의 메타데이터 구조체(metadata structure)에 대응한다. 이 구조체는 파일 생성, 파일 수정 및 파일 액세스에 대한 시각, 파일 소유자, 권한(permission) 및 매핑 정보와 같은 파일 속성(file attribute)을 포함한다.
파일 시스템에는 세 가지 중요한 데이터 구조: file, inode, 및 dentry가 있다. 이하에 세 가지 중요한 데이터 구조를 간략하게 설명한다.
(1) 파일 열기 객체 "file"
file 구조는 열린 파일 객체(open file object)(시스템에서, 각각의 열린 파일은 커널 공간 내의 하나의 file 구조에 대응함)을 나타내며, 파일을 열 때 커널에 의해 생성되고 파일을 닫을 때 해제된다.
(2) 파일 색인 노드 객체 "inode"
커널에서, 파일은 file 구조와 다른 inode 구조를 사용하여 표현된다. file 구조는 열린 파일의 파일 설명자를 나타낸다. 하나의 파일에 대해, 파일을 열 때마다 파일 설명자를 나타내는 다른 file 구조가 있을 수 있지만, 모든 file 구조는 유일한 inode를 가리킨다.
(3) 파일 디렉토리 객체 "dentry"
프로세스에 의해 검색된 각 경로명의 구성요소에 대해, 커널은 dentry 구조를 생성한다. 예를 들어, 경로 이름 /dev/test가 검색될 때, 커널은 루트 디렉토리(root directory) "/"를 위해 레벨 1 dentry 구조를 생성하고 "dev"를 위해 레벨 2 dentry 구조를 생성하고, test를 위해 레벨 3 dentry 구조를 생성한다.
종래의 파일 시스템은 커널 모드로 실행되고, 사용자 프로세스가 파일 시스템 중의 파일을 액세스해야 하는 경우, 파일 액세스를 구현하기 위해 시스템 호출이 수행되어야 한다.
2. 시스템 호출:
시스템 호출은 커널 공간과 사용자 공간 사이에서 널리 사용되는 통신 수단이다. 시스템 호출은 운영체제가 사용자 프로그램을 호출하기 위해 제공하는 "특수 인터페이스(special interface)" 그룹으로 간주 될 수 있다. 사용자 프로그램은 이 "특수 인터페이스" 그룹을 사용하여 운영체제의 커널이 제공하는 시스템 서비스를 취득할 수 있다. 예를 들어, 사용자는, 파일 시스템과 관련된 시스템 호출에 의해, 시스템에 파일을 열거나, 파일을 닫거나 파일 판독/기록(read/write)을 하도록 요청할 수 있다. 시스템 호출에 의해 사용자 공간에 시스템 서비스를 제공하는 근본 원인은 시스템 "보호"를 수행하는 것이다. 리눅스 실행 공간(Linux running space)은 커널 공간과 사용자 공간으로 나뉘며, 커널 공간과 사용자 공간은 서로 다른 우선순위 레벨로 운영되며 논리적으로 분리되어 있다. 일반적으로 프로세스(사용자 공간에서 실행)는 커널 데이터를 액세스하거나 커널 기능을 사용할 수 없지만, 오직 사용자 데이터를 조작하거나 사용자 기능을 호출할 수 있다. 프로세스가 커널 데이터를 액세스해야 하는 경우(예: 파일 액세스), 프로세스는 사용자를 위해 시스템이 제공하는 "특수 인터페이스"를 사용하여, 즉 시스템 호출에 의해, 커널 데이터를 액세스한다. 구체적으로, 프로세스의 요청은 커널에 전송되고, 요청의 처리가 커널 공간에서 완료된 후, 처리 결과가 사용자 공간으로 회신된다(프로세스로 복귀하는 것에 상당함).
3. 사용자 공간 및 커널 공간:
리눅스 실행 공간은 커널 공간(커널 모드라고도 함)과 사용자 공간(사용자 모드라고도 함)로 나뉘며, 커널 공간과 사용자 공간은 서로 다른 우선순위 레벨로 실행되고 논리적으로 분리되어 있다.
종래 기술에서, 운영체제에서의 가상 주소 공간은 두 부분, 즉 사용자 공간(그 실행 환경은 사용자 모드라고 할 수 있음) 및 커널 공간(그 실행 환경은 커널 모드라고 할 수 있음)으로 나뉜다. 사용자 공간은 프로세스 전용의 가상 주소 공간이며, 프로세스는 사용자 공간에서 실행된다. 커널 공간은 특별히 시스템 자원을 관리하는 데 사용된다. 프로세스가 자원에 액세스해야 하는 경우(예: 파일 액세스), 프로세스는 시스템 호출에 의해 자원에 대한 커널에 적용해야 한다. 프로세스가 파일을 액세스하기 위해 요청하는 경우 빈번한 시스템 호출을 피하기 위해, 본 발명은, 파일 액세스 동안에 소프트웨어 실행 오버헤드를 효과적으로 감소시킬 수 있는, 파일 액세스 방법 및 장치를 제공한다.
본 발명의 본 실시예에서 제공되는 기술 방안을 이해하기 쉽도록, 도 1a 및 도 1b를 참조하여 본 발명의 실시예의 애플리케이션 시나리오를 이하에 설명한다.
도 1a에 도시된 바와 같이, 운영체제에서의 가상 주소 공간(110)은 커널 공간(120)과 사용자 공간(130)을 포함하며, 사용자 공간(130)은 구체적으로 공유 프로세스 공간(shared process space)과 사유 프로세스 공간(private process space)을 포함한다. 도 1a에 도시된 제1 가상 주소 공간(140), 사용자 공간(130) 중의, 모든 프로세스에 의해 공유되는 공간이다. 즉, 사용자 공간(130)에서는, 모든 프로세스가 제1 가상 주소 공간(140)에 액세스하기 위한 권한을 갖는다. 도 1a에 도시된 사유 프로세스 공간(150)은, 사용자 공간(130) 중의, 각각의 프로세스에 사유인 공간이다. 도 1a에 도시된 바와 같이, 제1 가상 주소 공간(140)과 제1 물리 주소 공간(160)(도 1a에서 점선으로 도시됨) 사이에는 제1 매핑 관계가 존재한다. 제1 물리 주소 공간(160)은 파일 시스템을 저장하는 저장 영역에 대응하는, 물리 메모리 공간 중의, 물리 주소 공간이다. 예를 들어, 파일 시스템이 타깃 파일을 포함하면, 제1 물리 주소 공간(160)은 타깃 파일을 저장하는 데 사용되는 제2 물리 주소 공간(170)(도 1a에 도시됨)을 포함한다.
구체적으로, 제1 가상 주소 공간(140)에 대응하는 프로세스 페이지 테이블은 제1 매핑 관계를 기록한다. 제1 매핑 관계에 기초하여, 제1 물리 주소 공간이 제1 가상 주소 공간을 사용하여 액세스될 수 있으므로, 파일 시스템 중의 파일이 액세스될 수 있음을 알아야 한다. 예를 들어, 프로세스가 도 1a에 도시된 타깃 파일을 액세스해야 하면, 제2 물리 주소 공간(170) 중의 타깃 파일은 타깃 파일에 대응하는 가상 주소 공간(즉, 제2 물리 주소 공간(170)의, 제1 가상 주소 공간(140) 중의, 매핑된 주소 공간)에 따라 액세스될 수 있다. 따라서, 파일 시스템 중의 타깃 파일을 액세스해야 하는 임의의 프로세스는 제1 가상 주소 공간에 액세스함으로써 타깃 파일에의 액세스를 구현할 수 있으며, 이는 종래기술에서의 빈번한 시스템 호출을 피할 수 있다.
선택적으로, 도 1의 사유 프로세스 공간(150)은 두 부분: 파일 액세스 공간(151)과 프로세스 활동 공간(process activity space)(152)을 포함할 수 있다. 파일 액세스 공간(151)은 열릴 타깃 파일(상세한 것은 후술함)을 매핑하는 데 사용되고, 프로세스 활동 공간(152)은 공통 프로세스 활동이 속하는 프로세스이다.
선택적으로, 제1 가상 주소 공간(140)과 제1 물리 주소 공간(160) 사이의 제1 매핑 관계는, 제1 물리 주소 공간(160)에 대한 액세스를 용이하게 할 수 있는 선형 매핑 관계일 수 있다.
이해해야 할 것은, 도 1a에 개략 도시된 사유 프로세스 공간(150)이 임의의 프로세스의 사유 공간을 나타낼 수 있지만, 도 1a에 도시된 개략 블록도는 본 발명의 본 실시예에 특정한 제한을 두지 않는다는 것이다.
도 1a의 제1 물리 주소 공간(160)은 물리 메모리에, 파일 시스템을 저장하는 데 사용되는 메모리 영역에 대응하는 물리 주소 공간이다. 또한, 도 1b에 도시된 바와 같이, 파일 시스템을 저장하는 데 사용되는 제1 물리 주소 공간(160)은 메타데이터 및 파일 시스템의 데이터를 저장하기 위해 사용되는 제1 물리 메모리 영역(161)과, 파일 시스템 실행 중에 생성된 버퍼링된(buffered) 데이터를 저장한다. 파일 시스템 실행 중에 생성된 버퍼링된 데이터는 구체적으로, 파일 객체 "file", 파일 색인 노드 객체 "inode", 파일 디렉토리 객체 "dentry" 및 파일 설명자(핸들(handle)이라고도 함)과 같은, 프로세스에 의해 파일 액세스 중에 생성된 데이터를 나타낸다. 이해해야 할 것은, 타깃 파일을 저장하는 데 사용되고 제1 물리 주소 공간(160)에 있는 제2 물리 주소 공간(170)은 제1 물리 메모리 영역(161)(도 1b에 도시됨)에 있다는 것이다. 선택적으로, 제1 물리 메모리 영역(161) 및 제2 물리 메모리 영역(162)은 물리 주소 면에서 연속적이지 않을 수 있다.
도 1b에 도시된 바와 같이, 제1 가상 주소 공간(140)과 제1 물리 주소 공간(160) 사이에는 제1 매핑 관계가 존재한다. 따라서, 제1 물리 주소 공간(160)의 분할 통해 취득된 두 영역에 대응하여, 제1 가상 주소 공간(140)도 상응하게 두 영역: 제1 영역(141)과 제2 영역(142)을 포함할 수 있다. 제1 물리 메모리 영역(161)의, 제1 가상 주소 공간(140)에서의 매핑 영역은 제1 영역(141)이고, 제2 물리 메모리 영역(162)의, 제1 가상 주소 공간(140)에서의 매핑 영역은 제2 영역(142)이다. 이해해야 할 것은, 파일 시스템의 메타데이터 및 데이터, 그리고 파일의 실행 중에 생성된 버퍼링된 데이터에 액세스하기 위해, 프로세스는 제1 영역(141)과 제2 영역(162)을 액세스함으로써 제1 물리 메모리 영역(161)과 제2 물리 메모리 영역(162)에 각각 액세스할 수 있다는 것이다. 이해해야 할 것은, 타깃 파일을 저장하는 제2 물리 주소 공간(170)의, 제1 가상 주소 공간(140)에서의 매핑된 주소 공간은 제1 영역(141)에 있다는 것이다.
이해할 수 있는 것은, 제1 물리 주소 공간(160)의 두 영역으로 분할은 예일 뿐이라는 것이다. 또는, 실제 애플리케이션에서, 제1 물리 주소 공간(160)은 실제 요구에 따라 다수의 영역으로 분할될 수 있으며, 당연히, 실제 애플리케이션에서, 제1 가상 주소 공간(140)도 또한 실제 요구에 따라 다수의 영역으로 분할될 수 있으며, 여기서는 이를 한정하지 않는다.
본 발명의 실시예에서, 한 가지 경우에, 제1 물리 메모리 영역(161) 및 제2 물리 메모리 영역(162)은 모두, 상 변화 메모리(Phase Change Memory, PCM), 가변 저항성 랜덤 액세스 메모리(Resistive RAM, ReRAM), 자기 랜덤 액세스 메모리(Magnetic Random Access Memory, MRAM), 또는 DRAM과 유사한 판독/기록 기능을 갖는 액세스를 위해 메모리 버스에 장착될 수 있는 기타 비휘발성 저장 매체와 같은, 비휘발성 고체 메모리(Non-Violate Memory, NVM) 매체를 사용할 수 있다. 다른 경우에, 제1 물리 메모리 영역(161)은 비휘발성 저장 매체, 구체적으로는 내마모성(abrasion resistance)을 갖는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM) 매체를 사용할 수 있고; 제2 물리 메모리 영역(162)은 휘발성 저장 매체를 사용할 수 있다.
본 발명의 실시예에서의 파일 액세스 방법(200)은 제어기 또는 중앙 처리 유닛(Central Processing Unit, CPU)에 의해 실행될 수 있다.
도 2 내지 도 5를 참조하여 본 발명의 실시예에 따른 파일 액세스 방법을 이하에 상세하게 설명한다. 도 2는 본 발명의 실시예에 따른 파일 액세스 방법의 개략적 흐름도이다. 도 2에서, 프로세스의 파일 액세스 요청이 설명을 위한 예로 사용된다. 이해해야 할 것은, 파일 액세스 방법(200)은, 프로세스가 파일을 액세스하기 위해 요청하는 임의의 시나리오에 적용될 수 있다는 것이다. 도 2에 도시된 바와 같이, 파일 액세스 방법(200)은 다음 단계를 포함한다:
S210: 프로세스로부터 파일 액세스 요청을 수신하며, 파일 액세스 요청은 파일 식별자를 포함하고, 파일 식별자는 액세스될 타깃 파일을 지시하는 데 사용된다.
구체적으로, 파일 식별자는 타깃 파일의 저장 경로, 타깃 파일의 파일 유형(디렉토리 파일 또는 데이터 파일) 등을 포함할 수 있다. 이해해야 할 것은, 파일 액세스 요청은 구체적으로 파일 열기 요청, 파일 일기 요청, 파일 기록 요청, 또는 기타 액세스 요청일 수 있다.
S220: 미리 설정된 제1 가상 주소 공간 및 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라 제1 물리 주소 공간을 액세스하며, 제1 가상 주소 공간은 운영체제에서의 사용자 공간의 일부이고, 제1 물리 주소 공간은 파일 시스템을 저장하고 메모리 공간의 일부이다.
선택적으로, 본 발명의 본 실시예에서, 미리 설정된 제1 가상 주소 공간 및 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라 제1 물리 주소 공간을 액세스하는 단계 S220 - 제1 물리 주소 공간은 파일 시스템을 저장함 -은 다음 단계를 포함한다:
S221: 파일 액세스 요청에 따라 제1 가상 주소 공간을 액세스한다.
S222: 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 제1 가상 주소 공간과 파일 시스템을 저장하는 제1 물리 주소 공간 사이의 제1 매핑 관계를 기록하는 것으로 결정한다.
S223: 제1 가상 주소 공간 및 제1 매핑 관계에 따라 제1 물리 주소 공간을 액세스한다.
또한, 제1 매핑 관계는 선형 매핑 관계이다. 따라서, 제1 물리 주소 공간의 시작 주소는 제1 가상 주소 공간의 시작 주소에 대응하며, 후속하는 주소에 대해서도 이와 같이 유추할 수 있으며, 이는 제1 물리 주소 공간에 대한 액세스를 용이하게 한다.
S230: 타깃 파일의 파일 식별자에 따라 제1 물리 주소 공간으로부터 타깃 파일의 색인 노드를 취득하며, 색인 노드는 타깃 파일의 파일 페이지 테이블 정보를 포함한다.
선택적으로, 본 발명의 본 실시예에서, 타깃 파일의 파일 식별자에 따라 제1 물리 주소 공간으로부터 타깃 파일의 색인 노드를 취득하는 단계 S230은 다음 단계를 포함한다:
S231: 타깃 파일의 파일 식별자에 따라, 제1 물리 주소 공간이 파일 식별자에 의해 지시되는 액세스될 타깃 파일을 저장하는지를 판정한다.
S232: 제1 물리 주소 공간이 파일 식별자에 의해 지시되는 액세스될 타깃 파일을 저장하는 경우, 타깃 파일의 색인 노드를 취득한다.
S233: 제1 물리 주소 공간이 파일 식별자에 의해 지시되는 액세스될 타깃 파일을 저장하지 않는 경우, 제1 물리 주소 공간에 타깃 파일을 생성하고, 타깃 파일에 색인 노드를 할당하며, 타깃 파일에 할당된 색인 노드는 타깃 파일의 파일 페이지 테이블 정보를 포함하고, 파일 페이지 테이블은 제1 물리 주소 공간에 생성된 타깃 파일의 제2 물리 주소 공간을 가리키는 데 사용된다.
이해해야 할 것은, 파일 시스템 내의 파일 각각은 하나의 색인 노드 "inode"에 대응한다는 것이다. 따라서, 타깃 파일에 대응하는 색인 노드는, 파일 시스템의 제1 물리 주소 공간이 타깃 파일을 저장한 후에 취득될 수 있다. 이해해야 할 것은, 또는, 제1 물리 주소 공간이 디폴트로 타깃 파일을 저장할 수 있다는 것이다. 이 시나리오에서, 제1 물리 주소 공간이 타깃 파일을 저장하는지를 판정하는 관련 단계는 생략될 수 있다.
색인 노드는 타깃 파일의 파일 페이지 테이블 정보를 포함한다. 구체적으로, 색인 노드는 타깃 파일을 저장하는 메모리 페이지의, 제1 물리 주소 공간 중의, 제2 물리 주소 공간을 취득하는 데 사용될 수 있는 정보를 포함할 수 있다. 예를 들어, 타깃 파일의 색인 노드는 타깃 파일의 파일 페이지 테이블(File Page Table, 약칭하여 "FPT"), 또는 타깃 파일의 파일 페이지 테이블을 가리키는 데 사용되는 포인터를 기록할 수 있다. 구체적으로는, 도 3에 도시된 바와 같이, 타깃 파일의 색인 노드는 파일 페이지 테이블을 가리키는 데 사용되는 포인터(Pointer)를 포함하며, 포인터는 구체적으로 타깃 파일의 최상위 파일 페이지 테이블(PUD)을 저장한다.
S240: 타깃 파일의, 색인 노드에 포함된, 파일 페이지 테이블 정보에 따라 타깃 파일의 파일 페이지 테이블을 취득하며, 파일 페이지 테이블은 제1 물리 주소 공간에 제2 물리 주소 공간을 기록하고, 타깃 파일의 데이터 페이지는 제2 물리 주소 공간에 저장되고, 타깃 파일의 데이터 페이지는 파일 데이터를 저장하는 데 사용된다.
구체적으로, 타깃 파일의 파일 페이지 테이블은 타깃 파일을 저장하는 메모리 페이지의, 제1 물리 주소 공간에서의, 물리 주소를 가리키는 데 사용된다. 따라서, 타깃 파일의 제2 물리 주소 공간은 타깃 파일의 파일 페이지 테이블에 따라 취득될 수 있다.
선택적으로, 본 발명의 본 실시예에서, 타깃 파일의 파일 페이지 테이블의 데이터 구조는 프로세스 페이지 테이블의 파일 구조와 유사하거나 동일하다.
이해해야 할 것은, 종래기술에서, 프로세스 페이지 테이블은 보호 모드에서 운영체제의 프로세스에 의해 사용되며, 프로세스의 가상 공간과 물리 공간 사이의 매핑 관계를 나타낸다는 것이다. 소정의 액세스될 가상 주소에 대해, MMU는 가상 주소에 따라 현재의 프로세스 페이지 테이블에서 가상 주소에 대응하는 프로세스 페이지 테이블 엔트리의 위치를 알고(orient), 그 후 페이지 테이블 엔트리를 파싱하여 실제 물리 주소를 취득하여, 액세스를 구현한다는 것이다. 232바이트 크기의 32비트 주소 공간 또는 264바이트 크기의 64비트 주소 공간을 포함하여, 운영 체제의 상이한 주소 공간이 있다. 공통 프로세스 페이지 테이블은 3레벨 페이지 테이블 또는 4레벨 페이지 테이블 일 수 있다. 4레벨 페이지 테이블은 PGD, PUD, PMD 및 PTE를 포함한다. 3레벨 페이지 테이블은 4레벨 페이지 테이블과 호환 가능하며, PGD, PUD, PMD 및 PTE를 명목상 포함한다. 그러나 PUD 및 PMD는 하나의 레벨의 페이지 테이블이다. 상위 레벨 페이지 테이블은 하위 레벨 페이지 테이블을 가리키는 물리 시작 주소를 포함하고, 마지막 레벨 페이지 테이블 PTE는 특정 물리 페이지를 가리키는 물리 시작 주소를 포함한다.
본 발명의 본 실시예에서, 파일 페이지 테이블의 구조는 프로세스 페이지 테이블의 구조와 동일하거나 유사할 수 있다. 구체적으로, 파일 페이지 테이블은 단일 레벨 또는 다중 레벨 페이지 테이블일 수 있으며, 최하위가 아닌(non-lowest) 페이지 테이블 중의 각각의 레벨의 페이지 테이블의 각각의 엔트리는 하위 레벨 페이지 테이블의 물리 시작 주소를 기록하고, 최하위 페이지 테이블의 각각의 엔트리는 파일의 메모리 페이지의 물리 시작 주소를 기록한다. 구체적으로는, 도 3에 도시된 바와 같이, 도 3은 타깃 파일의 파일 페이지 테이블이 PUD, PMD 및 PTE를 포함하는 3레벨 파일 페이지 테이블인 예를 제공한다. PUD 중의 각각의 엔트리는 PMD의 물리 시작 주소를 기록하고, PMD의 각각의 엔트리는 PTE의 물리 시작 주소를 기록하고, PTE의 각각의 엔트리는 메모리 페이지의 물리 시작 주소를 기록한다 (메모리 페이지는 타깃 파일의 콘텐츠를 저장한다). 이해해야 할 것은, 모든 파일이 3레벨 파일 페이지 테이블을 사용해야 하는 것은 아니며, 3레벨 페이지 테이블이 사용되는 경우라도, 페이지 테이블이 절대로 고정된 포맷을 갖지 않다는 것이다. 예를 들어, 모든 파일이 1024 PTE를 사용해야 하는 것은 아니며, 파일 페이지 테이블의 조직 구조(organization structure)는 파일 크기의 변화에 따라 동적으로 조정될 수 있다.
도 3은, 레벨 파일 페이지 테이블의 제1 레벨 파일 페이지 테이블 PUD를 가리키는 포인터(예: PUD의 물리 시작 주소)를 타깃 파일의 색인 노드가 기록하는 예를 사용하여 설명을 제공한다. 더 알 수 있는 것은, 대안으로, 타깃 파일의 색인 노드는, 타깃 파일을 저장하고 제1 물리 주소에 있는 제2 물리 주소 공간, 제2 물리 주소 공간의 시작 주소, 등을 직접 저장할 수 있다는 것이다. 여기서, 타깃 파일의 제2 물리 주소 공간에 관련된 정보를 타깃 파일의 색인 노드에 기록된 정보에 따라 취득할 수 있다면, 타깃 파일의 색인 노드에 기록된 정보에 대해서는 특별히 제한하지 않는다.
이해해야 할 것은, 도 3에 도시된 예는 당업자가 본 발명의 본 실시예를 더 잘 이해하도록 돕기 위한 것이지만, 본 발명의 본 실시예의 범위를 제한하려는 것은 아니다. 명백히, 당업자는 도 3에 도시된 예에 따라 다양한 등가의 수정 또는 변형을 행할 수 있으며, 그러한 수정 또는 변형도 또한 본 발명의 본 실시예의 범위에 속한다.
S250: 제2 물리 주소 공간에 따라 타깃 파일을 액세스한다.
구체적으로, 사용자 공간에서, 제2 물리 주소 공간 중의 타깃 파일을 액세스하는 2가지 방법이 있을 수 있다. 첫 번째 방법은, 계산을 통한 제1 매핑 관계에 따라, 제2 물리 주소 공간을 제1 가상 주소 공간에 매핑함으로써 취득되는 타깃 가상 주소 공간을 취득하고, 사용자 공간에서, 타깃 가상 주소 공간을 액세스함으로써 제2 물리 주소 공간을 액세스하여, 타깃 파일에의 액세스를 구현하는 것이다. 두 번째 방법은, 사용자 공간에서, 연속한 제2 가상 주소 공간의 세그먼트를 타깃 파일에 할당하고, 타깃 파일의 제2 가상 주소 공간과 제2 물리 주소 공간 사이의 제2 매핑 관계를 확립하여, 제2 가상 주소 공간을 액세스함으로써 사용자 공간에서 제2 물리 주소 공간을 액세스할 수 있으므로, 타깃 파일에 대한 연속적인 액세스를 구현하는 것이다.
본 발명의 실시예에 파일 액세스 방법에서, 파일 시스템을 저장하는 제1 물리 주소 공간의 타깃 파일을 제1 가상 주소 공간을 사용하여 사용자 공간에서의 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 매핑 관계에 따라 액세스하므로, 종래기술에서의 파일 액세스 중에 빈번한 시스템 호출 없이 파일 액세스가 사용자 공간에서 직접 구현되어, 파일 액세스 중의 소프트웨어 실행 오버헤드를 효과적으로 감소시킬 수 있고, 파일 액세스 속도를 증가시킬 수 있다.
도 4를 참조하여 제2 물리 주소 공간의 타깃 파일을, 사용자 공간에서, 액세스하는 제2 방법을 상세하게 설명한다.
도 4에 도시된 바와 같이, 도 2에 도시된 파일 액세스 방법(200)에서, 제2 물리 주소 공간에 따라 타깃 파일을 액세스하는 단계 S250은 다음 단계를 포함한다:
S251: 타깃 파일에 제2 가상 주소 공간을 할당하며, 제2 가상 주소 공간은 운영체제에서의 사용자 공간 중, 프로세스에 할당된, 사유 공간의 일부이고, 제2 가상 주소 공간은 연속한 주소 공간이다.
구체적으로, 제2 가상 주소 공간은 도 1a를 참조하여 전술한 사유 프로세스 공간(150)의 파일 액세스 공간(151)에서의 연속한 가상 주소 공간의 세그먼트일 수 있다.
S252: 제2 물리 주소 공간과 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립한다.
선택적으로, 본 발명의 본 실시예에서, 제2 물리 주소 공간과 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립하는 단계 S252는,
타깃 파일의 파일 페이지 테이블을 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크시킴으로써 제2 매핑 관계를 확립하는 단계를 포함한다.
구체적으로, 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블은 N레밸 페이지 테이블인 한편, 타깃 파일의 파일 페이지 테이블은 M레벨 페이지 테이블이며, M<=N이고, 파일 페이지 테이블은 레벨 0에서 레벨(N-M-1)까지의 페이지 테이블이 모자란다. 타깃 파일의 파일 페이지 테이블을 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크시키는 것은 구체적으로, 파일 페이지 테이블의 최상위(N-M) 레벨의 페이지 테이블 엔트리를, 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블의 (M-M)레벨의 페이지 테이블 엔트리에 복제하는 것을 가리킨다. 이 방식에 따르면, 타깃 파일의 제1 가상 주소 공간과 제2 물리 주소 공간 사이에 제2 매핑 관계가 확립될 수 있다. 전술한 설명으로부터, "링크" 방식으로 제2 매핑 관계를 확립하기 위해, 타깃 파일의 파일 페이지 테이블의 최상위 레벨의 페이지 테이블 엔트리가 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블의, 대응하는 레벨의 페이지 테이블 엔트리에 복제되어야 한다는 것을 알 수 있다. 이와 같이, 레벨이 타깃 파일의 파일 페이지 테이블의 최상위 레벨(레벨(N-M)의 페이지 테이블 엔트리의 레벨보다 낮은 다른 페이지 엔트리가 제2 가상 주소 공간에 대응한 프로세스 페이지 테이블에 자동으로 링크된다. 따라서, 이 "링크" 방식에서는, 복제되는 페이지 테이블의 수량을 효과적으로 감소시킬 수 있고, 소프트웨어 실행 오버헤드를 감소시킬 수 있다.
타깃 파일의 제2 가상 주소 공간과 제2 물리 주소 공간 사이에 제2 매핑 관계가 확립된 후, 연속한 제2 가상 주소 공간을 사용하여 제2 물리 주소 공간을 액세스할 수 있다. 따라서, 타깃 파일에 대한 역속한 액세스를 구현할 수 있다.
S253: 제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일을 액세스한다.
구체적으로, 데이터 페이지 폴트(data page fault)가 발생하지 않는다. 즉, 제2 가상 주소 공간의 액세스 주소가 타깃 타일에 대응하는 가상 주소 공간에 포함되어 있는 한 타깃 파일을 액세스할 수 있다. 종래기술에 비교하면, 시스템 호출을 수행하는 횟수를 크게 감소시킬 수 있으므로, 소프트웨어 실행 오버헤드를 감소시킬 수 있고, 파일 액세스 속도가 증가시킬 수 있다.
전술한 "타깃 파일에 대응하는 가상 주소 공간"은 구체적으로는, 타깃 파일의 제2 물리 주소 공간을 제2 가상 주소 공간에 매핑함으로써 취득되는 매핑된 공간을 나타낸다. 다시 말해, "타깃 파일에 대응하는 가상 주소 공간"은 제2 가상 주소 공간의 일부이다. 또, "타깃 파일에 대응하는 가상 주소 공간" 중의 각각의 가상 주소와 특정 물리 주소(타깃 파일의 데이터 페이지의 물리 주소) 사이에는 매핑 관계가 존재한다. 따라서, 타깃 파일의 제2 물리 주소 공간은 "타깃 파일의 제2 가상 주소 공간"을 액세스함으로써 액세스될 수 있다. 제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일을 액세스하는 단계 S253은, 제2 가상 주소 공간 중의 "타깃 파일에 대응하는 가상 주소 공간" 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일을 액세스하는 것으로도 설명될 수 있다.
선택적으로, 본 발명의 본 실시예에서, 타깃 파일에 할당된 제2 가상 주소 공간은 "타깃 파일에 대응하는 가상 주소 공간" 이상일 수 있다. 다시 말해, 타깃 파일에 할당된 제2 가상 주소 공간는 타깃 파일의 제2 물리 주소 공간 이상일 수 있다.
전술한 "데이터 페이지 폴트"는 다음 경우가 발생했을 때 현재의 액세스 조작을 중단하는 것을 가리킨다: 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 현재의 액세스 주소와 특정 물리 주소 사이의 매핑 관계를 기록하지 않는다. 즉 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 현재의 액세스 주소와 특정 물리 주소 사이의 매핑 관계를 지시하는 엔트리를 결여하고 있다. 따라서, 현재의 액세스 주소를 사용하여 물리 주소를 액세스할 수 없고, 타깃 파일에 대한 현재의 액세스는 중단된다.
구체적으로, 두 가지 경우가 있다: (1) 제2 가상 주소 공간이 "타깃 파일에 대응하는 가상 주소 공간"과 같으면, 제2 가상 주소 공간을 사용하여 타깃 파일을 액세스할 때, 액세스 주소는 명확하게 "타깃파일에 대응하는 가상 주소 공간"에 포함되고, "타깃 파일에 대응하는 가상 주소 공간" 중의 각각의 가상 주소와 특정 물리 주소(타깃 파일의 데이터 페이지의 물리 주소) 사이에 매핑 관계가 존재하므로, 전술한 경우에, "데이터 페이지 폴트"는 발생하지 않는다. (2) 제2 가상 주소 공간이 "타깃 파일에 대응하는 가상 주소 공간"보다 크면, 제2 가상 주소 공간을 사용하여 타깃 파일이 액세스되는 경우, 액세스 데이터가 "타깃 파일에 대응하는 가상 주소 공간"에 포함되어 있지 않기 때문에, 전술한 "데이터 페이지 폴트"가 발생한다.
제2 가상 주소 공간이 "타깃 파일에 대응하는 가상 주소 공간"보다 큰 경우에, 제2 가상 주소를 사용하여 타깃 파일에 대해 판독 및/또는 기록 조작이 수행되는 경우, 범위를 벗어난 액세스(out-of-bound access)가 발생할 수 있다. 범위를 벗어난 판독 조작에 의해 야기되는 판독 오류를 줄이기 위해, 본 발명의 본 실시예에서, 제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일을 액세스하는 단계 S253은,
제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 내의 타깃 파일에 대해 판독 조작을 수행하는 단계; 및
판독 조작을 통해 판독될 데이터에 대응하는 가상 주소가 타깃 파일에 대응하는 가상 주소 공간에 포함되지 않는 경우, 판독 조작을 종료하는 단계를 포함한다.
이해해야 할 것은, 본 실시예에서의 "타깃 파일에 대응하는 가상 주소 공간"은 타깃 파일의 제2 물리 주소 공간을 제2 가상 주소 공간에 매핑함으로써 취득되는, 제2 가상 주소 공간의 일부인, 전술한 매핑된 공간을 가리킨다는 것이다.
구체적으로, 타깃 파일의 파일 데이터를 판독 요청을 위해 사용되는 파일 판독 명령이 프로세스로부터 수신되고; 타깃 파일에 대해 판독 조작을 수행하기 위해, 제2 매핑 관계에 기초하여, 제2 물리 주소 공간이 제2 가상 주소 공간을 사용하여 액세스되며; 판독 조작을 통해 판독될 데이터에 대응하는 가상 주소가 타깃 파일에 대응하는 가상 주소 공간에 포함되지 않은 경우, 판독 조각은 종료된다. 구체적으로, 제2 가상 주소 공간 중의 판독 시작 주소(start read address)가 미리 설정된 판독 바이트 길이를 오프셋(offset)한 후에 취득되는 판독 종료 주소(end read address)가 "타깃 파일에 대응하는 가상 주소 공간"에 포함되지 않는 경우, 타깃 파일에 대해 수행되는 판독 조작은 종료된다.
선택적으로, 본 발명의 본 실시예에서, 타깃 파일의 파일 설명자 "fd" 및 타깃 파일의 파일 객체 "file"은 제1 물리 주소 공간(160)의 제2 물리 메모리 영역(162)에 생성될 수 있고, 타깃 파일의 파일 설명자 "fd"와 파일 객체 "file" 사이의 연관 관계가 생성된다. 파일 객체 "file"은 제2 가상 주소 공간의 크기, 타깃 파일의 제2 물리 주소 공간을 제2 가상 주소 공간에 매핑함으로써 취득되는 시작 주소, 타깃 파일의 파일 크기, 및 기타 정보를 기록하는 데 사용된다. 타깃 파일에 대한 판독 조작 요청이 수신되는 경우, 타깃 파일에 할당된 제2 가상 주소 공간의 크기, 타깃 파일의 제2 물리 주소 공간을 제2 가상 주소 공간에 매핑함으로써 취득되는 시작 주소, 타깃 파일의 파일 크기, 및 기타 정보를 취득하고, 또한 제2 가상 주소 공간을 사용하여 타깃 파일에 대한 판독 조작을 수행하기 위해, 제2 물리 메모리 영역(142) 중의 타깃 파일의 파일 설명자 "fd"는 제1 가상 주소 공간의 제2 영역(142)(도 1b에 도시됨) 중의, 타깃 파일의 파일 설명자 "fd"에 대응하는 가상 주소(제2 물리 메모리 영역(162)에 있는, 파일 설명자 "fd"를 저장하는 물리 주소의, 제2 영역(142) 중의, 매핑된 주소)를 사용하여 액세스될 수 있다.
따라서, 본 발명의 본 실시예에 따른 파일 액세스 방법에서, 범위를 벗어난 판독 조작의 문제를 해결할 수 있어, 액세스 보안을 효과적으로 보장할 수 있다.
범위를 벗어난 쓰기 조작에 의해 야기되는 기록 에러를 줄이기 위해, 제2 가상 주소 공간이 제2 물리 주소 공간보다 크면, 제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일을 액세스하는 단계 S253은,
제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일에 대해 기록 조작을 수행하는 단계; 및
기록 조작을 통해 기록될 데이터에 대응하는 가상 주소가 제2 가상 주소 공간에 포함되지 않는 경우, 기록 조작을 종료하는 단계를 포함한다.
구체적으로, 타깃 파일에 대한 기록 조작의 수행을 요청하기 위한 파일 기록 요청이 프로세스로부터 수신되고; 타깃 파일에 대한 기록 조작을 수행하기 위해, 제2 매핑 관계에 기초하여, 제2 물리 주소 공간이 제2 가상 주소 공간을 사용하여 액세스되며; 기록 조작을 통해 기록될 데이터에 대응하는 가상 주소가 제2 가상 주소 공간에 포함되지 않는 경우, 기록 조각은 종료된다. 구체적으로, 제2 가상 주소 공간 중의 기록 시작 주소(start write address)가 미리 설정된 기록 바이트 길이를 오프셋한 후에 취득되는 기록 종료 주소(end write address)가 제2 가상 주소 공간에 포함되지 않는 경우, 타깃 파일에 대해 수행되는 기록 조작은 종료된다.
선택적으로, 본 발명의 본 실시예에서, 타깃 파일의 파일 설명자 "fd" 및 타깃 파일의 파일 객체 "file"은 제1 물리 주소 공간(160)의 제2 물리 메모리 영역(162)(도 1b에 도시됨)에 생성될 수 있고, 타깃 파일의 파일 설명자 "fd"와 파일 객체 "file" 사이의 연관 관계가 생성된다. 파일 객체 "file"은 제2 가상 주소 공간의 크기, 타깃 파일의 제2 물리 주소 공간을 제2 가상 주소 공간에 매핑함으로써 취득되는 시작 주소, 타깃 파일의 파일 크기, 및 기타 정보를 기록하는 데 사용된다. 타깃 파일에 대한 기록 조작 요청이 수신되는 경우, 타깃 파일에 할당된 제2 가상 주소 공간의 크기, 타깃 파일의 제2 물리 주소 공간을 제2 가상 주소 공간에 매핑함으로써 취득되는 시작 주소, 타깃 파일의 파일 크기, 및 기타 정보를 취득하고, 또한 제2 가상 주소 공간을 사용하여 타깃 파일에 대한 기록 조작을 수행하기 위해, 제2 물리 메모리 영역(142) 중의 타깃 파일의 파일 설명자 "fd"는 제1 가상 주소 공간의 제2 영역(142)(도 1b에 도시됨) 중의, 타깃 파일의 파일 설명자 "fd"에 대응하는 가상 주소(제2 물리 메모리 영역(162)에 있는, 파일 설명자 "fd"를 저장하는 물리 주소의, 제2 영역(142) 중의, 매핑된 주소)를 사용하여 액세스될 수 있다. 전술한 바와 같이, 제2 가상 주소 공간이 "타깃 파일에 대응하는 가상 주소 공간"보다 큰 경우에, 기록 조작이 제2 가상 주소 공간을 사용하여 타깃 파일에 대해 수행되는 경우에 "데이터 페이지 폴트"가 발생할 수 있다. 중단 처리가 완료된 후, 기록 조작은 타깃 파일에 대해 계속 수행될 수 있다.
선택적으로, 본 발명의 본 실시예에서, 제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일에 대해 기록 조작을 수행하는 프로세스 동안에,
제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 현재의 기록 주소의, 제1 물리 주소 공간 중의, 매핑된 물리 주소를 기록하는 엔트리가 결여되어 있는 경우, 타깃 파일에 대해 수행되는 기록 조작이 중단되며, 현재의 기록 주소는 타깃 파일에 대응하는 가상 주소 공간에 포함되지 않으며;
제1 물리 주소 공간 중의 타깃 파일에 제2 물리 주소가 할당되고, 현재의 기록 주소와 제2 물리 주소 사이의 매핑 관계를 기록하는 데 사용되는 엔트리가 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 추가되고;
제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 추가되는 전술한 엔트리에 기록된 매핑 관계에 기초하여, 현재의 기록 주소를 사용하여 제3 물리 주소가 액세스되고, 기록 조작은 타깃 파일에 대해 계속 수행된다.
본 발명의 본 실시예에 따른 파일 액세스 방법에서, 파일 기록 조작의 범위를 증가시킬 수 있고, 범위를 벗어난 액세스의 문제를 해결할 수 있어, 액세스 보안을 효과적으로 보장할 수 있다. 본 발명의 본 실시예에서, 제2 가상 주소 공간은 연속한 주소 공간의 세그먼트이며, 이는 상이한 물리 메모리 페이지에 대응하는 가상 주소를 검색하기 위해 소프트웨어를 여러 번 사용할 필요 없이, 액세스될 타깃 파일에 대응하는 가상 주소의 시작 주소로부터, 필요한 액세스 길이 내의 물리 메모리 페이지에 대한, 일회성(one-off) 액세스의 구현을 용이하게 한다. 이와 같이, 이와 같이, 파일에 대한 순차 액세스를 구현할 수 있고, 파일 액세스 속도를 증가시킬 수 있다. 또한, 타깃 파일의 가상 주소와 물리 주소 사이의 번역(translation)이 메모리 관리 유닛(Memory Management Unit, 약칭하여 "MMU")을 사용하여 투명하게 완료될 수 있어, 파일 액세스 속도의 향상을 촉진하고, 또한 소프트웨어 실행 오버헤드를 감소시킬 수 있다. 이해해야 할 것은, 대안으로, 타깃 파일에 대한 계속적인 액세스는 중앙 처리 유닛(Central Processing Unit, 약칭하여 CPU)의 적재/저장(Load/Store) 명령에 의해 제2 가상 주소 공간을 사용함으로써 구현될 수 있다.
본 발명의 본 실시예에서, 사용자 공간 중의 연속한 가상 주소 공간의 세그먼트에 타깃 파일 매핑된다. 한편으로는, 시스템 호출의 수량이 감소되는 경우 사용자 공간에서 파일 액세스가 구현될 수 있고; 다른 한편으로는, 파일 액세스 속도가 효과적으로 증대될 수 있고 파일 액세스 효율이 효과적으로 향상될 수 있다.
도 5를 참조하여 본 발명의 다른 실시예에 따른 파일 액세스 방법(300)을 이하에 설명한다. 유의해야 할 것은, 도 5에서, 프로세스의 파일 액세스 요청이 설명을 위한 예로 사용된다는 것이다. 파일 액세스 방법(300)은 프로세스가 파일 액세스를 요청하는 임의의 시나리오에 적용될 수 있다는 것을 이해할 수 있을 것이다. 도 5에 도시된 바와 같이, 파일 액세스 방법(300)은 다음 단계를 포함한다:
S310: 커널 공간에, 미리 설정된 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 제1 매핑 관계를 확립하고, 커널 공간에 대응하는 프로세스 페이지 테이블에, 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 저장하며, 제1 가상 주소 공간은 운영체제에서의 사용자 공간의 일부이고, 제1 물리 주소 공간은 메모리 공간의 일부이다.
구체적으로, 시스템 초기화 동안에, 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 제1 매핑 관계(도 1a 및 도 1b에 도시됨)가 확립되고, 제1 매핑 관계에 대응하는 매핑 페이지 테이블이 커널 공간에 대응하는 프로세스 페이지 테이블에 저장된다. 예를 들어, 제1 매핑 관계에 대응하는 매핑 페이지 테이블은 커널 공간의 공유 페이지 전역 디렉토리(shared-page global directory)에 저장된다.
이해해야 할 것은, 단계 S310에서 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 제1 매핑 관계가 커널 공간에서 확립되기 전에, 제1 물리 주소 공간은 초기화되어야 한다. 구체적으로, 시스템이 시동된 후, 제1 물리 주소 공간이 미리 정의되었으면, 미리 정의된 물리 주소 공간의 세그먼트의 헤더 위치에 저장된 데이터가 파일 시스템의 물리 구조 조직 형식(physical structure organization form)을 충족하는지를 검증한다. 데이터가 조직 형식을 충족하면, 초기화는 수행될 필요가 없고; 데이터가 조직 형식을 충족하지 않으면, 제1 물리 주소 공간에 대해 초기화가 수행된다. 물리 주소 공간의 세그먼트가 블랭크 메모리 영역이면, 블랭크 메모리 영역이 파일 시스템의 물리 구조 조직 형식에 따라 초기화된다. 예를 들어, 물리 메모리 영역의 세그먼트가 제1 물리 주소 공간의 크기 및 파일 시스템의 데이터 조직 구조와 같은 인자에 따라 포맷된다. 예를 들어, 물리 주소 공간(즉, 제1 물리 주소 공간)은 슈퍼블록 또는 색인 노드와 같은 데이터 구조를 확립함으로써 조직화되고 관리된다.
S320: 프로세스로부터 파일 액세스 요청을 수신하며, 파일 액세스 요청은 파일 식별자를 포함하고, 파일 식별자는 액세스될 타깃 파일을 지시하는 데 사용된다. S320은 도 2에 도시된 S210과 동일한다. 간결함을 위해, 여기서는 세부사항을 다시 설명하지 않는다.
S330: 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 제1 매핑 관계를 기록하지 않는 것으로 결정한다.
구체적으로, 프로세스로부터 파일 액세스 요청을 수신한 후, 사용자 공간에서 제1 가상 주소 공간이 액세스되는 경우, 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에는 제1 매핑 관계를 기록한 엔트리를 결여되어 있다.
S340: 가상 주소 공간에 대응하는 프로세스 페이지 테이블에, 커널 공간에 저장되는, 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 링크한다.
구체적으로, 사용자 공간은 커널 공간으로 전환되고, 커널 공간에 저장되는, 제1 매핑 관계에 대응하는 매핑 페이지 테이블이 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크되므로, 제1 가상 주소 공간 및 제1 매핑 관계에 따라 파일 액세스는 사용자 공간에서 후속하여 구현된다.
S350: 제1 가상 주소 공간 및 제1 매핑 관계에 따라 제1 물리 주소 공간을 액세스한다. S350은 도 2에 도시된 S220과 동일하며, 여기서는 세부사항을 다시 설명하지 않는다.
S360: 타깃 파일의 물리 식별자에 따라 제1 물리 주소로부터 타깃 파일의 색인 노드를 취득하며, 색인 노드는 타깃 파일의 파일 페이지 테이블 정보를 포함한다. S360은 도 2에 도시된 S230과 동일하며, 여기서는 세부사항을 다시 설명하지 않는다.
S370: 타깃 파일의, 색인 노드에 포함된, 파일 페이지 테이블 정보에 따라 타깃 파일의 파일 페이지 테이블을 취득하며, 파일 페이지 테이블은 제1 물리 주소 공간에 제2 물리 주소 공간을 기록하고, 타깃 파일의 데이터 페이지는 제1 물리 주소 공간에 저장되고, 타깃 파일의 데이터 페이지는 파일 데이터를 저장하는 데 사용된다. S370은 도 2에 도시된 S240과 동일하며, 여기서는 세부사항을 다시 설명하지 않는다.
S380: 제2 물리 주소 공간에 따라 타깃 파일을 액세스한다. S380은 도 2에 도시된 S250과 동일하며, 여기서는 세부사항을 다시 설명하지 않는다.
본 발명의 본 실시예에 따른 파일 액세스 방법에서, 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 제1 매핑 관계를 기록하지 않으면, 페이지 폴트가 한번 실행되어야 한다. 즉, 사용자 공간이 커널 공간으로 전환되고, 제1 매핑 관계에 대응하는 매핑 페이지 테이블이 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크된다. 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 제1 매핑 관계를 기록하면, 파일 시스템을 저장하는 제1 물리 주소 공간이 제1 매핑 관계와 제1 가상 주소 공간에 따라 액세스되므로, 파일 시스템 중의 파일이 액세스된다. 유의해야 할 것은, 본 발명의 본 실시예에서, 제1 가상 주소 공간은, 사용자 공간 중의, 모드 프로세스에 의해 공유되는 공간이라는 것이다. 모든 프로세스의 파일 액세스 요청에 대해서는, 요청된 타깃에 대한 액세스가 사용자 공간에서 직접 구현될 수 있다.
이해해야 할 것은, 본 발명의 본 실시예에서, 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 제1 매핑 관계가 제1 가상 주소 공간에 링크된 후, 시스템이 셧다운(shut down)되지 않으면, 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블는 제1 매핑 관계를 기록한 엔트리를 영구적으로 저장하고, 임의의 프로세스는, 제1 가상 주소 공간에 기초하여, 사용자 공간에서 파일 액세스를 후속하여 구현할 수 있다는 것이다.
종래기술에 비해, 본 발명의 본 실시예에 따른 파일 액세스 방법에서는, 파일 액세스는, 시스템 호출의 수량이 비교적 큰 정도로 감소되는 경우 사용자 공간에서 구현될 수 있다. 따라서, 파일 액세스 중에 소프트웨어 실행 오버헤드를 효과적으로 감소시킬 수 있고, 파일 액세스 속도를 효과적으로 증가시킬 수 있으며, 파일 액세스 효율을 효과적으로 향상시킬 수 있다.
이해해야 할 것은, 본 발명의 본 실시예에서 제공된 기술적 방안은 리눅스 운영체제에 적용될 수 있거나, 각각의 프로세스가 자신의 전용 공간을 갖는 운영체제에 적용될 수 있다는 것이다.
이상에서는 도 1 내지 도 5를 참조하여 본 발명의 실시예에 따른 파일 액세스 방법을 상세하게 설명하였고, 이하에서는 도 6 내지 도 8을 참조하여 본 발명의 실시예에 따른 파일 액세스 장치를 상세하게 설명할 것이다.
도 6은 본 발명의 실시예에 따른 파일 액세스 장치(400)의 개략 블록도이다. 파일 액세스 장치(400)는,
프로세스로부터 파일 액세스 요청을 수신하도록 구성된 수신 모듈(410) - 파일 액세스 요청은 파일 식별자를 포함하고, 파일 식별자는 액세스될 타깃 파일을 지시하는 데 사용됨 -;
미리 설정된 제1 가상 주소 공간 및 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라, 제1 물리 주소 공간을 액세스하도록 구성된 제1 액세스 모듈(420) - 제1 가상 주소 공간은 운영체제에서의 사용자 공간의 일부이고, 제1 물리 주소 공간은 파일 시스템을 저장하고 메모리 공간의 일부임 -;
수신 모듈(410)에 의해 수신되는, 타깃 파일의 파일 식별자에 따라 제1 물리 주소 공간으로부터 타깃 파일의 색인 노드를 취득하도록 구성되고 - 색인 노드는 타깃 파일의 파일 페이지 테이블 정보를 포함함 -; 추가로 타깃 파일의, 색인 노드에 포함된, 파일 페이지 테이블 정보에 따라 타깃 파일의 파일 페이지 테이블을 취득하도록 구성된 취득 모듈(430) - 파일 페이지 테이블은 제1 물리 주소 공간 내의 제2 물리 주소 공간을 기록하고, 타깃 파일의 데이터 페이지는 제2 물리 주소 공간에 저장되고, 타깃 파일의 데이터 페이지는 파일 데이터를 저장하는 데 사용됨 -; 및
취득 모듈(430)에 의해 취득된 파일 페이지 테이블에 의해 지시되는 제2 물리 주소 공간에 따라 타깃 파일을 액세스하도록 구성된 제2 액세스 모듈(440)을 포함한다.
본 발명의 본 실시예에 따른 파일 액세스 장치에서는, 파일 시스템을 저장하는 제1 물리 주소 공간의 타깃 파일을 제1 가상 주소 공간을 사용하여 사용자 공간에서의 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 매핑 관계에 따라 액세스하므로, 종래기술에서의 파일 액세스 중에 빈번한 시스템 호출 없이 파일 액세스가 사용자 공간에서 직접 구현되어, 파일 액세스 중의 소프트웨어 실행 오버헤드를 효과적으로 감소시킬 수 있고, 파일 액세스 속도를 증가시킬 수 있다.
도 7에 도시된 바와 같이, 선택적으로, 실시예에서, 제2 액세스 모듈(440)은,
타깃 파일에 제2 가상 주소 공간을 할당하도록 구성된 할당 유닛(441) - 제2 가상 주소 공간은 운영체제에서의 사용자 공간 중, 프로세스에 할당된, 사유 공간의 일부이고, 제2 가상 주소 공간은 연속한 주소 공간임 -;
제2 물리 주소 공간과 할당 유닛(441)에 의해 할당된 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립하도록 구성된 확립 유닛(442); 및
할당 유닛(441)에 의해 할당되는 제2 가상 주소 공간 및 확립 유닛(442)에 의해 확립되는 제2 매핑 관계에 따라, 제2 물리 주소 공간 중의 타깃 파일을 액세스하도록 구성된 액세스 유닛(443)을 포함한다.
선택적으로, 실시예에서, 확립 유닛(443)은 구체적으로, 타깃 파일의 파일 페이지 테이블을 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크시킴으로써 제2 매핑 관계를 확립하도록 구성된다.
선택적으로, 실시예에서, 할당 유닛에(441) 의해 할당되는 제2 가상 주소 공간은 제2 물리 주소 공간보다 크고;
액세스 유닛(443)은 구체적으로,
제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일에 대해 판독 조작을 수행하고;
판독 조작을 통해 판독될 데이터에 대응하는 가상 주소가 타깃 파일에 대응하는 가상 주소 공간에 포함되지 않는 경우, 판독 조작을 종료하도록 구성된다.
선택적으로, 실시예에서, 할당 유닛(441)에 의해 할당되는 제2 가상 주소 공간은 제2 물리 주소 공간보다 크고;
액세스 유닛(443)은 구체적으로,
제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일에 대해 기록 조작을 수행하고;
기록 조작을 통해 기록될 데이터에 대응하는 가상 주소가 제2 가상 주소 공간에 포함되지 않는 경우, 기록 조작을 종료하도록 구성된다.
도 8에 도시된 바와 같이, 선택적으로, 실시예에서, 파일 액세스 장치(400)는,
커널 공간에, 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 제1 매핑 관계를 확립하고, 커널 공간에 대응하는 프로세스 페이지 테이블에, 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 저장하도록 구성된 확립 모듈(450);
프로세스로부터 파일 액세스 요청을 수신하도록 구성된 수신 모듈(410) - 파일 액세스 요청은 파일 식별자를 포함하고, 파일 식별자는 액세스될 타깃 파일을 지시하는 데 사용됨 -;
수신 모듈(410)이 프로세스로부터 파일 액세스 요청을 수신한 이후에, 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 제1 매핑 관계를 기록하지 않는 것으로 결정하도록 구성된 결정 모듈(460);
제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에, 커널 공간에 저장되는, 확립 모듈(450)에 의해 확립되는 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 링크하도록 구성된 링크 모듈(470);
미리 설정된 제1 가상 주소 공간 및 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라, 제1 물리 주소 공간을 액세스하도록 구성된 제1 액세스 모듈(420) - 제1 가상 주소 공간은 운영체제에서의 사용자 공간의 일부이고, 제1 물리 주소 공간은 파일 시스템을 저장하고 메모리 공간의 일부임 -;
수신 모듈(410)에 의해 수신되는, 타깃 파일의 파일 식별자에 따라 제1 물리 주소 공간으로부터 타깃 파일의 색인 노드를 취득하도록 구성되고 - 색인 노드는 타깃 파일의 파일 페이지 테이블 정보를 포함함 -; 추가로 타깃 파일의, 색인 노드에 포함된, 파일 페이지 테이블 정보에 따라 타깃 파일의 파일 페이지 테이블을 취득하도록 구성된 취득 모듈(430) - 파일 페이지 테이블은 제1 물리 주소 공간에 저장된 타깃 파일의 데이터 페이지의 제2 물리 주소 공간을 기록하고, 타깃 파일의 데이터 페이지는 파일 데이터를 저장하는 데 사용됨 -; 및
취득 모듈(430)에 의해 취득된 파일 페이지 테이블에 의해 지시되는 제2 물리 주소 공간에 따라 타깃 파일을 액세스하도록 구성된 제2 액세스 모듈(440)을 포함한다.
이해해야 할 것은, 확립 모듈(450)은 수신 모듈(410)이 파일 액세스 요청을 수신하기 전에 커널 공간에서 제1 매핑 관계를 확립한다는 것이다. 또한, 이해해야 할 것은, 링크 모듈(470)이, 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에, 확립 모듈(450)에 의해 확립되고 커널 공간에 저장되는 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 링크하면, 제1 액세스 모듈(420)은 제1 가상 주소 공간 및 제1 매핑 관계에 따라 제1 물리 주소 공간을 액세스한다는 것이다.
이해해야 할 것은, 본 발명의 본 실시예에 따른 파일 액세스 장치(400)에서의 각 모듈의 전술한 것 그리고 다른 조작 및/또는 기능은 도 2, 도 4, 및 도 5에 도시된 방법의 대응하는 프로시저를 구현하도록 개별적으로 의도된다는 것이다.
본 발명의 본 실시예에 따른 파일 액세스 장치에서는, 파일 시스템을 저장하는 제1 물리 주소 공간의 타깃 파일을 제1 가상 주소 공간을 사용하여 사용자 공간에서의 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 매핑 관계에 따라 액세스하므로, 종래기술에서의 파일 액세스 중에 빈번한 시스템 호출 없이 파일 액세스가 사용자 공간에서 직접 구현되어, 파일 액세스 중의 소프트웨어 실행 오버헤드를 효과적으로 감소시킬 수 있고, 파일 액세스 속도를 증가시킬 수 있다.
도 9에 도시된 바와 같이, 본 발명의 실시예는 저장 시스템의 개략 구성도를 더 제공한다. 저장 시스템(500)은 프로세스(510), 메모리(520), 및 버스 시스템(530)을 포함한다. 프로세서(510)는 버스 시스템(530)을 사용하여 메모리(530)에 연결되고, 메모리(520)는 파일 및 프로그램을 저장하도록 구성된다. 프로세서(510)는, 버스 시스템(530)을 사용하여, 메모리(520)에 저장된 코드를 호출(invoke)하여, 프로세스로부터 파일 액세스 요청을 수신하는 단계 - 파일 액세스 요청은 파일 식별자를 포함하고, 파일 식별자는 액세스될 타깃 파일을 지시하는 데 사용됨 -; 미리 설정된 제1 가상 주소 공간 및 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라 제1 물리 주소 공간을 액세스하는 단계 - 제1 가상 주소 공간은 운영체제에서의 사용자 공간의 일부이고, 제1 물리 주소 공간은 파일 시스템을 저장하고 메모리 공간의 일부임 -; 타깃 파일의 파일 식별자에 따라 제1 물리 주소 공간으로부터 타깃 파일의 색인 노드를 취득하는 단계 - 색인 노드는 타깃 파일의 파일 페이지 테이블 정보를 포함함 -; 타깃 파일의, 색인 노드에 포함된, 파일 페이지 테이블 정보에 따라 타깃 파일의 파일 페이지 테이블을 취득하는 단계 - 파일 페이지 테이블은 제1 물리 주소 공간 내의 제2 물리 주소 공간을 기록하고, 타깃 파일의 데이터 페이지는 제2 물리 주소 공간에 저장되고, 타깃 파일의 데이터 페이지는 파일 데이터를 저장하는 데 사용됨 -; 및 제2 물리 주소 공간에 따라 타깃 파일을 액세스하는 단계를 구현한다.
본 발명의 본 실시예에 따른 저장 시스템에서는, 파일 시스템을 저장하는 제1 물리 주소 공간의 타깃 파일을 제1 가상 주소 공간을 사용하여 사용자 공간에서의 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 매핑 관계에 따라 액세스하므로, 종래기술에서의 파일 액세스 중에 빈번한 시스템 호출 없이 파일 액세스가 사용자 공간에서 직접 구현되어, 파일 액세스 중의 소프트웨어 실행 오버헤드를 효과적으로 감소시킬 수 있고, 파일 액세스 속도를 증가시킬 수 있다.
선택적으로, 프로세서(510)는, 버스 시스템(530)을 사용하여, 메모리(520)에 저장된 코드를 호출하여, 구체적으로, 타깃 파일에 제2 가상 주소 공간을 할당하고 - 제2 가상 주소 공간은 운영체제에서의 사용자 공간 중, 프로세스에 할당된, 사유 공간의 일부이고, 제2 가상 주소 공간은 연속한 주소 공간임 -; 제2 물리 주소 공간과 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립하고; 제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일을 액세스하는 것을 구현한다.
선택적으로, 프로세서(510)는, 버스 시스템(530)을 사용하여, 메모리(520)에 저장된 코드를 호출하여, 구체적으로, 타깃 파일의 파일 페이지 테이블을 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크시킴으로써 제2 매핑 관계를 확립하는 것을 구현한다.
선택적으로, 제2 가상 주소 공간은 제2 물리 주소 공간보다 크다. 프로세서(510)는, 버스 시스템(530)을 사용하여, 메모리(520)에 저장된 코드를 호출하여, 구체적으로, 제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일에 대해 판독 조작을 수행하고; 판독 조작을 통해 판독될 데이터에 대응하는 가상 주소가 타깃 파일에 대응하는 가상 주소 공간에 포함되지 않는 경우, 판독 조작을 종료하는 것을 구현한다.
선택적으로, 제2 가상 주소 공간은 제2 물리 주소 공간보다 크다. 프로세서(510)는, 버스 시스템(530)을 사용하여, 메모리(520)에 저장된 코드를 호출하여, 구체적으로, 제2 가상 주소 공간 및 제2 매핑 관계에 따라 제2 물리 주소 공간 중의 타깃 파일에 대해 기록 조작을 수행하고; 기록 조작을 통해 기록될 데이터에 대응하는 가상 주소가 제2 가상 주소 공간에 포함되지 않는 경우, 기록 조작을 종료하는 것을 구현한다.
선택적으로, 프로세서(510)는, 버스 시스템(530)을 사용하여, 메모리(520)에 저장된 코드를 호출하여, 추가로, 커널 공간에, 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 제1 매핑 관계를 확립하고, 커널 공간에 대응하는 프로세스 페이지 테이블에, 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 저장하고; 프로세스로부터 파일 액세스 요청을 수신한 후에, 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 제1 매핑 관계를 기록하지 않는 것으로 결정하고; 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에, 커널 공간에 저장되는, 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 링크하는 것을 구현한다.
이해해야 할 것은, 본 발명의 본 실시예에서, 프로세서(510)는 중앙 처리 유닛(Central Processing Unit, 약칭하여 "CPU")일 수 있거나, 프로세서(510)는 다른 범용 프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 반도체(application-specific integrated circuit, ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA) 또는 다른 프로그래머블 로직 디바이스, 트랜지스터 로직 디바이스, 하드웨어 구성요소 등일 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 또는 프로세서는 임의의 정규 프로세서일 수 있다.
메모리(520)는 판독 전용 메모리 및 랜덤 액세스 메모리를 포함할 수 있으며, 프로세서(410)에 명령어 및 데이터를 제공한다. 메모리(520)는, 파일을 저장하도록 구성되는, 비휘발성 랜덤 액세스 메모리를 더 포함할 수 있다. 예를 들어, 메모리(520)는 기기 유형과 같은 정보를 더 저장할 수 있다.
데이터 버스 외에, 버스 시스템(530)은 또한 전력 버스, 제어 버스, 상태 신호 버스 등을 포함할 수 있다. 그러나 명확한 설명을 위해, 도면의 모든 버스는 버스 시스템(530)으로 라벨링되어 있다.
본 발명의 본 실시예에서 저장 시스템(500)은 컴퓨터, 서버, 파일 시스템이 확립된 스토리지 어레이(storage array) 등의 기기를 포함할 수 있다. 유의해야 할 것은, 저장 시스템(500)에서, NVM은 메모리 버스에 장착될 수 있고, 파일 시스템은 NVM 내에 확립된다.
구현 프로세스 동안에, 전술한 방법들에서의 단계들은 프로세서(510) 내의 하드웨어의 통합된 논리 회로 또는 소프트웨어 형태의 명령어를 사용하여 완료될 수 있다. 본 발명의 실시예를 참조하여 개시된 방법의 단계들은 하드웨어 프로세서에 의해 직접 실행되거나, 프로세서 중의 하드웨어와 소프트웨어 모듈의 조합에 의해 실행될 수 있다. 소프트웨어 모듈은 랜덤 액세스 메모리, 플래시 메모리, 판독 전용 메모리, 프로그램 가능 판독 전용 메모리, 전기적 소거 및 프로그램 가능 판독 전용 메모리 (electrically erasable programmable read-only memory), 또는 레지스터와 같은 종래 기술에서 성숙한 저장 매체에 위치할 수 있다. 저장 매체는 메모리(520)에 위치한다. 프로세서(510)는 메모리(520)로부터 정보를 판독하고, 프로세서(510)의 하드웨어를 참조하여 전술한 방법의 단계들을 완료한다. 반복을 피하기 위해, 여기서는 세부사항을 다시 설명하지 않는다.
이해해야 할 것은, 본 발명의 본 실시예에 따른 저장 시스템(500)은 본 발명의 전술한 실시 예에 따른 파일 액세스 장치(400)에 대응할 수 있으며, 저장 시스템(500)은 도 2, 도 4 및 도 5에 도시된 방법을 구현할 수 있다는 것이다. 간략함을 위해, 여기서는 세부사항을 다시 설명하지 않는다.
본 발명의 본 실시예에 따른 저장 시스템에서는, 파일 시스템을 저장하는 제1 물리 주소 공간의 타깃 파일을 제1 가상 주소 공간을 사용하여 사용자 공간에서의 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 매핑 관계에 따라 액세스하므로, 종래기술에서의 파일 액세스 중에 빈번한 시스템 호출 없이 파일 액세스가 사용자 공간에서 직접 구현되어, 파일 액세스 중의 소프트웨어 실행 오버헤드를 효과적으로 감소시킬 수 있고, 파일 액세스 속도를 증가시킬 수 있다.
이해해야 할 것은, 본 발명의 명세서, 청구범위, 및 첨부도면에서, 용어 "첫 번째(제1)", "두 번째(제2)", "세 번째(제3)", 등은 다른 대상 사이를 구별하기 위한 것이고, 특정 순서를 나타내는 것은 아니라는 것이다. 또한, 용어 "포함한다(include, contain)", 또는 그 다른 변형은 비배타적인 포함(non-exclusive inclusion)을 커버하도록 의도된다. 예를 들어, 일련의 단계 또는 모듈을 포함하는 프로세스, 방법, 시스템, 제품 또는 장치는 반드시 열거된 단계 또는 모듈로 한정되는 것이 아니고, 열거되지 않은 단계 또는 모듈을 선택적으로 더 포함하거나, 또는 프로세스, 방법, 제품 또는 장치의 다른 고유한 단계 또는 모듈을 선택적으로 더 포함할 수 있다.
또한, 이해해야 할 것은, 전술한 프로세스의 시퀀스 번호는 본 발명의 여러 실시예에서의 실행 시퀀스를 의미하지는 않는다는 것이다. 프로세스의 실행 시퀀스는 프로세스의 내부 논리 및 기능에 따라 결정되어야 하며, 본 발명의 실시예들의 구현 프로세스에 대한 어떠한 한정으로 해석되어서는 안된다.
당업자는, 본 명세서에 개시된 실시예에서 설명한 예들을 조합하여, 유닛들 및 알고리즘의 단계들을 전자적인 하드웨어, 또는 컴퓨터 소프트웨어와 전자적인 하드웨어의 조합으로 구현할 수 있다는 것을 알 수 있을 것이다. 기능들이 하드웨어나 소프트웨어에 의해 수행되는지는 기술적 방안의 구체적인 애플리케이션 및 설계 제약 조건에 따라 달라진다. 당업자는 각각의 구체적인 애플리케이션에 대해 기술된 기능을 구현하기 위해 상이한 방법을 사용할 수 있지만, 그러한 구현이 본 발명의 범위를 벗어나는 것으로 생각해서는 안 된다.
본 출원에 제공된 여러 실시예에서, 개시된 시스템, 장치, 및 방법은 다른 방식으로도 구현될 수 있음을 알아야 한다. 예를 들어, 기재된 장치 실시예는 예시일 뿐이다. 예를 들어, 유닛의 분할은 논리 기능 분할일 뿐이고, 실제 구현에서는 다른 분할일 수 있다. 예를 들어, 복수의 유닛 또는 구성요소는 다른 시스템에 결합 또는 통합될 수 있거나, 또는 일부 특징(feature)은 무시되거나 수행되지 않을 수 있다. 또한, 표시되거나 논의된 상호 결합 또는 직접 결합 또는 통신 연결은 일정한 인터페이스를 통해 구현될 수 있다. 장치 또는 유닛 사이의 간접 결합 또는 통신 연결은 전자적인 형태 또는 기계적인 형태 또는 다른 형태로 구현될 수 있다.
기능들이 소프트웨어 기능 유닛의 형태로 구현되고 독립된 제품으로 판매되거나 사용되는 경우, 그 기능들은 컴퓨터로 판독할 수 있는 저장 매체에 저장될 수 있다. 이러한 이해를 바탕으로, 본질적으로 본 발명의 기술적 방안, 또는 종래기술에 기여하는 부분, 또는 기술적 방안의 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은, 저장 매체에 저장되고, 컴퓨터 디바이스(개인용 컴퓨터, 서버, 또는 네트워크 디바이스일 수 있음)에 본 발명의 실시예에서 기재된 방법의 단계들 중 일부 또는 전부를 수행하도록 지시하기 위한 여러 명령어를 포함한다. 전술한 저장 매체로는, USB 플래시 드라이브, 탈착 가능한 하드 디스크, 판독 전용 메모리(ROM,Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 자기 디스크, 또는 광디스크와 같은, 프로그램 코드를 저장할 수 있는 임의의 비일시적인(non-transitory), 기계로 판독할 수 있는 매체를 포함한다.
당업자라면 설명의 편의 및 간결함을 위해, 전술한 실시예에서, 실시 예는 상이한 측면을 강조하고, 일 실시예에서 상세하게 설명되지 않은 부분에 대해서는 다른 실시예의 관련 설명을 참조할 수 있다는 것을 명백히 알 수 있다. 본 발명, 청구범위 및 첨부도면의 실시 예에 개시된 특징은 독립적으로 존재할 수도 있거나, 조합하여 존재할 수도 있다. 본 발명의 실시예들에서 하드웨어 형태로 기재된 특징들은 소프트웨어로 실행될 수 있으며, 그 반대도 가능하며, 여기서는 이를 한정하지 않는다.

Claims (18)

  1. 프로세스로부터 파일 액세스 요청을 수신하는 단계 - 상기 파일 액세스 요청은 파일 식별자를 포함하고, 상기 파일 식별자는 액세스될 타깃 파일을 지시하는 데 사용됨 -;
    미리 설정된 제1 가상 주소 공간 및 상기 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라 상기 제1 물리 주소 공간을 액세스하는 단계 - 상기 제1 가상 주소 공간은 운영체제에서의 사용자 공간의 일부이고, 상기 제1 물리 주소 공간은 파일 시스템을 저장하고 메모리 공간의 일부임 -;
    상기 타깃 파일의 파일 식별자에 따라 상기 제1 물리 주소 공간으로부터 상기 타깃 파일의 색인 노드를 취득하는 단계 - 상기 색인 노드는 상기 타깃 파일의 파일 페이지 테이블 정보를 포함함 -;
    상기 색인 노드에 포함된, 상기 타깃 파일의 상기 파일 페이지 테이블 정보에 따라 상기 타깃 파일의 파일 페이지 테이블을 취득하는 단계 - 상기 파일 페이지 테이블은 상기 제1 물리 주소 공간 내의 제2 물리 주소 공간을 기록하고, 상기 타깃 파일의 데이터 페이지는 상기 제2 물리 주소 공간에 저장되고, 상기 타깃 파일의 데이터 페이지는 파일 데이터를 저장하는 데 사용됨 -; 및
    상기 제2 물리 주소 공간에 따라 상기 타깃 파일을 액세스하는 단계
    를 포함하는 파일 액세스 방법.
  2. 제1항에 있어서,
    상기 제2 물리 주소 공간에 따라 상기 타깃 파일을 액세스하는 단계는,
    상기 타깃 파일에 제2 가상 주소 공간을 할당하는 단계 - 상기 제2 가상 주소 공간은 상기 운영체제에서의 상기 사용자 공간 중, 상기 프로세스에 할당된, 사유 공간(private space)의 일부이고, 상기 제2 가상 주소 공간은 연속한 주소 공간임 -;
    상기 제2 물리 주소 공간과 상기 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립하는 단계; 및
    상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라, 상기 제2 물리 주소 공간 중의 상기 타깃 파일을 액세스하는 단계를 포함하는, 파일 액세스 방법.
  3. 제2항에 있어서,
    상기 제2 물리 주소 공간과 상기 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립하는 단계는,
    상기 타깃 파일의 파일 페이지 테이블을 상기 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크시킴으로써 상기 제2 매핑 관계를 확립하는 단계를 포함하는, 파일 액세스 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
    상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일을 액세스하는 단계는,
    상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 내의 상기 타깃 파일에 대해 판독 조작을 수행하는 단계; 및
    상기 판독 조작을 통해 판독될 데이터에 대응하는 가상 주소가 상기 타깃 파일에 대응하는 가상 주소 공간에 포함되지 않는 경우, 상기 판독 조작을 종료하는 단계를 포함하는, 파일 액세스 방법.
  5. 제2항 또는 제3항에 있어서,
    상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
    상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 내의 상기 타깃 파일을 액세스하는 단계는,
    상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일에 대해 기록 조작을 수행하는 단계; 및
    상기 기록 조작을 통해 기록될 데이터에 대응하는 가상 주소가 상기 제2 가상 주소 공간에 포함되지 않는 경우, 상기 기록 조작을 종료하는 단계를 포함하는, 파일 액세스 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 파일 액세스 방법은,
    커널 공간에, 상기 제1 가상 주소 공간과 상기 제1 물리 주소 공간 사이의 상기 제1 매핑 관계를 확립하고, 상기 커널 공간에 대응하는 프로세스 페이지 테이블에, 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 저장하는 단계를 더 포함하고;
    상기 프로세스로부터 파일 액세스 요청을 수신하는 단계 이후에,
    상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 상기 제1 매핑 관계를 기록하지 않는 것으로 결정하는 단계; 및
    상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에, 상기 커널 공간에 저장되는, 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 링크하는 단계를 더 포함하는 파일 액세스 방법.
  7. 프로세스로부터 파일 액세스 요청을 수신하도록 구성된 수신 모듈 - 상기 파일 액세스 요청은 파일 식별자를 포함하고, 상기 파일 식별자는 액세스될 타깃 파일을 지시하는 데 사용됨 -;
    미리 설정된 제1 가상 주소 공간 및 상기 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라, 상기 제1 물리 주소 공간을 액세스하도록 구성된 제1 액세스 모듈 - 상기 제1 가상 주소 공간은 운영체제에서의 사용자 공간의 일부이고, 상기 제1 물리 주소 공간은 파일 시스템을 저장하고 메모리 공간의 일부임 -;
    상기 타깃 파일의 파일 식별자에 따라 상기 제1 물리 주소 공간으로부터 상기 타깃 파일의 색인 노드를 취득하도록 구성되고 - 상기 색인 노드는 상기 타깃 파일의 파일 페이지 테이블 정보를 포함함 -; 추가로 상기 타깃 파일의, 상기 색인 노드에 포함된, 상기 파일 페이지 테이블 정보에 따라 상기 타깃 파일의 파일 페이지 테이블을 취득하도록 구성된 취득 모듈 - 상기 파일 페이지 테이블은 상기 제1 물리 주소 공간 내의 제2 물리 주소 공간을 기록하고, 상기 타깃 파일의 데이터 페이지는 상기 제2 물리 주소 공간에 저장되고, 상기 타깃 파일의 데이터 페이지는 파일 데이터를 저장하는 데 사용됨 -; 및
    상기 취득 모듈에 의해 취득된 상기 파일 페이지 테이블에 의해 지시되는 상기 제2 물리 주소 공간에 따라 상기 타깃 파일을 액세스하도록 구성된 제2 액세스 모듈
    을 포함하는 파일 액세스 장치.
  8. 제7항에 있어서,
    상기 제2 액세스 모듈은,
    상기 타깃 파일에 제2 가상 주소 공간을 할당하도록 구성된 할당 유닛 - 상기 제2 가상 주소 공간은 상기 운영체제에서의 상기 사용자 공간 중, 상기 프로세스에 할당된, 사유 공간의 일부이고, 상기 제2 가상 주소 공간은 연속한 주소 공간임 -;
    상기 제2 물리 주소 공간과 상기 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립하도록 구성된 확립 유닛; 및
    상기 할당 유닛에 의해 할당되는 상기 제2 가상 주소 공간 및 상기 확립 유닛에 의해 확립되는 상기 제2 매핑 관계에 따라, 상기 제2 물리 주소 공간 중의 상기 타깃 파일을 액세스하도록 구성된 액세스 유닛을 포함하는, 파일 액세스 장치.
  9. 제8항에 있어서,
    상기 확립 유닛은 구체적으로,
    상기 타깃 파일의 파일 페이지 테이블을 상기 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크시킴으로써 상기 제2 매핑 관계를 확립하도록 구성되는, 파일 액세스 장치.
  10. 제8항 또는 제9항에 있어서,
    상기 할당 유닛에 의해 할당되는 상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
    상기 액세스 유닛은 구체적으로,
    상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일에 대해 판독 조작을 수행하고;
    상기 판독 조작을 통해 판독될 데이터에 대응하는 가상 주소가 상기 타깃 파일에 대응하는 가상 주소 공간에 포함되지 않는 경우, 상기 판독 조작을 종료하도록 구성되는, 파일 액세스 장치.
  11. 제8항 또는 제9항에 있어서,
    상기 할당 유닛에 의해 할당되는 상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
    상기 액세스 유닛은 구체적으로,
    상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일에 대해 기록 조작을 수행하고;
    상기 기록 조작을 통해 기록될 데이터에 대응하는 가상 주소가 상기 제2 가상 주소 공간에 포함되지 않는 경우, 상기 기록 조작을 종료하도록 구성되는, 파일 액세스 장치.
  12. 제7항 내지 제11항 중 어느 한 항에 있어서,
    상기 파일 액세스 장치는,
    커널 공간에, 상기 제1 가상 주소 공간과 상기 제1 물리 주소 공간 사이의 상기 제1 매핑 관계를 확립하고, 상기 커널 공간에 대응하는 프로세스 페이지 테이블에, 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 저장하도록 구성된 확립 모듈;
    상기 수신 모듈이 상기 프로세스로부터 상기 파일 액세스 요청을 수신한 이후에, 상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 상기 제1 매핑 관계를 기록하지 않는 것으로 결정하도록 구성된 결정 모듈; 및
    상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에, 상기 커널 공간에 저장되는, 상기 확립 모듈에 의해 확립되는 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 링크하도록 구성된 링크 모듈을 더 포함하는 파일 액세스 장치.
  13. 파일 및 프로그램을 저장하도록 구성된 메모리; 및
    프로세서
    를 포함하고,
    상기 프로세서는 상기 프로그램을 실행하여,
    프로세스로부터 파일 액세스 요청을 수신하는 단계 - 상기 파일 액세스 요청은 파일 식별자를 포함하고, 상기 파일 식별자는 액세스될 타깃 파일을 지시하는 데 사용됨 -;
    미리 설정된 제1 가상 주소 공간 및 상기 제1 가상 주소 공간과 제1 물리 주소 공간 사이의 미리 설정된 제1 매핑 관계에 따라 상기 제1 물리 주소 공간을 액세스하는 단계 - 상기 제1 가상 주소 공간은 운영체제에서의 사용자 공간의 일부이고, 상기 제1 물리 주소 공간은 파일 시스템을 저장하고 메모리 공간의 일부임 -;
    상기 타깃 파일의 파일 식별자에 따라 상기 제1 물리 주소 공간으로부터 상기 타깃 파일의 색인 노드를 취득하는 단계 - 상기 색인 노드는 상기 타깃 파일의 파일 페이지 테이블 정보를 포함함 -;
    상기 색인 노드에 포함된, 상기 타깃 파일의 상기 파일 페이지 테이블 정보에 따라 상기 타깃 파일의 파일 페이지 테이블을 취득하는 단계 - 상기 파일 페이지 테이블은 상기 제1 물리 주소 공간 내의 제2 물리 주소 공간을 기록하고, 상기 타깃 파일의 데이터 페이지는 상기 제2 물리 주소 공간에 저장되고, 상기 타깃 파일의 데이터 페이지는 파일 데이터를 저장하는 데 사용됨 -; 및
    상기 제2 물리 주소 공간에 따라 상기 타깃 파일을 액세스하는 단계를 구현하도록 구성되는,
    저장 시스템.
  14. 제13항에 있어서,
    상기 프로세서는 구체적으로,
    상기 타깃 파일에 제2 가상 주소 공간을 할당하고 - 상기 제2 가상 주소 공간은 상기 프로세스에 할당된, 상기 운영체제에서의 상기 사용자 공간 중, 사유 공간의 일부이고, 상기 제2 가상 주소 공간은 연속한 주소 공간임 -;
    상기 제2 물리 주소 공간과 상기 제2 가상 주소 공간 사이의 제2 매핑 관계를 확립하고;
    상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일을 액세스하도록 구성되는, 저장 시스템.
  15. 제14항에 있어서,
    상기 프로세서는 구체적으로, 상기 타깃 파일의 파일 페이지 테이블을 상기 제2 가상 주소 공간에 대응하는 프로세스 페이지 테이블에 링크시킴으로써 상기 제2 매핑 관계를 확립하도록 구성되는, 저장 시스템.
  16. 제14항 또는 제15항에 있어서,
    상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
    상기 프로세서는 구체적으로,
    상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일에 대해 판독 조작을 수행하고;
    상기 판독 조작을 통해 판독될 데이터에 대응하는 가상 주소가 상기 타깃 파일에 대응하는 가상 주소 공간에 포함되지 않는 경우, 상기 판독 조작을 종료하도록 구성되는, 저장 시스템.
  17. 제14항 또는 제15항에 있어서,
    상기 제2 가상 주소 공간은 상기 제2 물리 주소 공간보다 크고;
    상기 프로세서는 구체적으로,
    상기 제2 가상 주소 공간 및 상기 제2 매핑 관계에 따라 상기 제2 물리 주소 공간 중의 상기 타깃 파일에 대해 기록 조작을 수행하고;
    상기 기록 조작을 통해 기록될 데이터에 대응하는 가상 주소가 상기 제2 가상 주소 공간에 포함되지 않는 경우, 상기 기록 조작을 종료하도록 구성되는, 저장 시스템.
  18. 제13항 내지 제17항 중 어느 한 항에 있어서,
    상기 프로세서는 추가로,
    커널 공간에, 상기 제1 가상 주소 공간과 상기 제1 물리 주소 공간 사이의 상기 제1 매핑 관계를 확립하고, 상기 커널 공간에 대응하는 프로세스 페이지 테이블에, 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 저장하고;
    상기 프로세스로부터 파일 액세스 요청을 수신한 후에, 상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블이 상기 제1 매핑 관계를 기록하지 않는 것으로 결정하고;
    상기 제1 가상 주소 공간에 대응하는 프로세스 페이지 테이블에, 상기 커널 공간에 저장되는, 상기 제1 매핑 관계에 대응하는 매핑 페이지 테이블을 링크하도록 구성되는, 저장 시스템.
KR1020177007217A 2014-09-01 2014-09-01 파일 액세스 방법 및 장치, 그리고 저장 시스템 KR101909966B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/085661 WO2016033719A1 (zh) 2014-09-01 2014-09-01 访问文件的方法、装置及存储系统

Publications (2)

Publication Number Publication Date
KR20170043593A true KR20170043593A (ko) 2017-04-21
KR101909966B1 KR101909966B1 (ko) 2018-10-19

Family

ID=55438969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177007217A KR101909966B1 (ko) 2014-09-01 2014-09-01 파일 액세스 방법 및 장치, 그리고 저장 시스템

Country Status (9)

Country Link
US (1) US10061711B2 (ko)
EP (2) EP3173931B1 (ko)
JP (1) JP6377257B2 (ko)
KR (1) KR101909966B1 (ko)
CN (1) CN105579977B (ko)
BR (1) BR112017002780B1 (ko)
PH (1) PH12017500241A1 (ko)
SG (1) SG11201701365XA (ko)
WO (1) WO2016033719A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104571934B (zh) * 2013-10-18 2018-02-06 华为技术有限公司 一种内存访问的方法、设备和系统
CN105830059B (zh) * 2014-11-28 2019-09-27 华为技术有限公司 文件访问方法、装置及存储设备
US10437735B2 (en) 2017-12-13 2019-10-08 Red Hat, Inc. Process isolation for out of process page fault handling
GB2570691B (en) * 2018-02-02 2020-09-09 Advanced Risc Mach Ltd Controlling guard tag checking in memory accesses
KR20190106228A (ko) * 2018-03-08 2019-09-18 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN111414248B (zh) * 2019-01-04 2023-03-21 阿里巴巴集团控股有限公司 内存管理方法、装置及计算设备
CN110196757B (zh) * 2019-05-31 2021-08-03 龙芯中科技术股份有限公司 虚拟机的tlb填写方法、装置及存储介质
CN110457261B (zh) * 2019-08-06 2023-11-10 深圳市腾讯计算机系统有限公司 数据访问方法、装置及服务器
CN111597124B (zh) * 2020-04-21 2023-05-05 重庆大学 持久化内存文件系统数据组织方法、系统及存储介质
CN112860480B (zh) * 2020-09-11 2022-09-09 华为技术有限公司 一种双活存储系统及其处理数据的方法
US11875152B2 (en) * 2020-10-30 2024-01-16 EMC IP Holding Company LLC Methods and systems for optimizing file system usage
CN112732198B (zh) * 2021-01-15 2023-11-14 广州Tcl互联网小额贷款有限公司 文件管理方法、装置、设备和存储介质
CN112732269B (zh) * 2021-01-15 2024-05-24 北京博雅慧视智能技术研究院有限公司 一种应用于avs2硬件编码器的物理地址的访问方法及装置
CN117093132A (zh) * 2022-05-12 2023-11-21 华为技术有限公司 数据处理方法、装置、处理器及计算机系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4742447A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US4742450A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to share copy on write segment for mapped files
US5873120A (en) * 1996-05-03 1999-02-16 Digital Equipment Corporation Variable split virtual address space allocation with multi-system compatibility
US6061773A (en) * 1996-05-03 2000-05-09 Digital Equipment Corporation Virtual memory system with page table space separating a private space and a shared space in a virtual memory
CN100504854C (zh) 2003-01-14 2009-06-24 联想(北京)有限公司 文件管理方法
US8069192B2 (en) 2004-03-22 2011-11-29 Microsoft Corporation Computing device with relatively limited storage space and operating / file system thereof
US7409494B2 (en) 2004-04-30 2008-08-05 Network Appliance, Inc. Extension of write anywhere file system layout
US8645665B1 (en) 2012-12-14 2014-02-04 Intel Corporation Virtualizing physical memory in a virtual machine system utilizing multilevel translation table base registers to map guest virtual addresses to guest physical addresses then to host physical addresses
CN100470506C (zh) 2007-06-08 2009-03-18 马彩艳 基于sector访问的flash存储器的存储管理方法
CN101382953B (zh) 2008-09-19 2013-03-20 中兴通讯股份有限公司 在用户空间访问文件系统的接口系统与文件读、写方法
EP2211263A3 (en) 2009-01-23 2013-01-23 Infortrend Technology, Inc. Method for performing storage virtualization in a storage system architecture
CN101882132A (zh) * 2009-04-27 2010-11-10 深圳市闪联信息技术有限公司 虚拟fat文件系统的创建及读取方法以及装置
CN101901263A (zh) * 2010-07-22 2010-12-01 华为终端有限公司 文件系统的访问方法及装置
US8495750B2 (en) * 2010-08-31 2013-07-23 International Business Machines Corporation Filesystem management and security system
JP5986585B2 (ja) * 2011-01-21 2016-09-06 トムソン ライセンシングThomson Licensing 下位互換性アグリゲートファイルシステムの動作性能の向上方法、及び装置
CN102707966B (zh) * 2012-04-12 2014-09-03 腾讯科技(深圳)有限公司 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端
CN103748565A (zh) * 2012-08-16 2014-04-23 华为终端有限公司 一种用于终端的文件访问方法及终端
CN103218312B (zh) * 2013-03-28 2017-07-11 中国科学院上海微系统与信息技术研究所 文件访问方法及系统
KR102061079B1 (ko) * 2014-03-07 2019-12-31 후아웨이 테크놀러지 컴퍼니 리미티드 파일 액세스 방법 및 관련 기기

Also Published As

Publication number Publication date
US20170168952A1 (en) 2017-06-15
EP3173931A1 (en) 2017-05-31
KR101909966B1 (ko) 2018-10-19
BR112017002780A2 (pt) 2017-12-19
WO2016033719A1 (zh) 2016-03-10
EP3489832A1 (en) 2019-05-29
US10061711B2 (en) 2018-08-28
JP2017529612A (ja) 2017-10-05
SG11201701365XA (en) 2017-03-30
EP3173931B1 (en) 2018-08-29
EP3173931A4 (en) 2017-08-02
PH12017500241B1 (en) 2017-07-03
CN105579977A (zh) 2016-05-11
JP6377257B2 (ja) 2018-08-22
PH12017500241A1 (en) 2017-07-03
CN105579977B (zh) 2020-04-14
EP3489832B1 (en) 2021-06-30
BR112017002780B1 (pt) 2023-01-31

Similar Documents

Publication Publication Date Title
KR101909966B1 (ko) 파일 액세스 방법 및 장치, 그리고 저장 시스템
US10157143B2 (en) File access method and apparatus, and storage system
US10452562B2 (en) File access method and related device
US10067684B2 (en) File access method and apparatus, and storage device
US11762827B2 (en) B-plus tree access method and apparatus, and computer-readable storage medium
US20150113230A1 (en) Directory storage method and query method, and node controller
US9355121B1 (en) Segregating data and metadata in a file system
US9378149B1 (en) Method and system for tracking modification times of data in a storage system
JP6378364B2 (ja) ファイル管理方法およびファイルシステム
US10007462B1 (en) Method and system for adaptive data migration in solid state memory
CN112748854B (zh) 对快速存储设备的优化访问
WO2016049893A1 (zh) 文件页面管理单元、处理设备和文件页面管理方法
JP2017224112A (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