KR20150117180A - 소프트웨어를 이용한 소자의 메모리 확충 방법 - Google Patents

소프트웨어를 이용한 소자의 메모리 확충 방법 Download PDF

Info

Publication number
KR20150117180A
KR20150117180A KR1020140042644A KR20140042644A KR20150117180A KR 20150117180 A KR20150117180 A KR 20150117180A KR 1020140042644 A KR1020140042644 A KR 1020140042644A KR 20140042644 A KR20140042644 A KR 20140042644A KR 20150117180 A KR20150117180 A KR 20150117180A
Authority
KR
South Korea
Prior art keywords
memory
compressed
present
memory area
software
Prior art date
Application number
KR1020140042644A
Other languages
English (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 KR1020140042644A priority Critical patent/KR20150117180A/ko
Publication of KR20150117180A publication Critical patent/KR20150117180A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)

Abstract

본 발명은 소프트웨어(SW)를 이용한 소자의 메모리를 확충하는 방법으로서, 특히 로우 메모리 킬러에 의해 특정 프로세스를 압축 메모리 영역으로 이동시켜 메모리를 확충하는 방법을 제공한다. 본 발명에 따르면, 하드웨어적인 메모리 추가 없이 소프트웨어적으로 메모리를 확충할 수 있다.

Description

