KR20160068481A - Mobile device and management method of mobile device - Google Patents

Mobile device and management method of mobile device Download PDF

Info

Publication number
KR20160068481A
KR20160068481A KR1020140174294A KR20140174294A KR20160068481A KR 20160068481 A KR20160068481 A KR 20160068481A KR 1020140174294 A KR1020140174294 A KR 1020140174294A KR 20140174294 A KR20140174294 A KR 20140174294A KR 20160068481 A KR20160068481 A KR 20160068481A
Authority
KR
South Korea
Prior art keywords
page
cloud server
mobile device
swap
swapped
Prior art date
Application number
KR1020140174294A
Other languages
Korean (ko)
Other versions
KR102403063B1 (en
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 KR1020140174294A priority Critical patent/KR102403063B1/en
Publication of KR20160068481A publication Critical patent/KR20160068481A/en
Application granted granted Critical
Publication of KR102403063B1 publication Critical patent/KR102403063B1/en

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension

Abstract

According to an embodiment of the present invention, a mobile device comprises: a memory; a local storage; and a processor. The processor uses a cloud server, connected to the local storage or communications, as a swap space of pages stored in the memory. The embodiment of the present invention is to provide a mobile device and a management method of the same.

Description

모바일 디바이스 및 모바일 디바이스의 메모리 관리 방법{Mobile device and management method of mobile device}[0001] DESCRIPTION [0002] MEMORY MANAGEMENT OF MOBILE DEVICES AND MOBILE DEVICES [0003]

개시된 실시 예들은 모바일 디바이스 및 모바일 디바이스의 메모리 관리 방법에 관한 것이다.The disclosed embodiments relate to a method for managing memory of a mobile device and a mobile device.

스마트 폰, 태블릿 또는 노트북과 같은 모바일 디바이스는 데스크탑이나 서버와 비교하여 상대적으로 낮은 성능의 컴퓨팅 자원을 포함하고 있다. 모바일 디바이스는 어플리케이션과 같은 프로그램을 동시에 실행하기 위해 큰 용량의 메모리를 필요로 한다. 어플리케이션이 할당하는 메모리의 크기는 빈번히 사용되는 메모리의 크기인 워킹셋(working set)보다 크다. 따라서, 모바일 디바이스는 메모리를 관리하여 작은 크기의 메모리를 이용하여 효율적으로 어플리케이션을 구동할 수 있다.Mobile devices such as smartphones, tablets or laptops contain relatively low-performance computing resources compared to desktops or servers. Mobile devices require a large amount of memory to run programs such as applications concurrently. The size of the memory allocated by the application is larger than the working set, which is frequently used memory size. Therefore, the mobile device manages the memory and can efficiently operate the application using the small-sized memory.

개시된 일 실시 예는 모바일 디바이스 및 모바일 디바이스의 메모리 관리 방법을 제공하는데 있다.One disclosed embodiment is to provide a method for managing memory of a mobile device and a mobile device.

일 실시 예에 따른 모바일 디바이스는 메모리; 로컬 스토리지; 및 프로세서를 포함하고, 상기 프로세서는, 상기 로컬 스토리지 및 통신으로 연결된 클라우드 서버를 상기 메모리에 저장된 페이지들의 스왑(swap) 공간으로 사용한다.A mobile device according to one embodiment includes a memory; Local storage; And a processor, wherein the processor uses a cloud server coupled to the local storage and communication as swap space for pages stored in the memory.

일 실시 예에 따른 모바일 디바이스가 메모리를 관리하는 방법에 있어서, 상기 모바일 디바이스의 로컬 스토리지 또는 통신으로 연결된 클라우드 서버로 상기 메모리에 저장된 페이지를 스왑-아웃 하는 단계; 및 페이지 폴트가 발생된 페이지의 특성 및 페이지 폴트가 발생된 페이지의 저장 위치에 따라 상기 스왑-아웃 된 페이지를 스왑-인 하는 단계를 포함한다.A method for a mobile device to manage a memory, the method comprising: swapping out a page stored in the memory to a cloud server connected to the mobile device's local storage or communication; And swapping in the swapped-out page according to the characteristics of the page where the page fault occurred and the storage location of the page where the page fault occurred.

도 1은 일 실시 예에 따른 스왑 시스템을 설명하기 위한 도면이다.
도 2는 일 실시 예에 따른 모바일 디바이스를 설명하기 위한 구성도이다.
도 3은 일 실시 예에 따른 모바일 디바이스를 설명하기 위한 구성도이다.
도 4는 일 실시 예에 따른 모바일 디바이스가 페이지를 스왑-아웃 하는 동작을 설명하기 위한 도면이다.
도 5는 일 실시 예에 따른 모바일 디바이스의 동작을 설명하기 위한 순서도이다.
도 6은 일 실시 예에 따른 모바일 디바이스의 동작을 설명하기 위한 순서도이다.
도 7은 일 실시 예에 따른 모바일 디바이스가 페이지를 스왑-인 하는 동작을 설명하기 위한 도면이다.
도 8은 일 실시 예에 따른 모바일 디바이스가 페이지를 스왑-인 하는 동작을 설명하기 위한 순서도이다.
도 9는 일 실시 예에 따른 클라우드 서버를 설명하기 위한 도면이다.
도 10은 일 실시 예에 따른 클라우드 서버를 설명하기 위한 도면이다.
도 11은 일 실시 예에 따른 모바일 디바이스의 동작 방법을 설명하기 위한 순서도이다.
1 is a view for explaining a swap system according to an embodiment.
2 is a block diagram illustrating a mobile device according to an exemplary embodiment of the present invention.
3 is a block diagram illustrating a mobile device according to an exemplary embodiment of the present invention.
4 is a diagram for explaining an operation in which a mobile device swap-out a page according to an embodiment.
5 is a flowchart for explaining the operation of the mobile device according to an embodiment.
6 is a flowchart illustrating an operation of a mobile device according to an embodiment.
7 is a diagram for explaining an operation in which a mobile device according to an embodiment swaps a page.
8 is a flowchart illustrating an operation of a mobile device according to an exemplary embodiment of the present invention.
9 is a view for explaining a cloud server according to an embodiment.
10 is a diagram for explaining a cloud server according to an embodiment.
11 is a flowchart illustrating an operation method of a mobile device according to an embodiment.

도 1은 일 실시 예에 따른 스왑 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 모바일 디바이스(100)는 클라우드 서버(200)를 스왑 공간으로 이용할 수 있다. 스왑은 메모리의 워킹셋을 모바일 디바이스(100)의 메모리에 효과적으로 할당하는 기술이다. 모바일 디바이스(100)는 메모리에 데이터를 저장할 공간이 부족한 경우, 메모리에서 오랫동안 사용되지 않은 데이터를 스왑-아웃 한다. 스왑-아웃 한다는 것은 데이터를 메모리에서 다른 저장 공간으로 이동시킨다는 것을 나타낸다. 예를 들어, 메모리가 데이터를 페이지 단위로 저장하는 경우, 모바일 디바이스(100)는 메모리에 저장된 페이지를 로컬 스토리지에 저장하고, 메모리에는 페이지가 저장된 위치 등을 나타내는 정보만을 저장할 수 있다. 메모리를 휘발성 저장 매체일 수 있으며, 로컬 스토리지는 하드 디스크와 같은 비휘발성 저장 매체일 수 있다.1 is a view for explaining a swap system according to an embodiment. Referring to FIG. 1, the mobile device 100 may use the cloud server 200 as a swap space. Swap is a technique for effectively assigning a working set of memory to the memory of the mobile device 100. [ The mobile device 100 swaps out unused data for a long time in memory if there is insufficient space to store data in the memory. Swap-out indicates moving data from memory to another storage space. For example, when the memory stores data in units of pages, the mobile device 100 may store the page stored in the memory in the local storage, and store only the information indicating the location where the page is stored in the memory. The memory may be a volatile storage medium, and the local storage may be a non-volatile storage medium such as a hard disk.

모바일 디바이스(100)는 통신으로 연결된 클라우드 서버(200)의 저장 공간을 스왑 공간으로서 이용할 수 있다. 모바일 디바이스(100)는 크기의 제약으로 인하여 저장 공간이 한정된다. 따라서, 모바일 디바이스(100)는 클라우드 서버(200)로 페이지를 스왑-아웃 하여, 클라우드 서버(200)에 페이지를 저장할 수 있다. 도 1에서는 모바일 디바이스(100)가 클라우드 서버(200)를 이용하는 것을 예를 들어 도시하고 있으나, 모바일 디바이스(100)는 모바일 디바이스(100)와 무선 또는 유선으로 연결되어 데이터를 송수신할 수 있는 모든 전자 기기의 저장 공간을 스왑 공간으로 이용할 수 있다. 예를 들어, 모바일 디바이스(100)는 또 다른 모바일 디바이스를 이용할 수 있으며, 데스크 탑, 태블릿 등을 이용할 수도 있다.The mobile device 100 can use the storage space of the cloud server 200 connected by communication as a swap space. The mobile device 100 is limited in storage space due to its size limitation. Thus, the mobile device 100 may swap out the page to the cloud server 200 and store the page in the cloud server 200. [ 1 illustrates that the mobile device 100 uses the cloud server 200. The mobile device 100 is connected to the mobile device 100 in a wireless or wired manner to transmit all electronic data The storage space of the device can be used as a swap space. For example, the mobile device 100 may use another mobile device, and may use a desktop, a tablet, or the like.

클라우드 서버(200)는 모바일 디바이스(100)의 요청에 따라 페이지를 스왑-아웃 또는 스왑-인 한다. 클라우드 서버(200)는 충분한 저장 공간을 포함하고 있으며, 모바일 디바이스(100)로부터 페이지를 저장해줄 것을 요청 받으면, 수신된 페이지를 내부 메모리 또는 스토리지에 저장한다. 또한, 클라우드 서버(200)는 모바일 디바이스(100)로부터 페이지를 전송해줄 것을 요청 받으면, 저장된 페이지를 모바일 디바이스(100)로 전송한다.
The cloud server 200 swaps-in or swaps-in the page upon the request of the mobile device 100. The cloud server 200 includes sufficient storage space, and upon receiving a request to store a page from the mobile device 100, stores the received page in internal memory or storage. In addition, when the cloud server 200 is requested to transmit a page from the mobile device 100, the cloud server 200 transmits the stored page to the mobile device 100.

도 2는 일 실시 예에 따른 모바일 디바이스를 설명하기 위한 구성도이다. 도 2를 참조하면, 모바일 디바이스(100)는 메모리(110), 프로세서(120) 및 로컬 스토리지(130)를 포함한다. 모바일 디바이스(100)는 통신으로 연결된 클라우드 서버(200)를 이용하여 메모리(110)를 관리할 수 있다. 모바일 디바이스(100)는 메모리(110)에 저장된 페이지를 로컬 스토리지(130) 또는 클라우드 서버(200)로 스왑-아웃 할 수 있다. 또한, 모바일 디바이스(100)는 로컬 스토리지(130) 또는 클라우드 서버(200)에 저장된 페이지를 메모리(110)로 스왑-인 할 수 있다.2 is a block diagram illustrating a mobile device according to an exemplary embodiment of the present invention. 2, the mobile device 100 includes a memory 110, a processor 120, and a local storage 130. The mobile device 100 can manage the memory 110 using the cloud server 200 connected by communication. The mobile device 100 may swap out pages stored in the memory 110 to the local storage 130 or the cloud server 200. [ The mobile device 100 may also swap the pages stored in the local storage 130 or the cloud server 200 to the memory 110.

메모리(110)는 모바일 디바이스(100)가 어플리케이션 등과 같은 프로그램 등을 실행할 때 데이터를 저장하는 공간이다. 모바일 디바이스(100)는 메모리(110)에 어플리케이션마다 일정한 영역을 할당한다. 모바일 디바이스(100)는 어플리케이션을 실행하면서 발생하는 데이터를 메모리(110)에 할당된 영역에 페이지 단위로 기록(write)하고 독출(read)할 수 있다.The memory 110 is a space for storing data when the mobile device 100 executes a program such as an application or the like. The mobile device 100 allocates a predetermined area to each memory 110 in each application. The mobile device 100 can write and read data generated while executing an application in a page unit in an area allocated in the memory 110. [

프로세서(120)는 메모리(110)를 관리한다. 프로세서(120)는 메모리(110)에 저장된 페이지를 관리한다. 프로세서(120)는 메모리(110)에 저장된 페이지 중에서 오래 사용되지 않은 페이지를 로컬 스토리지(130) 또는 클라우드 서버(200)로 스왑-아웃 하여 메모리(110)의 저장 공간을 확보할 수 있다. 또한, 프로세서(120)는 어플리케이션에 의해 요청된 페이지가 메모리(110)에 저장되어 있지 않은 경우, 요청된 페이지가 저장된 위치를 확인하고, 요청된 페이지를 메모리(110)에 스왑-인 할 수 있다. 프로세서(120)가 페이지를 스왑-아웃, 스왑-인 하는 동작에 관하여는 이하 도면들을 통해 상세히 설명한다.The processor 120 manages the memory 110. Processor 120 manages the pages stored in memory 110. The processor 120 can swap out a page that is not used for a long time from the page stored in the memory 110 to the local storage 130 or the cloud server 200 to secure the storage space of the memory 110. [ In addition, if the page requested by the application is not stored in the memory 110, the processor 120 may determine where the requested page is stored and may swap the requested page into the memory 110 . The operation of the processor 120 to swap-out and swap pages is described in detail below with reference to the drawings.

프로세서(120)는 운영체제(OS)를 구동한다. 프로세서(120)는 윈도우 커널 또는 리눅스 커널 등과 같은 운영체제를 구동하여 어플리케이션을 실행하고, 메모리(110)에 저장된 데이터를 관리한다.Processor 120 drives an operating system (OS). The processor 120 runs an operating system such as a Windows kernel or a Linux kernel to execute an application and manages data stored in the memory 110. [

프로세서(120)는 데이터를 처리하고 연산을 수행하는 기능 유닛 또는 프로그램 모듈을 포함할 수 있다. 또한, 프로세서(120)는 캐시 또는 버퍼를 포함하여 데이터를 저장할 수 있다.
The processor 120 may include a functional unit or program module that processes data and performs operations. In addition, the processor 120 may store data, including a cache or buffer.

도 3은 일 실시 예에 따른 모바일 디바이스를 설명하기 위한 구성도이다.3 is a block diagram illustrating a mobile device according to an exemplary embodiment of the present invention.

페이지 폴트 핸들러(121)는 페이지 요청을 처리한다. 페이지 폴트 핸들러(121)는 어플리케이션이 메모리(110)에 페이지를 요청하였을 때 요청된 페이지가 메모리(110)에 저장되어 있지 않는 경우, 요청된 페이지를 메모리(110)로 반환한다. 페이지 폴트는 메모리(110)에 저장되어 있던 페이지가 스왑-아웃 되고 난 이후에, 프로그램이 스왑-아웃 된 페이지에 접속(access)할 때 발생한다. 페이지 폴트 핸들러(121)는 스왑으로 인하여 페이지 폴트가 발생하였으므로, 페이지 폴트를 처리한다. The page fault handler 121 processes the page request. The page fault handler 121 returns a requested page to the memory 110 when the requested page is not stored in the memory 110 when the application requests the page to the memory 110. [ A page fault occurs when a program accesses a swapped-out page after the page stored in the memory 110 has been swapped out. The page fault handler 121 processes a page fault because a page fault has occurred due to swapping.

스왑 캐시(122)는 프리패치(prefetch)된 페이지들을 임시로 저장한다. 또는 스왑 캐시(122)는 동시에 발생하는 스왑-인, 스왑-아웃에 대한 동기화를 위해 사용된다.The swap cache 122 temporarily stores prefetched pages. Or the swap cache 122 are used for synchronization for a swap-in, swap-out that occurs at the same time.

스왑 대몬(123)은 페이지를 스왑-아웃 한다. 스왑 대몬(123)은 메모리(110)에 저장 공간이 부족한 경우, 메모리(110)에 저장된 페이지들 중에서 가장 오래된 페이지를 스왑-아웃 할 수 있다.The swap daemon 123 swaps the page out. The swap daemon 123 may swap out the oldest page among the pages stored in the memory 110 if the memory 110 lacks storage space.

프리패치 대몬(124)은 페이지 요청이 있기 전에, 페이지를 미리 메모리(110)에 저장한다. 페이지 요청은 페이지 폴트가 발생할 때 발생한다. 하지만, 스왑-인 요청을 수신한 장치가 스왑-인 페이지와 함께 앞으로 사용될 것으로 예상되는 페이지들을 미리 전송한다면, 페이지 폴트를 줄일 수 있다. 따라서, 클라우드 서버(200) 등은 페이지 요청이 있을 때, 요청된 페이지와 함께 앞으로 사용될 페이지들을 미리 모바일 디바이스(100)로 전송한다. 프리패치 대몬(124)은 앞으로 사용될 페이지들을 메모리(110)에 저장함으로써, 페이지 폴트 또는 스왑-인 요청을 줄일 수 있다.Prefetch daemon 124 pre-stores the page in memory 110 before a page request is made. A page request occurs when a page fault occurs. However, page faults can be reduced if the device receiving the swap-in request sends in advance the pages that are expected to be used with the swap-in page. Therefore, when a page request is made, the cloud server 200 or the like transmits to the mobile device 100 in advance the pages to be used together with the requested page. The prefetch daemon 124 may save page faults or swap-in requests by storing the pages to be used in memory 110 in the future.

스왑 매니저(125)는 스왑-아웃 또는 스왑-인 되는 페이지들을 관리한다. 예를 들어, 스왑 매니저(125)는 스왑-아웃 또는 스왑-인 되는 페이지들의 라이프 사이클을 추적(track)할 수 있다. 스왑 매니저(125)는 페이지들이 얼마나 자주 스왑-아웃 또는 스왑-인 되고 사용되는지를 추적한다. 스왑 매니저(125)는 추적 결과에 기초하여, 페이지를 로컬 스토리지(130)에 저장할지, 클라우드 서버(200)에 저장할지를 결정한다. The swap manager 125 manages pages that are swapped-out or swapped-in. For example, the swap manager 125 may track the life cycle of pages that are swapped-out or swapped-in. The swap manager 125 tracks how often pages are swapped-out or swapped-in and used. Based on the tracking result, the swap manager 125 determines whether to store the page in the local storage 130 or in the cloud server 200.

또한, 스왑 매니저(125)는 페이지 폴트 발생 시, 요청된 페이지가 저장된 장소가 어디인지 체크하고, 요청된 페이지에 대한 델타 페이지가 존재하는지 체크하고, 요청된 페이지가 제로 페이지(zero page)인지 체크한다.When the page fault occurs, the swap manager 125 checks where the requested page is stored, checks whether a delta page exists for the requested page, and checks whether the requested page is a zero page do.

페이지 번역기(126)는 페이지가 스왑-아웃 또는 스왑-인 되기 이전에 페이지를 처리한다. 페이지 번역기(126)는 페이지를 압축(compress)하거나 복원(decompress)할 수 있다. 페이지 번역기(126)는 2개의 페이지를 이용하여 델타 페이지를 생성할 수 있다. 페이지 번역기(126)는 논리적으로 동일한(logically same) 페이지들을 이용하여 델타 페이지를 생성한다. 예를 들어, 페이지 번역기(126)는 논리적으로 동일한 페이지들에 대한 XOR 연산을 수행하여 델타 페이지를 생성할 수 있다. XOR 연산은 동일한 값일 경우에는 0을, 서로 다른 값일 경우에는 1을 출력하는 연산이다. 따라서, 2개의 페이지가 완전이 동일하면 델타 페이지의 값은 모두 0이 된다. 레퍼런스 페이지의 내용이 11101010이고, 스왑-아웃 되는 페이지의 내용이 11111010이면, 델타 페이지는 00010000이 된다. 따라서, 페이지들의 내용이 유사할수록 압축률은 높아진다. 페이지 번역기(126)는 델타 페이지를 이용하여 스왑-아웃 또는 스왑-인 하기 때문에 네트워크 대역폭을 줄일 수 있으며, 배터리의 소모를 줄일 수 있다.The page translator 126 processes the page before the page is swapped-out or swapped-in. The page translator 126 may compress or decompress the page. The page translator 126 may generate a delta page using two pages. The page translator 126 generates delta pages using logically the same pages. For example, the page translator 126 may perform XOR operations on logically identical pages to generate a delta page. The XOR operation is an operation of outputting 0 for the same value and outputting 1 for different values. Thus, if the two pages are completely identical, the value of the delta page is all zero. If the content of the reference page is 11101010 and the content of the page being swapped out is 11111010, then the delta page is 00010000. Therefore, the more similar the contents of pages, the higher the compression rate. The page translator 126 may swap-out or swap-in using a delta page, thereby reducing network bandwidth and battery consumption.

페이지 번역기(126)는 페이지의 무결성 검사(integrity test)를 할 수 있다. 무결성 검사는 복원된 페이지가 실제 페이지와 동일한지를 확인하는 것을 의미한다. 모바일 디바이스(100)는 페이지를 압축한 이후에 무선으로 압축된 데이터를 클라우드 서버(200) 등과 송수신하기 때문에, 페이지 번역기(126)는 페이지를 수신한 이후에 페이지를 복원하고, 복원된 페이지가 실제 페이지와 동일한지 검사한다.The page translator 126 may perform an integrity test of the page. The integrity check means that the restored page is identical to the actual page. Since the mobile device 100 transmits and receives wirelessly compressed data to and from the cloud server 200 after compressing the page, the page translator 126 restores the page after receiving the page, Check if the page is the same.

압축 캐시(127)는 압축된 페이지를 저장한다. 압축 캐시(127)에 저장된 페이지들은 가장 오래 사용되지 않은 순서대로 내보내진다(evict). 내보내진 페이지에 대한 정보는 스왑 매니저(125)를 통해 획득된다. The compression cache 127 stores compressed pages. Pages stored in the compressed cache 127 are evicted in the order in which they are least recently used. Information about the exported page is obtained through the swap manager 125.

벌크 버퍼(128)는 클라우드 서버(200)로 스왑-아웃 될 페이지들을 임시로 저장한다. 벌크 버퍼(128)는 네트워크 대역폭(network bandwidth)를 고려하여, 복수의 페이지들을 묶어서 클라우드 서버(200)로 전송할 수 있다.
The bulk buffer 128 temporarily stores the pages to be swapped out to the cloud server 200. The bulk buffer 128 may transmit a plurality of pages to the cloud server 200 in consideration of the network bandwidth.

도 4는 일 실시 예에 따른 모바일 디바이스가 페이지를 스왑-아웃 하는 동작을 설명하기 위한 도면이다.4 is a diagram for explaining an operation in which a mobile device swap-out a page according to an embodiment.

스왑 대몬(123)은 메모리(110)에 저장 공간이 부족한 경우, 메모리(110)에 저장된 페이지들 중에서 가장 오래된 페이지를 스왑-아웃 한다. 메모리(110)에는 페이지 단위로 데이터가 저장되어 있다. 스왑 대몬(123)은 스왑-아웃 할 페이지를 페이지 번역기(126)로 출력한다. 메모리에 저장된 페이지는 액티브 페이지 리스트(active page list)와 인액티브 페이지 리스트(inactive page list)로 구분된다. 리스트들은 LRU(least-recently-used) policy로 관리된다.The swap daemon 123 swaps out the oldest page among the pages stored in the memory 110 when the memory 110 lacks storage space. The memory 110 stores data in page units. The swap daemon 123 outputs the page to be swapped out to the page translator 126. Pages stored in memory are divided into an active page list and an inactive page list. Lists are managed with a least-recently-used (LRU) policy.

페이지 번역기(126)는 페이지를 압축하고, 압축된 페이지를 압축 캐시(127)로 출력한다.The page translator 126 compresses the page and outputs the compressed page to the compression cache 127.

스왑 매니저(125)는 압축된 페이지를 로컬 스토리지(130)에 저장할지, 클라우드 서버(200)에 저장할지 결정한다. The swap manager 125 determines whether to store the compressed page in the local storage 130 or in the cloud server 200. [

스왑 매니저(125)는 압축된 페이지가 이전에 스왑-아웃 또는 스왑-인 된 횟수에 따라 저장 위치를 결정할 수 있다. 스왑 매니저(125)는 압축된 페이지가 이전에 스왑-아웃 또는 스왑-인 된 횟수가 임계값 이상인 경우에는 압축된 페이지를 로컬 스토리지(130)에 저장하고, 그렇지 않은 경우에는 클라우드 서버(200)에 저장한다.The swap manager 125 may determine the storage location according to the number of times the compressed page was previously swapped-out or swapped-in. The swap manager 125 stores the compressed page in the local storage 130 if the number of times the compressed page was previously swapped out or swapped-in is greater than or equal to the threshold value, and otherwise the compressed page is stored in the cloud server 200 .

스왑 매니저(125)는 델타 페이지의 사이즈에 따라 저장 위치를 결정할 수 있다. 스왑 매니저(125)는 델타 페이지의 사이즈가 임계값 이상인 경우에는 클라우드 서버(200)에 저장하고, 그렇지 않은 경우에는 로컬 스토리지(130)에 저장한다. 델타 페이지의 사이즈가 작다는 것은 레퍼런스 페이지(reference page)와 유사하다는 것을 의미하므로, 레퍼런스 페이지가 저장된 로컬 스토리지(130)에 델타 페이지를 저장한다.The swap manager 125 may determine the storage location according to the size of the delta page. The swap manager 125 stores the delta page in the cloud server 200 if the size of the delta page is equal to or larger than the threshold value, and stores it in the local storage 130 otherwise. Since the small size of the delta page means that it is similar to the reference page, it stores the delta page in the local storage 130 where the reference page is stored.

스왑 매니저(125)는 다음과 같은 규칙에 따라 페이지의 저장 위치를 결정할 수 있다. The swap manager 125 may determine the storage location of the page according to the following rules.

1) 한번 스왑-아웃 되고 사용되지 않는 페이지는 로컬 스토리지(130)의 수명을 위해 클라우드 서버(200)로 전송One) Once swapped out and not used, the page is sent to the cloud server 200 for the life of the local storage 130

2) 자주 접속(access)되는 페이지들2) Frequently accessed pages

- 제1 페이지(Read-intensive page)는 스왑-아웃 된 이후 자주 스왑-인 되고, 클린 형태로 스왑-아웃 되기 때문에, 추가적인 페이지 기록(page write)가 필요하지 않으므로 로컬 스토리지(130)에 저장- Since the first page (read-intensive page) is frequently swapped-in after swap-out and is swapped out in a clean form, additional page writing is not required,

- 제2 페이지(Read/Write-intensive page with small delta potion)는 스윕-인, 스윕-아웃 모두 빈번히 발생하지만, 로컬 스토리지(130)에 저장된 레퍼런스 페이지와 일부만 다르고, 델타 페이지의 사이즈가 작기 때문에, 로컬 스토리지(130)에 저장- The second page (Read / Write-intensive page with small delta potion) occurs frequently, both sweep-in and sweep-out, but because the size of the delta page is small and only slightly different from the reference page stored in the local storage 130, Stored in storage 130

- 제3 페이지(Read/write-intensive page with big delta potion)는 레퍼런스 페이지와 다르고, 델타 페이지의 사이즈도 크기 때문에 클라우드 서버(200)에 저장- The third page (read / write-intensive page with big delta potion) differs from the reference page, and since the size of the delta page is also large, it is stored in the cloud server 200

3) 공유/센서티브 페이지들(Shared/sensitive pages)3) Shared / sensitive pages

2 이상의 어플리케이션에 의해 동시에 영향을 받는 공유 페이지들이나, 센서티브 페이지들, 플래폼 페이지들(platform pages)은 다른 조건에 우선하여 로컬 스토리지(130)에 우선적으로 저장. 공유 페이지들은 copy-on-write(COW) 방식으로 메모리(110)에 할당되기 때문에 새로운 페이지가 복사되기 이전까지는 복수의 어플리케이션들에 의해 공유된다. COW란 하나의 페이지가 공유될 때, 임의의 공유자(sharer)에 의해 페이지가 변경되면 다른 공유자들이 영향을 받는다. 따라서, 공유자가 변경할 페이지를 복제하여, 공유자 자신만의 페이지를 생성한 후 생성된 페이지를 수정한다.
Shared pages, sensitive pages, and platform pages that are simultaneously affected by two or more applications are preferentially stored in local storage 130 prior to other conditions. Since the shared pages are allocated to the memory 110 in a copy-on-write (COW) manner, they are shared by a plurality of applications until a new page is copied. COW means that when one page is shared, other sharers are affected if the page is changed by any sharer. Therefore, the sharer replicates the page to be changed and creates the sharper's own page, and then modifies the generated page.

벌크 버퍼(128)는 네트워크 대역폭(network bandwidth)를 고려하여, 복수의 페이지들을 묶어서 클라우드 서버(200)로 전송한다. 이때, 벌크 버퍼(128)는 페이지의 해쉬(hash) 값을 포함한 메타 정보(meta information)만을 우선적으로 클라우드 서버(200)로 전송하여, 클라우드 서버(200)에 동일한 페이지가 저장되어 있는지 확인하고, 동일하지 않은 페이지들만 클라우드 서버(200)로 전송한다.
The bulk buffer 128 binds a plurality of pages to the cloud server 200 in consideration of the network bandwidth. At this time, the bulk buffer 128 preferentially transmits only the meta information including the hash value of the page to the cloud server 200, checks whether the same page is stored in the cloud server 200, And transmits only non-identical pages to the cloud server 200.

도 5는 일 실시 예에 따른 모바일 디바이스의 동작을 설명하기 위한 순서도이다. 모바일 디바이스(100)는 스왑-아웃 할 페이지를 결정하고 압축할 수 있다.5 is a flowchart for explaining the operation of the mobile device according to an embodiment. The mobile device 100 may determine and compress the page to be swapped out.

단계 501에서 모바일 디바이스(100)는 메모리(110)의 저장 공간이 부족한지 확인한다. 메모리(110)의 저장 공간이 부족하면 단계 502로 진행한다. 모바일 디바이스(100)는 프로그램 등을 실행하면서 발생하는 데이터를 메모리(110)에 저장하는데, 메모리(110)에 저장 공간이 부족하면 발생된 데이터를 저장할 수 없으므로, 데이터 저장 요청이 발생하면 메모리(110)의 저장 공간을 확인한다. In step 501, the mobile device 100 confirms that the storage space of the memory 110 is insufficient. If the storage space of the memory 110 is insufficient, the process proceeds to step 502. The mobile device 100 stores data generated while executing a program or the like in the memory 110. If the memory 110 does not have enough storage space to store the generated data, ).

단계 502에서 모바일 디바이스(100)는 스왑 대몬(123)을 활성화한다. 스왑 대몬(123)은 메모리(110)의 저장 공간을 확보하기 위해 메모리(110)에 저장된 페이지들 중 일부를 다른 저장 공간으로 스왑-아웃 한다.At step 502, the mobile device 100 activates the swap daemon 123. The swap daemon 123 swaps some of the pages stored in the memory 110 to another storage space to secure the storage space of the memory 110. [

단계 503에서 모바일 디바이스(100)는 스왑-아웃 할 페이지가 존재하는지 확인한다. 스왑-아웃 할 페이지가 존재하면 단계 504로 진행하고, 그렇지 않으면 단계 501로 진행한다. 스왑-아웃 할 페이지는 메모리(110)에 저장되어 있으나, 일정 시간 동안 사용되지 않은 페이지이다. In step 503, the mobile device 100 checks whether there is a page to be swapped out. If there is a page to be swapped out, the process proceeds to step 504; otherwise, the process proceeds to step 501. The page to be swapped out is stored in the memory 110, but is not used for a certain period of time.

단계 504에서 모바일 디바이스(100)는 어플리케이션들과의 페이지의 맵핑(mapping)을 제거한다. 맵핑을 제거한다는 것은 사용하는 정보(예를 들어, 페이지 테이블)에서, 페이지가 저장된 메모리(110)에 접근하기 위한 정보를 삭제하고, 스왑-아웃 된 위치를 나타내는 정보(예를 들어, 스왑 엔트리)를 기록하는 것을 의미한다.At step 504, the mobile device 100 removes the mapping of the page with the applications. Removing the mapping removes information for accessing the memory 110 in which the page is stored, information (e.g., a swap entry) indicating the swapped-out location in the information (e.g., page table) . ≪ / RTI >

단계 505에서 모바일 디바이스(100)는 스왑-아웃 할 페이지가 더티 페이지(dirty page)인지 판단한다. 더티 페이지는 이전에 스왑-아웃 된 페이지가 아니거나, 값이 수정된 페이지를 의미한다. 스왑-아웃 할 페이지가 더티 페이지인 경우 단계 507로 진행하고, 그렇지 않으면 506으로 진행한다. In step 505, the mobile device 100 determines whether the page to be swapped out is a dirty page. A dirty page is a page that has not been swapped out previously, or whose value has been modified. If the page to be swapped out is a dirty page, proceed to step 507;

단계 506에서 모바일 디바이스(100)는 스왑-아웃 할 페이지를 메모리(110)에서 제거한다. 스왑-아웃 할 페이지가 더티 페이지가 아니면, 이미 스왑 영역에 스왑-아웃 할 페이지의 복사본(copy)가 저장되어 있으므로 모바일 디바이스(100)는 추가로 스왑-아웃 할 필요가 없다.At step 506, the mobile device 100 removes the page to be swapped out from the memory 110. If the page to be swapped out is not a dirty page, the mobile device 100 does not need to swap out further because a copy of the page to be swapped out is already stored in the swap area.

단계 507에서 모바일 디바이스(100)는 스왑-아웃 된 이전 페이지가 로컬 스토리지(130)에 존재하는지 확인한다. 스왑-아웃 된 이전 페이지는 부모 페이지 또는 레퍼런스 페이지로 지칭될 수 있다. 다시 말해서, 이전 페이지는 현재 스왑-아웃 할 페이지와 논리적으로 동일한(logically same) 페이지이다. 이전 페이지와 논리적으로 동일한 페이지는 메모리(110)에서 동일한 주소를 가지며, 동일한 프로그램에 의해 할당된 페이지들이다. 페이지가 메모리(110)로부터 스왑-아웃 될 때 페이지는 메모리(110)에서 삭제되고, 다시 스왑-인 되면 메모리(110)에 기록됩니다. 이때, 스왑-아웃 되는 페이지와 스왑-인 되는 페이지를 추적하지 않으면, 모바일 디바이스(100)는 스왑-아웃 된 페이지와 스왑-인 되는 페이지를 서로 다른 페이지로 인식하게 된다. 따라서, 모바일 디바이스(100)는 스왑-아웃 되는 페이지와 스왑-인 되는 페이지를 추적할 수 있으며, 페이지의 주소 및 페이지를 이용하는 프로그램이 동일하면 2개의 페이지는 부모-자식 관계의 페이지로 인식한다.At step 507, the mobile device 100 determines whether the previous page that has been swapped out is present in the local storage 130. The previous page that has been swapped out may be referred to as a parent page or a reference page. In other words, the previous page is logically the same page as the current page to be swapped out. Pages logically the same as the previous page have the same address in memory 110 and are pages assigned by the same program. When the page is swapped out from the memory 110, the page is deleted from the memory 110 and written back to the memory 110 when it is swapped-in again. At this time, if the page to be swapped out and the page to be swapped are not tracked, the mobile device 100 recognizes the swapped-out page and the swapped-in page as different pages. Thus, the mobile device 100 can track the pages that are swapped out and the pages that are swapped in. If the programs that use the addresses and pages of the page are the same, the two pages are recognized as pages of the parent-child relationship.

단계 508에서 모바일 디바이스(100)는 스왑-아웃 할 페이지와 이전 페이지를 이용하여 델타 페이지를 생성한다. 모바일 디바이스(100)는 현재 스왑-아웃 할 페이지와 이전 페이지에 대해 XOR 연산하여 델타 페이지를 생성할 수 있다.At step 508, the mobile device 100 creates a delta page using the page to be swapped out and the previous page. The mobile device 100 can generate a delta page by performing an XOR operation on the current page to be swapped out and the previous page.

단계 509에서 모바일 디바이스(100)는 델타 비율이 1/3 이상인지 판단한다. 델타 비율은 델타 페이지의 값들 중 1인 값의 비율을 나타낸다. 델타 비율이 1/3 이상이면 델타 페이지를 생성할 장점이 없으므로, 단계 510으로 진행하고, 그렇지 않으면 단계 511로 진행한다. 모바일 디바이스(100)는 델타 비율을 1/n 으로 설정할 수 있다. 여기서 n은 자연수 일 수 있으며, 모바일 디바이스(100)는 설정된 델타 비율에 기초하여, 델타 데이터의 이용 여부를 결정할 수 있다.In step 509, the mobile device 100 determines whether the delta ratio is 1/3 or more. The delta ratio represents the ratio of one of the values in the delta page. If the delta ratio is 1/3 or more, there is no merit to generate a delta page, so the process proceeds to step 510; otherwise, the process proceeds to step 511. The mobile device 100 may set the delta ratio to 1 / n. Where n may be a natural number and the mobile device 100 may determine whether to use the delta data based on the set delta ratio.

단계 510에서 모바일 디바이스(100)는 로컬 스토리지(130)에 저장된 이전 페이지를 무효화(invalidate)하고, 델타 페이지를 제거한다. 델타 비율이 1/3 이상이면 이전 페이지가 스왑-아웃 될 페이지의 레퍼런스 페이지로서의 역할을 할 수 없으므로, 이전 페이지를 무효화한다.At step 510, the mobile device 100 invalidates the previous page stored in the local storage 130 and removes the delta page. If the delta ratio is 1/3 or more, the previous page can not serve as a reference page for the page to be swapped out, thus invalidating the previous page.

단계 511에서 모바일 디바이스(100)는 스왑-아웃 할 페이지를 압축 후 압축 캐시(127)에 저장한다. 다시 말해서, 모바일 디바이스(100)는 델타 페이지를 압축 캐시(127)에 저장하거나 스왑-아웃 할 페이지를 압축하여 압축 캐시(127)에 저장한다.
In step 511, the mobile device 100 stores the page to be swapped out in the compression cache 127 after compression. In other words, the mobile device 100 compresses the page to store or swap-out the delta page in the compressed cache 127 and stores it in the compressed cache 127.

도 6은 일 실시 예에 따른 모바일 디바이스의 동작을 설명하기 위한 순서도이다. 모바일 디바이스(100)는 스왑-아웃 할 페이지를 로컬 스토리지(130) 또는 클라우드 서버(200)에 저장할 수 있다. 6 is a flowchart illustrating an operation of a mobile device according to an embodiment. The mobile device 100 may store the page to be swapped out to the local storage 130 or the cloud server 200. [

단계 601에서 모바일 디바이스(100)는 압축 캐시(127)에 저장 공간이 없는지 판단한다. 압축 캐시에 저장 공간이 없으면 단계 602로 진행한다.In step 601, the mobile device 100 determines whether there is no storage space in the compressed cache 127. [ If there is no storage space in the compressed cache, step 602 is reached.

단계 602에서 모바일 디바이스(100)는 압축 캐시(127)에서 추출(evict)될 페이지를 결정한다. 예를 들어, 모바일 디바이스(100)는 압축 캐시(127)에 저장된 페이지들 중에서 가장 오래된 페이지를 추출한다.In step 602, the mobile device 100 determines the page to be evicted in the compression cache 127. For example, the mobile device 100 extracts the oldest page among the pages stored in the compressed cache 127.

단계 603에서 모바일 디바이스(100)는 추출된 페이지가 자주 사용되는 페이지인지 판단한다. 만약, 추출된 페이지가 자주 사용되는 페이지이면 단계 604로 진행하고, 그렇지 않으면 단계 605로 진행한다.In step 603, the mobile device 100 determines whether the extracted page is frequently used. If the extracted page is a frequently used page, the process proceeds to step 604; otherwise, the process proceeds to step 605.

단계 604에서 모바일 디바이스(100)는 추출된 페이지를 로컬 스토리지(130)에 기록한다(write). 추출된 페이지는 자주 사용되는 페이지이므로 클라우드 서버(200) 대신에 로컬 스토리지(130)에 저장한다.In step 604, the mobile device 100 writes the extracted page to the local storage 130. The extracted page is a frequently used page, so it is stored in the local storage 130 instead of the cloud server 200.

단계 605에서 모바일 디바이스(100)는 추출된 페이지를 벌크 버퍼(128)에 기록한다.In step 605, the mobile device 100 writes the extracted page to the bulk buffer 128.

단계 606에서 모바일 디바이스(100)는 벌크 버퍼(128)에 저장 공간이 없으면, 벌크 버퍼(128)에 저장된 페이지들의 메타 데이터를 클라우드 서버(200)로 전송한다. 페이지들은 페이지의 unique id 및 device id를 key로 사용하고, 페이지의 데이터를 value로 사용하는 key-value store 형태로 저장된다. 따라서, 모바일 디바이스(100)와 클라우드 서버(200)는 key를 이용하여 페이지의 스왑-인, 스왑-아웃 할 수 있다. 메타 데이터는 페이지를 이용하는 process의 id, 페이지의 address 또는 페이지의 unique id등을 나타낸다. In step 606, if there is no storage space in the bulk buffer 128, the mobile device 100 transmits the metadata of the pages stored in the bulk buffer 128 to the cloud server 200. Pages are stored in a key-value store that uses the page's unique id and device id as the key and the page's data as the value. Thus, the mobile device 100 and the cloud server 200 may swap-in or swap out pages using a key. The metadata represents the id of the process using the page, the address of the page, or the unique id of the page.

단계 607에서 모바일 디바이스(100)는 클라우드 서버(200)에 중복된 페이지가 있는지 확인한다. 모바일 디바이스(100)는 클라우드 서버(200)로 중복된 페이지가 있는지 확인하는 요청을 전송할 수 있으며, 클라우드 서버(200)로부터 요청에 대한 응답(response)를 수신한다. 모바일 디바이스(100)는 확인 요청과 함께 메타 데이터를 클라우드 서버(200)로 전송한다. 클라우드 서버(200)는 수신된 메타 데이터와 동일한 메타 데이터를 갖는 페이지가 저장되어 있는지 확인하고, 확인 결과를 모바일 디바이스(100)로 전송한다. 만약, 클라우드 서버(200)에 중복된 페이지가 없으면, 단계 608로 진행하고, 있으면 단계 609로 진행한다.In step 607, the mobile device 100 checks whether the cloud server 200 has a duplicate page. The mobile device 100 can send a request to the cloud server 200 to check whether there is a duplicate page and receive a response to the request from the cloud server 200. [ The mobile device 100 transmits metadata to the cloud server 200 together with the confirmation request. The cloud server 200 checks whether a page having the same metadata as the received metadata is stored, and transmits the confirmation result to the mobile device 100. [ If there are no duplicated pages in the cloud server 200, the flow advances to step 608, and if it is, the flow advances to step 609.

단계 608에서 모바일 디바이스(100)는 클라우드 서버(200)에 저장된 페이지와 중복되지 않는 페이지들을 클라우드 서버(200)로 전송한다. In step 608, the mobile device 100 transmits to the cloud server 200 pages that do not overlap with pages stored in the cloud server 200. [

단계 609에서 모바일 디바이스(100)는 벌크 버퍼(128)를 초기화한다. 모바일 디바이스(100)는 벌크 버퍼(128)에 기록된 페이지들을 클라우드 서버(200)로 모두 전송하였으므로, 벌크 버퍼(128)를 초기화한다.
In step 609, the mobile device 100 initializes the bulk buffer 128. The mobile device 100 initializes the bulk buffer 128 since it has transmitted all of the pages written to the bulk buffer 128 to the cloud server 200. [

도 7은 일 실시 예에 따른 모바일 디바이스가 페이지를 스왑-인 하는 동작을 설명하기 위한 도면이다. 도 7을 참조하면, 모바일 디바이스(100)는 페이지 폴트가 발생하면, 다양한 경로(path)를 통해 페이지를 스왑-인 할 수 있다. 구체적으로, 모바일 디바이스(100)는 메모리(110)를 제외한 저장 공간에 저장된 페이지를 메모리(110)에 기록한다.7 is a diagram for explaining an operation in which a mobile device according to an embodiment swaps a page. Referring to FIG. 7, when a page fault occurs, the mobile device 100 may swap pages through various paths. Specifically, the mobile device 100 records the pages stored in the storage space except for the memory 110 in the memory 110. [

어플리케이션(140)이 페이지를 참조하려고 메모리에 접속하였으나, 메모리에 참조하려는 페이지가 없는 경우(page missing), 페이지 폴트 핸들러(121)가 활성화된다. 페이지 폴트 핸들러(121)는 스왑 캐시(122)를 확인하여 프리패치 등의 이유로 이미 요청된 페이지가 스왑 캐시(122)에 저장되어 있는지 확인한다. 페이지 폴트 핸들러(121)는 스왑 캐시(122)에 요청된 페이지가 없는 경우, 스왑 매니저(125)로부터 요청된 페이지에 대한 정보를 수신하여 요청된 페이지를 수신할 경로를 결정한다.The page fault handler 121 is activated when the application 140 accesses the memory to refer to the page but there is no page to be referred to in memory (page missing). The page fault handler 121 checks the swap cache 122 to see if a page already requested is stored in the swap cache 122 for reasons such as prefetching. The page fault handler 121 receives information about the requested page from the swap manager 125 and determines a path for receiving the requested page when the swap cache 122 does not have a requested page.

페이지 폴트 핸들러(121)는 페이지 타입에 따라 다음과 같이 스왑-인 한다.The page fault handler 121 swaps in according to the page type as follows.

1) 제로 페이지(zero page)는 페이지가 스왑-아웃 될 때 NULL 인 페이지이므로, 모바일 디바이스(100)는 불필요한 스왑-인 또는 스왑-아웃 없이 바로 페이지를 회복(recover)한다.One) Since the zero page is a page that is NULL when the page is swapped out, the mobile device 100 immediately recovers the page without unnecessary swap-in or swap-out.

2) 캐시 페이지(Cached page)는 압축 캐시(127)에 저장되어 있는 페이지이므로, 모바일 디바이스(100)는 복원하여 스왑-인 한다.2) Since the cache page is a page stored in the compression cache 127, the mobile device 100 restores and swaps in the page.

3) 버퍼 페이지(buffered page)는 벌크 버퍼(128)에 저장되어 있는 페이지이므로, 모바일 디바이스(100)는 로컬 스토리지(130)를 통해 스왑-인 한다.3) Since the buffered page is a page stored in the bulk buffer 128, the mobile device 100 swaps in via the local storage 130.

4) 리모트 페이지(remote page)는 클라우드 서버(200)에 저장되어 있는 페이지이므로, 모바일 디바이스(100)는 클라우드 서버(200)에 페이지 요청을 전송하여 클라우드 서버(200)로부터 스왑-인 한다.4) Since the remote page is a page stored in the cloud server 200, the mobile device 100 sends a page request to the cloud server 200 and swaps-in from the cloud server 200.

5) 하이브리드 페이지(hybrid page)는 로컬 스토리지(130)에 원본 페이지가 저장되어 있고, 델타 페이지가 클라우드 서버(200)에 저장되어 있는 페이지이므로, 모바일 디바이스(100)는 로컬 스토리지(130) 및 클라우드 서버(200)로부터 수신된 원본 페이지와 델타 페이지를 합쳐서 스왑-인 한다.
5) The hybrid page is a page where the original page is stored in the local storage 130 and the delta page is stored in the cloud server 200 so that the mobile device 100 can access the local storage 130, The original page received from the server 200 and the delta page are combined and swapped in.

도 8은 일 실시 예에 따른 모바일 디바이스가 페이지를 스왑-인 하는 동작을 설명하기 위한 순서도이다. 도 8을 참조하면, 모바일 디바이스(100)는 페이지의 특성에 따라 페이지를 스왑-인 한다.8 is a flowchart illustrating an operation of a mobile device according to an exemplary embodiment of the present invention. Referring to FIG. 8, the mobile device 100 swaps in a page according to the characteristics of the page.

단계 801에서, 모바일 디바이스(100)는 페이지 폴트가 스왑 때문에 발생했는지를 판단한다. 만약, 페이지 폴트가 스왑 때문에 발생하였으면, 단계 802로 진행한다. At step 801, the mobile device 100 determines whether a page fault has occurred due to swapping. If a page fault has occurred due to the swap, the flow advances to step 802.

단계 802에서, 모바일 디바이스(100)는 스왑 캐시(122)에 스왑-아웃 된 페이지가 존재하는지 판단한다. 만약, 스왑 캐시(122)에 스왑-아웃 된 페이지가 존재하면, 단계 805로 진행하고, 그렇지 않으면 단계 803으로 진행한다. At step 802, the mobile device 100 determines whether there is a page that has been swapped out to the swap cache 122. If there is a swapped-out page in the swap cache 122, the flow advances to step 805; otherwise, the flow advances to step 803.

