KR20160068481A - Mobile device and management method of mobile device - Google Patents
Mobile device and management method of mobile device Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
Abstract
Description
개시된 실시 예들은 모바일 디바이스 및 모바일 디바이스의 메모리 관리 방법에 관한 것이다.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
모바일 디바이스(100)는 통신으로 연결된 클라우드 서버(200)의 저장 공간을 스왑 공간으로서 이용할 수 있다. 모바일 디바이스(100)는 크기의 제약으로 인하여 저장 공간이 한정된다. 따라서, 모바일 디바이스(100)는 클라우드 서버(200)로 페이지를 스왑-아웃 하여, 클라우드 서버(200)에 페이지를 저장할 수 있다. 도 1에서는 모바일 디바이스(100)가 클라우드 서버(200)를 이용하는 것을 예를 들어 도시하고 있으나, 모바일 디바이스(100)는 모바일 디바이스(100)와 무선 또는 유선으로 연결되어 데이터를 송수신할 수 있는 모든 전자 기기의 저장 공간을 스왑 공간으로 이용할 수 있다. 예를 들어, 모바일 디바이스(100)는 또 다른 모바일 디바이스를 이용할 수 있으며, 데스크 탑, 태블릿 등을 이용할 수도 있다.The
클라우드 서버(200)는 모바일 디바이스(100)의 요청에 따라 페이지를 스왑-아웃 또는 스왑-인 한다. 클라우드 서버(200)는 충분한 저장 공간을 포함하고 있으며, 모바일 디바이스(100)로부터 페이지를 저장해줄 것을 요청 받으면, 수신된 페이지를 내부 메모리 또는 스토리지에 저장한다. 또한, 클라우드 서버(200)는 모바일 디바이스(100)로부터 페이지를 전송해줄 것을 요청 받으면, 저장된 페이지를 모바일 디바이스(100)로 전송한다.
The
도 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
메모리(110)는 모바일 디바이스(100)가 어플리케이션 등과 같은 프로그램 등을 실행할 때 데이터를 저장하는 공간이다. 모바일 디바이스(100)는 메모리(110)에 어플리케이션마다 일정한 영역을 할당한다. 모바일 디바이스(100)는 어플리케이션을 실행하면서 발생하는 데이터를 메모리(110)에 할당된 영역에 페이지 단위로 기록(write)하고 독출(read)할 수 있다.The
프로세서(120)는 메모리(110)를 관리한다. 프로세서(120)는 메모리(110)에 저장된 페이지를 관리한다. 프로세서(120)는 메모리(110)에 저장된 페이지 중에서 오래 사용되지 않은 페이지를 로컬 스토리지(130) 또는 클라우드 서버(200)로 스왑-아웃 하여 메모리(110)의 저장 공간을 확보할 수 있다. 또한, 프로세서(120)는 어플리케이션에 의해 요청된 페이지가 메모리(110)에 저장되어 있지 않은 경우, 요청된 페이지가 저장된 위치를 확인하고, 요청된 페이지를 메모리(110)에 스왑-인 할 수 있다. 프로세서(120)가 페이지를 스왑-아웃, 스왑-인 하는 동작에 관하여는 이하 도면들을 통해 상세히 설명한다.The
프로세서(120)는 운영체제(OS)를 구동한다. 프로세서(120)는 윈도우 커널 또는 리눅스 커널 등과 같은 운영체제를 구동하여 어플리케이션을 실행하고, 메모리(110)에 저장된 데이터를 관리한다.
프로세서(120)는 데이터를 처리하고 연산을 수행하는 기능 유닛 또는 프로그램 모듈을 포함할 수 있다. 또한, 프로세서(120)는 캐시 또는 버퍼를 포함하여 데이터를 저장할 수 있다.
The
도 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
스왑 캐시(122)는 프리패치(prefetch)된 페이지들을 임시로 저장한다. 또는 스왑 캐시(122)는 동시에 발생하는 스왑-인, 스왑-아웃에 대한 동기화를 위해 사용된다.The
스왑 대몬(123)은 페이지를 스왑-아웃 한다. 스왑 대몬(123)은 메모리(110)에 저장 공간이 부족한 경우, 메모리(110)에 저장된 페이지들 중에서 가장 오래된 페이지를 스왑-아웃 할 수 있다.The
프리패치 대몬(124)은 페이지 요청이 있기 전에, 페이지를 미리 메모리(110)에 저장한다. 페이지 요청은 페이지 폴트가 발생할 때 발생한다. 하지만, 스왑-인 요청을 수신한 장치가 스왑-인 페이지와 함께 앞으로 사용될 것으로 예상되는 페이지들을 미리 전송한다면, 페이지 폴트를 줄일 수 있다. 따라서, 클라우드 서버(200) 등은 페이지 요청이 있을 때, 요청된 페이지와 함께 앞으로 사용될 페이지들을 미리 모바일 디바이스(100)로 전송한다. 프리패치 대몬(124)은 앞으로 사용될 페이지들을 메모리(110)에 저장함으로써, 페이지 폴트 또는 스왑-인 요청을 줄일 수 있다.
스왑 매니저(125)는 스왑-아웃 또는 스왑-인 되는 페이지들을 관리한다. 예를 들어, 스왑 매니저(125)는 스왑-아웃 또는 스왑-인 되는 페이지들의 라이프 사이클을 추적(track)할 수 있다. 스왑 매니저(125)는 페이지들이 얼마나 자주 스왑-아웃 또는 스왑-인 되고 사용되는지를 추적한다. 스왑 매니저(125)는 추적 결과에 기초하여, 페이지를 로컬 스토리지(130)에 저장할지, 클라우드 서버(200)에 저장할지를 결정한다. The
또한, 스왑 매니저(125)는 페이지 폴트 발생 시, 요청된 페이지가 저장된 장소가 어디인지 체크하고, 요청된 페이지에 대한 델타 페이지가 존재하는지 체크하고, 요청된 페이지가 제로 페이지(zero page)인지 체크한다.When the page fault occurs, the
페이지 번역기(126)는 페이지가 스왑-아웃 또는 스왑-인 되기 이전에 페이지를 처리한다. 페이지 번역기(126)는 페이지를 압축(compress)하거나 복원(decompress)할 수 있다. 페이지 번역기(126)는 2개의 페이지를 이용하여 델타 페이지를 생성할 수 있다. 페이지 번역기(126)는 논리적으로 동일한(logically same) 페이지들을 이용하여 델타 페이지를 생성한다. 예를 들어, 페이지 번역기(126)는 논리적으로 동일한 페이지들에 대한 XOR 연산을 수행하여 델타 페이지를 생성할 수 있다. XOR 연산은 동일한 값일 경우에는 0을, 서로 다른 값일 경우에는 1을 출력하는 연산이다. 따라서, 2개의 페이지가 완전이 동일하면 델타 페이지의 값은 모두 0이 된다. 레퍼런스 페이지의 내용이 11101010이고, 스왑-아웃 되는 페이지의 내용이 11111010이면, 델타 페이지는 00010000이 된다. 따라서, 페이지들의 내용이 유사할수록 압축률은 높아진다. 페이지 번역기(126)는 델타 페이지를 이용하여 스왑-아웃 또는 스왑-인 하기 때문에 네트워크 대역폭을 줄일 수 있으며, 배터리의 소모를 줄일 수 있다.The
페이지 번역기(126)는 페이지의 무결성 검사(integrity test)를 할 수 있다. 무결성 검사는 복원된 페이지가 실제 페이지와 동일한지를 확인하는 것을 의미한다. 모바일 디바이스(100)는 페이지를 압축한 이후에 무선으로 압축된 데이터를 클라우드 서버(200) 등과 송수신하기 때문에, 페이지 번역기(126)는 페이지를 수신한 이후에 페이지를 복원하고, 복원된 페이지가 실제 페이지와 동일한지 검사한다.The
압축 캐시(127)는 압축된 페이지를 저장한다. 압축 캐시(127)에 저장된 페이지들은 가장 오래 사용되지 않은 순서대로 내보내진다(evict). 내보내진 페이지에 대한 정보는 스왑 매니저(125)를 통해 획득된다. The
벌크 버퍼(128)는 클라우드 서버(200)로 스왑-아웃 될 페이지들을 임시로 저장한다. 벌크 버퍼(128)는 네트워크 대역폭(network bandwidth)를 고려하여, 복수의 페이지들을 묶어서 클라우드 서버(200)로 전송할 수 있다.
The
도 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
페이지 번역기(126)는 페이지를 압축하고, 압축된 페이지를 압축 캐시(127)로 출력한다.The
스왑 매니저(125)는 압축된 페이지를 로컬 스토리지(130)에 저장할지, 클라우드 서버(200)에 저장할지 결정한다. The
스왑 매니저(125)는 압축된 페이지가 이전에 스왑-아웃 또는 스왑-인 된 횟수에 따라 저장 위치를 결정할 수 있다. 스왑 매니저(125)는 압축된 페이지가 이전에 스왑-아웃 또는 스왑-인 된 횟수가 임계값 이상인 경우에는 압축된 페이지를 로컬 스토리지(130)에 저장하고, 그렇지 않은 경우에는 클라우드 서버(200)에 저장한다.The
스왑 매니저(125)는 델타 페이지의 사이즈에 따라 저장 위치를 결정할 수 있다. 스왑 매니저(125)는 델타 페이지의 사이즈가 임계값 이상인 경우에는 클라우드 서버(200)에 저장하고, 그렇지 않은 경우에는 로컬 스토리지(130)에 저장한다. 델타 페이지의 사이즈가 작다는 것은 레퍼런스 페이지(reference page)와 유사하다는 것을 의미하므로, 레퍼런스 페이지가 저장된 로컬 스토리지(130)에 델타 페이지를 저장한다.The
스왑 매니저(125)는 다음과 같은 규칙에 따라 페이지의 저장 위치를 결정할 수 있다. The
1)
한번 스왑-아웃 되고 사용되지 않는 페이지는 로컬 스토리지(130)의 수명을 위해 클라우드 서버(200)로 전송One)
Once swapped out and not used, the page is sent to the
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
-
제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
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
벌크 버퍼(128)는 네트워크 대역폭(network bandwidth)를 고려하여, 복수의 페이지들을 묶어서 클라우드 서버(200)로 전송한다. 이때, 벌크 버퍼(128)는 페이지의 해쉬(hash) 값을 포함한 메타 정보(meta information)만을 우선적으로 클라우드 서버(200)로 전송하여, 클라우드 서버(200)에 동일한 페이지가 저장되어 있는지 확인하고, 동일하지 않은 페이지들만 클라우드 서버(200)로 전송한다.
The
도 5는 일 실시 예에 따른 모바일 디바이스의 동작을 설명하기 위한 순서도이다. 모바일 디바이스(100)는 스왑-아웃 할 페이지를 결정하고 압축할 수 있다.5 is a flowchart for explaining the operation of the mobile device according to an embodiment. The
단계 501에서 모바일 디바이스(100)는 메모리(110)의 저장 공간이 부족한지 확인한다. 메모리(110)의 저장 공간이 부족하면 단계 502로 진행한다. 모바일 디바이스(100)는 프로그램 등을 실행하면서 발생하는 데이터를 메모리(110)에 저장하는데, 메모리(110)에 저장 공간이 부족하면 발생된 데이터를 저장할 수 없으므로, 데이터 저장 요청이 발생하면 메모리(110)의 저장 공간을 확인한다. In
단계 502에서 모바일 디바이스(100)는 스왑 대몬(123)을 활성화한다. 스왑 대몬(123)은 메모리(110)의 저장 공간을 확보하기 위해 메모리(110)에 저장된 페이지들 중 일부를 다른 저장 공간으로 스왑-아웃 한다.At
단계 503에서 모바일 디바이스(100)는 스왑-아웃 할 페이지가 존재하는지 확인한다. 스왑-아웃 할 페이지가 존재하면 단계 504로 진행하고, 그렇지 않으면 단계 501로 진행한다. 스왑-아웃 할 페이지는 메모리(110)에 저장되어 있으나, 일정 시간 동안 사용되지 않은 페이지이다. In
단계 504에서 모바일 디바이스(100)는 어플리케이션들과의 페이지의 맵핑(mapping)을 제거한다. 맵핑을 제거한다는 것은 사용하는 정보(예를 들어, 페이지 테이블)에서, 페이지가 저장된 메모리(110)에 접근하기 위한 정보를 삭제하고, 스왑-아웃 된 위치를 나타내는 정보(예를 들어, 스왑 엔트리)를 기록하는 것을 의미한다.At
단계 505에서 모바일 디바이스(100)는 스왑-아웃 할 페이지가 더티 페이지(dirty page)인지 판단한다. 더티 페이지는 이전에 스왑-아웃 된 페이지가 아니거나, 값이 수정된 페이지를 의미한다. 스왑-아웃 할 페이지가 더티 페이지인 경우 단계 507로 진행하고, 그렇지 않으면 506으로 진행한다. In
단계 506에서 모바일 디바이스(100)는 스왑-아웃 할 페이지를 메모리(110)에서 제거한다. 스왑-아웃 할 페이지가 더티 페이지가 아니면, 이미 스왑 영역에 스왑-아웃 할 페이지의 복사본(copy)가 저장되어 있으므로 모바일 디바이스(100)는 추가로 스왑-아웃 할 필요가 없다.At
단계 507에서 모바일 디바이스(100)는 스왑-아웃 된 이전 페이지가 로컬 스토리지(130)에 존재하는지 확인한다. 스왑-아웃 된 이전 페이지는 부모 페이지 또는 레퍼런스 페이지로 지칭될 수 있다. 다시 말해서, 이전 페이지는 현재 스왑-아웃 할 페이지와 논리적으로 동일한(logically same) 페이지이다. 이전 페이지와 논리적으로 동일한 페이지는 메모리(110)에서 동일한 주소를 가지며, 동일한 프로그램에 의해 할당된 페이지들이다. 페이지가 메모리(110)로부터 스왑-아웃 될 때 페이지는 메모리(110)에서 삭제되고, 다시 스왑-인 되면 메모리(110)에 기록됩니다. 이때, 스왑-아웃 되는 페이지와 스왑-인 되는 페이지를 추적하지 않으면, 모바일 디바이스(100)는 스왑-아웃 된 페이지와 스왑-인 되는 페이지를 서로 다른 페이지로 인식하게 된다. 따라서, 모바일 디바이스(100)는 스왑-아웃 되는 페이지와 스왑-인 되는 페이지를 추적할 수 있으며, 페이지의 주소 및 페이지를 이용하는 프로그램이 동일하면 2개의 페이지는 부모-자식 관계의 페이지로 인식한다.At
단계 508에서 모바일 디바이스(100)는 스왑-아웃 할 페이지와 이전 페이지를 이용하여 델타 페이지를 생성한다. 모바일 디바이스(100)는 현재 스왑-아웃 할 페이지와 이전 페이지에 대해 XOR 연산하여 델타 페이지를 생성할 수 있다.At
단계 509에서 모바일 디바이스(100)는 델타 비율이 1/3 이상인지 판단한다. 델타 비율은 델타 페이지의 값들 중 1인 값의 비율을 나타낸다. 델타 비율이 1/3 이상이면 델타 페이지를 생성할 장점이 없으므로, 단계 510으로 진행하고, 그렇지 않으면 단계 511로 진행한다. 모바일 디바이스(100)는 델타 비율을 1/n 으로 설정할 수 있다. 여기서 n은 자연수 일 수 있으며, 모바일 디바이스(100)는 설정된 델타 비율에 기초하여, 델타 데이터의 이용 여부를 결정할 수 있다.In
단계 510에서 모바일 디바이스(100)는 로컬 스토리지(130)에 저장된 이전 페이지를 무효화(invalidate)하고, 델타 페이지를 제거한다. 델타 비율이 1/3 이상이면 이전 페이지가 스왑-아웃 될 페이지의 레퍼런스 페이지로서의 역할을 할 수 없으므로, 이전 페이지를 무효화한다.At
단계 511에서 모바일 디바이스(100)는 스왑-아웃 할 페이지를 압축 후 압축 캐시(127)에 저장한다. 다시 말해서, 모바일 디바이스(100)는 델타 페이지를 압축 캐시(127)에 저장하거나 스왑-아웃 할 페이지를 압축하여 압축 캐시(127)에 저장한다.
In
도 6은 일 실시 예에 따른 모바일 디바이스의 동작을 설명하기 위한 순서도이다. 모바일 디바이스(100)는 스왑-아웃 할 페이지를 로컬 스토리지(130) 또는 클라우드 서버(200)에 저장할 수 있다. 6 is a flowchart illustrating an operation of a mobile device according to an embodiment. The
단계 601에서 모바일 디바이스(100)는 압축 캐시(127)에 저장 공간이 없는지 판단한다. 압축 캐시에 저장 공간이 없으면 단계 602로 진행한다.In
단계 602에서 모바일 디바이스(100)는 압축 캐시(127)에서 추출(evict)될 페이지를 결정한다. 예를 들어, 모바일 디바이스(100)는 압축 캐시(127)에 저장된 페이지들 중에서 가장 오래된 페이지를 추출한다.In
단계 603에서 모바일 디바이스(100)는 추출된 페이지가 자주 사용되는 페이지인지 판단한다. 만약, 추출된 페이지가 자주 사용되는 페이지이면 단계 604로 진행하고, 그렇지 않으면 단계 605로 진행한다.In
단계 604에서 모바일 디바이스(100)는 추출된 페이지를 로컬 스토리지(130)에 기록한다(write). 추출된 페이지는 자주 사용되는 페이지이므로 클라우드 서버(200) 대신에 로컬 스토리지(130)에 저장한다.In
단계 605에서 모바일 디바이스(100)는 추출된 페이지를 벌크 버퍼(128)에 기록한다.In
단계 606에서 모바일 디바이스(100)는 벌크 버퍼(128)에 저장 공간이 없으면, 벌크 버퍼(128)에 저장된 페이지들의 메타 데이터를 클라우드 서버(200)로 전송한다. 페이지들은 페이지의 unique id 및 device id를 key로 사용하고, 페이지의 데이터를 value로 사용하는 key-value store 형태로 저장된다. 따라서, 모바일 디바이스(100)와 클라우드 서버(200)는 key를 이용하여 페이지의 스왑-인, 스왑-아웃 할 수 있다. 메타 데이터는 페이지를 이용하는 process의 id, 페이지의 address 또는 페이지의 unique id등을 나타낸다. In
단계 607에서 모바일 디바이스(100)는 클라우드 서버(200)에 중복된 페이지가 있는지 확인한다. 모바일 디바이스(100)는 클라우드 서버(200)로 중복된 페이지가 있는지 확인하는 요청을 전송할 수 있으며, 클라우드 서버(200)로부터 요청에 대한 응답(response)를 수신한다. 모바일 디바이스(100)는 확인 요청과 함께 메타 데이터를 클라우드 서버(200)로 전송한다. 클라우드 서버(200)는 수신된 메타 데이터와 동일한 메타 데이터를 갖는 페이지가 저장되어 있는지 확인하고, 확인 결과를 모바일 디바이스(100)로 전송한다. 만약, 클라우드 서버(200)에 중복된 페이지가 없으면, 단계 608로 진행하고, 있으면 단계 609로 진행한다.In
단계 608에서 모바일 디바이스(100)는 클라우드 서버(200)에 저장된 페이지와 중복되지 않는 페이지들을 클라우드 서버(200)로 전송한다. In
단계 609에서 모바일 디바이스(100)는 벌크 버퍼(128)를 초기화한다. 모바일 디바이스(100)는 벌크 버퍼(128)에 기록된 페이지들을 클라우드 서버(200)로 모두 전송하였으므로, 벌크 버퍼(128)를 초기화한다.
In
도 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
어플리케이션(140)이 페이지를 참조하려고 메모리에 접속하였으나, 메모리에 참조하려는 페이지가 없는 경우(page missing), 페이지 폴트 핸들러(121)가 활성화된다. 페이지 폴트 핸들러(121)는 스왑 캐시(122)를 확인하여 프리패치 등의 이유로 이미 요청된 페이지가 스왑 캐시(122)에 저장되어 있는지 확인한다. 페이지 폴트 핸들러(121)는 스왑 캐시(122)에 요청된 페이지가 없는 경우, 스왑 매니저(125)로부터 요청된 페이지에 대한 정보를 수신하여 요청된 페이지를 수신할 경로를 결정한다.The
페이지 폴트 핸들러(121)는 페이지 타입에 따라 다음과 같이 스왑-인 한다.The
1)
제로 페이지(zero page)는 페이지가 스왑-아웃 될 때 NULL 인 페이지이므로, 모바일 디바이스(100)는 불필요한 스왑-인 또는 스왑-아웃 없이 바로 페이지를 회복(recover)한다.One)
Since the zero page is a page that is NULL when the page is swapped out, the
2)
캐시 페이지(Cached page)는 압축 캐시(127)에 저장되어 있는 페이지이므로, 모바일 디바이스(100)는 복원하여 스왑-인 한다.2)
Since the cache page is a page stored in the
3)
버퍼 페이지(buffered page)는 벌크 버퍼(128)에 저장되어 있는 페이지이므로, 모바일 디바이스(100)는 로컬 스토리지(130)를 통해 스왑-인 한다.3)
Since the buffered page is a page stored in the
4)
리모트 페이지(remote page)는 클라우드 서버(200)에 저장되어 있는 페이지이므로, 모바일 디바이스(100)는 클라우드 서버(200)에 페이지 요청을 전송하여 클라우드 서버(200)로부터 스왑-인 한다.4)
Since the remote page is a page stored in the
5)
하이브리드 페이지(hybrid page)는 로컬 스토리지(130)에 원본 페이지가 저장되어 있고, 델타 페이지가 클라우드 서버(200)에 저장되어 있는 페이지이므로, 모바일 디바이스(100)는 로컬 스토리지(130) 및 클라우드 서버(200)로부터 수신된 원본 페이지와 델타 페이지를 합쳐서 스왑-인 한다.
5) The hybrid page is a page where the original page is stored in the
도 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
단계 801에서, 모바일 디바이스(100)는 페이지 폴트가 스왑 때문에 발생했는지를 판단한다. 만약, 페이지 폴트가 스왑 때문에 발생하였으면, 단계 802로 진행한다. At
단계 802에서, 모바일 디바이스(100)는 스왑 캐시(122)에 스왑-아웃 된 페이지가 존재하는지 판단한다. 만약, 스왑 캐시(122)에 스왑-아웃 된 페이지가 존재하면, 단계 805로 진행하고, 그렇지 않으면 단계 803으로 진행한다. At
단계 803에서, 모바일 디바이스(100)는 스왑-아웃 된 페이자가 로컬 스토리지(130)에 존재하는지 판단한다. 만약, 스왑-아웃 된 페이자가 로컬 스토리지(130)에 존재하면, 단계 804로 진행하고, 그렇지 않으면 단계 806으로 진행한다.At
단계 804에서, 모바일 디바이스(100)는 로컬 스토리지(130)로부터 페이지를 스왑-인 한다. At step 804, the
단계 805에서, 모바일 디바이스(100)는 페이지를 복구하여 스왑-인 한다. 모바일 디바이스(100)는 압축된 페이지를 복원하고, 레퍼런스 페이지와 델타 페이지를 이용하여 페이지를 복구한다(recover).At
단계 806에서, 모바일 디바이스(100)는 스왑-아웃 된 페이지가 델타 페이지인지 판단한다. 모바일 디바이스(100)는 스왑-인을 필요로 하는 페이지가 이전에 스왑-아웃 될 때 델타 페이지의 형태로 스왑-아웃 되었는지 확인한다. 만약, 스왑-아웃 된 페이지가 델타 페이지이면, 단계 807로 진행하고, 그렇지 않으면 단계 808로 진행한다.At
단계 807에서, 모바일 디바이스(100)는 로컬 스토리지(130)로부터 레퍼런스 페이지를 독출한다. At
단계 808에서, 모바일 디바이스(100)는 스왑-아웃 된 페이지가 클라우드 서버(200)에 존재하는지 확인한다. 만약, 스왑-아웃 된 페이지가 클라우드 서버(200)에 존재하면, 단계 809로 진행하고, 그렇지 않으면 단계 810으로 진행한다. At
단계 809에서, 모바일 디바이스(100)는 클라우드 서버(200)에 요청하여, 스왑-아웃 된 페이지를 독출한다. 모바일 디바이스(100)는 클라우드 서버(200)로부터 수신된 페이지를 복구한다.In
단계 810에서, 모바일 디바이스(100)는 압축 캐시(127) 또는 벌크 버퍼(128)에 스왑-아웃 된 페이지가 존재하는지 확인한다. 만약, 압축 캐시(127) 또는 벌크 버퍼(128)에 스왑-아웃 된 페이지가 존재하면, 단계 805로 진행하고, 그렇지 않으면 단계 811로 진행한다. In
단계 811에서, 모바일 디바이스(100)는 스왑-아웃 된 페이지를 찾을 수 없으므로 에러를 반환한다.
In
도 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
요청 핸들러(211)는 모바일 디바이스(100)로부터 스왑-아웃 요청을 수신한다. 구체적으로, 요청 핸들러(211)는 페이지-기록(page-write) 요청과 함께 기록할 페이지를 수신한다. 요청 핸들러(211)는 수신된 요청을 페이지 매니저(212)로 출력한다.The
페이지 매니저(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
페이지 매니저(212)는 저장된 페이지들 중에서 스왑-아웃 된 페이지의 해쉬 값과 동일한 해쉬 값을 갖는 페이지들이 페이지들이 없으면, 페이지 풀(220) 중 어느 하나의 스토리지 서버(221)에 스왑-아웃 된 페이지를 저장한다.The
페이지 매니저(212)는 스왑-아웃 된 페이지들의 메타 데이터를 관리하여, 이후에 프리패치를 위해 메타 데이터를 이용한다.The
클라우드 서버(200)는 동일한 페이지를 복수의 스토리지 서버(221)에 기록할 수 있다. 만약, 어느 하나의 스토리지 서버(221)에 접근이 불가능할 때, 클라우드 서버(200)는 동일한 페이지를 저장하고 있는 다른 스토리지 서버(221)에 접근하여 페이지를 독출할 수 있다. 동일한 페이지를 복수의 스토리지 서버(221)에 저장하는 것을 복제(replication)이라고 하며, 클라우드 서버(200)는 적어도 2 이상의 스토리지 서버(221)에 동일한 페이지를 저장할 수 있다.
The
도 10은 일 실시 예에 따른 클라우드 서버를 설명하기 위한 도면이다. 도 10을 참조하면, 클라우드 서버(200)는 모바일 디바이스(100)의 스왑-인 요청에 따라 모바일 디바이스(100)로 페이지를 반환할 수 있다.10 is a diagram for explaining a cloud server according to an embodiment. Referring to FIG. 10, the
요청 핸들러(211)는 모바일 디바이스(100)로부터 스왑-인 요청을 수신하면, 수신된 요청을 페이지 매니저(212)로 출력한다.The
페이지 매니저(212)는 요청된 페이지가 저장된 위치를 확인하고, 스토리지 서버(221)에 저장된 페이지를 모바일 디바이스(100)로 반환한다. 페이지 매니저(212)는 페이지들의 위치 정보를 관리하고 있으므로, 위치 정보를 통해 요청된 페이지가 어디에 저장되어 있는지 확인할 수 있다.The
또한, 페이지 매니저(212)는 요청된 페이지와 함께 유사 페이지들을 모바일 디바이스(100)로 프리패치할 수 있다. 페이지 매니저(212)는 process id로 페이지를 분류하고, 분류된 페이지들의 리스트를 관리하고 있다. 따라서, 페이지 매니저(212)는 모바일 디바이스(100)로부터 요청된 페이지를 반환하면서, 요청된 페이지와 동일한 process id를 갖고, 근처에 저장된 페이지를 함께 모바일 디바이스(100)로 전송할 수 있다. The
페이지 매니저(212)는 스왑-인 요청이 수신되기 이전에 모바일 디바이스(100)의 메모리(110)의 저장 공간이 여유가 있는 경우, 페이지 폴트가 발생하기 이전에 실행 중인 어플리케이션에 대한 페이지를 프리패치할 수 있다. 예를 들어, 페이지 매니저(212)는 process id별로 페이지가 스왑-아웃 된 순서를 기록한 리스트를 관리하고, 가장 최근에 스왑-아웃 된 페이지들을 먼저 프리패치할 수 있다.
The
도 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
단계 1120에서, 모바일 디바이스(100)는 페이지 폴트가 발생된 페이지의 특성 및 페이지 폴트가 발생된 페이지의 저장 위치에 따라 스왑 아웃 된 페이지를 스왑-인 한다.
In
본 실시 예들에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(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.
상기 프로세서는 페이지의 특성, 페이지가 스왑-인 또는 스왑-아웃 된 횟수 및 스왑-아웃 할 페이지의 압축률에 기초하여 상기 로컬 스토리지 또는 상기 클라우드 서버로 페이지를 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스.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.
상기 프로세서는 상기 로컬 스토리지에 상기 클라우드 서버로 스왑-아웃 할 페이지와 논리적으로 동일한 레퍼런스 페이지가 저장되어 있는 경우, 상기 스왑-아웃 할 페이지를 압축하여 압축된 페이지를 상기 클라우드 서버로 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스.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.
상기 프로세서는 상기 스왑-아웃 할 페이지와 상기 레퍼런스 페이지를 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.
상기 프로세서는 스왑-아웃 할 페이지와 동일한 페이지가 상기 클라우드 서버에 저장되어 있는지 확인하고, 동일한 페이지가 저장되어 있지 않는 경우에만 상기 스왑-아웃 할 페이지를 상기 클라우드 서버로 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스.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.
상기 프로세서는 상기 클라우드 서버로 전송할 페이지들을 벌크 버퍼에 저장하고, 네트워크 대역폭(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.
상기 프로세서는 페이지 폴트(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.
페이지의 특성, 페이지가 스왑-인 또는 스왑-아웃 된 횟수 및 스왑-아웃 할 페이지의 압축률에 기초하여 상기 로컬 스토리지 또는 상기 클라우드 서버로 페이지를 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스의 메모리 관리 방법.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. .
상기 클라우드 서버로 스왑-아웃 할 페이지와 논리적으로 동일한 레퍼런스 페이지가 상기 로컬 스토리지에 저장되어 있는 경우, 상기 스왑-아웃 할 페이지를 압축하여 압축된 페이지를 상기 클라우드 서버로 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스의 메모리 관리 방법.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.
상기 스왑-아웃 할 페이지와 상기 레퍼런스 페이지를 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.
스왑-아웃 할 페이지와 동일한 페이지가 상기 클라우드 서버에 저장되어 있는지 확인하고, 동일한 페이지가 저장되어 있지 않는 경우에만 상기 스왑-아웃 할 페이지를 상기 클라우드 서버로 스왑-아웃 하는 것을 특징으로 하는 모바일 디바이스의 메모리 관리 방법.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.
상기 클라우드 서버로 전송할 페이지들을 벌크 버퍼에 저장하고, 네트워크 대역폭(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.
페이지 폴트(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.
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)
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)
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 |
-
2014
- 2014-12-05 KR KR1020140174294A patent/KR102403063B1/en active IP Right Grant
Patent Citations (9)
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)
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 |