소프트웨어를 이용한 소자의 메모리 확충 방법 {METHOD FOR EXPANDING MEMORY OF DEVICE USING THE SOFTWARE}
본 발명은 소프트웨어(SW)를 이용하여 소자의 메모리를 확충하는 방법에 관한 것으로서, 보다 상세하게는 로우 메모리 킬러에 의해 특정 프로세스를 압축 메모리 영역으로 이동시켜 메모리를 확충할 수 있는, 소프트웨어(SW)를 이용한 소자의 메모리 확충 방법에 관한 것이다.
일반적으로, 임베디드 기기나 모바일 기기 등과 같은 소자의 경우 여러 프로세스를 사용할 때 메모리가 한계에 도달한다. 예를 들어, 모바일 기기는 여러 프로세스를 동시에 사용할 때, 메모리가 한계에 도달하는 경우가 많다.
이때, 메모리가 한계를 넘어가는 경우, 증가시킬 필요가 있다. 통상, 보조기억장치의 일부분을 메모리로 스웝(swap)하여 가상메모리로 활용하고 있다. 예를 들어, 대한민국 공개특허 제10-2012-0059660호에는 이와 관련한 기술이 제시되어 있다.
그러나 임베디드 기기나 모바일 기기의 경우, 대부분 보조기억장치가 존재하지 않고, 또한 존재하더라도 충분하지 않으며, 사용에 시간이 많이 소요되는 문제점이 있다.
대한민국 공개특허 제10-2012-0059660호
이에, 본 발명은 상술한 문제점을 해결하기 위한 것으로서, 임베디드 기기나 모바일 기기 등과 같은 소자에서 메모리 부족 시 소프트웨어를 이용하여 메모리 공간을 확충하고자 한다.
구체적으로, 본 발명은, 로우 메모리 킬러를 이용하여, 특정 프로세스를 압축 메모리 영역으로 이동시킴으로써, 하드웨어적인 메모리 추가 없이 소프트웨어적으로 메모리를 확충할 수 있는 방법을 제공함에 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명은, 액티브 메모리 영역과 압축 메모리 영역을 가지는 소자에서, 상기 액티브 메모리가 특정값 이하로 떨어지는 경우, 로우 메모리 킬러(Low memory killer)를 통해 특정 프로세스를 상기 압축 메모리 영역으로 이동시켜 압축시키는 단계를 포함하는, 소프트웨어(SW)를 이용한 소자의 메모리 확충 방법을 제공한다.
이때, 상기 로우 메모리 킬러(Low memory killer)는 특정 ADJ값 이상을 가지는 프로세스를 압축 메모리 영역으로 이동시킬 수 있다.
또한, 본 발명의 예시적인 형태에 따라서, 상기 프로세스를 LZO(Lempel-Ziv-Oberhumer)가 압축시켜 압축 메모리 영역으로 이동시킬 수 있다.
본 발명에 따르면, 하드웨어적인 메모리 추가 없이 소프트웨어적으로 메모리를 확충할 수 있는 효과를 갖는다.
도 1은 메모리 영역을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 확충 방법을 설명하기 위한 구성도이다.
이하, 첨부된 도면을 참조하여, 본 발명의 예시적인 실시예를 설명한다.
후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 이에, 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 하여 내려져야 할 것이다.
아울러, 아래의 실시예는 본 발명의 권리범위를 한정하는 것이 아니라 본 발명의 청구범위에 제시된 구성요소의 예시적인 사항에 불과하며, 본 발명의 명세서 전반에 걸친 기술사상에 포함되고 청구범위의 구성요소에서 균등물로서 치환 가능한 구성요소를 포함하는 실시예는 본 발명의 권리범위에 포함될 수 있다. 이하, 본 발명의 실시예를 설명함에 있어서, 관련된 공지의 범용적인 기능 또는 구성에 대한 상세한 설명은 생략한다.
도 1을 참조하면, 본 발명의 실시예에 따른 확충 방법을 위해, 소자는 메모리 영역(Physical memory area)으로서, 액티브 메모리 영역(Active memory area)과 압축 메모리 영역(Compressed memory area)을 포함한다. 본 발명에서, 소자는 예를 들어 임베디드 기기나 모바일 기기 등을 들 수 있으나, 이에 한정되는 것은 아니다.
상기 액티브 메모리 영역은 일반적인 프로세스 수행을 위한 메모리 영역을 말하며, 상기 압축 메모리 영역은 본 발명에 따라 프로세스가 압축된 상태로 저장되는 메모리 영역을 말한다.
이때, 상기 액티브 메모리가 특정 값 이하로 떨어지는 경우, 로우 메모리 킬러(Low memory killer)에 의해 특정 프로세스를 상기 압축 메모리 영역으로 이동시켜 압축시킨다.
즉, 많은 프로세스가 수행되어 액티브 메모리의 여유 값이 특정 값 이하로 떨어지는 경우, 특정 프로세스를 압축 메모리 영역으로 이동시키게 위채 로우 메모리 킬러(Low memory killer)를 이용한다.
상기 로우 메모리 킬러(Low memory killer)는, 널리 알려진 바와 같이 안드로이드(android)에 특화된 OOM killer(out of memory killer)로서, 이는 메모리를 많이 차지하는 프로세스를 킬(kill)하는 것이다.
그러나 본 발명의 경우, 상기 로우 메모리 킬러(Low memory killer)는 프로세스를 kill하지 않고, 상기 압축 메모리 영역으로 이동시킨다. 이를 위해, 본 발명에는 AMS(activity manager service) 부분에서 프로세스의 상태를 구분하여 상기 압축 메모리 영역으로 이동이 가능하도록 수정하며, 이는 안드로이드에서 제공되는 소스의 수정을 통해 구현할 수 있다.
한편, 상기 로우 메모리 킬러(Low memory killer)는 특정 ADJ값 이상을 가지는 프로세스를 압축 메모리 영역으로 이동시키는 것도 가능하다.
상기 ADJ값은, 널리 알려진 바와 같이 조정(adjust)값을 말하는 것으로서, 상기 ADJ값은 널리 알려진 액티비티 매니저(activity manager)에 의해 설정될 수 있다. 즉, 상기 액티비티 매니저(activity manager)가 각 프로세스에 대해 아래와 같이 분류하여 ADJ값을 설정할 수 있다.
HIDDEN_APP_MAX_ADJ=1000
HIDDEN_APP_MIN_ADJ=529
BACKUP_APP_ADJ=235
PERCEPTIBLE_APP_ADJ=117
VISIBLE_APP_ADJ=58
상기의 방법에 의해, 각 프로세스에 대해 ADJ값을 정의해 두고 나서 메모리 한계에 도달한 경우, ADJ값이 높은 프로세스부터 상술한 바와 같이 로우 메모리 킬러에 의해 압축 메모리 영역으로 이동시킨다.
한편, 상기 압축 메모리 영역으로 이동시킨다 라고 하는 것은, 실제로는 특정 프로세스를 압축하는 것을 의미한다. 즉, 프로세스가 저장되는 액티브 메모리 영역 중 일 부분을 할당하여, 압축된 프로세스가 저장되는 압축 메모리 영역으로 지정하는 것이다.
본 발명의 예시적인 형태에 따라서, 프로세스를 압축 메모리 영역으로 이동하기 위해서는, 예를 들어 LZO(Lempel-Ziv-Oberhumer) 알고리듬(algorithm)을 이용할 수 있다. 첨부된 도 2는 본 발명을 설명하기 위한 메모리 확충 구성도이다.
상기 LZO 알고리듬은 비손실 압축 알고리듬으로서, 이는 디코딩이 매우 간단하고 빠르며 메모리 용량이 적은 특징이 있다. 또한 다양한 레벨의 압축 기법을 제공할 수 있으며, 안정적인 동작이 가능하다.
상기 LZO 알고리듬 자체는 널리 알려진 것으로서, 이는 LZO 관련 사이트(http://www.oberhumer.com/opensource/lzo)에서 확인할 수 있으며 대한정보과학회 논문("휴대 단말기용 UI를 위한 수정된 LZO비손실 압축 기법", 제32회 추계학술발표회 논문집 Vol.32, No.2(I)) 등에서도 확인할 수 있으므로, 이에 대한 구체적인 설명은 생략한다.
따라서 본 발명은, 예를 들어 리눅스 커널의 메모리 페이지(page) 관리 부분과, 안드로이드의 AMS(activity manager service) 부분을 포함하여, 낮은 메모리(Low memory) 발생 시 메모리보다 속도가 느린 저장 장치의 일부분에 메모리의 일부분처럼 저장하게 된다.
또한, 느린 저장매체가 아니 메모리의 일부분으로 옮기고 임베디드 시스템에 적합한 압축방법을 사용하여 압축한다. 즉, 메모리 --> 하드드라이브, 하드드라이브 --> 메모리로 이동하는 방법보다 메모리 --> 압축 메모리, 압축 메모리 --> 메모리로 이동하는 것이 빠르기 때문에 적은 양의 액티브 공간이라도 압축 공간이 사용되어, 더 많은 양의 메모리 공간을 확충하여 사용할 수 있게 된다.
아울러, 본 발명은 리눅스의 OOM(out of memory)의 변형인 안드로이드에서 커널 부분인 로우 메모리 킬러(Low memory killer)를 수정하여 램의 일부분을 스웹(swap) 공간으로 사용하게 된다.
따라서 본 발명에 따르면, 특정 프로세스를 kill하지 않고 압축 메모리 영역으로 이동시키므로 별도의 하드웨어(HW)적인 추가 없이 소프트웨어(SW)적인 방법에 의해 메모리를 확충할 수 있다. 이에 따라, 하드웨어(HW)를 이용한 메모리 공간 확충은, 비용이 많이 들지만, 본 발명에 따라 소프트웨어(SW)를 이용하는 경우, 비용을 들이지 않고도 많은 메모리를 확충하여 사용할 수 있다.
이상에서는 본 발명을 구체적인 실시예를 통하여 상세히 설명하였으나, 이는 본 발명을 구체적으로 설명하기 위한 것으로, 본 발명은 이에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당 분야의 통상을 지식을 가진 자에 의해 그 변형이나 개량이 가능하다.

Claims (3)

  1. 액티브 메모리 영역과 압축 메모리 영역을 가지는 소자에서, 상기 액티브 메모리가 특정값 이하로 떨어지는 경우, 로우 메모리 킬러(Low memory killer)를 통해 특정 프로세스를 상기 압축 메모리 영역으로 이동시켜 압축시키는 것을 특징으로 하는 소프트웨어(SW)를 이용한 소자의 메모리 확충 방법.
  2. 제1항에 있어서,
    상기 로우 메모리 킬러(Low memory killer)는 특정 ADJ값 이상을 가지는 프로세스를 압축 메모리 영역으로 이동시켜 압축시키는 것을 특징으로 하는 소프트웨어(SW)를 이용한 소자의 메모리 확충 방법.
  3. 제1항에 있어서,
    상기 프로세스를 LZO(Lempel-Ziv-Oberhumer)가 압축하여 압축 메모리 영역으로 이동시키는 것을 특징으로 하는 소프트웨어(SW)를 이용한 소자의 메모리 확충 방법.
KR1020140042644A 2014-04-09 2014-04-09 소프트웨어를 이용한 소자의 메모리 확충 방법 KR20150117180A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140042644A KR20150117180A (ko) 2014-04-09 2014-04-09 소프트웨어를 이용한 소자의 메모리 확충 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140042644A KR20150117180A (ko) 2014-04-09 2014-04-09 소프트웨어를 이용한 소자의 메모리 확충 방법

Publications (1)

Publication Number Publication Date
KR20150117180A true KR20150117180A (ko) 2015-10-19

Family

ID=54399503

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140042644A KR20150117180A (ko) 2014-04-09 2014-04-09 소프트웨어를 이용한 소자의 메모리 확충 방법

Country Status (1)

Country Link
KR (1) KR20150117180A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467734B2 (en) 2019-10-25 2022-10-11 Samsung Electronics Co., Ltd. Managing swap area in memory using multiple compression algorithms

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467734B2 (en) 2019-10-25 2022-10-11 Samsung Electronics Co., Ltd. Managing swap area in memory using multiple compression algorithms

Similar Documents

Publication Publication Date Title
CN102652308B (zh) 将数据高效地载入计算系统的存储器中的方法和系统
EP2889787A3 (en) Adaptive dictionary compression/decompression for column-store databases
EP3396552A3 (en) Storing data in a distributed storage system
US8732446B2 (en) Selectively compressing blocks of a bootable snapshot image during booting
TW200712875A (en) Method for fast switching between different operating systems in computer device with multiple operating systems
CN104615494B (zh) 一种移动终端及应用切换的方法
EP3349130B1 (en) Data compression method and storage system
JP2017512340A (ja) 修正されたメモリー圧縮
CN105474180A (zh) 基于页面的压缩存储管理
ATE507617T1 (de) VERFAHREN UND GERÄT FÜR KOMPRIMIERTE MACHINEN MIT ßMORPHINGß-SPEICHER
IN2014DE00743A (ko)
WO2009034760A1 (ja) 情報処理装置
CN103309737A (zh) 一种切换操作系统的方法及设备
TW200634517A (en) Utilizing paging to support dynamic code updates
BR112018004308A2 (pt) compressão de armazenamento acelerada por hardware
CN102810071A (zh) 控制方法、控制装置以及计算机
CN104199676A (zh) 一种还原界面内容的方法及装置
KR20150117180A (ko) 소프트웨어를 이용한 소자의 메모리 확충 방법
RU2008146983A (ru) Устройство связи и способ управления, программа и ее запоминающий носитель
JP2014210375A5 (ko)
EP2782001A3 (en) Storage system, storage apparatus, and control program
JP2017098918A5 (ko)
CA2535282A1 (en) A method and system for message thread compression
CN110175075A (zh) 安卓系统内存优化方法及装置
KR20170062621A (ko) 메모리 시스템 및 그의 동작 방법

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination