KR20190069134A - 응용 프로그램간 파일 공유 장치 및 방법 - Google Patents

응용 프로그램간 파일 공유 장치 및 방법 Download PDF

Info

Publication number
KR20190069134A
KR20190069134A KR1020170169545A KR20170169545A KR20190069134A KR 20190069134 A KR20190069134 A KR 20190069134A KR 1020170169545 A KR1020170169545 A KR 1020170169545A KR 20170169545 A KR20170169545 A KR 20170169545A KR 20190069134 A KR20190069134 A KR 20190069134A
Authority
KR
South Korea
Prior art keywords
file
application program
virtual machine
latest
data
Prior art date
Application number
KR1020170169545A
Other languages
English (en)
Other versions
KR102456017B1 (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 KR1020170169545A priority Critical patent/KR102456017B1/ko
Priority to US16/216,401 priority patent/US20190179803A1/en
Publication of KR20190069134A publication Critical patent/KR20190069134A/ko
Application granted granted Critical
Publication of KR102456017B1 publication Critical patent/KR102456017B1/ko

Links

Images

Classifications

    • 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/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • 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/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • 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/18File system types
    • G06F16/188Virtual file systems
    • G06F16/192Implementing virtual folder structures
    • 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/18File system types
    • G06F16/188Virtual file systems
    • G06F16/196Specific adaptations of the file system to access devices and non-file objects via standard file system access operations, e.g. pseudo file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Abstract

응용 프로그램간 파일 공유 장치 및 방법이 개시된다. 본 발명에 따른 응용 프로그램간 파일 공유 장치는, 각 가상머신 상의 응용 프로그램이 오픈을 요청한 파일의 파일 열기 모드를 확인하고, 상기 파일의 최신 버전을 확인하며, 상기 응용 프로그램과 상기 파일의 파일 데이터 간 매핑 관계를 관리하는 파일 매핑 관리부, 상기 파일 열기 모드가 파일 쓰기 모드인 경우, 상기 파일의 최신본인 최신 파일을 생성하는 파일 관리부, 그리고 상기 파일 열기 모드가 상기 파일 쓰기 모드인 경우, 상기 메모리에 상기 최신 파일의 파일 데이터를 적재하고, 상기 응용 프로그램에 상기 최신 파일의 파일 데이터를 제공하여, 상기 응용 프로그램간 상기 파일을 공유하는 데이터 관리부를 포함한다.

Description

응용 프로그램간 파일 공유 장치 및 방법{APPARATUS AND METHOD FOR FILE SHARING BETWEEN APPLICATIONS}
본 발명은 응용 프로그램간 파일 공유 기술에 관한 것으로, 특히 가상화된 시스템에서 파일의 읽기 및 쓰기를 수행하는 응용 프로그램 간 파일을 제어 및 관리하는 기술에 관한 것이다.
최근, 초다시점 동영상 스트리밍 서비스와 같은 대용량의 데이터를 처리하기 위한 시스템으로 클라우드 컴퓨팅 환경이 많이 이용되고 있다. 초다시점 동영상 서비스에서, 초다시점 동영상 스트리밍 응용 프로그램은 색인 파일과 초다시점 동영상 파일의 읽기를 통해 사용자에게 동영상을 제공한다.
여기서, 색인 파일 및 초다시점 동영상 파일은, 이미지 다중화, 동영상 인코더, 동영상 색인기 응용 프로그램들의 순차적인 실행을 바탕으로 생성된다. 초다시점 동영상 서비스를 위한 응용 프로그램들은 파일 데이터를 읽고, 읽어들인 파일 데이터를 대상으로 연산을 수행하며, 연산의 수행 결과를 파일로 저장하거나 연산 결과를 사용자에게 제공한다.
즉, 파일의 쓰기 요청과 읽기 요청이 동일 응용 프로그램에서 발생하지 않으며, 1번의 파일 쓰기 요청을 통해 생성된 파일은 N번의 다중 읽기 요청만이 발생한다는 특징을 가진다.
이때, 응용 프로그램의 입력 파일은 앞서 수행되는 응용 프로그램이 생성한 파일로, 동일한 파일을 대상으로 쓰기를 요청하는 응용 프로그램과 읽기를 요청하는 응용 프로그램이 동시에 실행되면, 파일 입출력을 늦게 요청한 응용 프로그램(후행 응용 프로그램)의 실행 오류가 발생하고, 응용 프로그램이 중지된다는 문제점이 있다.
이를 해결하기 위하여, 시스템 관리자나 응용 프로그램 실행 스케줄러가 응용 프로그램의 실행 및 종료를 인지하고, 후행 응용 프로그램을 실행시킴으로써 파일 동시 접근을 방지할 수 있다.
그러나, 초다시점 동영상 서비스에서 초다시점 동영상 스트리밍기 응용 프로그램과 같이 불특정 다수의 수요에 따라 실행되는 응용 프로그램의 실행은, 제어가 불가하다. 따라서, 서비스의 업그레이드 및 변경을 위하여, 사용자 접속이 가장 낮은 새벽 시간에 서비스의 중단 및 재개를 수행하는 것이 불가피하다.
한국 공개 특허 제10-2014-0027182호, 2014년 03월 06일 공개(명칭: 파일의 공유 버전을 참조하기 위해 파일 내에 메타데이터를 저장하는 방법)
본 발명의 목적은 파일 입출력 요청 시, 가상머신 모니터 수준에서 파일 버전 관리를 수행하는 것이다.
또한, 본 발명의 목적은 응용 프로그램간 동일 파일 입출력 요청 시 발생하는 실행 오류를 예방하고, 서비스의 중단 없이 지속적으로 클라우드 서비스를 제공하는 것이다.
또한, 본 발명의 목적은 가상머신 모니터를 이용하여, 직접 파일 데이터를 관리함으로써, 파일 입출력 성능을 향상시키는 것이다.
또한, 본 발명의 목적은 대용량의 데이터를 기반으로 응용 프로그램을 실행할 때, 동일 파일에 대한 읽기 및 쓰기의 제어 없어 파일 데이터의 공유가 가능하도록 하는 것이다.
또한, 본 발명의 목적은 새 버전의 파일을 언제든 배포 및 관리할 수 있도록 하는 것이다.
또한, 본 발명의 목적은 클라우드 서비스의 서비스 업그레이드를 서비스 중단 없이 수행하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 응용 프로그램간 파일 공유 장치는 가상머신 모니터 상에서 동작하며, 각 가상머신 상의 응용 프로그램이 오픈을 요청한 파일의 파일 열기 모드를 확인하고, 상기 파일의 최신 버전을 확인하며, 상기 응용 프로그램과 상기 파일의 파일 데이터 간 매핑 관계를 관리하는 파일 매핑 관리부, 상기 파일 열기 모드가 파일 쓰기 모드인 경우, 상기 파일의 최신본인 최신 파일을 생성하는 파일 관리부, 그리고 상기 최신 파일을 생성한 후 빈 메모리에 상기 최신 파일의 파일 데이터를 적재하거나, 상기 파일 열기 모드가 파일 읽기 모드인 경우 상기 메모리에 상기 최신 파일의 파일 데이터를 적재하고, 상기 응용 프로그램에 상기 최신 파일의 파일 데이터를 제공하여, 상기 응용 프로그램간 상기 파일을 공유하는 데이터 관리부를 포함한다.
이때, 상기 파일 매핑 관리부는, 상기 응용 프로그램이 상기 파일에 대한 클로즈를 요청한 경우, 상기 데이터 관리부가 상기 메모리에 적재된 상기 최신 파일의 파일 데이터를 저장부에 저장하도록 제어하고, 상기 파일 관리부가 상기 최신 파일을 클로즈하도록 제어할 수 있다.
이때, 상기 파일 매핑 관리부는, 상기 파일을 사용 중인 상기 응용 프로그램이 종료되지 않은 상태에서 다른 가상머신에 의해 상기 응용 프로그램이 새로 실행되는 경우, 상기 파일의 최신 파일을 확인하고, 상기 최신 파일의 파일 데이터를 제공할 수 있다.
이때, 상기 파일 매핑 관리부는, 상기 파일에 대한 상기 클로즈를 요청한 경우, 상기 파일을 클로즈 한 후 상기 파일의 매핑 관계를 제거하고, 상기 파일보다 이전에 생성된 파일 중 미 사용 중인 파일을 삭제할 수 있다.
이때, 상기 데이터 관리부는, 상기 파일 열기 모드가 상기 파일 읽기 모드인 경우, 상기 파일의 파일 데이터를 메모리에 적재하고, 가상 메모리 공간에 매핑하여, 상기 파일의 파일 데이터를 제공할 수 있다.
이때, 상기 가상머신은, 운영체제에서 지원하는 파일 인터페이스를 기반으로 상기 파일에 대한 입출력을 수행하는, 하나 이상의 상기 응용 프로그램을 실행할 수 있다.
이때, 상기 응용 프로그램간 파일 공유 장치는, 상기 파일 인터페이스를 통하여 상기 응용 프로그램의 상기 파일에 대한 요청을 입력받을 수 있다.
이때, 상기 파일 관리부는, 상기 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 수행하는 중에, 상기 가상머신 또는 다른 가상머신의 제2 응용 프로그램이 상기 파일의 쓰기를 수행하는 경우, 상기 파일의 최신 파일을 생성할 수 있다.
이때, 상기 데이터 관리부는, 상기 가상머신의 제2 응용 프로그램의 상기 쓰기가 완료된 후, 상기 가상머신 또는 상기 다른 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 요청한 경우, 상기 최신 파일의 파일 데이터를 메모리에 적재할 수 있다.
이때, 상기 데이터 관리부는, 상기 가상머신의 제2 응용 프로그램의 상기 쓰기가 완료되기 이전에, 상기 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 요청한 경우, 상기 파일의 파일 데이터를 메모리에 적재할 수 있다.
또한, 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치에 의해 수행되는 응용 프로그램간 파일 공유 방법은 가상머신 모니터 상에서 동작하는 상기 응용 프로그램간 파일 공유 장치가, 각 가상머신 상의 응용 프로그램이 오픈을 요청한 파일의 파일 열기 모드 및 상기 파일의 최신 버전 중 적어도 어느 하나를 확인하고, 상기 응용 프로그램과 상기 파일의 파일 데이터 간 매핑 관계를 저장하는 단계, 상기 파일 열기 모드가 파일 쓰기 모드인 경우, 상기 파일의 최신본인 최신 파일을 생성하는 단계, 그리고 상기 응용 프로그램간 상기 파일을 공유하기 위하여, 상기 최신 파일을 생성한 후 빈 메모리에 상기 최신 파일의 파일 데이터를 적재하거나, 상기 파일 열기 모드가 파일 읽기 모드인 경우 상기 메모리에 상기 최신 파일의 파일 데이터를 적재하여, 상기 응용 프로그램에 상기 최신 파일의 파일 데이터를 제공하는 단계를 포함한다.
이때, 상기 응용 프로그램이 상기 파일에 대한 클로즈를 요청한 경우, 상기 메모리에 적재된 상기 최신 파일의 파일 데이터를 저장부에 저장하는 단계, 그리고 상기 최신 파일의 파일 데이터를 상기 저장부에 저장한 후, 상기 최신 파일을 클로즈하는 단계를 더 포함할 수 있다.
이때, 상기 파일을 사용 중인 상기 응용 프로그램이 종료되지 않은 상태에서 다른 가상머신에 의해 상기 응용 프로그램이 새로 실행되는 경우, 상기 파일의 최신 파일을 확인하는 단계, 그리고 상기 최신 파일의 파일 데이터를 제공하는 단계를 더 포함할 수 있다.
이때, 상기 매핑 관계를 관리하는 단계는, 상기 파일에 대한 상기 클로즈를 요청한 경우, 상기 파일을 클로즈 한 후 상기 파일의 매핑 관계를 제거하는 단계, 그리고 상기 파일보다 이전에 생성된 파일 중 미 사용 중인 파일을 삭제하는 단계를 포함할 수 있다.
이때, 상기 파일 열기 모드가 상기 파일 읽기 모드인 경우, 상기 파일의 파일 데이터를 메모리에 적재하고, 가상 메모리 공간에 매핑하여, 상기 파일의 파일 데이터를 제공하는 단계를 더 포함할 수 있다.
이때, 상기 가상머신은, 운영체제에서 지원하는 파일 인터페이스를 기반으로 상기 파일에 대한 입출력을 수행하는, 하나 이상의 상기 응용 프로그램을 실행할 수 있다.
이때, 상기 응용 프로그램간 파일 공유 장치가, 상기 파일 인터페이스를 통하여 상기 응용 프로그램의 상기 파일에 대한 요청을 입력받는 단계를 더 포함할 수 있다.
이때, 상기 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 수행하는 중에, 상기 가상머신 또는 다른 가상머신의 제2 응용 프로그램이 상기 파일의 쓰기를 수행하는 경우, 상기 파일의 최신 파일을 생성하는 단계를 더 포함할 수 있다.
이때, 상기 가상머신의 제2 응용 프로그램의 상기 쓰기가 완료된 후, 상기 가상머신 또는 상기 다른 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 요청한 경우, 상기 쓰기가 완료된 상기 최신 파일의 파일 데이터를 메모리에 적재하는 단계를 더 포함할 수 있다.
이때, 상기 가상머신의 제2 응용 프로그램의 상기 쓰기가 완료되기 이전에, 상기 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 요청한 경우, 상기 파일의 파일 데이터를 메모리에 적재하는 단계를 더 포함할 수 있다.
본 발명에 따르면, 파일 입출력 요청 시, 가상머신 모니터 수준에서 파일 버전 관리를 수행 할 수 있다.
또한 본 발명에 따르면, 응용 프로그램간 동일 파일 입출력 요청 시 발생하는 실행 오류를 예방하고, 서비스의 중단 없이 지속적으로 클라우드 서비스를 할 수 있다.
또한 본 발명에 따르면, 가상머신 모니터를 이용하여, 직접 파일 데이터를 관리함으로써, 파일 입출력 성능을 향상시킬 수 있다.
또한 본 발명에 따르면, 대용량의 데이터를 기반으로 응용 프로그램을 실행할 때, 동일 파일에 대한 읽기 및 쓰기의 제어 없어 파일 데이터의 공유가 가능하도록 할 수 있다.
또한 본 발명에 따르면, 새 버전의 파일을 언제든 배포 및 관리할 수 있도록 할 수 있다.
또한 본 발명에 따르면, 클라우드 서비스의 서비스 업그레이드를 서비스 중단 없이 수행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치의 구성을 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치가 응용 프로그램의 파일 읽기 요청을 처리하는 과정을 설명하기 위한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치가 응용 프로그램의 파일 쓰기 요청을 처리하는 과정을 설명하기 위한 순서도이다.
도 5는 종래 기술에 따른 파일 입출력 처리 과정을 나타낸 예시도이다.
도 6은 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치에 의해 수행되는 파일 입출력 처리 과정을 나타낸 예시도이다.
도 7은 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치에 의해 수행되는 파일 입출력 동작을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 파일 인터페이스를 나타낸 예시도이다.
도 9는 본 발명의 일 실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치의 구성을 나타낸 블록도이다.
도 1의 응용 프로그램간 파일 공유 장치(100)는 클라우드 컴퓨팅 환경을 구성하는 각각의 물리 머신이 가상화되어 복수의 가상머신으로 동작하며, 각각의 서로 다른 가상머신에서 파일 읽기 및 파일 쓰기를 수행하는 응용 프로그램을 실행하는 환경에서 동작할 수 있다.
여기서, 응용 프로그램은 특정 파일명의 파일을 생성하고 쓰기만을 수행하거나, 특정 파일명의 파일의 읽기 요청만을 수행할 수 있다. 즉, 파일은 한 응용 프로그램의 파일 쓰기 요청에 의해 생성되고, 다른 응용 프로그램에 의해 파일 읽기 요청이 수행될 수 있다.
종래 기술에 따르면, 동일한 파일에 대한 파일 쓰기를 수행하는 응용 프로그램과 파일 읽기를 수행하는 응용 프로그램이 동시에 실행될 경우, 두 응용 프로그램 중에서 하나는 파일 데이터의 일관성을 유지하기 위하여 오류를 발생하고 실행을 중지하였다.
그러나 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치(100)는 운영체제의 파일 시스템 인터페이스를 통해 동작하며, 존재하는 파일에 대한 쓰기 요청 시, 새로운 파일(최신 파일)을 생성하고, 파일에 대한 읽기 요청이 있을 경우 여러 버전의 파일 중 최신 버전의 파일을 메모리에 적재하며, 구 버전의 파일 읽기를 요청한 모든 응용 프로그램들이 실행 종료된 경우, 해당 구 버전의 파일을 삭제할 수 있다.
이를 통하여 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치(100)는 복수의 응용 프로그램들이 동일 파일에 대해 읽기 및 쓰기를 수행함에 있어서, 다른 응용 프로그램과의 파일 공유 없이 독점하여 파일 입출력을 수행하는 것과 같은 효과를 구현할 수 있다.
도 1에 도시한 바와 같이, 응용 프로그램간 파일 공유 장치(100)는 파일 매핑 관리부(110), 파일 관리부(120), 데이터 관리부(130)를 포함한다.
먼저, 파일 매핑 관리부(110)는 각 가상머신 상의 응용 프로그램이 오픈을 요청한 파일의 파일 열기 모드를 확인하고, 파일의 최신 버전을 확인한다. 그리고 파일 매핑 관리부(110)는 응용 프로그램과 파일의 파일 데이터 간 매핑 관계를 관리한다.
그리고 파일 매핑 관리부(110)는 응용 프로그램의 파일 입출력 요청에 따른 파일 열기 모드가 읽기 모드인지, 쓰기 모드인지 확인한다. 파일 매핑 관리부(110)는 파일 열기 모드가 쓰기 모드인 경우, 대상 파일의 최신 파일을 생성하고, 빈 메모리에 최신 파일의 파일 데이터를 적재하여 파일 쓰기를 수행하도록 파일 관리부(120)를 제어할 수 있다.
반면, 파일 열기 모드가 읽기 모드인 경우, 파일 매핑 관리부(110)는 대상 파일의 최신 파일 데이터를 메모리에 적재하여 파일 읽기를 수행하도록 파일 관리부(120)를 제어할 수 있다.
파일 매핑 관리부(110)는 응용 프로그램이 파일에 대한 클로즈를 요청한 경우, 데이터 관리부(130)가 메모리에 적재된 최신 파일의 파일 데이터를 저장부(저장장치)에 저장하도록 제어하고, 파일 관리부(120)가 최신 파일을 클로즈하도록 제어할 수 있다.
그리고 파일 매핑 관리부(110)는 파일을 사용 중인 응용 프로그램이 종료되지 않은 상태에서, 다른 가상머신에 의해 응용 프로그램이 새로 실행되는 경우, 파일의 최신 파일을 확인하고, 최신 파일의 파일 데이터를 메모리에 적재하여 응용 프로그램에 제공할 수 있다.
또한, 파일 매핑 관리부(110)는 파일에 대한 클로즈를 요청한 경우, 파일을 클로즈한 후 파일의 매핑 관계를 제거하고, 파일보다 이전에 생성된 파일 중 미사용 중인 버전의 파일을 삭제할 수 있다.
다음으로 파일 관리부(120)는 응용 프로그램이 오픈을 요청한 파일의 파일 열기 모드가 파일 쓰기 모드인 경우, 파일의 최신본인 최신 파일을 생성하여, 파일 쓰기를 요청한 응용 프로그램이 최신 파일을 이용하여 서비스를 수행하도록 한다. 그리고 응용 프로그램이 파일에 대한 클로즈를 요청한 경우, 파일 관리부(120)는 파일 매핑 관리부(110)의 제어에 따라 최신 파일을 클로즈한다.
마지막으로 데이터 관리부(130)는 파일 열기 모드가 파일 쓰기 모드인 경우, 최신 파일을 생성하고, 응용 프로그램이 생성하는 데이터를 최신 파일의 파일 데이터로 저장부(저장 장치)에 저장한다.
즉, 파일 쓰기 모드인 경우, 데이터 관리부(130)는 새로운 파일인 최신 파일을 생성하고, 응용 프로그램이 쓰기(write)하는 데이터를 최신 파일에 저장한다. 이때, 파일 닫기(클로즈)가 완료되어야만, 다른 응용 프로그램이 해당 최신 파일을 읽을 수 있으며, 응용 프로그램이 쓰기를 수행 중인 경우 다른 응용 프로그램은 쓰기가 수행되고 있는 파일을 읽을 수 없다.
데이터 관리부(130)는 파일 열기 모드가 파일 읽기 모드인 경우, 파일의 파일 데이터를 메모리에 적재하고, 가상 메모리 공간에 매핑하여 파일의 파일 데이터를 제공할 수 있다.
그리고 데이터 관리부(130)는 응용 프로그램이 파일에 대한 클로즈를 요청한 경우, 파일 매핑 관리부(110)의 제어에 따라, 메모리에 적재된 최신 파일의 파일 데이터를 저장부(저장장치)에 저장할 수 있다.
예를 들어, 제1 가상머신의 제1 응용 프로그램이 파일의 읽기를 수행하는 중에, 제1 가상머신의 제2 응용 프로그램이 파일의 쓰기를 수행하는 경우, 파일 관리부(120)는 파일의 최신 파일을 생성할 수 있다. 그리고 파일 관리부(120)는 제1 가상머신의 제2 응용 프로그램이 최신 파일의 파일 데이터를 대상으로 서비스를 수행하도록 할 수 있다.
그리고, 제1 가상머신의 제2 응용 프로그램의 쓰기가 완료된 후, 제2 가상머신의 제1 응용 프로그램이 파일의 읽기를 요청한 경우, 데이터 관리부(130)는 최신 파일의 파일 데이터를 메모리에 적재할 수 있다.
반면, 제1 가상머신의 제2 응용 프로그램의 쓰기가 완료되기 이전에, 제2 가상머신의 제1 응용 프로그램이 파일의 읽기를 요청한 경우, 파일의 파일 데이터를 메모리에 적재할 수 있다.
여기서, 제1 가상머신과 제2 가상머신은 동일한 하나의 가상머신을 의미하거나, 서로 다른 가상머신을 의미할 수 있다.
이하에서는 도 2를 통하여 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치에 의해 수행되는 응용 프로그램간 파일 공유 방법에 대하여 더욱 상세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 방법을 설명하기 위한 순서도이다.
먼저, 응용 프로그램간 파일 공유 장치(100)는 하나 이상의 응용 프로그램의 파일 입출력 요청을 수신한다(S210).
여기서, 파일 입출력 요청은 파일 읽기, 파일 쓰기에 대한 요청일 수 있으며, 응용 프로그램들은 운영체제에 설치된 파일 시스템을 통해 파일 입출력을 수행할 수 있다.
그리고 응용 프로그램간 파일 공유 장치(100)는 파일 입출력 요청에 상응하는 파일 열기 모드를 확인한다(S220).
파일 열기 모드가 파일 쓰기 모드인 경우, 응용 프로그램간 파일 공유 장치(100)는 후술할 S230 단계를 수행하고, 파일 열기 모드가 파일 읽기 모드인 경우 응용 프로그램간 파일 공유 장치(100)는 후술할 S260 단계를 수행한다.
S220 단계에서 파일 열기 모드가 파일 쓰기 모드인 것으로 판단된 경우, 응용 프로그램간 파일 공유 장치(100)는 대상 파일의 최신 버전의 파일(최신 파일)을 생성한다(S230).
최신 파일을 생성한 후, 응용 프로그램간 파일 공유 장치(100)는 빈 메모리에 최신 파일의 파일 데이터를 적재한다(S240).
본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치(100)는 파일 열기 모드가 쓰기 모드인 경우, 대상 파일의 최신 파일을 생성하고, 생성된 최신 파일을 메모리에 로드(적재)함으로써, 응용 프로그램이 대상 파일에 대한 파일 데이터 쓰기 요청을 수행하도록 할 수 있다.
또한, 응용 프로그램간 파일 공유 장치(100)는 파일 입출력 요청의 수행에 따른 최신 파일의 파일 데이터를 저장 장치에 저장한 후(S250), 후술할 S270 단계를 수행하여 대상 파일을 클로즈할 수 있다.
반면, S220 단계에서 파일 열기 모드가 파일 읽기 모드인 것으로 판단된 경우, 응용 프로그램간 파일 공유 장치(100)는 대상 파일의 파일 데이터를 메모리에 적재한다(S260).
마지막으로 응용 프로그램간 파일 공유 장치(100)는 대상 파일을 클로즈한다(S270).
S250 단계 또는 S260 단계를 수행한 후 파일 닫기 요청을 수신한 경우, 응용 프로그램간 파일 공유 장치(100)는 파일 닫기를 수행할 수 있다.
이때, 응용 프로그램간 파일 공유 장치(100)는 대상 파일보다 최신 버전의 파일(최신 파일)이 존재하는지 여부, 최신 파일의 읽기가 가능한지 여부를 판단하고, 대상 파일을 사용 중인 다른 응용 프로그램이 없는지 여부를 판단한 후 대상 파일을 삭제할 수 있다.
이하에서는 도 3 및 도 4를 통하여 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치가 파일 읽기 요청 및 파일 쓰기 요청을 처리하는 과정에 대하여 더욱 상세하게 설명한다.
도 3은 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치가 응용 프로그램의 파일 읽기 요청을 처리하는 과정을 설명하기 위한 순서도이다.
먼저, 응용 프로그램간 파일 공유 장치(100)는 파일 데이터의 읽기 요청을 수신한다(S310).
응용 프로그램간 파일 공유 장치(100)는 인터페이스를 통해 응용 프로그램으로부터 파일 열기(open) 및 파일 읽기(read) 요청을 수신할 수 있다.
그리고 응용 프로그램간 파일 공유 장치(100)는 파일의 최신 버전인 최신 파일을 확인하고(S320), 해당 버전 파일의 읽기 사용자 수를 1 증가한다(S330).
응용 프로그램간 파일 공유 장치(100)는 파일 읽기를 요청받은 대상 파일의 최신 버전인 최신 파일을 확인하고, 응용 프로그램에 어떤 파일 데이터를 제공할 것인지를 결정하며, 응용 프로그램과 파일 데이터간의 매핑 관계를 저장할 수 있다.
또한, 응용 프로그램간 파일 공유 장치(100)는 파일의 완료 모드(Completed mode)가 True인 가장 최신 파일을 확인하고, 해당 최신 파일의 읽기 사용자 수를 1 증가시킬 수 있다.
다음으로 응용 프로그램간 파일 공유 장치(100)는 최신 파일의 파일 데이터를 물리 메모리에 적재한다(S340).
응용 프로그램간 파일 공유 장치(100)는 저장된 매핑 관계를 조회하여, 해당하는 버전의 파일 데이터를 물리 메모리에 적재(로드)한다.
또한, 응용 프로그램간 파일 공유 장치(100)는 물리 메모리의 주소를 가상머신 메모리의 주소에 매핑하고(S350), 파일 데이터 기반의 정보 처리를 수행한다(S360).
응용 프로그램간 파일 공유 장치(100)는 파일 데이터가 적재된 물리 메모리의 주소를 응용 프로그램을 실행하는 가상머신의 메모리 주소에 매핑(사상)하여, 응용 프로그램에 해당 파일 데이터를 제공할 수 있다.
이미 해당 버전의 파일 데이터가 물리 메모리에 적재된 경우, 응용 프로그램간 파일 공유 장치(100)는 기 적재된 물리 메모리의 주소와 가상머신의 메모리 주소를 매핑할 수 있다.
파일 닫기 요청을 수신한 경우(S370 Yes), 응용 프로그램간 파일 공유 장치(100)는 해당 버전 파일의 읽기 사용자 수를 1 감소시킨다(S380).
그리고 응용 프로그램간 파일 공유 장치(100)는 해당 파일이 최신 버전의 파일인지 여부를 판단하고, 해당 파일의 읽기 사용자 수가 0인지 여부를 확인한다(S390).
해당 파일이 최신 버전의 파일이 아니고, 해당 파일의 읽기 사용자 수가 0인 경우(S390 Yes), 응용 프로그램간 파일 공유 장치(100)는 해당 파일을 클로즈(close)하고, 삭제한다(S400).
응용 프로그램간 파일 공유 장치(100)는 파일 닫기가 요청된 파일보다 최신 버전인 최신 파일이 존재하는지 여부 및 최신 파일의 읽기가 가능한지 여부를 확인하고, 해당 파일을 사용 중인 다른 응용 프로그램이 없는지 확인할 수 있다.
그리고 최신 파일이 읽기 가능한 상태이고, 해당 파일을 사용 중인 다른 응용 프로그램이 없는 경우, 응용 프로그램간 파일 공유 장치(100)는 해당 파일을 클로즈한 후 삭제할 수 있다.
이와 같이, 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치(100)는 최신 버전보다 이전 버전인 파일들을 자동으로 삭제함으로써, 저장소의 저장 공간을 효율적으로 활용할 수 있다.
반면, 해당 파일이 최신 버전이거나, 읽기 사용자 수가 0이 아닌 경우, 응용 프로그램간 파일 공유 장치(100)는 해당 파일의 닫기를 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치가 응용 프로그램의 파일 쓰기 요청을 처리하는 과정을 설명하기 위한 순서도이다.
먼저, 응용 프로그램간 파일 공유 장치(100)는 파일 데이터 쓰기 요청을 수신한다(S410).
응용 프로그램간 파일 공유 장치(100)는 인터페이스를 통해 응용 프로그램으로부터 파일 열기(open) 및 파일 쓰기(write) 요청을 수신할 수 있다.
그리고 응용 프로그램간 파일 공유 장치(100)는 파일의 최신 버전인 최신 파일을 생성하고(S420), 최신 파일에 데이터 쓰기를 수행한다(S430).
응용 프로그램간 파일 공유 장치(100)는 쓰기 요청의 대상이 되는 파일의 버전을 확인한 후, 새로운 버전의 최신 파일을 생성한다. 또한, 응용 프로그램간 파일 공유 장치(100)는 생성한 최신 파일의 완료 모드(Completed mode)를 False로 설정할 수 있다.
응용 프로그램간 파일 공유 장치(100)는 생성된 최신 파일에 데이터 쓰기를 수행할 수 있다. 또한, 응용 프로그램간 파일 공유 장치(100)는 가상머신 메모리의 주소에 매핑된 물리 메모리의 파일 데이터를 저장 장치에 저장할 수 있다.
파일 닫기 요청이 수신되지 않은 경우, 응용 프로그램간 파일 공유 장치(100)는 최신 파일의 파일 데이터를 이용하여 서비스를 수행하는 과정을 반복하여 수행할 수 있다.
파일 닫기 요청이 수신된 경우(S440 YES), 응용 프로그램간 파일 공유 장치(100)는 파일 닫기 요청에 상응하는 파일이 최신 버전의 파일인지 여부를 확인한다 (S450).
응용 프로그램간 파일 공유 장치(100)는 해당 파일의 닫기를 수행하고, 가상머신 메모리의 주소와 파일의 매핑 관계를 제거할 수 있다. 또한, 응용 프로그램간 파일 공유 장치(100)는 해당 파일 이전에 생성된 파일들 중에서 현재 사용 중이지 않은 파일들을 모두 삭제할 수 있다.
그리고 응용 프로그램간 파일 공유 장치(100)는 파일 닫기(close) 요청을 수신한 파일이 최신 파일인 경우(S450 Yes), 최신 파일의 완료 모드(Completed mode)를 True로 설정할 수 있다(S460). 반면, 파일 닫기 요청을 수신한 파일이 최신 파일이 아닌 경우, 응용 프로그램간 파일 공유 장치(100)는 해당 버전의 파일을 삭제할 수 있다(S470).
이하에서는 도 5 및 도 6을 통하여 본 발명의 일 실시예에 따른 파일 입출력 처리 과정을 종래 기술에 따른 파일 입출력 처리 과정과 비교하여 더욱 상세하게 설명한다.
도 5는 종래 기술에 따른 파일 입출력 처리 과정을 나타낸 예시도이다.
도 5와 같이, 가상화된 하나의 물리 머신에는 1개의 가상머신이 동작하고, 각각의 가상머신에서 파일의 입출력을 수행하는 다수의 응용 프로그램이 동작한다. 여기서, 응용 프로그램은 운영체제에 설치된 파일 시스템(리눅스의 파일 인터페이스 등)을 통해 파일 입출력을 수행할 수 있다.
도 5에서 종래 기술에 따른 파일 입출력 처리 과정은 가상머신(30)에서 제1 응용 프로그램(응용 프로그램 A)(40_1)이 X 파일의 읽기(①)를 수행하고, 제2 응용 프로그램(응용 프로그램 B)(40_2)이 Y 파일의 읽기(②)를 수행할 수 있다. 그리고 가상머신(30)의 제1 응용 프로그램(40_1)이 Y 파일에 쓰기(③)를 요청하는 경우, 제1 응용 프로그램(40_1)의 실행 오류가 발생한다.
가상머신 내 다른 응용 프로그램들이 동일한 파일을 대상으로 읽기 및 쓰기를 요청하여 요청이 중첩되는 경우, 선행 응용 프로그램인 제2 응용 프로그램(40_2)이 먼저 Y 파일의 읽기를 요청하므로 후행 응용 프로그램인 제1 응용 프로그램(40_1)의 실행 오류가 발생한다.
또한, 가상머신(30)의 제2 응용 프로그램(40_2)의 중첩 실행(④)이 계속되는 경우, 가상머신(30)의 제1 응용 프로그램(40_1)의 Y 파일 쓰기 실행(③)을 정상 완료할 수 없다. 즉, 종래 기술에 따른 파일 입출력 처리 과정에서 제1 응용 프로그램(40_1)과 제2 응용 프로그램(40_2)은 동시에 실행될 수 없다.
하나의 가상 머신 내에 다른 응용 프로그램들이 동일한 파일을 대상으로 읽기 및 쓰기를 요청하여, 요청이 중첩되는 경우에 대하여 설명하였으나 이에 한정하지 않고, 서로 다른 가상 머신 내 응용 프로그램의 읽기 및 쓰기 요청이 중첩되는 경우에도 이와 같을 수 있다.
반면, 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치(100)에 의한 파일 입출력 처리 과정에서는, 파일 쓰기를 수행하는 응용 프로그램과 파일 읽기를 수행하는 응용 프로그램이 동시에 실행될 수 있다.
도 6은 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치에 의해 수행되는 파일 입출력 처리 과정을 나타낸 예시도이다.
도 6에 도시한 바와 같이, 가상머신(30) 상에, 운영체제에서 지원하는 파일 인터페이스를 바탕으로 파일의 입출력을 수행하는 응용 프로그램(40_1, 40_2)이 실행 중인 것으로 가정한다.
가상머신(30)의 제1 응용 프로그램(40_1)은 X 파일의 읽기(①)를 수행한다. 그리고 제2 응용 프로그램(40_2)은 Y 파일의 읽기(②)를 수행하며, 이와 동시에 제1 응용 프로그램(40_1)은 Y 파일에 대한 쓰기(③)를 수행한다.
가상머신(30)의 제1 응용 프로그램(40_1)이 Y 파일의 쓰기를 요청하면, 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치(100)는 Y 파일이 사용 중임을 판단하고, Y 파일의 최신 버전인 Y.1 파일(최신 파일)을 생성하며, Y.1 파일에 데이터 쓰기를 수행한다.
또한, 제1 응용 프로그램(40_1)에 의한 파일 쓰기가 완료된 후, 새로 실행되는 제2 응용 프로그램(40_2)이 Y 파일의 읽기(④)를 요청하는 경우, 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치(100)는 파일 시스템(20) 내의 Y.1 파일(최신 파일)의 파일 데이터를 메모리에 적재하여, 제2 응용 프로그램(40_2)이 적재된 Y.1 파일의 파일 데이터를 이용하여 서비스를 수행하도록 할 수 있다.
제1 응용 프로그램(40_1)에 의한 파일 쓰기가 수행되는 중에, 제2 응용 프로그램(40_2)이 Y 파일의 읽기()를 요청하는 경우, 응용 프로그램간 파일 공유 장치(100)는 Y 파일의 파일 데이터를 메모리에 적재하여, 데이터 서비스를 수행하도록 할 수 있다.
즉, 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치는 파일 쓰기를 수행하는 응용 프로그램과 파일 읽기를 수행하는 응용 프로그램이 동시에 실행될 수 있도록 하며, 자동으로 가장 최신 파일의 파일 데이터를 제공할 수 있다.
이와 같이, 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치는, 가상머신 모니터 수준에서 파일의 여러 버전을 구현함으로써, 가상머신상의 파일 입출력 요구를 빠르게 처리할 수 있으며, 응용 프로그램들 간 최신 파일의 파일 데이터 공유를 지원할 수 있다.
이하에서는 도 7 및 도 8을 통하여 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치에 의해 수행되는 파일 입출력 동작에 대하여 더욱 상세하게 설명한다.
도 7은 본 발명의 일 실시예에 따른 응용 프로그램간 파일 공유 장치에 의해 수행되는 파일 입출력 동작을 설명하기 위한 도면이고, 도 8은 본 발명의 일 실시예에 따른 파일 인터페이스를 나타낸 예시도이다.
도 7에 도시한 바와 같이, 제1 응용 프로그램(응용 프로그램 A)(410)와 제2 응용 프로그램(응용 프로그램 B)(420)이 동일한 파일인 Y 파일에 대해 각각 파일 쓰기 및 파일 읽기를 요청한 것으로 가정한다.
응용 프로그램 B(420)의 코드 01은 파일을 읽기 위하여 메모리를 할당받고, 코드 02는 Y 파일을 읽기 위하여 1write-Nread 파일 인터페이스(800)에서 제공하는 open 함수를 호출하며, 이는 가상머신 모니터의 파일 매핑 관리부로 하이퍼콜(hypercall)을 호출한다.
파일 매핑 관리부는 Y 파일이 현재 사용 중인지 여부를 확인하고, 사용 중이 아닌 경우, 파일 관리부를 통해 Y 파일을 오픈한다. 코드 02에서 open 함수를 호출하면, 1write-Nread 파일 인터페이스(800)를 통해 요청을 수신한 파일 데이터 관리부가 저장 장치(300)로부터 Y 파일의 파일 데이터를 물리 메모리에 적재하고, 가상 메모리 공간에 매핑시킨다. 그리고 응용 프로그램 B(420)는 코드 03 내지 코드 07을 통하여, Y 파일의 파일 데이터를 기반으로 정보 처리를 수행할 수 있다.
반면, 응용 프로그램 A(410)는 코드 01을 통하여 파일 쓰기를 수행하기 위한 메모리를 할당받고, 코드 03을 통하여 1write-Nread 파일 인터페이스(800)에서 제공하는 open 함수를 호출한다.
하이퍼콜에 의해 호출된 파일 매핑 관리부는 Y 파일이 현재 사용 중인지 여부를 확인한다. Y 파일은 응용 프로그램 B(420)에 의해 이미 사용 중이므로, 파일 관리부는 Y 파일의 최신 버전인 Y.1 파일(최신 파일)을 생성한다.
그리고 코드 03 내지 코드 07을 통해, 응용 프로그램 A(420)가 파일 쓰기를 요청하면, 파일 데이터 관리부는 빈 메모리를 할당하고 Y.1 파일의 파일 데이터를 적재할 수 있다. 즉, 응용 프로그램 A(420)는 적재된 Y.1 파일의 파일 데이터를 긱반으로 정보 처리를 수행할 수 있다.
또한, 코드 09를 통하여 close 함수가 호출되면, 데이터 관리부는 메모리에 적재된 Y.1 파일의 파일 데이터를 저장 장치(300)에 기록하고, 파일 관리부는 파일 닫기를 수행할 수 있다.
응용 프로그램 B(420)가 종료되지 않은 상태에서 다른 가상머신에 의해 응용 프로그램 B가 새로 실행될 경우, 1write-Nread 파일 인터페이스(800)를 통해 파일 매핑 관리부는 Y 파일의 최신 버전을 확인하고, Y 파일의 최신 버전인 Y.1 파일의 파일 데이터를 새로 실행된 응용 프로그램 B에 제공할 수 있다.
도 8에는 파일 열기(open), 파일 쓰기(write), 파일 읽기(read) 및 디렉터리 읽기(readdir)에 대해서만 도시하였으나, 1write-Nread 파일 인터페이스(800)는 가상머신 상에서 동작하는 운영체제가 제공하는 파일 시스템의 인터페이스에 따라 상이하게 설계될 수 있다.
도 9는 본 발명의 일 실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
도 9을 참조하면, 본 발명의 실시예는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(900)에서 구현될 수 있다. 도 9에 도시된 바와 같이, 컴퓨터 시스템(900)은 버스(920)를 통하여 서로 통신하는 하나 이상의 프로세서(910), 메모리(930), 사용자 인터페이스 입력 장치(940), 사용자 인터페이스 출력 장치(950) 및 스토리지(960)를 포함할 수 있다. 또한, 컴퓨터 시스템(900)은 네트워크(980)에 연결되는 네트워크 인터페이스(970)를 더 포함할 수 있다. 프로세서(910)는 중앙 처리 장치 또는 메모리(930)나 스토리지(960)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(930) 및 스토리지(960)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(931)이나 RAM(932)을 포함할 수 있다.
따라서, 본 발명의 실시예는 컴퓨터로 구현된 방법이나 컴퓨터에서 실행 가능한 명령어들이 기록된 비일시적인 컴퓨터에서 읽을 수 있는 매체로 구현될 수 있다. 컴퓨터에서 읽을 수 있는 명령어들이 프로세서에 의해서 수행될 때, 컴퓨터에서 읽을 수 있는 명령어들은 본 발명의 적어도 한 가지 태양에 따른 방법을 수행할 수 있다.
이상에서와 같이 본 발명에 따른 응용 프로그램간 파일 공유 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
10: 데이터 저장소 20: 파일 시스템
30: 가상머신 40: 응용 프로그램
100: 응용 프로그램간 파일 공유 장치
110: 파일 매핑 관리부 120: 파일 관리부
130: 데이터 관리부 300: 저장 장치
410: 제1 응용 프로그램 420: 제2 응용 프로그램
500: 가상 물리 메모리 600: 물리 메모리
700: 파일 관리기 800: 파일 인터페이스
900: 컴퓨터 시스템 910: 프로세서
920: 버스 930: 메모리
931: 롬 932: 램
940: 사용자 인터페이스 입력 장치
950: 사용자 인터페이스 출력 장치
960: 스토리지 970: 네트워크 인터페이스
980: 네트워크

Claims (20)

  1. 가상머신 모니터 상에서 동작하며, 각 가상머신 상의 응용 프로그램이 오픈을 요청한 파일의 파일 열기 모드를 확인하고, 상기 파일의 최신 버전을 확인하며, 상기 응용 프로그램과 상기 파일의 파일 데이터 간 매핑 관계를 관리하는 파일 매핑 관리부,
    상기 파일 열기 모드가 파일 쓰기 모드인 경우, 상기 파일의 최신본인 최신 파일을 생성하는 파일 관리부, 그리고
    상기 최신 파일을 생성한 후 빈 메모리에 상기 최신 파일의 파일 데이터를 적재하거나, 상기 파일 열기 모드가 파일 읽기 모드인 경우 상기 메모리에 상기 최신 파일의 파일 데이터를 적재하고, 상기 응용 프로그램에 상기 최신 파일의 파일 데이터를 제공하여, 상기 응용 프로그램간 상기 파일을 공유하는 데이터 관리부를 포함하는 응용 프로그램간 파일 공유 장치.
  2. 제1항에 있어서,
    상기 파일 매핑 관리부는,
    상기 응용 프로그램이 상기 파일에 대한 클로즈를 요청한 경우, 상기 데이터 관리부가 상기 메모리에 적재된 상기 최신 파일의 파일 데이터를 저장부에 저장하도록 제어하고, 상기 파일 관리부가 상기 최신 파일을 클로즈하도록 제어하는 것을 특징으로 하는 응용 프로그램간 파일 공유 장치.
  3. 제2항에 있어서,
    상기 파일 매핑 관리부는,
    상기 파일을 사용 중인 상기 응용 프로그램이 종료되지 않은 상태에서 다른 가상머신에 의해 상기 응용 프로그램이 새로 실행되는 경우, 상기 파일의 최신 파일을 확인하고, 상기 최신 파일의 파일 데이터를 제공하는 것을 특징으로 하는 응용 프로그램간 파일 공유 장치.
  4. 제2항에 있어서,
    상기 파일 매핑 관리부는,
    상기 파일에 대한 상기 클로즈를 요청한 경우, 상기 파일을 클로즈 한 후 상기 파일의 매핑 관계를 제거하고, 상기 파일보다 이전에 생성된 파일 중 미 사용 중인 파일을 삭제하는 것을 특징으로 하는 응용 프로그램간 파일 공유 장치.
  5. 제1항에 있어서,
    상기 데이터 관리부는,
    상기 파일 열기 모드가 상기 파일 읽기 모드인 경우, 상기 파일의 파일 데이터를 메모리에 적재하고, 가상 메모리 공간에 매핑하여, 상기 파일의 파일 데이터를 제공하는 것을 특징으로 하는 응용 프로그램간 파일 공유 장치.
  6. 제1항에 있어서,
    상기 가상머신은,
    운영체제에서 지원하는 파일 인터페이스를 기반으로 상기 파일에 대한 입출력을 수행하는, 하나 이상의 상기 응용 프로그램을 실행하는 것을 특징으로 하는 응용 프로그램간 파일 공유 장치.
  7. 제6항에 있어서,
    상기 응용 프로그램간 파일 공유 장치는,
    상기 파일 인터페이스를 통하여 상기 응용 프로그램의 상기 파일에 대한 요청을 입력받는 것을 특징으로 하는 응용 프로그램간 파일 공유 장치.
  8. 제1항에 있어서,
    상기 파일 관리부는,
    상기 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 수행하는 중에, 상기 가상머신 또는 다른 가상머신의 제2 응용 프로그램이 상기 파일의 쓰기를 수행하는 경우, 상기 파일의 최신 파일을 생성하는 것을 특징으로 하는 응용 프로그램간 파일 공유 장치.
  9. 제8항에 있어서,
    상기 데이터 관리부는,
    상기 가상머신의 제2 응용 프로그램의 상기 쓰기가 완료된 후, 상기 가상머신 또는 상기 다른 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 요청한 경우, 상기 최신 파일의 파일 데이터를 메모리에 적재하는 것을 특징으로 하는 응용 프로그램간 파일 공유 장치.
  10. 제9항에 있어서,
    상기 데이터 관리부는,
    상기 가상머신의 제2 응용 프로그램의 상기 쓰기가 완료되기 이전에, 상기 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 요청한 경우, 상기 파일의 파일 데이터를 메모리에 적재하는 것을 특징으로 하는 응용 프로그램간 파일 공유 장치.
  11. 응용 프로그램간 파일 공유 장치에 의해 수행되는 응용 프로그램간 파일 공유 방법에 있어서,
    가상머신 모니터 상에서 동작하는 상기 응용 프로그램간 파일 공유 장치가, 각 가상머신 상의 응용 프로그램이 오픈을 요청한 파일의 파일 열기 모드 및 상기 파일의 최신 버전 중 적어도 어느 하나를 확인하고, 상기 응용 프로그램과 상기 파일의 파일 데이터 간 매핑 관계를 저장하는 단계,
    상기 파일 열기 모드가 파일 쓰기 모드인 경우, 상기 파일의 최신본인 최신 파일을 생성하는 단계, 그리고
    상기 응용 프로그램간 상기 파일을 공유하기 위하여, 상기 최신 파일을 생성한 후 빈 메모리에 상기 최신 파일의 파일 데이터를 적재하거나, 상기 파일 열기 모드가 파일 읽기 모드인 경우 상기 메모리에 상기 최신 파일의 파일 데이터를 적재하여, 상기 응용 프로그램에 상기 최신 파일의 파일 데이터를 제공하는 단계를 포함하는 응용 프로그램간 파일 공유 방법.
  12. 제11항에 있어서,
    상기 응용 프로그램이 상기 파일에 대한 클로즈를 요청한 경우, 상기 메모리에 적재된 상기 최신 파일의 파일 데이터를 저장부에 저장하는 단계, 그리고
    상기 최신 파일의 파일 데이터를 상기 저장부에 저장한 후, 상기 최신 파일을 클로즈하는 단계를 더 포함하는 것을 특징으로 하는 응용 프로그램간 파일 공유 방법.
  13. 제12항에 있어서,
    상기 파일을 사용 중인 상기 응용 프로그램이 종료되지 않은 상태에서 다른 가상머신에 의해 상기 응용 프로그램이 새로 실행되는 경우, 상기 파일의 최신 파일을 확인하는 단계, 그리고
    상기 최신 파일의 파일 데이터를 제공하는 단계를 더 포함하는 것을 특징으로 하는 응용 프로그램간 파일 공유 방법.
  14. 제12항에 있어서,
    상기 매핑 관계를 관리하는 단계는,
    상기 파일에 대한 상기 클로즈를 요청한 경우, 상기 파일을 클로즈 한 후 상기 파일의 매핑 관계를 제거하는 단계, 그리고
    상기 파일보다 이전에 생성된 파일 중 미 사용 중인 파일을 삭제하는 단계를 포함하는 것을 특징으로 하는 응용 프로그램간 파일 공유 방법.
  15. 제11항에 있어서,
    상기 파일 열기 모드가 상기 파일 읽기 모드인 경우, 상기 파일의 파일 데이터를 메모리에 적재하고, 가상 메모리 공간에 매핑하여, 상기 파일의 파일 데이터를 제공하는 단계를 더 포함하는 것을 특징으로 하는 응용 프로그램간 파일 공유 방법.
  16. 제11항에 있어서,
    상기 가상머신은,
    운영체제에서 지원하는 파일 인터페이스를 기반으로 상기 파일에 대한 입출력을 수행하는, 하나 이상의 상기 응용 프로그램을 실행하는 것을 특징으로 하는 응용 프로그램간 파일 공유 방법.
  17. 제16항에 있어서,
    상기 응용 프로그램간 파일 공유 장치가, 상기 파일 인터페이스를 통하여 상기 응용 프로그램의 상기 파일에 대한 요청을 입력받는 단계를 더 포함하는 것을 특징으로 하는 응용 프로그램간 파일 공유 방법.
  18. 제11항에 있어서,
    상기 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 수행하는 중에, 상기 가상머신 또는 다른 가상머신의 제2 응용 프로그램이 상기 파일의 쓰기를 수행하는 경우, 상기 파일의 최신 파일을 생성하는 단계를 더 포함하는 것을 특징으로 하는 응용 프로그램간 파일 공유 방법.
  19. 제18항에 있어서,
    상기 가상머신의 제2 응용 프로그램의 상기 쓰기가 완료된 후, 상기 가상머신 또는 상기 다른 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 요청한 경우, 상기 쓰기가 완료된 상기 최신 파일의 파일 데이터를 메모리에 적재하는 단계를 더 포함하는 것을 특징으로 하는 응용 프로그램간 파일 공유 방법.
  20. 제19항에 있어서,
    상기 가상머신의 제2 응용 프로그램의 상기 쓰기가 완료되기 이전에, 상기 가상머신의 제1 응용 프로그램이 상기 파일의 읽기를 요청한 경우, 상기 파일의 파일 데이터를 메모리에 적재하는 단계를 더 포함하는 것을 특징으로 하는 응용 프로그램간 파일 공유 방법.
KR1020170169545A 2017-12-11 2017-12-11 응용 프로그램간 파일 공유 장치 및 방법 KR102456017B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170169545A KR102456017B1 (ko) 2017-12-11 2017-12-11 응용 프로그램간 파일 공유 장치 및 방법
US16/216,401 US20190179803A1 (en) 2017-12-11 2018-12-11 Apparatus and method for file sharing between applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170169545A KR102456017B1 (ko) 2017-12-11 2017-12-11 응용 프로그램간 파일 공유 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190069134A true KR20190069134A (ko) 2019-06-19
KR102456017B1 KR102456017B1 (ko) 2022-10-19

Family

ID=66696918

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170169545A KR102456017B1 (ko) 2017-12-11 2017-12-11 응용 프로그램간 파일 공유 장치 및 방법

Country Status (2)

Country Link
US (1) US20190179803A1 (ko)
KR (1) KR102456017B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990347A (zh) * 2019-11-28 2020-04-10 维沃移动通信有限公司 一种分享方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001042957A2 (en) * 1999-12-08 2001-06-14 Qualcomm Incorporated Method for distributing advertisements to client devices
US20110087690A1 (en) * 2009-10-13 2011-04-14 Google Inc. Cloud based file storage service
US20130275973A1 (en) * 2010-09-06 2013-10-17 Fonleap Limited Virtualisation system
KR20140027182A (ko) 2011-04-28 2014-03-06 마이크로소프트 코포레이션 파일의 공유 버전을 참조하기 위해 파일 내에 메타데이터를 저장하는 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002313583A1 (en) * 2001-08-01 2003-02-17 Actona Technologies Ltd. Virtual file-sharing network
US8656386B1 (en) * 2007-03-13 2014-02-18 Parallels IP Holdings GmbH Method to share identical files in a common area for virtual machines having the same operating system version and using a copy on write to place a copy of the shared identical file in a private area of the corresponding virtual machine when a virtual machine attempts to modify the shared identical file
US8515911B1 (en) * 2009-01-06 2013-08-20 Emc Corporation Methods and apparatus for managing multiple point in time copies in a file system
US8612380B2 (en) * 2009-05-26 2013-12-17 Adobe Systems Incorporated Web-based collaboration for editing electronic documents
US10387836B2 (en) * 2015-11-24 2019-08-20 David Howard Sitrick Systems and methods providing collaborating among a plurality of users
US9613048B2 (en) * 2014-09-10 2017-04-04 Panzura, Inc. Sending interim notifications to a client of a distributed filesystem
US10146873B2 (en) * 2015-06-29 2018-12-04 Microsoft Technology Licensing, Llc Cloud-native documents integrated with legacy tools

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001042957A2 (en) * 1999-12-08 2001-06-14 Qualcomm Incorporated Method for distributing advertisements to client devices
US20110087690A1 (en) * 2009-10-13 2011-04-14 Google Inc. Cloud based file storage service
US20130275973A1 (en) * 2010-09-06 2013-10-17 Fonleap Limited Virtualisation system
KR20140027182A (ko) 2011-04-28 2014-03-06 마이크로소프트 코포레이션 파일의 공유 버전을 참조하기 위해 파일 내에 메타데이터를 저장하는 방법

Also Published As

Publication number Publication date
US20190179803A1 (en) 2019-06-13
KR102456017B1 (ko) 2022-10-19

Similar Documents

Publication Publication Date Title
US11687446B2 (en) Namespace change propagation in non-volatile memory devices
CN108701048B (zh) 数据加载方法及装置
KR102275563B1 (ko) 호스트-관리 비휘발성 메모리
US10228993B2 (en) Data dump for a memory in a data processing system
US9875057B2 (en) Method of live migration
US7971022B2 (en) Apparatus and method of processing data of non-volatile memory using transaction block
US20220129377A1 (en) Efficiently Purging Non-Active Blocks in NVM Regions Using Virtblock Arrays
CN112596762A (zh) 一种滚动升级方法及装置
US20140082275A1 (en) Server, host and method for reading base image through storage area network
US20200133847A1 (en) Efficiently purging non-active blocks in nvm regions while preserving large pages
CN103617133A (zh) 一种Windows系统中虚拟内存压缩方法和装置
CN107832097B (zh) 数据加载方法及装置
KR20110033066A (ko) 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법
KR20200117032A (ko) 하이브리드 메모리 시스템
KR102456017B1 (ko) 응용 프로그램간 파일 공유 장치 및 방법
US10430287B2 (en) Computer
CN112748854B (zh) 对快速存储设备的优化访问
CN110941511B (zh) 一种快照合并方法、装置、设备及存储介质
US11947501B2 (en) Two-hierarchy file system
JP2013109404A (ja) 情報処理装置
JP6691884B2 (ja) 計算機及びアプリケーション管理方法
KR101989593B1 (ko) 식별정보 전달 장치 및 방법
KR101975058B1 (ko) 데이터 가용성 지원 시스템 및 방법
KR102327065B1 (ko) 부트워킹셋을 이용한 가상머신 프로비저닝 가속장치와 가상머신 관리장치 및 방법
KR101744401B1 (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