단계 803에서, 모바일 디바이스(100)는 스왑-아웃 된 페이자가 로컬 스토리지(130)에 존재하는지 판단한다. 만약, 스왑-아웃 된 페이자가 로컬 스토리지(130)에 존재하면, 단계 804로 진행하고, 그렇지 않으면 단계 806으로 진행한다.At step 803, the mobile device 100 determines whether the swapped-out pager exists in the local storage 130. [ If the swapped-out pager exists in local storage 130, proceed to step 804, otherwise proceed to step 806.

단계 804에서, 모바일 디바이스(100)는 로컬 스토리지(130)로부터 페이지를 스왑-인 한다. At step 804, the mobile device 100 swaps-in the page from the local storage 130.

단계 805에서, 모바일 디바이스(100)는 페이지를 복구하여 스왑-인 한다. 모바일 디바이스(100)는 압축된 페이지를 복원하고, 레퍼런스 페이지와 델타 페이지를 이용하여 페이지를 복구한다(recover).At step 805, the mobile device 100 recovers and swaps in the page. The mobile device 100 restores the compressed page and recovers the page using the reference and delta pages.

단계 806에서, 모바일 디바이스(100)는 스왑-아웃 된 페이지가 델타 페이지인지 판단한다. 모바일 디바이스(100)는 스왑-인을 필요로 하는 페이지가 이전에 스왑-아웃 될 때 델타 페이지의 형태로 스왑-아웃 되었는지 확인한다. 만약, 스왑-아웃 된 페이지가 델타 페이지이면, 단계 807로 진행하고, 그렇지 않으면 단계 808로 진행한다.At step 806, the mobile device 100 determines whether the swapped-out page is a delta page. The mobile device 100 checks to see if a page requiring swap-in has been swapped out in the form of a delta page when it was previously swapped out. If the swapped-out page is a delta page, proceed to step 807, otherwise proceed to step 808. [

단계 807에서, 모바일 디바이스(100)는 로컬 스토리지(130)로부터 레퍼런스 페이지를 독출한다. At step 807, the mobile device 100 reads a reference page from the local storage 130.

단계 808에서, 모바일 디바이스(100)는 스왑-아웃 된 페이지가 클라우드 서버(200)에 존재하는지 확인한다. 만약, 스왑-아웃 된 페이지가 클라우드 서버(200)에 존재하면, 단계 809로 진행하고, 그렇지 않으면 단계 810으로 진행한다. At step 808, the mobile device 100 checks if the swapped-out page is present in the cloud server 200. [ If the swapped-out page exists in the cloud server 200, the flow advances to step 809; otherwise, the flow advances to step 810.

단계 809에서, 모바일 디바이스(100)는 클라우드 서버(200)에 요청하여, 스왑-아웃 된 페이지를 독출한다. 모바일 디바이스(100)는 클라우드 서버(200)로부터 수신된 페이지를 복구한다.In step 809, the mobile device 100 requests the cloud server 200 to read the swapped-out page. The mobile device 100 recovers the page received from the cloud server 200.

단계 810에서, 모바일 디바이스(100)는 압축 캐시(127) 또는 벌크 버퍼(128)에 스왑-아웃 된 페이지가 존재하는지 확인한다. 만약, 압축 캐시(127) 또는 벌크 버퍼(128)에 스왑-아웃 된 페이지가 존재하면, 단계 805로 진행하고, 그렇지 않으면 단계 811로 진행한다. In step 810, the mobile device 100 checks if there is a page that has been swapped out to the compression cache 127 or the bulk buffer 128. If there is a page that has been swapped out to the compression cache 127 or the bulk buffer 128, the flow advances to step 805; otherwise, the flow advances to step 811.

단계 811에서, 모바일 디바이스(100)는 스왑-아웃 된 페이지를 찾을 수 없으므로 에러를 반환한다.
In step 811, the mobile device 100 returns an error because it can not find the swapped-out page.

도 9는 일 실시 예에 따른 클라우드 서버를 설명하기 위한 도면이다. 도 9를 참조하면, 클라우드 서버(200)는 모바일 디바이스(100)의 스왑-아웃 요청에 따라 스왑-아웃 된 페이지를 스토리지 서버(221)에 저장할 수 있다. 클라우드 서버(200)는 마스터 서버(210) 및 페이지 풀(220)을 포함한다. 마스터 서버(210)는 요청 핸들러(211) 및 페이지 매니저(212)를 포함하며, 페이지 풀(220)는 복수의 스토리지 서버(221)을 포함한다.9 is a view for explaining a cloud server according to an embodiment. Referring to FIG. 9, the cloud server 200 may store the swapped-out page in the storage server 221 according to the swap-out request of the mobile device 100. The cloud server 200 includes a master server 210 and a page pool 220. The master server 210 includes a request handler 211 and a page manager 212 and the page pool 220 includes a plurality of storage servers 221.

요청 핸들러(211)는 모바일 디바이스(100)로부터 스왑-아웃 요청을 수신한다. 구체적으로, 요청 핸들러(211)는 페이지-기록(page-write) 요청과 함께 기록할 페이지를 수신한다. 요청 핸들러(211)는 수신된 요청을 페이지 매니저(212)로 출력한다.The request handler 211 receives a swap-out request from the mobile device 100. Specifically, the request handler 211 receives a page to be written with a page-write request. The request handler 211 outputs the received request to the page manager 212.

페이지 매니저(212)는 스왑-아웃 된 페이지를 콘텐트 해싱(content hashing)을 기준으로 중복된 페이지들을 관리한다. 콘텐트 해싱이란 페이지의 내용을 해시 계산하여 작은 사이즈의 hash value를 생성하고, 페이지가 스왑-아웃 될 때, 일차적으로 hash value만을 클라우드 서버(200)로 전송하여 서버에 이미 동일한 내용의 페이지가 존재하는지 체크하는 과정을 의미한다. 구체적으로, 페이지 매니저(212)는 저장된 페이지들 중에서 스왑-아웃 된 페이지의 해쉬 값과 동일한 해쉬 값을 갖는 페이지들이 페이지들이 있으면, 스왑-아웃 된 페이지의 내용을 공유 시킨다. 예를 들어, 도 9에서 keyA 및 keyb는 pageA를 참조하고, keyc는 pageC를 참조한다. keyA 및 keyb가 pageA를 참조하는 것은 keyA, keyB에 대응하는 페이지가 pageA의 데이터를 공유하고 있다는 것을 나타낸다. keyA, keyb는 페이지의 메타 데이터에 포함된 key 정보이며, pageA는 실제 데이터를 나타낸다. PageA는 keyA 및 keyb에 의해 공유되므로, pgaeA에 대한 수정 요청이 수신되더라도, 페이지 매니저(212)는 pageA를 바로 수정하지 않고, pageA를 복사한 후 복사된 pageA를 수정한다. 페이지의 메타 데이터는 process id, address, key, hash 등의 정보를 포함하고, 페이지의 내용을 참조한다. 따라서, 여러 페이지의 메타 데이터들이 하나의 페이지를 동시에 참조할 수 있다. 만약, 페이지의 내용이 같다면, 여러 페이지들이 동일한 데이터를 공유한다.The page manager 212 manages duplicated pages based on content hashing of the swapped-out pages. Content hashing is a method of hashing a content of a page to generate a small hash value. When a page is swapped out, only the hash value is transmitted to the cloud server 200, It means the process of checking. Specifically, the page manager 212 shares the contents of the swapped-out page if the pages have pages having the same hash value as the hash value of the swapped-out page among the stored pages. For example, in FIG. 9, keyA and keyb refer to pageA, and keyc refers to pageC. When keyA and keyb refer to pageA, it means that the page corresponding to keyA and keyB share data of pageA. keyA and keyb are the key information included in the page metadata, and pageA is the actual data. Because PageA is shared by keyA and keyb, even if a modification request for pgaeA is received, page manager 212 does not directly modify pageA, but copies pageA and modifies copied pageA. The metadata of the page includes information such as process id, address, key, hash, and the contents of the page. Thus, multiple pages of metadata can refer to a single page at the same time. If the contents of the page are the same, multiple pages share the same data.

페이지 매니저(212)는 저장된 페이지들 중에서 스왑-아웃 된 페이지의 해쉬 값과 동일한 해쉬 값을 갖는 페이지들이 페이지들이 없으면, 페이지 풀(220) 중 어느 하나의 스토리지 서버(221)에 스왑-아웃 된 페이지를 저장한다.The page manager 212 determines whether the pages having the same hash value as the hash value of the swapped-out page among the stored pages are stored in the storage server 221 of any one of the page pools 220, / RTI >

페이지 매니저(212)는 스왑-아웃 된 페이지들의 메타 데이터를 관리하여, 이후에 프리패치를 위해 메타 데이터를 이용한다.The page manager 212 manages the metadata of the swapped-out pages, and then uses the metadata for the prefetch.

클라우드 서버(200)는 동일한 페이지를 복수의 스토리지 서버(221)에 기록할 수 있다. 만약, 어느 하나의 스토리지 서버(221)에 접근이 불가능할 때, 클라우드 서버(200)는 동일한 페이지를 저장하고 있는 다른 스토리지 서버(221)에 접근하여 페이지를 독출할 수 있다. 동일한 페이지를 복수의 스토리지 서버(221)에 저장하는 것을 복제(replication)이라고 하며, 클라우드 서버(200)는 적어도 2 이상의 스토리지 서버(221)에 동일한 페이지를 저장할 수 있다.
The cloud server 200 can record the same page to a plurality of storage servers 221. [ If one of the storage servers 221 can not be accessed, the cloud server 200 can access the other storage server 221 storing the same page to read the page. Storing the same page in a plurality of storage servers 221 is referred to as replication, and the cloud server 200 can store the same page in at least two storage servers 221.

도 10은 일 실시 예에 따른 클라우드 서버를 설명하기 위한 도면이다. 도 10을 참조하면, 클라우드 서버(200)는 모바일 디바이스(100)의 스왑-인 요청에 따라 모바일 디바이스(100)로 페이지를 반환할 수 있다.10 is a diagram for explaining a cloud server according to an embodiment. Referring to FIG. 10, the cloud server 200 may return a page to the mobile device 100 in response to a swap-in request of the mobile device 100.

요청 핸들러(211)는 모바일 디바이스(100)로부터 스왑-인 요청을 수신하면, 수신된 요청을 페이지 매니저(212)로 출력한다.The request handler 211 receives the swap-in request from the mobile device 100 and outputs the received request to the page manager 212.

페이지 매니저(212)는 요청된 페이지가 저장된 위치를 확인하고, 스토리지 서버(221)에 저장된 페이지를 모바일 디바이스(100)로 반환한다. 페이지 매니저(212)는 페이지들의 위치 정보를 관리하고 있으므로, 위치 정보를 통해 요청된 페이지가 어디에 저장되어 있는지 확인할 수 있다.The page manager 212 confirms the location where the requested page is stored, and returns the page stored in the storage server 221 to the mobile device 100. Since the page manager 212 manages the location information of the pages, it can check where the requested page is stored through the location information.

또한, 페이지 매니저(212)는 요청된 페이지와 함께 유사 페이지들을 모바일 디바이스(100)로 프리패치할 수 있다. 페이지 매니저(212)는 process id로 페이지를 분류하고, 분류된 페이지들의 리스트를 관리하고 있다. 따라서, 페이지 매니저(212)는 모바일 디바이스(100)로부터 요청된 페이지를 반환하면서, 요청된 페이지와 동일한 process id를 갖고, 근처에 저장된 페이지를 함께 모바일 디바이스(100)로 전송할 수 있다. The page manager 212 may also prefetch similar pages to the mobile device 100 along with the requested page. The page manager 212 classifies pages into process IDs and manages a list of classified pages. Accordingly, the page manager 212 may return the requested page from the mobile device 100, and may transmit the neighboring page to the mobile device 100 together with the same process id as the requested page.

페이지 매니저(212)는 스왑-인 요청이 수신되기 이전에 모바일 디바이스(100)의 메모리(110)의 저장 공간이 여유가 있는 경우, 페이지 폴트가 발생하기 이전에 실행 중인 어플리케이션에 대한 페이지를 프리패치할 수 있다. 예를 들어, 페이지 매니저(212)는 process id별로 페이지가 스왑-아웃 된 순서를 기록한 리스트를 관리하고, 가장 최근에 스왑-아웃 된 페이지들을 먼저 프리패치할 수 있다.
The page manager 212 may prefetch a page for an application that is running before a page fault occurs if there is room in the memory 110 of the mobile device 100 before the swap- can do. For example, the page manager 212 may manage a list of the order in which pages were swapped out by process id, and may prefetch the most recently swapped-out pages.

도 11은 일 실시 예에 따른 모바일 디바이스의 동작 방법을 설명하기 위한 순서도이다. 11 is a flowchart illustrating an operation method of a mobile device according to an embodiment.

단계 1110에서, 모바일 디바이스(100)는 로컬 스토리지(130) 또는 통신으로 연결된 클라우드 서버(200)로 메모리(110)에 저장된 페이지를 스왑-아웃 한다.At step 1110, the mobile device 100 swaps out pages stored in the memory 110 to the local storage 130 or to the cloud server 200 connected in communication.

단계 1120에서, 모바일 디바이스(100)는 페이지 폴트가 발생된 페이지의 특성 및 페이지 폴트가 발생된 페이지의 저장 위치에 따라 스왑 아웃 된 페이지를 스왑-인 한다.
In step 1120, the mobile device 100 swaps in the swapped out page according to the nature of the page on which the page fault occurred and the storage location of the page on which the page fault occurred.

본 실시 예들에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다. An apparatus according to the present embodiments may include a processor, a memory for storing and executing program data, a permanent storage such as a disk drive, a communication port for communicating with an external device, a user such as a touch panel, a key, Interface devices, and the like. Methods implemented with software modules or algorithms may be stored on a computer readable recording medium as computer readable codes or program instructions executable on the processor. Here, the computer-readable recording medium may be a magnetic storage medium such as a read-only memory (ROM), a random-access memory (RAM), a floppy disk, a hard disk, ), And a DVD (Digital Versatile Disc). The computer-readable recording medium may be distributed over networked computer systems so that computer readable code can be stored and executed in a distributed manner. The medium is readable by a computer, stored in a memory, and executable on a processor.

본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.This embodiment may be represented by functional block configurations and various processing steps. These functional blocks may be implemented in a wide variety of hardware and / or software configurations that perform particular functions. For example, embodiments may include integrated circuit components such as memory, processing, logic, look-up tables, etc., that may perform various functions by control of one or more microprocessors or other control devices Can be employed. Similar to how components may be implemented with software programming or software components, the present embodiments may be implemented in a variety of ways, including C, C ++, Java (" Java), an assembler, and the like. Functional aspects may be implemented with algorithms running on one or more processors. In addition, the present embodiment can employ conventional techniques for electronic environment setting, signal processing, and / or data processing. Terms such as "mechanism", "element", "means", "configuration" may be used broadly and are not limited to mechanical and physical configurations. The term may include the meaning of a series of routines of software in conjunction with a processor or the like.

본 실시 예에서 설명하는 특정 실행들은 예시들로서, 어떠한 방법으로도 기술적 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. The specific implementations described in this embodiment are illustrative and do not in any way limit the scope of the invention. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of such systems may be omitted. Also, the connections or connecting members of the lines between the components shown in the figures are illustrative of functional connections and / or physical or circuit connections, which may be replaced or additionally provided by a variety of functional connections, physical Connection, or circuit connections.

본 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.In this specification (particularly in the claims), the use of the terms " above " and similar indication words may refer to both singular and plural. In addition, when a range is described, it includes the individual values belonging to the above range (unless there is a description to the contrary), and the individual values constituting the above range are described in the detailed description. Finally, if there is no explicit description or contradiction to the steps constituting the method, the steps may be performed in an appropriate order. It is not necessarily limited to the description order of the above steps. The use of all examples or exemplary terms (e. G., The like) is merely intended to be illustrative of technical ideas and is not to be limited in scope by the examples or the illustrative terminology, except as by the appended claims. It will also be appreciated by those skilled in the art that various modifications, combinations, and alterations may be made depending on design criteria and factors within the scope of the appended claims or equivalents thereof.

100: 모바일 디바이스
110: 메모리
120: 프로세서
130: 로컬 스토리지
100: Mobile device
110: Memory
120: Processor
130: Local Storage

Claims (15)

메모리;
로컬 스토리지; 및
프로세서를 포함하고,
상기 프로세서는,
상기 로컬 스토리지 및 통신으로 연결된 클라우드 서버를 상기 메모리에 저장된 페이지들의 스왑(swap) 공간으로 사용하는 모바일 디바이스.
Memory;
Local storage; And
A processor,
The processor comprising:
And uses the cloud server connected to the local storage and communication as a swap space of pages stored in the memory.
제 1 항에 있어서,
상기 프로세서는 페이지의 특성, 페이지가 스왑-인 또는 스왑-아웃 된 횟수 및 스왑-아웃 할 페이지의 압축률에 기초하여 상기 로컬 스토리지 또는 상기 클라우드 서버로 페이지를 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스.
The method according to claim 1,
Wherein the processor is configured to swap out the page to the local storage or the cloud server based on the characteristics of the page, the number of times the page has been swapped in or swapped out, and the compression rate of the page to be swapped out.
제 1 항에 있어서,
상기 프로세서는 상기 로컬 스토리지에 상기 클라우드 서버로 스왑-아웃 할 페이지와 논리적으로 동일한 레퍼런스 페이지가 저장되어 있는 경우, 상기 스왑-아웃 할 페이지를 압축하여 압축된 페이지를 상기 클라우드 서버로 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스.
The method according to claim 1,
The processor may compress the page to be swapped out and swap out the compressed page to the cloud server if the local storage has stored logically the same reference page as the page to be swapped out to the cloud server A mobile device characterized by.
제 3 항에 있어서,
상기 프로세서는 상기 스왑-아웃 할 페이지와 상기 레퍼런스 페이지를 XOR 연산을 통해 델타 페이지를 생성하고, 상기 클라우드 서버로 상기 델타 페이지를 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스.
The method of claim 3,
Wherein the processor generates a delta page by XORing the page to be swapped out and the reference page and swapping out the delta page to the cloud server.
제 1 항에 있어서,
상기 프로세서는 스왑-아웃 할 페이지와 동일한 페이지가 상기 클라우드 서버에 저장되어 있는지 확인하고, 동일한 페이지가 저장되어 있지 않는 경우에만 상기 스왑-아웃 할 페이지를 상기 클라우드 서버로 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스.
The method according to claim 1,
Wherein the processor verifies whether the same page as the page to be swapped out is stored in the cloud server and swap out the page to be swapped out to the cloud server only if the same page is not stored Mobile device.
제 1 항에 있어서,
상기 프로세서는 상기 클라우드 서버로 전송할 페이지들을 벌크 버퍼에 저장하고, 네트워크 대역폭(network bandwidth)을 고려하여 상기 벌크 버퍼에 저장된 페이지들을 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스.
The method according to claim 1,
Wherein the processor stores pages to be transmitted to the cloud server in a bulk buffer and swaps out pages stored in the bulk buffer in consideration of network bandwidth.
제 1 항에 있어서,
상기 프로세서는 페이지 폴트(page fault) 발생시, 요청된 페이지가 저장된 위치 및 상기 페이지의 특성을 확인하여 상기 페이지를 상기 메모리로 스왑-인(swap-in) 하는 것을 특징으로 하는 모바일 디바이스.
The method according to claim 1,
Wherein the processor is configured to swap-in the page to the memory when a page fault occurs by checking the location where the requested page is stored and the characteristics of the page.
모바일 디바이스가 메모리를 관리하는 방법에 있어서,
상기 모바일 디바이스의 로컬 스토리지 또는 통신으로 연결된 클라우드 서버로 상기 메모리에 저장된 페이지를 스왑-아웃 하는 단계; 및
페이지 폴트가 발생된 페이지의 특성 및 페이지 폴트가 발생된 페이지의 저장 위치에 따라 상기 스왑-아웃 된 페이지를 스왑-인 하는 단계를 포함하는 모바일 디바이스의 메모리 관리 방법.
In a method for a mobile device to manage memory,
Swapping out a page stored in the memory to a cloud server connected to the mobile device's local storage or communication; And
Swapping in the swapped-out page according to a property of a page faulted page and a storage location of a page faulted page.
제 8 항에 있어서, 상기 스왑-아웃 하는 단계는,
페이지의 특성, 페이지가 스왑-인 또는 스왑-아웃 된 횟수 및 스왑-아웃 할 페이지의 압축률에 기초하여 상기 로컬 스토리지 또는 상기 클라우드 서버로 페이지를 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스의 메모리 관리 방법.
9. The method of claim 8, wherein the swap-
Wherein the page is swapped out to the local storage or the cloud server based on the characteristics of the page, the number of times the page has been swapped in or swapped out, and the compression rate of the page to be swapped out. .
제 8 항에 있어서, 상기 스왑-아웃 하는 단계는,
상기 클라우드 서버로 스왑-아웃 할 페이지와 논리적으로 동일한 레퍼런스 페이지가 상기 로컬 스토리지에 저장되어 있는 경우, 상기 스왑-아웃 할 페이지를 압축하여 압축된 페이지를 상기 클라우드 서버로 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스의 메모리 관리 방법.
9. The method of claim 8, wherein the swap-
And compressing the page to be swapped out and swapping out the compressed page to the cloud server when the reference page logically identical to the page to be swapped out to the cloud server is stored in the local storage. A method for managing memory in a mobile device.
제 9 항에 있어서, 상기 스왑-아웃 하는 단계는,
상기 스왑-아웃 할 페이지와 상기 레퍼런스 페이지를 XOR 연산을 통해 델타 페이지를 생성하고, 상기 클라우드 서버로 상기 델타 페이지를 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스의 메모리 관리 방법.
10. The method of claim 9, wherein the swap-
Generating a delta page by XORing the page to be swapped out and the reference page, and swapping out the delta page to the cloud server.
제 8 항에 있어서, 상기 스왑-아웃 하는 단계는,
스왑-아웃 할 페이지와 동일한 페이지가 상기 클라우드 서버에 저장되어 있는지 확인하고, 동일한 페이지가 저장되어 있지 않는 경우에만 상기 스왑-아웃 할 페이지를 상기 클라우드 서버로 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스의 메모리 관리 방법.
9. The method of claim 8, wherein the swap-
And swap-out the page to be swapped out to the cloud server only if the same page as the page to be swapped out is stored in the cloud server and the same page is not stored. How to manage memory.
제 8 항에 있어서, 상기 스왑-아웃 하는 단계는,
상기 클라우드 서버로 전송할 페이지들을 벌크 버퍼에 저장하고, 네트워크 대역폭(network bandwidth)을 고려하여 상기 벌크 버퍼에 저장된 페이지들을 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스의 메모리 관리 방법.
9. The method of claim 8, wherein the swap-
Storing pages to be transmitted to the cloud server in a bulk buffer, and swapping out pages stored in the bulk buffer in consideration of a network bandwidth.
제 8 항에 있어서, 상기 스왑-인 하는 단계는,
페이지 폴트(page fault) 발생시, 요청된 페이지가 저장된 위치 및 상기 페이지의 특성을 확인하여 상기 페이지를 상기 메모리로 스왑-인(swap-in) 하는 것을 특징으로 하는 모바일 디바이스의 메모리 관리 방법.
9. The method of claim 8, wherein the swap-
And swap-in the page to the memory by checking the location where the requested page is stored and the characteristics of the page when a page fault occurs.
제8항 내지 제14항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium storing a program for causing a computer to execute the method according to any one of claims 8 to 14.
KR1020140174294A 2014-12-05 2014-12-05 Mobile device and management method of mobile device KR102403063B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140174294A KR102403063B1 (en) 2014-12-05 2014-12-05 Mobile device and management method of mobile device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140174294A KR102403063B1 (en) 2014-12-05 2014-12-05 Mobile device and management method of mobile device

Publications (2)

Publication Number Publication Date
KR20160068481A true KR20160068481A (en) 2016-06-15
KR102403063B1 KR102403063B1 (en) 2022-05-30

Family

ID=56135154

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140174294A KR102403063B1 (en) 2014-12-05 2014-12-05 Mobile device and management method of mobile device

Country Status (1)

Country Link
KR (1) KR102403063B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190029904A (en) * 2017-09-13 2019-03-21 엘지전자 주식회사 A digital device and method for controlling the same
WO2020175720A1 (en) * 2019-02-28 2020-09-03 엘지전자 주식회사 Digital device and control method therefor

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11348357A (en) * 1998-06-04 1999-12-21 Ricoh Co Ltd Printing apparatus
JP2007116683A (en) * 2002-03-27 2007-05-10 Marconi Intellectual Property (Ringfence) Inc Telecommunication system
KR20120061249A (en) * 2010-12-03 2012-06-13 한국과학기술원 Hypervisor-assisted User Application Memory Protection Method
JP2012150803A (en) * 2011-01-11 2012-08-09 Safenet Inc Efficient volume encryption
JP2013502639A (en) * 2009-08-17 2013-01-24 ファットスカンク・インコーポレーテッド Device audit
JP5335948B2 (en) * 2006-03-31 2013-11-06 アマゾン テクノロジーズ インコーポレイテッド System for managing program execution by multiple computer systems
KR20140034246A (en) * 2011-06-20 2014-03-19 마이크로소프트 코포레이션 Memory management model and interface for new applications
KR20140092493A (en) * 2012-12-31 2014-07-24 고려대학교 산학협력단 Method for managing memory of virtualization system
KR20140102679A (en) * 2011-12-14 2014-08-22 마이크로소프트 코포레이션 Working set swapping using a sequentially ordered swap file

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11348357A (en) * 1998-06-04 1999-12-21 Ricoh Co Ltd Printing apparatus
JP2007116683A (en) * 2002-03-27 2007-05-10 Marconi Intellectual Property (Ringfence) Inc Telecommunication system
JP5335948B2 (en) * 2006-03-31 2013-11-06 アマゾン テクノロジーズ インコーポレイテッド System for managing program execution by multiple computer systems
JP2013502639A (en) * 2009-08-17 2013-01-24 ファットスカンク・インコーポレーテッド Device audit
KR20120061249A (en) * 2010-12-03 2012-06-13 한국과학기술원 Hypervisor-assisted User Application Memory Protection Method
JP2012150803A (en) * 2011-01-11 2012-08-09 Safenet Inc Efficient volume encryption
KR20140034246A (en) * 2011-06-20 2014-03-19 마이크로소프트 코포레이션 Memory management model and interface for new applications
KR20140102679A (en) * 2011-12-14 2014-08-22 마이크로소프트 코포레이션 Working set swapping using a sequentially ordered swap file
KR20140092493A (en) * 2012-12-31 2014-07-24 고려대학교 산학협력단 Method for managing memory of virtualization system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190029904A (en) * 2017-09-13 2019-03-21 엘지전자 주식회사 A digital device and method for controlling the same
WO2019054581A1 (en) * 2017-09-13 2019-03-21 엘지전자 주식회사 Digital device and control method therefor
WO2020175720A1 (en) * 2019-02-28 2020-09-03 엘지전자 주식회사 Digital device and control method therefor
US11210026B2 (en) 2019-02-28 2021-12-28 Lg Electronics Inc. Digital device and method for controlling the same

Also Published As

Publication number Publication date
KR102403063B1 (en) 2022-05-30

Similar Documents

Publication Publication Date Title
US11360679B2 (en) Paging of external memory
US10042779B2 (en) Selective space reclamation of data storage memory employing heat and relocation metrics
JP6310061B2 (en) Selective retention of application program data migrated from system memory to non-volatile data storage
US9569122B2 (en) System, method and a non-transitory computer readable medium for transaction aware snapshot
US9201794B2 (en) Dynamic hierarchical memory cache awareness within a storage system
US11392428B2 (en) Fork handling in application operations mapped to direct access persistent memory
US10705753B2 (en) Fan-out asynchronous replication logical level caching
US10049036B2 (en) Reliable distributed messaging using non-volatile system memory
US9086991B2 (en) Solid state drive cache recovery in a clustered storage system
US9940023B2 (en) System and method for an accelerator cache and physical storage tier
US20190339872A1 (en) Fan-out asynchronous replication physical level caching
US9098397B2 (en) Extending cache for an external storage system into individual servers
US10061523B2 (en) Versioning storage devices and methods
US20160179672A1 (en) Mirroring a cache having a modified cache state
US11599460B2 (en) System and method for lockless reading of metadata pages
US10089220B1 (en) Saving state information resulting from non-idempotent operations in non-volatile system memory
KR102403063B1 (en) Mobile device and management method of mobile device
US10089228B2 (en) I/O blender countermeasures
US9244778B2 (en) Managing physical resources of a storage system
US10168916B2 (en) System, method and a non-transitory computer readable medium for reduction of consumption of storage system resources
CN117348968A (en) Cache data acceleration method, device and equipment of virtual disk

Legal Events

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