KR101925651B1 - 이전 버전과 호환 가능한 종합 파일 시스템 동작 성능 향상을 위한 방법, 및 각각의 장치 - Google Patents
이전 버전과 호환 가능한 종합 파일 시스템 동작 성능 향상을 위한 방법, 및 각각의 장치 Download PDFInfo
- Publication number
- KR101925651B1 KR101925651B1 KR1020137021965A KR20137021965A KR101925651B1 KR 101925651 B1 KR101925651 B1 KR 101925651B1 KR 1020137021965 A KR1020137021965 A KR 1020137021965A KR 20137021965 A KR20137021965 A KR 20137021965A KR 101925651 B1 KR101925651 B1 KR 101925651B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- directory
- virtual
- file system
- user space
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
- G06F16/192—Implementing virtual folder structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
파일 시스템을 운영하는 방법은 다수의 시스템 호출들이 요구되는 파일 디렉토리로부터의 결과를 제공하도록 가상 파일을 설계하는 단계, 가상 파일을 고유 이름에 의해 파일 디렉토리의 실제 파일들과 구별하는 단계, 및 가상 파일을 열고 가상 파일의 콘텐츠를 판독함으로써 파일 디렉토리로부터의 결과를 검색하는 단계를 포함한다. 가상 파일은 특히 파일 시스템 동작을 위해 설계된다.
Description
본 발명은 파일 디렉토리를 포함하는 파일 시스템을 운영하는 방법, 및 그 방법을 사용하는 장치, 특히, 가정용 게이트웨이에 관한 것이다.
최종 사용자의 가정용 네트워크(residential network)를 인터넷에 연결하는 가정용 게이트웨이들이 어쩌다 보니 널리 사용되고 있다. 가정용 게이트웨이는 통상 디지털 가입자 라인(DSL)을 통해 광대역 서비스들 및 POTS(plain old telephone service)라고 공지된 전화 통신을 제공하고, 추가로, 가정용 네트워크를 위한, 유선 송신, 예를 들어, 이더넷, 및 무선 송신(Wi-Fi)을 포함한다. 서비스들을 제공하기 위해, 가정용 게이트웨이는 유닉스 유형(Unix-like) 운영 체제에서 실행하는 마이크로프로세서 시스템(CPU)을 포함한다.
운영 체제는 마스터 제어 프로그램인 커널과 함께 애플리케이션들 및 유틸리티들을 포함한다. 커널은 프로그램들을 시작하고 종료하는 서비스들을 제공하고, 대부분의 애플리케이션들이 공유하는 파일 시스템들 및 다른 공통 "저수준" 태스크들을 처리하며, 애플리케이션들 간의 충돌을 방지하기 위해 액세스를 스케줄링한다. 이러한 액세스를 조정하기 위해, 커널은 사용자 공간과 시스템 공간 간의 그의 가상 메모리의 분리에 반영된, 특별 권리들을 갖는다. 시스템 공간은 커널, 커널 확장들, 및 대부분의 디바이스 드라이버들을 실행하기 위해 엄격히 비축된다. 대조적으로, 사용자 공간은 모든 사용자 모드 애플리케이션들이 작업하는 메모리 영역이며, 이 메모리는 필요할 때 옮겨 비워질 수 있다.
파일 시스템들의 주요 개념은, 이들이 상이한 종류들의 파일 시스템들을 상호 운용 가능하게 하는, 고정된 애플리케이션 프로그래밍 인터페이스(API)를 갖는다는 것이다. 파일 시스템을 사용하는 애플리케이션의 경우, 파일 시스템의 포맷, 예를 들어, FAT32, NTFS, Ext3, ...은 차이가 없으며, 애플리케이션은 이에 신경 쓰지도 않을 것이다. 유닉스 유형 운영 체제의 경우, 파일 시스템의 API는, IEEE에 의해 명시된 표준들의 계통인, POSIX(Portable Operating System Interface) 표준에 순응한다.
파일 시스템 API는 파일 시스템들 간의 상호 운용 가능성을 하찮게 만들고, 이는 실제 이점이기는 하지만, 이는 일부 애플리케이션들에게는 약점일 수도 있다. 일부 매우 기본적인 동작들은 직접 가능하지 않으며, API의 유효한 기능들로 에뮬레이트되어야만 하기에, 리소스들의 면에서 매우 비용이 많이 들 수 있다.
파일 시스템들은 운영 체제의 일부이고, 따라서, 이들은 시스템 공간에서 동작한다. 한편, 애플리케이션들은 특권이 덜한 사용자 공간에서 동작한다. 사용자 공간과 시스템 공간 간의 경계를 가로지르기 위해, 도 1에 도시된 바와 같이, 운영 체제는 시스템 호출 인터페이스를 제공한다. 시스템 호출은 애플리케이션이 운영 체제의 커널에 서비스를 요청하는 방법이다. 일반적으로, 운영 체제에 의해 사용된 시스템 호출들을 함수들에 의해 사용자 공간이 액세스할 수 있게 하는 중간 라이브러리, 예를 들어, 표준 C 라이브러리가 있다.
애플리케이션이 시스템 호출을 직접 야기하거나, 또는 시스템 호출을 야기할 함수를 라이브러리로부터 호출할 때, 사용자 공간과 시스템 공간 간의 전이가 요구된다. 사용자 공간으로부터 시스템 공간으로 전이하는 한 가지 흔한 방법은 소프트웨어 인터럽트들을 사용하는 것이지만, 다른 구현들도 존재한다. 소프트웨어 인터럽트 구현의 경우, 시스템 호출의 수가 마이크로프로세서의 레지스터에 로드되어야만 하고, 커널에 제어를 넘겨주기 위해 소프트웨어 인터럽트가 실행된다.
파일 시스템들이 특권 시스템 공간에 존재하기에, 이들은 어떠한 라이브러리도 사용할 수 없다. 따라서, 파일 시스템의 구현은 매우 복잡하다. 예를 들어, 메모리 관리는 사용자 공간에서보다 시스템 공간에서 훨씬 더 힘들다. 이러한 한계를 극복하기 위해, 파일 시스템들이 사용자 공간에서도 구현될 수 있다. 사용자 공간에서 파일 시스템 구현을 가능케 하는 구현의 한 일례는 FUSE(Filesystem in Userspace)이다. FUSE는 유닉스 유형 컴퓨터 운영 체제들을 위한 로드 가능한 커널 모듈이다. 이것은, 도 2에 도시된 바와 같이, 통상의 파일 시스템(5)과 유사하게 동작하는 FUSE 커널 드라이버(4), 및 사용자 공간의 파일 시스템(3)과 FUSE 커널 드라이버(4) 간의 통신을 위한 FUSE 라이브러리(6)를 포함한다. 사용자 공간에 상주하는, 파일 시스템 구현은 파일 시스템의 인터페이스를 구현할 책임이 있다. 따라서, FUSE는 사용자 공간에서의 파일 시스템 코드의 실행을 가능케 하며, FUSE 커널 드라이버(4)는 운영 체제의 커널로의 브리지를 제공한다.
애플리케이션이 사용자 공간에서 구현되는 파일 시스템(3)과 상호 작용할 때, 시스템 공간에 상주하는 임의의 파일 시스템과 마찬가지로 각각의 시스템 호출들이 개시된다. 커널 내에서, 시스템 호출들은 FUSE 커널 드라이버(4)에 의해 처리된다. FUSE 커널 드라이버(4)는 시스템 호출을 직렬화하고 이를 FUSE 문자 디바이스를 통해 다시 사용자 공간으로 전파하며, 이 사용자 공간에서 FUSE 라이브러리(6)는 사용자 공간에서 파일 시스템(3)에 의해 구현된 대응 함수들을 불러온다. 리턴 경로는 역 순서로 동일한 경로를 따른다.
FUSE는 사용자 공간에서 파일 시스템들을 구현하는 것을 가능케 하는 구현의 일례일 뿐이며, 본 명세서에서 강조되어야 하는 것은, 사용자 공간의 모든 종류들의 파일 시스템들이 문맥 전환들을 요구한다는 점이다. 문맥 전환(context switch)은 차후에 동일한 지점으로부터 실행이 재개될 수 있도록 마이크로프로세서의 상태를 저장 및 복원하는 컴퓨팅 프로세스이다. 이는 다수의 프로세스들이 단일 CPU를 공유할 수 있게 하며, 문맥 전환은 멀티태스킹 운영 체제의 필수적인 특징이다. 문맥 전환들은 통상 계산적으로 집약적이며, 운영 체제들의 설계의 대부분은 문맥 전환들의 사용을 최적화하는 것이다. 문맥 전환은 레지스터 문맥 전환, 태스크 문맥 전환, 스레드 문맥 전환, 또는 프로세스 문맥 전환일 수 있다.
프로세스 문맥 전환은 한 프로세스로부터 다른 프로세스로의 제어의 전이이다. 이러한 문맥 전환의 수행은, 차후에 재개될 수 있도록, 제1 프로세스의 상태를 저장하고, 제2 프로세스의 상태를 개시하는 것을 수반한다. 사용자 공간의 파일 시스템(3)의 구현에 있어서, 시스템 호출들 각각은 두 문맥 전환들을 야기한다: 시스템 호출을 수행하는 애플리케이션은 다른 프로세스로서 구현되는 파일 시스템이 호출을 처리할 수 있도록 중단되고, 호출이 리턴할 때, 호출 애플리케이션이 재개된다.
사용자 공간에서 구현된 파일 시스템들의 범위에서, 가장 큰 오버헤드는 필요로 하는 엄청난 수의 문맥 전환들에 의해 도입된다. 도 2의 큰 화살표들(1, 2)은 가로질러야 하는 경계들을 나타낸다. 수직 화살표(1)는, 시스템 공간에서 구현되든 또는 사용자 공간에서 구현되든 관계없이, 모든 파일 시스템 호출들에 대해 가로질러야 하는, 사용자 공간과 시스템 공간 간의 경계들을 나타낸다. 수평 화살표(2)는, 파일 시스템이 사용자 공간에서 구현될 때 도입된 추가의 오버헤드인, 프로세스들 간의 경계를 나타낸다.
다수의 시스템 호출들을 야기할, 파일 시스템 사용의 3가지 설명 예들이 이제 기술된다. 이 예들이 사용자 공간에 상주하는 파일 시스템(3)에 적용되면, 이는 실행 불가능한 수의 문맥 전환들을 야기할 것이다:
b.1) 디렉토리의 요소들의 카운트:
이하의 의사 코드는 디렉토리 /foo/bar의 요소들의 수가 어떻게 카운트될 수 있는지를 보여준다. 시스템 호출을 야기하는 함수들은 볼드체로 표시된다.
count := 0
dir_handle := opendir('/foo/bar')
while (readdir(dir_handle))
{
count := count + 1
}
closedir(dir_handle)
디렉토리 /foo/bar에 n개의 요소들이 있으면, 이 코드 단편에 의해 야기되는 시스템 호출들의 수는 2+n이다. /foo/bar가 사용자 공간에서 구현되는 파일 시스템 내의 디렉토리이면, 이는 2(2+n) 문맥 전환들을 야기한다.
b.2) 디렉토리의 모든 다이렉트 서브-디렉토리들의 요소들의 카운트:
이 예는 이전 예의 직접적인 결과로서 보일 수 있지만, 섹션 d.2에서 설명되는 바와 같이, 약간 상이하게 해결될 것이다. 이는 인위적인 문제로 보일 수 있지만, 이 예는 실제 사용 사례(예를 들어, UPnP AV BrowseDirectChildren 액션)를 갖는다.
function dirsize(path)
{
count := 0
dir_handle := opendir(path)
while (readdir(dir_handle))
{
count := count + 1
}
closedir(dir_handle)
return count
}
...
dir_handle := opendir('/foo/bar')
while (dir_entry := readdir(dir_handle))
{
if (is_dir(dir_entry ))
{
count := dirsize(dir_entry->name)
print "Directory", dir_entry->name, "has
", count, "elements"
}
}
closedir(dir_handle)
/foo/bar가 n 서브디렉토리들을 가지면 - 각각의 서브디렉토리 m은 mi 요소들을 가짐 -, 이 의사 코드 조각은 2+n+∑n i =1[2+mi] 시스템 호출들을 야기한다. /foo/bar가 다시 사용자 공간 파일 시스템에 상주하면, 이는 2(2+n+∑n i =1[2+mi]) 문맥 전환들을 야기할 것이다.
b.3) 오프셋으로부터의 디렉토리 요소들의 판독/덩어리로의 완전한 디렉토리 판독
function readdir_offset_limit(path, skip, items)
{
done = true
skip_count := 0
dir_handle := opendir('/foo/bar')
while (readdir(dir_handle) && skip_count < skip)
{
skip_count := skip_count + 1
}
items_count := 0
while (readdir(dir_handle) && items_count < items)
{
items_count := items_count + 1
... /* do something with the result */
done := false
}
closedir(dir_handle)
return done
}
...
skip := 0
while (readdir_offset_limit('/foo/bar', skip, N))
{
skip := skip + N
}
POSIX 파일 시스템 API는, 파일 핸들의 경우와 같이, 디렉토리 핸들 내에서 찾는 유사한 방법을 제공하지 않는다. 파일들의 경우, 파일의 임의의 위치에 위치 표시자를 설정할 수 있다. 디렉토리 핸들들에 대해 제공된 탐색(seek) 함수는 더 일찍 저장된 위치로 복귀할 수만 있다. 이 때문에, 디렉토리 항목들의 스킵은 항목들을 무시함으로써만 달성될 수 있다.
애플리케이션이 다수의 항목들을 갖는 디렉토리의 부분 집합을 판독할 필요가 있다고 가정하고, 이 애플리케이션이 디렉토리 핸들을 열린 상태로 유지할 수 없다고 가정하자. 예를 들어, 웹 페이지는, 한 번에 N개의 요소들만을 디스플레이할 수 있는, 스크롤 박스에 디렉토리의 콘텐츠를 디스플레이할 필요가 있다. 스크롤 바의 위치에 따라, 웹 서비스는 특정 오프셋에서 N개의 항목들을 판독해야만 한다. 처음 N개의 항목들을 디스플레이하기 위한, 문맥 전환들의 수는 2(N+2)이다. 다음 N개의 항목들을 판독해서, N개의 항목들을 스킵한 후 N개의 항목들을 판독하는 것은 2(2N+2)을 수반한다. 통틀어, 이 2N개의 디렉토리 항목들을 판독하기 위한 문맥 전환들의 수는 2(3N+4)이다.
일반적으로, 디렉토리가 m×N개의 항목들을 포함하면, 한 번에 N개의 항목들을 갖는 완전한 디렉토리를 판독하기 위한 문맥 전환들의 수는 디렉토리의 요소들의 수에 대해 2차 오더(quadratic order)이다. 본질적으로 선형 연산인 디렉토리의 요소들의 카운팅의 경우, 이는 엄청난 비용이 드는 연산이다. 이는 이하의 계산으로 설명된다:
US6389427 B1은 컴퓨터 파일 시스템의 판독 전용 동작들의 성능을 강화하는 방법 및 장치를 기술한다. 방법은 초기 셋업이 완료된 후에 운영 체제에서 투명하게 실행될 수 있다. 초기 셋업은 이러한 파일들에 대한 액세스 요청들을 가로채고 강화된 성능으로 이 요청들에 응답하기 위해 어떤 디렉토리들 또는 파일들이 모니터되어야 할지를 식별하는 것을 수반한다. 시스템 관리자가 어떤 디렉토리들 또는 파일들이 모니터되어야 할지를 명시할 수 있다. 모니터된 파일이 열릴 때, 파일 식별자가 사용되고, 이로써 임의의 디렉토리 메타 데이터 정보의 액세스를 우회한다. 일 실시예에서, 모니터된 파일들로의 액세스는 파일 시스템 캐시 관리자에 의해 유지된 데이터 캐시에 파일들을 고정시킴으로써 강화된다.
실제 파일들을 갖는 파일 디렉토리를 포함하는 파일 시스템을 운영하는 방법은 최소 수의 시스템 호출들로 파일 시스템으로부터 정보를 검색할 수 있게 한다. 이를 달성하기 위해, 본 방법은 다수의 시스템 호출들이 요구되는 파일 디렉토리로부터의 결과를 제공하도록 가상 파일을 설계하는 단계, 가상 파일을 고유 이름에 의해 파일 디렉토리의 실제 파일들과 구별하는 단계, 및 가상 파일을 열고 가상 파일의 콘텐츠를 판독함으로써 파일 디렉토리로부터의 결과를 검색하는 단계를 포함한다. 가상 파일은 특히 파일 시스템 동작을 위해 설계된다.
본 발명의 다른 양상에서, 본 방법은, 파일 디렉토리의 콘텐츠가 변경되었을 때, 가상 파일의 결과를 갱신하는 단계를 포함한다. 가상 파일은 고유 파일 확장자에 의해 파일 디렉토리의 실제 파일들과 유리하게 구별되고, 가상 파일은 파일 디렉토리 내에 배열된다.
제1 양호한 실시예에서, 본 방법은 상기 파일 디렉토리의 요소들을 카운트하는, 파일 시스템 동작을 위해 가상 파일을 설계하는 단계를 포함한다. 제2 양호한 실시예에서, 본 방법은 상기 파일 디렉토리의 모든 다이렉트 서브-디렉토리들의 요소들을 카운트하는, 파일 시스템 동작을 위해 가상 파일을 설계하는 단계를 포함한다. 제3 양호한 실시예에서, 본 방법은 오프셋으로부터 상기 파일 디렉토리의 디렉토리 요소들을 판독하는, 파일 시스템 동작을 위해 가상 파일을 설계하는 단계를 포함한다. 제4 양호한 실시예에서, 본 방법은 덩어리로 완전한 파일 디렉토리를 판독하는, 파일 시스템 동작을 위해 가상 파일을 설계하는 단계를 포함한다.
본 발명은 또한 파일 시스템을 운영하는 방법을 사용하는 장치에 관한 것이다. 장치는 특히 애플리케이션들, 유틸리티들 및 파일 시스템을 처리하는 제어 프로그램을 포함하는 운영 체제를 실행하는 마이크로프로세서 시스템을 포함한다. 장치는, 예를 들어, 가정용 게이트웨이, DSL 모뎀 또는 셋톱박스이다.
본 발명의 양호한 실시예들은 개략도들을 참조하여 예로서 더 상세히 후술된다.
도 1은 마이크로프로세서 시스템에서 실행되는, 운영 체제 및 애플리케이션들을 포함하는 파일 시스템이다.
도 2는, 사용자 공간에서 파일 시스템을 제공하기 위한 FUSE 커널 모듈 및 FUSE 라이브러리를 추가로 포함하는, 도 1의 파일 시스템이다.
도 1은 마이크로프로세서 시스템에서 실행되는, 운영 체제 및 애플리케이션들을 포함하는 파일 시스템이다.
도 2는, 사용자 공간에서 파일 시스템을 제공하기 위한 FUSE 커널 모듈 및 FUSE 라이브러리를 추가로 포함하는, 도 1의 파일 시스템이다.
본 발명의 양호한 실시예는, 예를 들어, 유닉스 유형 컴퓨터 운영 체제로 실행되는, ROM 및 RAM 메모리를 포함하는 마이크로프로세서 시스템을 포함하는 가정용 게이트웨이에서 사용된다. 운영 체제는, 마스터 제어 프로그램인 커널과 함께, 실제 파일들을 나타내는 애플리케이션들 및 유틸리티들을 포함한다. 본 발명의 방법은 요구된 결과들에 매칭하도록 특별 가상 파일들을 설계하고, 이 파일들이 파일 시스템 이름 공간을 오염시키지 않고 파일 시스템 내의 실제 파일들과 간섭하지 않도록, 이 파일들을 파일 시스템에서 이용 가능하게 하는 것을 제안한다. 가상 파일들의 콘텐츠는 사용자들의 요구 사항들에 좌우되고, 따라서, 콘텐츠는 쌍방 간에 규약이 합의되어야만 하는 프로토콜로서 생각될 수 있다.
따라서, 본 발명은 파일 시스템을 사용하는 애플리케이션들이 이용 가능한 애플리케이션 프로그래밍 인터페이스(API)로 손실된 기능을 에뮬레이트해야 하는 것을 방지하기 위해 파일 시스템 구현들에서 사용될 수 있는 일반적인 방법을 기술한다. 본 발명은 최소 수의 시스템 호출들로 파일 시스템으로부터 정보를 검색할 수 있게 해주며, 본 발명 없이 동일한 성과를 달성하기 위해서는 다수의 시스템 호출들이 요구된다. 섹션 b에 사례들로서 설명된 바와 같이, 표준 API를 사용해서 다수의 시스템 호출들을 야기할 수 있다. 사용자 공간에서 구현된 파일 시스템들의 경우, 이러한 시스템 호출들로부터 야기된 문맥 전환들은 파일 시스템을 사용할 수 없게 만들 수 있다. 본 발명은 사용자 공간과 시스템 공간 간의 경계들, 및 사용자 공간의 프로세스들 간의 경계들을 가로지름으로써 야기된 오버헤드를 최소로 감소시킨다. 상호 운용 가능성을 깨지 않기 위해, 본 발명은 표준화된 파일 시스템 API를 따른다.
앞서 섹션 b에 열거된 사례들의 경우, 가능한 규약이 본 섹션에 기술된다:
d.1) 디렉토리의 요소들의 카운트
가능한 규약은, 콘텐츠, 디렉토리 요소들(서브디렉토리들, 파일들, 기호 연결들)의 수와 마찬가지로, 가상 파일 시스템의 모든 디렉토리가 파일을 이용 가능하게 한다는 것이다. 이러한 파일의 논리적 이름은 "size", "childcount", "dirsize", ... 일 수 있다. 섹션 b.1에 기술된 문제점은 이하의 의사 코드 조각으로 해결될 수 있다:
file_handle := open('/foo/bar@size')
count := read(file_handle)
close(file_handle)
이는, 디렉토리 내의 요소들의 수와 무관하게, 문제점이 이제 오직 3번의 시스템 호출들로 해결될 수 있음을 보여준다. 빅 오(big-o) 표기법에서, 문제점은 시스템 호출들의 수에 관해 O(n)으로부터 O(1)로 감소됐다고 말할 수 있다. 파일 시스템 구현이 이 정보, 즉, /foo/bar의 요소들의 수를 그의 재량대로 갖는다고 가정하면, 제안은 일반적으로 복잡도 O(1)이다.
d.2) 디렉토리의 모든 다이렉트 서브-디렉토리들의 요소들의 카운트:
디렉토리의 모든 다이렉트 서브-디렉토리들의 요소들을 카운트하기 위한 가능한 규약은, 각각의 라인에 서브디렉토리의 이름, 구획 문자 시퀀스 및 서브디렉토리의 요소들의 수를 포함하는 파일이다. 이러한 파일의 논리적 이름은 "content", "dircontent", "data", "subsize", ... 일 수 있다.
file_handle := open('/foo/bar@content')
content := read(file_handle)
close(file_handle)
parse(content)
디렉토리 /foo/bar가, 3, 2, 및 5 디렉토리 요소들을 각각 갖는, 3개의 서브디렉토리들, dir_a, dir_b 및 dir_c를 갖는다고 가정하자. 그러면, 파일 /foo/bar@content는, 예를 들어, 이하의 콘텐츠를 가질 수 있다:
dir_a = 3
dir_b = 2
dir_c = 5
섹션 b.2의 원래의 문제점에 비해, 문제점은 다시 O(n)으로부터 O(1)로 감소되었다. 이는, 섹션 b.2에 기술된 바와 같이, 이 문제점이 이전과 상이한 이유를 설명한다. @content 파일이 없다면, 문제점은 더 간단하겠지만, 다음 의사 코드 조각으로 설명된 바와 같이, 여전히 복잡도 O(n)일 것이다:
dir_handle := opendir('/foo/bar')
while (dir_entry := readdir(dir_handle))
{
if (is_dir(dir_entry ))
{
file_handle := open(dir_entry + "@content")
count := read(file_handle)
close(file_handle)
print "Directory", dir_entry->name, "has
", count, "elements"
}
}
closedir(dir_handle)
d.3) 오프셋으로부터의 디렉토리 요소들의 판독/덩어리로의 완전한 디렉토리 판독
디렉토리에서 소정의 오프셋으로부터 제한된 수의 요소들을 판독하기 위한 가능한 규약은, 오프셋 및 한계 파라미터들(예를 들어, 요소들 2 내지 10을 판독하기 위한 dir_2_10)을 나타내는, 가변 파일 이름으로 이용 가능한 가상 파일들을 가지는 것이다. 이 파일은 단순히 매칭하는 요소들의 이름들을 포함할 수 있다. 이러한 파일의 논리적 이름은 "dir_<from>_<to>", "content_<from>_<to>", "items_<from>_<to>", ... 일 수 있다. 이는 이하의 의사 코드 조각으로 설명된다:
from := 0
to := N
while (file_handle :=
open('/foo/bar@dir_$from_$to'))
{
content := read(file_handle)
close(file_handle)
from := from + N
to := to + N
}
원래의 문제점은 복잡도 O(n2)를 가졌지만, 이는 이제 O(n/N)으로 감소됐다. 덩어리 크기 N이 1인 최악의 경우에, 복잡도는 O(n)이다. N이 적어도 n인 최상의 경우에, 복잡도는 다시 O(1)이다. 이 최상의 성능은, N이 클 수 있도록, 메모리 한계들이 없는 경우에, 또는 디렉토리들이 대부분의 시간에 소수의 요소들을 가질 때(작은 n의 값들) 달성될 것이다.
이 사례들은 섹션 b에 기술된 문제점들에 대한 단지 예시적인 규약들이고, 핵심 아이디어들은 결코 이 3가지 사례들로 제한되지 않는다.
본 발명의 다른 부분은, 파일 시스템의 실제 파일들과 간섭하지 않도록, 가상 파일 시스템에서 이 가상 파일들을 이용 가능하게 하는 방법이다. 다수의 가능성들이 있다:
본 구현에서, 특별 가상 파일들은 동일한 파일 시스템에서 구현된다(예를 들어, /foo/bar가 디렉토리의 경로이면, 경로 /foo/bar@content는 가상 파일을 나타낸다). 유일한 단점은, 경로 길이가 제한되어서, 항상 경로를 확장할 수는 없다는 것이다.
가상 파일들을 제공하기 위한 전용 미러링 파일 시스템을 생각할 수 있다. 미러링 파일 시스템은, 그 미러링 파일 시스템에 의해 기본 파일 시스템에 가상 파일들이 추가되는, 기존 파일 시스템 위의 오버레이라고 생각될 수 있다.
이는 미러링 파일 시스템의 더 일반적인 방식으로, 미러링 파일 시스템의 콘텐츠는 플러그인 인터페이스에 의해 동적으로 채워질 수 있다(populated). 가상 콘텐츠를 미러링 파일 시스템에 추가할 수 있는 플러그인이 이러한 파일 시스템에 로드될 수 있다.
파일 시스템의 실제 파일들과 가상 파일들 간의 이름 충돌들을 방지하기 위해, 구획 문자 또는 구획 문자들의 시퀀스가 가상 파일로의 경로로부터 실제 경로로의 경로를 분리하는데 사용될 수 있다. 본 사례들의 구획 문자는, 예를 들어, '@' 이거나, 충돌 가능성을 감소시키기 위한 '.@.'와 같은 있음직하지 않은 시퀀스였다. 예를 들어:
그러나, POSIX 파일 시스템들의 경우, 경로 구획 문자 자체 ('/')를 제외하고는, 경로 이름들에서 발생할 수 없는 문자 또는 문자들의 시퀀스는 없다. 따라서, 선택된 구획 문자, 또는 시퀀스는 실제 파일들에 대한 경로에서 제외되어야만 한다. 이는 가상 파일 시스템에 대한 사소한 요구 사항이다.
이 가상 파일들은, (제공된 버퍼가 파일의 모든 데이터를 포함할 정도로 충분히 큰 경우) 오직 3개의 시스템 호출들만을 요구하거나, 또는 사용자 공간에서 구현된 파일 시스템의 경우에 6개의 문맥 전환들을 요구하는, 통상의 파일 동작들로 판독될 수 있다. 간섭을 방지하기 위해, 가상 파일 시스템은, 가상 파일 시스템에 대한 사소한 요구 사항인, 단지 선택된 구획 문자가 디렉토리 이름들에서 발생하지 않는 것을 보장하기만 하면 된다는 점에 유의한다.
본 발명은 이하의 장점들을 갖는다:
모든 파일 시스템 동작들이 이전과 같이 동작할 것이고, 호출들이 셸(shell)에서 직접 개시되든, 셸 스크립트 내로부터 개시되든, 또는 어떤 프로그래밍 언어로든 기록된 애플리케이션 내로부터 개시되든 간에 상관없음,
본 발명의 다른 실시예들도 본 발명의 범위로부터 벗어나지 않은 채로 당업자에 의해 사용될 수 있다. 기술된 방법은 특히 가정용 게이트웨이에서 사용될 수 있지만, 파일 시스템들을 사용하는 셋톱 박스들 또는 휴대 전화들과 같은 다른 기기들도 본 발명을 사용할 수 있다. 따라서, 본 발명은 본 명세서에 첨부된 청구항들에 속한다.
Claims (12)
- 애플리케이션들을 포함하는 사용자 공간과, 상기 사용자 공간과 시스템 공간 간의 경계를 가로지르기 위한 시스템 호출 인터페이스를 갖는 운영 체제를 포함하는 상기 시스템 공간을 갖는 장치에 포함되는 파일 시스템을 운영하는 방법으로서, 상기 파일 시스템은 상기 사용자 공간에 구현되고 실제 파일들을 갖는 파일 디렉토리를 포함하고, 상기 방법은,
다수의 시스템 호출들이 요구되는 상기 파일 디렉토리로부터의 결과를 제공하도록 파일 시스템 동작을 위한 가상 파일을 제공하는 단계 - 각각의 시스템 호출은 상기 사용자 공간과 상기 시스템 공간 간의 전이를 요구함 -,
상기 가상 파일을 고유 이름에 의해 상기 파일 디렉토리의 실제 파일들과 구별하는 단계, 및
상기 가상 파일을 열고 상기 가상 파일의 콘텐츠를 판독함으로써 상기 파일 디렉토리로부터의 결과를 검색하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 파일 디렉토리의 콘텐츠가 변경되었을 때, 상기 가상 파일의 결과를 갱신하는 단계를 포함하는 방법. - 제1항 또는 제2항에 있어서,
상기 가상 파일은 고유 파일 확장자에 의해 상기 파일 디렉토리의 실제 파일들과 구별되는 방법. - 제1항 또는 제2항에 있어서,
상기 파일 디렉토리 내에 상기 가상 파일을 배치(arrange)하는 단계를 포함하는 방법. - 제1항 또는 제2항에 있어서,
상기 파일 디렉토리의 요소들을 카운트하는, 파일 시스템 동작을 위해 상기 가상 파일을 제공하는 단계를 포함하는 방법. - 제1항 또는 제2항에 있어서,
상기 파일 디렉토리의 모든 다이렉트 서브-디렉토리들의 요소들을 카운트하는, 파일 시스템 동작을 위해 상기 가상 파일을 제공하는 단계를 포함하는 방법. - 제1항 또는 제2항에 있어서,
오프셋으로부터 상기 파일 디렉토리의 디렉토리 요소들을 판독하는, 파일 시스템 동작을 위해 상기 가상 파일을 제공하는 단계를 포함하는 방법. - 제1항 또는 제2항에 있어서,
덩어리로 완전한 파일 디렉토리를 판독하는, 파일 시스템 동작을 위해 상기 가상 파일을 제공하는 단계를 포함하는 방법. - 제1항 또는 제2항에 따른 방법을 사용하는 장치.
- 제9항에 있어서,
상기 장치는 파일 시스템, 애플리케이션들 및 유틸리티들을 처리하는 제어 프로그램을 포함하는 운영 체제를 실행하는 마이크로프로세서 시스템을 포함하는 장치. - 제9항에 있어서,
상기 장치는 가정용 게이트웨이, DSL 모뎀 또는 셋톱박스인 장치. - 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11447001.6 | 2011-01-21 | ||
EP11447001 | 2011-01-21 | ||
PCT/EP2012/050823 WO2012098211A1 (en) | 2011-01-21 | 2012-01-20 | Method for backward-compatible aggregate file system operation performance improvement, and respective apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140014139A KR20140014139A (ko) | 2014-02-05 |
KR101925651B1 true KR101925651B1 (ko) | 2018-12-05 |
Family
ID=45562289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137021965A KR101925651B1 (ko) | 2011-01-21 | 2012-01-20 | 이전 버전과 호환 가능한 종합 파일 시스템 동작 성능 향상을 위한 방법, 및 각각의 장치 |
Country Status (10)
Country | Link |
---|---|
US (1) | US20130304778A1 (ko) |
EP (1) | EP2666107B1 (ko) |
JP (1) | JP5986585B2 (ko) |
KR (1) | KR101925651B1 (ko) |
CN (1) | CN103443789B (ko) |
CA (1) | CA2824489C (ko) |
MX (1) | MX2013008458A (ko) |
MY (1) | MY175092A (ko) |
RU (1) | RU2598812C2 (ko) |
WO (1) | WO2012098211A1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970794B (zh) * | 2013-02-01 | 2017-11-28 | 联想(北京)有限公司 | 数据访问方法和数据访问装置 |
US9015353B2 (en) * | 2013-03-14 | 2015-04-21 | DSSD, Inc. | Method and system for hybrid direct input/output (I/O) with a storage device |
CN103809981B (zh) * | 2014-02-26 | 2017-06-23 | 中国科学院信息工程研究所 | 一种通用文件系统的操作获取记录的方法 |
KR101909966B1 (ko) | 2014-09-01 | 2018-10-19 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 파일 액세스 방법 및 장치, 그리고 저장 시스템 |
EP3190520B1 (en) | 2014-09-01 | 2019-08-07 | Huawei Technologies Co. Ltd. | File access method and apparatus, and storage system |
WO2017116304A1 (en) | 2015-12-31 | 2017-07-06 | Razer (Asia-Pacific) Pte. Ltd. | Methods for controlling a computing device, computer-readable media, and computing devices |
US20190005066A1 (en) * | 2017-06-29 | 2019-01-03 | International Business Machines Corporation | Multi-tenant data service in distributed file systems for big data analysis |
US11055110B2 (en) * | 2018-06-05 | 2021-07-06 | Microsoft Technology Licensing, Llc | Operating system service for persistently executing programs |
CN109032953B (zh) * | 2018-08-13 | 2022-03-15 | 福建联迪商用设备有限公司 | 一种中间库测试方法及终端 |
CN112667565B (zh) * | 2020-12-30 | 2021-12-03 | 湖南博匠信息科技有限公司 | 一种基于fuse的存储单元文件管理方法及系统 |
KR20220126903A (ko) * | 2021-03-10 | 2022-09-19 | 삼성전자주식회사 | 파일 리댁션을 수행하는 전자 장치 및 이의 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5873085A (en) | 1995-11-20 | 1999-02-16 | Matsushita Electric Industrial Co. Ltd. | Virtual file management system |
US20080098023A1 (en) * | 2006-10-24 | 2008-04-24 | Sony United Kingdom Limited | Information processing apparatus, information processing method, program and program recording meduim |
US20080208924A1 (en) | 2007-02-28 | 2008-08-28 | Microsoft Corporation | Security model for common multiplexed transactional logs |
US20100257218A1 (en) | 2009-04-03 | 2010-10-07 | Konstantin Iliev Vassilev | Merging multiple heterogeneous file systems into a single virtual unified file system |
US8478799B2 (en) | 2009-06-26 | 2013-07-02 | Simplivity Corporation | Namespace file system accessing an object store |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2578870B2 (ja) * | 1988-01-14 | 1997-02-05 | 富士通株式会社 | プログラム走行スラップカウント装置 |
JPH05233402A (ja) * | 1992-02-21 | 1993-09-10 | Toshiba Corp | メモリマップドファイルアクセス方式 |
US5644755A (en) * | 1995-02-24 | 1997-07-01 | Compaq Computer Corporation | Processor with virtual system mode |
US5920895A (en) * | 1995-04-24 | 1999-07-06 | Microsoft Corporation | Mapped file input/output with delayed zeroing |
US5778384A (en) * | 1995-12-22 | 1998-07-07 | Sun Microsystems, Inc. | System and method for automounting and accessing remote file systems in Microsoft Windows in a networking environment |
US6253218B1 (en) * | 1996-12-26 | 2001-06-26 | Atsushi Aoki | Three dimensional data display method utilizing view point tracing and reduced document images |
WO1999042934A2 (en) | 1998-02-20 | 1999-08-26 | Storm Systems, Llc | File system performance enhancement |
US7181486B1 (en) * | 1998-12-07 | 2007-02-20 | Network Ice Corporation | Method and apparatus for remote installation of network drivers and software |
US8099758B2 (en) * | 1999-05-12 | 2012-01-17 | Microsoft Corporation | Policy based composite file system and method |
US6754736B1 (en) * | 1999-06-23 | 2004-06-22 | Fujitsu Limited | Information processing apparatus, data inputting/outputting method, and program storage medium therefor |
US6466944B1 (en) * | 1999-12-02 | 2002-10-15 | Novell, Inc. | Method for creation, management, and use of files containing multiple virtual data streams using standard file system APIs |
US8006243B2 (en) * | 1999-12-07 | 2011-08-23 | International Business Machines Corporation | Method and apparatus for remote installation of network drivers and software |
US7418439B2 (en) * | 2000-03-17 | 2008-08-26 | Twin Peaks Software, Inc. | Mirror file system |
JP2002140219A (ja) * | 2000-11-01 | 2002-05-17 | Toshiba Corp | ファイル処理方法、ファイル処理装置、ファイル管理用記録媒体 |
US20020092003A1 (en) * | 2000-11-29 | 2002-07-11 | Brad Calder | Method and process for the rewriting of binaries to intercept system calls in a secure execution environment |
US7194478B2 (en) * | 2002-11-12 | 2007-03-20 | Hewlett-Packard Development Company, L.P. | Virtual process file systems and methods therefor |
US20040249957A1 (en) * | 2003-05-12 | 2004-12-09 | Pete Ekis | Method for interface of TCP offload engines to operating systems |
US7415480B2 (en) * | 2003-12-10 | 2008-08-19 | Symantec Operating Corporation | System and method for providing programming-language-independent access to file system content |
KR100585668B1 (ko) * | 2004-03-22 | 2006-06-07 | 엘지전자 주식회사 | 가상 미디어파일 시스템을 이용한 멀티미디어 편집 방법및 장치와 멀티미디어 파일 구조 |
US7685596B1 (en) * | 2004-09-01 | 2010-03-23 | The Mathworks, Inc. | Deploying and distributing of applications and software components |
KR20060060150A (ko) * | 2004-11-30 | 2006-06-05 | 삼성전자주식회사 | 가상 파일 시스템을 만들어 멀티미디어 데이터를 재생하는장치 및 재생방법 |
JP2006215954A (ja) * | 2005-02-07 | 2006-08-17 | Hitachi Ltd | ストレージシステム及びストレージ装置のアーカイブ管理方法 |
CN100407139C (zh) * | 2005-03-31 | 2008-07-30 | 株式会社日立制作所 | 文件系统和构建增强其功能的方法、操作系统、记录装置 |
US8364638B2 (en) * | 2005-09-15 | 2013-01-29 | Ca, Inc. | Automated filer technique for use in virtualized appliances and applications |
US8577940B2 (en) * | 2006-03-20 | 2013-11-05 | Parallels IP Holdings GmbH | Managing computer file system using file system trees |
US7908476B2 (en) * | 2007-01-10 | 2011-03-15 | International Business Machines Corporation | Virtualization of file system encryption |
US8225329B1 (en) * | 2007-09-13 | 2012-07-17 | Juniper Networks, Inc. | Tail synchronized FIFO for fast user space packet access |
US20110040812A1 (en) * | 2007-12-20 | 2011-02-17 | Virtual Computer, Inc. | Layered Virtual File System |
US8615502B2 (en) * | 2008-04-18 | 2013-12-24 | Mcafee, Inc. | Method of and system for reverse mapping vnode pointers |
US20110061046A1 (en) * | 2008-12-18 | 2011-03-10 | Virtual Computer, Inc. | Installing Software Applications in a Layered Virtual Workspace |
US8452930B2 (en) * | 2009-03-27 | 2013-05-28 | Hitachi, Ltd. | Methods and apparatus for backup and restore of thin provisioning volume |
US8516217B2 (en) * | 2009-03-27 | 2013-08-20 | International Business Machines Corporation | Managing a logically partitioned computing system through a virtual file system |
US8327111B2 (en) * | 2009-03-30 | 2012-12-04 | International Business Machines Corporation | Method, system and computer program product for batched virtual memory remapping for efficient garbage collection of large object areas |
US8285682B2 (en) * | 2009-05-11 | 2012-10-09 | Novell, Inc | Techniques for establishing a file system that exposes a virtual file system for backup operations |
JP5360978B2 (ja) * | 2009-05-22 | 2013-12-04 | 株式会社日立製作所 | ファイルサーバ、及びファイルサーバにおけるファイル操作通知方法 |
US9235583B2 (en) * | 2009-07-15 | 2016-01-12 | Aten International Co., Ltd. | Virtual media with folder-mount function |
US8195929B2 (en) * | 2009-08-27 | 2012-06-05 | Hewlett-Packard Development Company, L.P. | Controlling file systems sharing among two or more operating system |
CA2676735C (en) * | 2009-09-03 | 2010-10-19 | Ibm Canada Limited - Ibm Canada Limitee | Mechanism for making changes to server file system |
US20110238715A1 (en) * | 2010-03-25 | 2011-09-29 | Hitachi Data Systems Corporation | Complex object management through file and directory interface |
US8938606B2 (en) * | 2010-12-22 | 2015-01-20 | Intel Corporation | System, apparatus, and method for segment register read and write regardless of privilege level |
US9065866B2 (en) * | 2010-12-29 | 2015-06-23 | Citrix Systems, Inc. | Systems and methods for policy based integration to horizontally deployed WAN optimization appliances |
-
2012
- 2012-01-20 RU RU2013138730/08A patent/RU2598812C2/ru active
- 2012-01-20 EP EP12702211.9A patent/EP2666107B1/en active Active
- 2012-01-20 JP JP2013549817A patent/JP5986585B2/ja active Active
- 2012-01-20 WO PCT/EP2012/050823 patent/WO2012098211A1/en active Application Filing
- 2012-01-20 MY MYPI2013002332A patent/MY175092A/en unknown
- 2012-01-20 KR KR1020137021965A patent/KR101925651B1/ko active IP Right Grant
- 2012-01-20 CN CN201280005843.XA patent/CN103443789B/zh active Active
- 2012-01-20 CA CA2824489A patent/CA2824489C/en active Active
- 2012-01-20 MX MX2013008458A patent/MX2013008458A/es active IP Right Grant
- 2012-01-20 US US13/980,881 patent/US20130304778A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5873085A (en) | 1995-11-20 | 1999-02-16 | Matsushita Electric Industrial Co. Ltd. | Virtual file management system |
US20080098023A1 (en) * | 2006-10-24 | 2008-04-24 | Sony United Kingdom Limited | Information processing apparatus, information processing method, program and program recording meduim |
US20080208924A1 (en) | 2007-02-28 | 2008-08-28 | Microsoft Corporation | Security model for common multiplexed transactional logs |
US8321667B2 (en) | 2007-02-28 | 2012-11-27 | Microsoft Corporation | Security model for common multiplexed transactional logs |
US20100257218A1 (en) | 2009-04-03 | 2010-10-07 | Konstantin Iliev Vassilev | Merging multiple heterogeneous file systems into a single virtual unified file system |
US8478799B2 (en) | 2009-06-26 | 2013-07-02 | Simplivity Corporation | Namespace file system accessing an object store |
Also Published As
Publication number | Publication date |
---|---|
CA2824489A1 (en) | 2012-07-26 |
US20130304778A1 (en) | 2013-11-14 |
RU2013138730A (ru) | 2015-02-27 |
MY175092A (en) | 2020-06-05 |
EP2666107B1 (en) | 2019-03-06 |
WO2012098211A1 (en) | 2012-07-26 |
MX2013008458A (es) | 2013-08-12 |
EP2666107A1 (en) | 2013-11-27 |
CA2824489C (en) | 2021-01-05 |
CN103443789A (zh) | 2013-12-11 |
JP5986585B2 (ja) | 2016-09-06 |
CN103443789B (zh) | 2018-02-02 |
KR20140014139A (ko) | 2014-02-05 |
RU2598812C2 (ru) | 2016-09-27 |
JP2014517941A (ja) | 2014-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101925651B1 (ko) | 이전 버전과 호환 가능한 종합 파일 시스템 동작 성능 향상을 위한 방법, 및 각각의 장치 | |
CN111949605B (zh) | 用于实现文件系统的方法、设备和计算机程序产品 | |
RU2393534C2 (ru) | Способ и система для виртуализации гостевого физического адреса в среде виртуальной машины | |
WO2020244369A1 (zh) | 进程间通信的方法、装置以及计算机设备 | |
US10255088B2 (en) | Modification of write-protected memory using code patching | |
WO2021013243A1 (zh) | 一种启动小程序的方法、设备和计算机存储介质 | |
US8832666B2 (en) | Dynamic instrumentation | |
CN110389935B (zh) | 一种启动小程序的方法、设备和计算机存储介质 | |
EP1850231B1 (en) | Systems and methods of accessing information across distributed computing components | |
JP2006252539A (ja) | システムデータインターフェース、関連アーキテクチャ、印刷システムデータインターフェース、および関連印刷システムアーキテクチャ | |
JP2008535081A (ja) | 開発者がシステム上の周知のロケーションを容易に発見し、または拡張するための能力 | |
JP2008234191A (ja) | ハードウエアモニタ管理装置及びハードウエアモニタ機能の実行方法 | |
CN114281484B (zh) | 数据传输方法、装置、设备及存储介质 | |
US20140325163A1 (en) | Cross-Partition Shared Memory Attach for Data Processing Environment | |
JP2002108671A (ja) | コンピュータ処理システムにおいてカスタマイズした情報を提供する方法とシステム | |
US10437628B2 (en) | Thread operation across virtualization contexts | |
JP2007011650A (ja) | 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体 | |
JP4853671B2 (ja) | アクセス権限判定システム、アクセス権限判定方法及びアクセス権限判定プログラム | |
CN104573061B (zh) | 一种支持扩展功能的虚拟文件系统装置和方法 | |
JP2012048609A (ja) | セキュリティポリシ生成プログラム、セキュアosコンピュータシステム | |
Hes et al. | The Capture-HPC client architecture | |
KR101345802B1 (ko) | 룰 데이터 처리 시스템 및 그 방법 | |
Takada et al. | The ITRON project: Overview and recent results | |
WO2024109471A1 (zh) | 软件包的下载方法、电子设备以及可读存储介质 | |
Zhao et al. | Improving distributed file system performance in virtual machine environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |