KR20200080164A - Memory management system and method considering application usage patterns analysis - Google Patents

Memory management system and method considering application usage patterns analysis Download PDF

Info

Publication number
KR20200080164A
KR20200080164A KR1020190170005A KR20190170005A KR20200080164A KR 20200080164 A KR20200080164 A KR 20200080164A KR 1020190170005 A KR1020190170005 A KR 1020190170005A KR 20190170005 A KR20190170005 A KR 20190170005A KR 20200080164 A KR20200080164 A KR 20200080164A
Authority
KR
South Korea
Prior art keywords
time
application
lstm
function
vector
Prior art date
Application number
KR1020190170005A
Other languages
Korean (ko)
Other versions
KR102280298B1 (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 중앙대학교 산학협력단
Publication of KR20200080164A publication Critical patent/KR20200080164A/en
Application granted granted Critical
Publication of KR102280298B1 publication Critical patent/KR102280298B1/en

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A memory management system comprises: a framework module for predicting an execution probability for each of at least one application by generating execution information on when the at least one application has been executed and training a long short-term memory (LSTM) network with the generated execution information; and a kernel module securing a memory by terminating applications in the order of the lower execution probability of the applications based on the predicted execution probability, thereby providing an effect of more efficiently using the memory.

Description

애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템 및 방법 {Memory management system and method considering application usage patterns analysis}Memory management system and method considering application usage patterns analysis}

본 발명은 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템 및 방법에 관한 것으로서, 보다 상세하게는 사용자의 애플리케이션 사용 정보와 실행 확률을 분석하여 보다 효율적으로 메모리를 활용하기 위한 기술이다.The present invention relates to a memory management system and method based on an application usage pattern analysis, and more specifically, a technique for more efficiently utilizing memory by analyzing user application usage information and execution probability.

스마트폰이 발전하고 널리 보급되면서 다양한 종류의 모바일 애플리케이션이 등장하고 있다. 대표적인 모바일 운영체제인 안드로이드나 iOS의 애플리케이션 다운로드 플랫폼에 등록된 모바일 애플리케이션의 수는 현재 약 2백만 개이다. 스마트폰 사용자들은 보통 수십에서 수백 개의 애플리케이션을 설치해 사용하고 있으며, 스마트폰 애플리케이션에 사용자 편의성을 향상시키기 위해 더 많은 기능이 탑재되고 있다. 이에 따라 메인 메모리 요구량, 연산 처리 성능 등의 요구사항들이 증가되고 있다.With the development and widespread use of smartphones, various types of mobile applications are emerging. The number of mobile applications registered on the application download platforms of the representative mobile operating systems, Android and iOS, is currently about 2 million. Smartphone users usually install and use dozens to hundreds of applications, and smartphone applications are equipped with more features to improve user convenience. Accordingly, requirements such as the amount of main memory and computational processing performance are increasing.

증가하는 메인 메모리 요구량은 하드웨어나 소프트웨어적인 방법으로 해결할 수 있다. 하드웨어적인 방법은 스마트폰의 메인 메모리를 증설하는 방식이고, 소프트웨어적인 방법은 메모리 관리 정책 등을 통해 메인 메모리를 효율적으로 사용하는 방법이다.Increasing main memory requirements can be addressed by hardware or software methods. The hardware method is a method of expanding the main memory of the smartphone, and the software method is a method of efficiently using the main memory through a memory management policy.

안드로이드나 iOS는 제한된 시스템 메인 메모리 용량으로 사용자의 애플리케이션 실행 요청을 빠르게 수행하기 위해 애플리케이션의 실행 상태에 따라 애플리케이션의 일부 메모리를 해제하는 수명 주기 관리(Life Cycle Management)를 채택하고 있다. 가능한 한 많은 애플리케이션을 메인 메모리에 캐시하여 애플리케이션을 전환하거나 다시 실행할 때 빠르게 불러오도록 한다. 메인 메모리가 부족한 상황에서는 캐시된 애플리케이션들 중 자주 사용되지 않는 것으로 판단되는 애플리케이션부터 종료하여 사용자가 시스템 성능 저하를 느끼는 것을 방지한다. 또한 스마트폰의 메인 메모리를 효율적으로 활용하기 위해 2차 저장장치를 메인 메모리 공간처럼 사용하는 스왑(Swap) 기법이 고려되었다.Android or iOS adopts Life Cycle Management, which releases some of the memory of the application according to the execution status of the application in order to quickly execute a user's application execution request with a limited system main memory capacity. Cache as many applications as possible in main memory so they can be loaded quickly when switching applications or running again. In a situation where the main memory is insufficient, the cached applications are started from applications that are considered to be infrequently used to prevent the user from feeling a decrease in system performance. In addition, a swap technique that uses a secondary storage device as a main memory space was considered to efficiently utilize the main memory of a smartphone.

그 중 NAND 플래시 메모리 기반 저장장치의 경우, Wear-out 문제 때문에 메모리 공간을 압축해 스왑 공간으로 사용하는 ZRAM 또는 스왑 캐시로 사용하는 ZSWAP 등이 스마트폰에 적용되고 있다.In the case of a NAND flash memory-based storage device, ZRAM, which is used as a swap space by compressing a memory space due to a wear-out problem, or ZSWAP, which is used as a swap cache, is applied to a smartphone.

다만, 이와 같이 스마트폰에 적용되는 LRU 등의 메모리 관리 기법들은 사용자의 애플리케이션 사용 패턴을 분석하고 이를 이용해 다음에 사용될 애플리케이션을 예측할 수 없어 자주 사용되는 애플리케이션의 실행 시간이 증가하는 한계점을 안고 있다.However, memory management techniques such as LRU applied to a smartphone have limitations in increasing execution time of frequently used applications because it cannot analyze a user's application usage pattern and use it to predict the next application to be used.

미국공개특허공보 제2016-0259557호US Patent Publication No. 2016-0259557

이에 본 발명은 상기와 같은 종래의 제반 문제점을 해소하기 위해 제안된 것으로, 사용자의 애플리케이션 사용 정보와 실행 확률을 분석하여 보다 효율적으로 메모리를 활용할 수 있도록 하는 것을 목적으로 한다.Accordingly, the present invention has been proposed to solve the above-mentioned general problems, and it is an object of the present invention to analyze a user's application usage information and execution probability to utilize memory more efficiently.

또한, 본 발명은 애플리케이션 별로 나타나는 다양한 사용 패턴과 애플리케이션 간의 연관성을 LSTM(Long Short-Term Memory) 네트워크를 통해 학습시켜 효율적인 메인 메모리 및 스왑 공간을 활용할 수 있도록 하는 것을 목적으로 한다.In addition, the present invention aims to be able to utilize an efficient main memory and swap space by learning various usage patterns that appear for each application and the association between applications through a LSTM (Long Short-Term Memory) network.

또한, 본 발명은 실행 확률이 높은 애플리케이션이 메모리에서 제거되지 않고 바로 재개되는 빈도를 증가시키는 것을 목적으로 한다.The present invention also aims to increase the frequency with which applications with a high probability of execution are immediately restarted without being removed from memory.

상기와 같은 목적을 달성하기 위하여 본 발명의 기술적 사상에 의한 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템은, 적어도 하나 이상의 애플리케이션이 언제 실행되었는지에 대한 실행정보를 생성하고, 상기 생성된 실행정보로 LSTM(Long Short-Term Memory) 네트워크를 학습시켜 상기 적어도 하나 이상의 애플리케이션 각각에 대한 실행확률을 예측하는 프레임워크 모듈, 상기 예측된 실행확률에 기초하여 애플리케이션의 실행확률이 낮은 순으로 애플리케이션을 종료하여 메모리를 확보하는 커널 모듈을 포함할 수 있다.In order to achieve the above object, the memory management system based on the application usage pattern analysis according to the technical idea of the present invention generates execution information on when at least one or more applications are executed, and LSTM ( Long Short-Term Memory) A framework module that predicts execution probability for each of the at least one application by learning a network, and secures memory by terminating applications in the order of low execution probability based on the predicted execution probability. Kernel module.

상기 프레임워크 모듈은 적어도 하나 이상의 애플리케이션이 언제 실행되었는지에 대한 실행정보를 생성하는 실행정보 생성부, 상기 생성된 실행정보를 LSTM(Long Short-Term Memory) 네트워크에 입력하여 상기 적어도 하나 이상의 애플리케이션의 사용 패턴을 학습하는 네트워크 학습부, 상기 학습된 사용 패턴에 기초하여 상기 적어도 하나 이상의 애플리케이션 각각에 대한 실행확률을 예측하는 실행확률 예측부를 포함할 수 있다.The framework module is an execution information generation unit that generates execution information on when at least one application has been executed, and inputs the generated execution information into a LSTM (Long Short-Term Memory) network to use the at least one application. It may include a network learning unit for learning the pattern, an execution probability prediction unit for predicting the execution probability for each of the at least one or more applications based on the learned usage pattern.

상기 커널 모듈은 상기 예측된 실행확률을 저장하는 실행확률 저장부, 기 설정된 메모리의 가용기준치를 초과할 경우 상기 저장된 실행확률에 기초하여 애플리케이션 실행확률이 낮은 순으로 애플리케이션을 종료하여 메모리를 확보하는 메모리 확보부를 포함할 수 있다.The kernel module is an execution probability storage unit for storing the predicted execution probability, and a memory for securing memory by terminating the application in the order of low application execution probability based on the stored execution probability when the preset usage limit value of the memory is exceeded. It may include a securing portion.

상기 실행확률 저장부에서 저장하는 실행확률은 상기 실행확률 예측부에 의해 실행확률을 예측할 때마다 업데이트될 수 있다.The execution probability stored in the execution probability storage unit may be updated whenever the execution probability is predicted by the execution probability prediction unit.

상기 메모리 확보부는 상기 기 설정된 메모리의 가용기준치보다 작을 때까지 애플리케이션을 종료하여 메모리를 확보할 수 있다.The memory securing unit may secure the memory by terminating the application until it is smaller than the usable reference value of the preset memory.

상기 LSTM 네트워크는 아래 수식 1 내지 수식 6으로

Figure pat00001
(시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수),
Figure pat00002
(시간 t에서
Figure pat00003
에 저장될 데이터를 생성하는 입력 게이트 함수),
Figure pat00004
(시간 t에서
Figure pat00005
에 저장될 데이터를 생성하는 입력 게이트 함수),
Figure pat00006
(시간 t에서 LSTM에 데이터를 저장하는 메모리 셀),
Figure pat00007
(시간 t에서
Figure pat00008
에 저장될 데이터를 선택하는 입력 게이트 함수),
Figure pat00009
(시간 t에서 LSTM의 출력 벡터)로 구성할 수 있다.The LSTM network is represented by Equations 1 to 6 below.
Figure pat00001
(Forget gate function that determines the amount of data to be discarded among the stored data at time t),
Figure pat00002
(At time t
Figure pat00003
Input gate function to generate data to be stored in),
Figure pat00004
(At time t
Figure pat00005
Input gate function to generate data to be stored in),
Figure pat00006
(Memory cell storing data in LSTM at time t),
Figure pat00007
(At time t
Figure pat00008
Input gate function to select the data to be stored in)
Figure pat00009
It can be configured as (the output vector of LSTM at time t).

<수식 1><Equation 1>

Figure pat00010
Figure pat00010

(

Figure pat00011
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00012
: 시그모이드 활성화 함수,
Figure pat00013
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00014
:
Figure pat00015
함수에서 각
Figure pat00016
에 가중되는 벡터,
Figure pat00017
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00018
:
Figure pat00019
함수에서 각
Figure pat00020
에 가중되는 벡터,
Figure pat00021
:
Figure pat00022
함수를 위한 바이어스 상수)(
Figure pat00011
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00012
: Sigmoid activation function,
Figure pat00013
: Input vector input to LSTM at time t,
Figure pat00014
:
Figure pat00015
Each in function
Figure pat00016
Vector weighted to,
Figure pat00017
: LSTM output vector at time t-1,
Figure pat00018
:
Figure pat00019
Each in function
Figure pat00020
Vector weighted to,
Figure pat00021
:
Figure pat00022
Bias constant for function)

<수식 2><Equation 2>

Figure pat00023
Figure pat00023

(

Figure pat00024
: 시간 t에서
Figure pat00025
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00026
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00027
:
Figure pat00028
함수에서 각
Figure pat00029
에 가중되는 벡터,
Figure pat00030
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00031
:
Figure pat00032
함수에서 각
Figure pat00033
에 가중되는 벡터,
Figure pat00034
:
Figure pat00035
함수를 위한 바이어스 상수)(
Figure pat00024
: At time t
Figure pat00025
Input gate function to generate data to be stored in,
Figure pat00026
: Input vector input to LSTM at time t,
Figure pat00027
:
Figure pat00028
Each in function
Figure pat00029
Vector weighted to,
Figure pat00030
: LSTM output vector at time t-1,
Figure pat00031
:
Figure pat00032
Each in function
Figure pat00033
Vector weighted to,
Figure pat00034
:
Figure pat00035
Bias constant for function)

<수식 3><Equation 3>

Figure pat00036
Figure pat00036

(

Figure pat00037
: 시간 t에서
Figure pat00038
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00039
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00040
:
Figure pat00041
함수에서 각
Figure pat00042
에 가중되는 벡터,
Figure pat00043
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00044
:
Figure pat00045
함수에서 각
Figure pat00046
에 가중되는 벡터,
Figure pat00047
:
Figure pat00048
함수를 위한 바이어스 상수)(
Figure pat00037
: At time t
Figure pat00038
Input gate function to generate data to be stored in,
Figure pat00039
: Input vector input to LSTM at time t,
Figure pat00040
:
Figure pat00041
Each in function
Figure pat00042
Vector weighted to,
Figure pat00043
: LSTM output vector at time t-1,
Figure pat00044
:
Figure pat00045
Each in function
Figure pat00046
Vector weighted to,
Figure pat00047
:
Figure pat00048
Bias constant for function)

<수식 4><Equation 4>

Figure pat00049
Figure pat00049

(

Figure pat00050
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀,
Figure pat00051
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00052
: 시간 t에서
Figure pat00053
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00054
: 시간 t에서
Figure pat00055
에 저장될 데이터를 생성하는 입력 게이트 함수)(
Figure pat00050
: Memory cell that stores data in LSTM at time t,
Figure pat00051
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00052
: At time t
Figure pat00053
Input gate function to generate data to be stored in,
Figure pat00054
: At time t
Figure pat00055
Input gate function to generate data to be stored in)

<수식 5><Equation 5>

Figure pat00056
Figure pat00056

(

Figure pat00057
: 시간 t에서
Figure pat00058
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00059
: 시그모이드 활성화 함수,
Figure pat00060
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00061
:
Figure pat00062
함수에서 각
Figure pat00063
에 가중되는 벡터,
Figure pat00064
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00065
:
Figure pat00066
함수에서 각
Figure pat00067
에 가중되는 벡터,
Figure pat00068
:
Figure pat00069
함수를 위한 바이어스 상수)(
Figure pat00057
: At time t
Figure pat00058
Input gate function to select data to be stored in,
Figure pat00059
: Sigmoid activation function,
Figure pat00060
: Input vector input to LSTM at time t,
Figure pat00061
:
Figure pat00062
Each in function
Figure pat00063
Vector weighted to,
Figure pat00064
: LSTM output vector at time t-1,
Figure pat00065
:
Figure pat00066
Each in function
Figure pat00067
Vector weighted to,
Figure pat00068
:
Figure pat00069
Bias constant for function)

<수식 6><Equation 6>

Figure pat00070
Figure pat00070

(

Figure pat00071
: 시간 t에서 LSTM의 출력 벡터,
Figure pat00072
: 시간 t에서
Figure pat00073
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00074
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀)(
Figure pat00071
: Output vector of LSTM at time t,
Figure pat00072
: At time t
Figure pat00073
Input gate function to select data to be stored in,
Figure pat00074
: Memory cell storing data in LSTM at time t)

상기 실행확률 예측부는 아래 수식 7 및 수식 8로 정의되는 실행확률 값 산출식을 통해 각 애플리케이션에 대한 실행확률 값을 산출할 수 있다.The execution probability prediction unit may calculate execution probability values for each application through an execution probability value calculation formula defined by Equations 7 and 8 below.

<수식 7><Equation 7>

Figure pat00075
Figure pat00075

(xt: 시간 t에서 실행된 애플리케이션 ui_t를 LSTM로 입력되는 입력벡터, ui: 애플리케이션, ht: xt에 의해 LSTM로부터 출력되는 출력벡터, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터

Figure pat00076
의 j번째 인덱스, m: 집합 U의 원소의 수)(xt: input vector inputted to LSTM with application ui_t executed at time t, ui: application, ht: output vector outputted from LSTM by xt, i: application of execution at time t is the number of applications in set U Pointing index, j: vector
Figure pat00076
Jth index of m, number of elements in set U)

<수식 8><Equation 8>

Figure pat00077
Figure pat00077

(

Figure pat00078
: 시간 t까지 실행된 애플리케이션 기록,
Figure pat00079
: 시간 t+1에서의 애플리케이션 ui의 실행확률 값, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터
Figure pat00080
의 j번째 인덱스, m: 집합 U의 원소의 수)(
Figure pat00078
: Records the applications executed up to time t,
Figure pat00079
: The value of the execution probability of the application ui at time t+1, i: the index indicating the number of applications in the set U that are executed at time t, j: vector
Figure pat00080
Jth index of m, number of elements in set U)

상기와 같은 목적을 달성하기 위하여 본 발명의 기술적 사상에 의한 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 방법은, 실행정보 생성부에서 적어도 하나 이상의 애플리케이션이 언제 실행되었는지에 대한 실행정보를 생성하는 실행정보 생성단계, 네트워크 학습부에서 상기 생성된 실행정보를 LSTM(Long Short-Term Memory) 네트워크에 입력하여 상기 적어도 하나 이상의 애플리케이션의 사용 패턴을 학습하는 네트워크 학습단계, 실행확률 예측부에서 상기 학습된 사용 패턴에 기초하여 상기 적어도 하나 이상의 애플리케이션 각각에 대한 실행확률을 예측하는 실행확률 예측단계, 실행확률 저장부에서 상기 예측된 실행확률을 저장하는 실행확률 저장단계, 메모리 확보부에서 기 설정된 메모리의 가용기준치를 초과할 경우, 상기 저장된 실행확률에 기초하여 애플리케이션 실행확률이 낮은 순으로 애플리케이션을 종료하여 메모리를 확보하는 메모리 확보단계를 포함할 수 있다.In order to achieve the above object, a memory management method based on an application usage pattern analysis according to the technical idea of the present invention includes an execution information generation step of generating execution information on when at least one or more applications are executed in the execution information generation unit. , Network learning step of learning the usage pattern of the at least one application by inputting the generated execution information into the LSTM (Long Short-Term Memory) network in the network learning unit, based on the learned usage pattern in the execution probability prediction unit The execution probability prediction step of predicting the execution probability for each of the at least one application, the execution probability storage step of storing the predicted execution probability in the execution probability storage unit, and exceeding the available reference value of the memory set in the memory acquisition unit In this case, the method may include a memory securing step of securing the memory by terminating the applications in the order of low application execution probability based on the stored execution probability.

상기 실행확률 저장단계에서 저장하는 실행확률은 상기 실행확률 예측단계에 의해 실행확률을 예측할 때마다 업데이트될 수 있다.The execution probability stored in the execution probability storage step may be updated whenever the execution probability is predicted by the execution probability prediction step.

상기 메모리 확보단계는 상기 기 설정된 메모리의 가용기준치보다 작을 때까지 애플리케이션을 종료하여 메모리를 확보할 수 있다.The memory securing step may secure the memory by terminating the application until it is smaller than the available reference value of the preset memory.

상기 LSTM 네트워크는 아래 수식 1 내지 수식 6으로 정의되는

Figure pat00081
(시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수),
Figure pat00082
(시간 t에서
Figure pat00083
에 저장될 데이터를 생성하는 입력 게이트 함수),
Figure pat00084
(시간 t에서
Figure pat00085
에 저장될 데이터를 생성하는 입력 게이트 함수),
Figure pat00086
(시간 t에서 LSTM에 데이터를 저장하는 메모리 셀),
Figure pat00087
(시간 t에서
Figure pat00088
에 저장될 데이터를 선택하는 입력 게이트 함수),
Figure pat00089
(시간 t에서 LSTM의 출력 벡터)로 구성할 수 있다.The LSTM network is defined by Equations 1 to 6 below.
Figure pat00081
(Forget gate function that determines the amount of data to be discarded among the stored data at time t),
Figure pat00082
(At time t
Figure pat00083
Input gate function to generate data to be stored in),
Figure pat00084
(At time t
Figure pat00085
Input gate function to generate data to be stored in),
Figure pat00086
(Memory cell storing data in LSTM at time t),
Figure pat00087
(At time t
Figure pat00088
Input gate function to select the data to be stored in)
Figure pat00089
It can be configured as (the output vector of LSTM at time t).

<수식 1><Equation 1>

Figure pat00090
Figure pat00090

(

Figure pat00091
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00092
: 시그모이드 활성화 함수,
Figure pat00093
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00094
:
Figure pat00095
함수에서 각
Figure pat00096
에 가중되는 벡터,
Figure pat00097
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00098
:
Figure pat00099
함수에서 각
Figure pat00100
에 가중되는 벡터,
Figure pat00101
:
Figure pat00102
함수를 위한 바이어스 상수)(
Figure pat00091
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00092
: Sigmoid activation function,
Figure pat00093
: Input vector input to LSTM at time t,
Figure pat00094
:
Figure pat00095
Each in function
Figure pat00096
Vector weighted to,
Figure pat00097
: LSTM output vector at time t-1,
Figure pat00098
:
Figure pat00099
Each in function
Figure pat00100
Vector weighted to,
Figure pat00101
:
Figure pat00102
Bias constant for function)

<수식 2><Equation 2>

Figure pat00103
Figure pat00103

(

Figure pat00104
: 시간 t에서
Figure pat00105
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00106
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00107
:
Figure pat00108
함수에서 각
Figure pat00109
에 가중되는 벡터,
Figure pat00110
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00111
:
Figure pat00112
함수에서 각
Figure pat00113
에 가중되는 벡터,
Figure pat00114
:
Figure pat00115
함수를 위한 바이어스 상수)(
Figure pat00104
: At time t
Figure pat00105
Input gate function to generate data to be stored in,
Figure pat00106
: Input vector input to LSTM at time t,
Figure pat00107
:
Figure pat00108
Each in function
Figure pat00109
Vector weighted to,
Figure pat00110
: LSTM output vector at time t-1,
Figure pat00111
:
Figure pat00112
Each in function
Figure pat00113
Vector weighted to,
Figure pat00114
:
Figure pat00115
Bias constant for function)

<수식 3><Equation 3>

Figure pat00116
Figure pat00116

(

Figure pat00117
: 시간 t에서
Figure pat00118
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00119
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00120
:
Figure pat00121
함수에서 각
Figure pat00122
에 가중되는 벡터,
Figure pat00123
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00124
:
Figure pat00125
함수에서 각
Figure pat00126
에 가중되는 벡터,
Figure pat00127
:
Figure pat00128
함수를 위한 바이어스 상수)(
Figure pat00117
: At time t
Figure pat00118
Input gate function to generate data to be stored in,
Figure pat00119
: Input vector input to LSTM at time t,
Figure pat00120
:
Figure pat00121
Each in function
Figure pat00122
Vector weighted to,
Figure pat00123
: LSTM output vector at time t-1,
Figure pat00124
:
Figure pat00125
Each in function
Figure pat00126
Vector weighted to,
Figure pat00127
:
Figure pat00128
Bias constant for function)

<수식 4><Equation 4>

Figure pat00129
Figure pat00129

(

Figure pat00130
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀,
Figure pat00131
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00132
: 시간 t에서
Figure pat00133
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00134
: 시간 t에서
Figure pat00135
에 저장될 데이터를 생성하는 입력 게이트 함수)(
Figure pat00130
: Memory cell that stores data in LSTM at time t,
Figure pat00131
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00132
: At time t
Figure pat00133
Input gate function to generate data to be stored in,
Figure pat00134
: At time t
Figure pat00135
Input gate function to generate data to be stored in)

<수식 5><Equation 5>

Figure pat00136
Figure pat00136

(

Figure pat00137
: 시간 t에서
Figure pat00138
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00139
: 시그모이드 활성화 함수,
Figure pat00140
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00141
:
Figure pat00142
함수에서 각
Figure pat00143
에 가중되는 벡터,
Figure pat00144
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00145
:
Figure pat00146
함수에서 각
Figure pat00147
에 가중되는 벡터,
Figure pat00148
:
Figure pat00149
함수를 위한 바이어스 상수)(
Figure pat00137
: At time t
Figure pat00138
Input gate function to select data to be stored in,
Figure pat00139
: Sigmoid activation function,
Figure pat00140
: Input vector input to LSTM at time t,
Figure pat00141
:
Figure pat00142
Each in function
Figure pat00143
Vector weighted to,
Figure pat00144
: LSTM output vector at time t-1,
Figure pat00145
:
Figure pat00146
Each in function
Figure pat00147
Vector weighted to,
Figure pat00148
:
Figure pat00149
Bias constant for function)

<수식 6><Equation 6>

Figure pat00150
Figure pat00150

(

Figure pat00151
: 시간 t에서 LSTM의 출력 벡터,
Figure pat00152
: 시간 t에서
Figure pat00153
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00154
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀)(
Figure pat00151
: Output vector of LSTM at time t,
Figure pat00152
: At time t
Figure pat00153
Input gate function to select data to be stored in,
Figure pat00154
: Memory cell storing data in LSTM at time t)

상기 실행확률 예측단계는 아래 수식 7 및 수식 8로 정의되는 실행확률 값 산출식을 통해 각 애플리케이션에 대한 실행확률 값을 산출할 수 있다.In the execution probability prediction step, an execution probability value for each application may be calculated through an execution probability value calculation formula defined by Equations 7 and 8 below.

<수식 7><Equation 7>

Figure pat00155
Figure pat00155

(xt: 시간 t에서 실행된 애플리케이션 ui_t를 LSTM로 입력되는 입력벡터, ui: 애플리케이션, ht: xt에 의해 LSTM로부터 출력되는 출력벡터, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터

Figure pat00156
의 j번째 인덱스, m: 집합 U의 원소의 수)(xt: input vector inputted to LSTM with application ui_t executed at time t, ui: application, ht: output vector outputted from LSTM by xt, i: application of execution at time t is the number of applications in set U Pointing index, j: vector
Figure pat00156
Jth index of m, number of elements in set U)

<수식 8><Equation 8>

Figure pat00157
Figure pat00157

(

Figure pat00158
: 시간 t까지 실행된 애플리케이션 기록,
Figure pat00159
: 시간 t+1에서의 애플리케이션 ui의 실행확률 값, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터
Figure pat00160
의 j번째 인덱스, m: 집합 U의 원소의 수)(
Figure pat00158
: Records the applications executed up to time t,
Figure pat00159
: The value of the execution probability of the application ui at time t+1, i: the index indicating the number of applications in the set U that are executed at time t, j: vector
Figure pat00160
Jth index of m, number of elements in set U)

본 발명에 의한 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템 및 방법에 따르면,According to the memory management system and method based on the application usage pattern analysis according to the present invention,

첫째, 사용자의 애플리케이션 사용 정보와 실행 확률을 분석하여 보다 효율적으로 메모리를 활용할 수 있는 효과를 가진다.First, it has an effect of using memory more efficiently by analyzing user application usage information and execution probability.

둘째, 애플리케이션 별로 나타나는 다양한 사용 패턴과 애플케이션 간의 연관성을 LSTM(Long Short-Term Memory) 네트워크를 통해 학습시켜 효율적인 메인 메모리 및 스왑 공간을 활용할 수 있는 효과를 가진다.Second, it has the effect of utilizing the effective main memory and swap space by learning the association between various usage patterns and applications that appear for each application through the LSTM (Long Short-Term Memory) network.

셋째, 실행 확률이 높은 애플리케이션이 메모리에서 제거되지 않고 바로 재개되는 빈도를 증가시킬 수 있는 효과를 가진다.Third, it has an effect of increasing the frequency that an application with a high probability of execution is immediately restarted without being removed from the memory.

도 1은 본 발명의 실시예로서, 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템을 나타낸 구성도.
도 2는 본 발명의 실시예로서, 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 방법을 나타낸 순서도.
도 3은 본 발명의 실시예에 따라 본 발명의 시스템을 안드로이드 운영체제에 적용한 구성도를 나타낸 도면.
1 is an embodiment of the present invention, a configuration diagram showing a memory management system based on application usage pattern analysis.
Figure 2 is an embodiment of the present invention, a flow chart showing a memory management method based on the application usage pattern analysis.
3 is a view showing the configuration of the system of the present invention applied to an Android operating system according to an embodiment of the present invention.

첨부한 도면을 참조하여 본 발명의 실시예들에 의한 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템 및 방법에 대하여 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.A memory management system and method based on application usage pattern analysis according to embodiments of the present invention will be described in detail with reference to the accompanying drawings. The present invention can be applied to various changes and may have various forms, and specific embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to a specific disclosure form, it should be understood to include all modifications, equivalents, or substitutes included in the spirit and scope of the present invention. In describing each drawing, similar reference numerals are used for similar components.

또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In addition, unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person skilled in the art to which the present invention pertains. Terms, such as those defined in a commonly used dictionary, should be interpreted as having meanings consistent with meanings in the context of related technologies, and should not be interpreted as ideal or excessively formal meanings unless explicitly defined in the present application. Does not.

도 1은 본 발명의 실시예로서, 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템을 나타낸 구성도이다.1 is a configuration diagram showing a memory management system based on an application usage pattern analysis as an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 따른 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템은 프레임워크 모듈(100) 및 커널 모듈(200)을 포함할 수 있다.Referring to FIG. 1, a memory management system based on application usage pattern analysis according to an embodiment of the present invention may include a framework module 100 and a kernel module 200.

프레임워크 모듈(100)은 적어도 하나 이상의 애플리케이션이 언제 실행되었는지에 대한 실행정보를 생성하고, 상기 생성된 실행정보로 LSTM(Long Short-Term Memory) 네트워크를 학습시켜 상기 적어도 하나 이상의 애플리케이션 각각에 대한 실행확률을 예측할 수 있다.The framework module 100 generates execution information about when at least one or more applications have been executed, and trains a long short-term memory (LSTM) network with the generated execution information to execute each of the at least one application Probability can be predicted.

보다 상세하게, 프레임워크 모듈(100)은 실행정보 생성부(110), 네트워크 학습부(130), 실행확률 예측부(150)를 포함할 수 있다.In more detail, the framework module 100 may include an execution information generation unit 110, a network learning unit 130, and an execution probability prediction unit 150.

실행정보 생성부(110)는 적어도 하나 이상의 애플리케이션이 언제 실행되었는지에 대한 실행정보를 생성할 수 있다.The execution information generation unit 110 may generate execution information on when at least one application has been executed.

네트워크 학습부(130)는 상기 생성된 실행정보를 LSTM(Long Short-Term Memory) 네트워크에 입력하여 상기 적어도 하나 이상의 애플리케이션의 사용 패턴을 학습할 수 있다.The network learning unit 130 may learn the usage pattern of the at least one application by inputting the generated execution information into an LSTM (Long Short-Term Memory) network.

실행확률 예측부(150)는 상기 학습된 사용 패턴에 기초하여 상기 적어도 하나 이상의 애플리케이션 각각에 대한 실행확률을 예측할 수 있다.The execution probability predicting unit 150 may predict the execution probability for each of the at least one application based on the learned usage pattern.

커널 모듈(200)은 상기 예측된 실행확률에 기초하여 애플리케이션의 실행확률이 낮은 순으로 애플리케이션을 종료하여 메모리를 확보할 수 있다.The kernel module 200 may secure the memory by terminating the applications in the order of low execution probability of the application based on the predicted execution probability.

보다 상세하게, 커널 모듈(200)은 실행확률 저장부(210) 및 메모리 확보부(230)를 포함할 수 있다.In more detail, the kernel module 200 may include an execution probability storage unit 210 and a memory securing unit 230.

실행확률 저장부(210)는 상기 예측된 실행확률을 저장할 수 있다.The execution probability storage unit 210 may store the predicted execution probability.

이 때 실행확률 저장부(210)에서 저장하는 실행확률은 상기 실행확률 예측부(150)에 의해 실행확률을 예측할 때마다 업데이트될 수 있다.At this time, the execution probability stored in the execution probability storage unit 210 may be updated whenever the execution probability is predicted by the execution probability prediction unit 150.

메모리 확보부(230)는 기 설정된 메모리의 가용기준치를 초과할 경우, 상기 저장된 실행확률에 기초하여 애플리케이션 실행확률이 낮은 순으로 애플리케이션을 종료하여 메모리를 확보할 수 있다.The memory securing unit 230 may secure the memory by terminating the application in the order of low application execution probability based on the stored execution probability, when the preset usage limit of the memory is exceeded.

이 때 메모리 확보부(230)는 상기 기 설정된 메모리의 가용기준치보다 작을 때까지 애플리케이션을 종료하여 메모리를 확보할 수 있다.At this time, the memory securing unit 230 may secure the memory by terminating the application until it is smaller than the available reference value of the preset memory.

한편, 상기 LSTM 네트워크는 아래 수식 1 내지 수식 6으로 정의되는

Figure pat00161
(시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수),
Figure pat00162
(시간 t에서
Figure pat00163
에 저장될 데이터를 생성하는 입력 게이트 함수),
Figure pat00164
(시간 t에서
Figure pat00165
에 저장될 데이터를 생성하는 입력 게이트 함수),
Figure pat00166
(시간 t에서 LSTM에 데이터를 저장하는 메모리 셀),
Figure pat00167
(시간 t에서
Figure pat00168
에 저장될 데이터를 선택하는 입력 게이트 함수),
Figure pat00169
(시간 t에서 LSTM의 출력 벡터)로 구성할 수 있다.Meanwhile, the LSTM network is defined by Equations 1 to 6 below.
Figure pat00161
(Forget gate function that determines the amount of data to be discarded among the stored data at time t),
Figure pat00162
(At time t
Figure pat00163
Input gate function to generate data to be stored in),
Figure pat00164
(At time t
Figure pat00165
Input gate function to generate data to be stored in),
Figure pat00166
(Memory cell storing data in LSTM at time t),
Figure pat00167
(At time t
Figure pat00168
Input gate function to select the data to be stored in)
Figure pat00169
It can be configured as (the output vector of LSTM at time t).

<수식 1><Equation 1>

Figure pat00170
Figure pat00170

(

Figure pat00171
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00172
: 시그모이드 활성화 함수,
Figure pat00173
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00174
:
Figure pat00175
함수에서 각
Figure pat00176
에 가중되는 벡터,
Figure pat00177
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00178
:
Figure pat00179
함수에서 각
Figure pat00180
에 가중되는 벡터,
Figure pat00181
:
Figure pat00182
함수를 위한 바이어스 상수)(
Figure pat00171
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00172
: Sigmoid activation function,
Figure pat00173
: Input vector input to LSTM at time t,
Figure pat00174
:
Figure pat00175
Each in function
Figure pat00176
Vector weighted to,
Figure pat00177
: LSTM output vector at time t-1,
Figure pat00178
:
Figure pat00179
Each in function
Figure pat00180
Vector weighted to,
Figure pat00181
:
Figure pat00182
Bias constant for function)

<수식 2><Equation 2>

Figure pat00183
Figure pat00183

(

Figure pat00184
: 시간 t에서
Figure pat00185
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00186
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00187
:
Figure pat00188
함수에서 각
Figure pat00189
에 가중되는 벡터,
Figure pat00190
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00191
:
Figure pat00192
함수에서 각
Figure pat00193
에 가중되는 벡터,
Figure pat00194
:
Figure pat00195
함수를 위한 바이어스 상수)(
Figure pat00184
: At time t
Figure pat00185
Input gate function to generate data to be stored in,
Figure pat00186
: Input vector input to LSTM at time t,
Figure pat00187
:
Figure pat00188
Each in function
Figure pat00189
Vector weighted to,
Figure pat00190
: LSTM output vector at time t-1,
Figure pat00191
:
Figure pat00192
Each in function
Figure pat00193
Vector weighted to,
Figure pat00194
:
Figure pat00195
Bias constant for function)

<수식 3><Equation 3>

Figure pat00196
Figure pat00196

(

Figure pat00197
: 시간 t에서
Figure pat00198
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00199
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00200
:
Figure pat00201
함수에서 각
Figure pat00202
에 가중되는 벡터,
Figure pat00203
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00204
:
Figure pat00205
함수에서 각
Figure pat00206
에 가중되는 벡터,
Figure pat00207
:
Figure pat00208
함수를 위한 바이어스 상수)(
Figure pat00197
: At time t
Figure pat00198
Input gate function to generate data to be stored in,
Figure pat00199
: Input vector input to LSTM at time t,
Figure pat00200
:
Figure pat00201
Each in function
Figure pat00202
Vector weighted to,
Figure pat00203
: LSTM output vector at time t-1,
Figure pat00204
:
Figure pat00205
Each in function
Figure pat00206
Vector weighted to,
Figure pat00207
:
Figure pat00208
Bias constant for function)

<수식 4><Equation 4>

Figure pat00209
Figure pat00209

(

Figure pat00210
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀,
Figure pat00211
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00212
: 시간 t에서
Figure pat00213
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00214
: 시간 t에서
Figure pat00215
에 저장될 데이터를 생성하는 입력 게이트 함수)(
Figure pat00210
: Memory cell that stores data in LSTM at time t,
Figure pat00211
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00212
: At time t
Figure pat00213
Input gate function to generate data to be stored in,
Figure pat00214
: At time t
Figure pat00215
Input gate function to generate data to be stored in)

<수식 5><Equation 5>

Figure pat00216
Figure pat00216

(

Figure pat00217
: 시간 t에서
Figure pat00218
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00219
: 시그모이드 활성화 함수,
Figure pat00220
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00221
:
Figure pat00222
함수에서 각
Figure pat00223
에 가중되는 벡터,
Figure pat00224
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00225
:
Figure pat00226
함수에서 각
Figure pat00227
에 가중되는 벡터,
Figure pat00228
:
Figure pat00229
함수를 위한 바이어스 상수)(
Figure pat00217
: At time t
Figure pat00218
Input gate function to select data to be stored in,
Figure pat00219
: Sigmoid activation function,
Figure pat00220
: Input vector input to LSTM at time t,
Figure pat00221
:
Figure pat00222
Each in function
Figure pat00223
Vector weighted to,
Figure pat00224
: LSTM output vector at time t-1,
Figure pat00225
:
Figure pat00226
Each in function
Figure pat00227
Vector weighted to,
Figure pat00228
:
Figure pat00229
Bias constant for function)

<수식 6><Equation 6>

Figure pat00230
Figure pat00230

(

Figure pat00231
: 시간 t에서 LSTM의 출력 벡터,
Figure pat00232
: 시간 t에서
Figure pat00233
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00234
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀)(
Figure pat00231
: Output vector of LSTM at time t,
Figure pat00232
: At time t
Figure pat00233
Input gate function to select data to be stored in,
Figure pat00234
: Memory cell storing data in LSTM at time t)

그리고 상기 실행확률 예측부는 아래 수식 7 및 수식 8로 정의되는 실행확률 값 산출식을 통해 각 애플리케이션에 대한 실행확률 값을 산출할 수 있다.In addition, the execution probability prediction unit may calculate execution probability values for each application through an execution probability value calculation formula defined by Equations 7 and 8 below.

<수식 7><Equation 7>

Figure pat00235
Figure pat00235

(xt: 시간 t에서 실행된 애플리케이션 ui_t를 LSTM로 입력되는 입력벡터, ui: 애플리케이션, ht: xt에 의해 LSTM로부터 출력되는 출력벡터, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터

Figure pat00236
의 j번째 인덱스, m: 집합 U의 원소의 수)(xt: input vector inputted to LSTM with application ui_t executed at time t, ui: application, ht: output vector outputted from LSTM by xt, i: application of execution at time t is the number of applications in set U Pointing index, j: vector
Figure pat00236
Jth index of m, number of elements in set U)

<수식 8><Equation 8>

Figure pat00237
Figure pat00237

(

Figure pat00238
: 시간 t까지 실행된 애플리케이션 기록,
Figure pat00239
: 시간 t+1에서의 애플리케이션 ui의 실행확률 값, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터
Figure pat00240
의 j번째 인덱스, m: 집합 U의 원소의 수)(
Figure pat00238
: Records the applications executed up to time t,
Figure pat00239
: The value of the execution probability of the application ui at time t+1, i: the index indicating the number of applications in the set U that are executed at time t, j: vector
Figure pat00240
Jth index of m, number of elements in set U)

도 2는 본 발명의 실시예로서, 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 방법을 나타낸 순서도이다.2 is a flowchart illustrating a memory management method based on application usage pattern analysis as an embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시예로서, 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 방법은 실행정보 생성단계(S110), 네트워크 학습단계(S130), 실행확률 예측단계(S150), 실행확률 저장단계(S210), 메모리 확보단계(S230)를 포함할 수 있다.Referring to FIG. 2, as an embodiment of the present invention, a memory management method based on application usage pattern analysis includes execution information generation step (S110), network learning step (S130), execution probability prediction step (S150), and execution probability storage step (S210), a memory securing step (S230).

실행정보 생성단계는 실행정보 생성부(110)에서 적어도 하나 이상의 애플리케이션이 언제 실행되었는지에 대한 실행정보를 생성할 수 있다(S110).In the execution information generation step, the execution information generation unit 110 may generate execution information on when at least one application has been executed (S110 ).

네트워크 학습단계는 네트워크 학습부(130)에서 상기 생성된 실행정보를 LSTM(Long Short-Term Memory) 네트워크에 입력하여 상기 적어도 하나 이상의 애플리케이션의 사용 패턴을 학습할 수 있다(S130).In the network learning step, the network learning unit 130 may input the generated execution information into an LSTM (Long Short-Term Memory) network to learn the usage pattern of the at least one application (S130).

실행확률 예측단계는 실행확률 예측부(150)에서 상기 학습된 사용 패턴에 기초하여 상기 적어도 하나 이상의 애플리케이션 각각에 대한 실행확률을 예측할 수 있다(S150).In the execution probability prediction step, the execution probability for each of the at least one application may be predicted based on the learned usage pattern in the execution probability prediction unit 150 (S150 ).

실행확률 저장단계는 실행확률 저장부(210)에서 상기 예측된 실행확률을 저장할 수 있다(S210).The execution probability storage step may store the predicted execution probability in the execution probability storage unit 210 (S210).

이 때 실행확률 저장단계(S210)에서 저장하는 실행확률은 상기 실행확률 예측단계(S150)에 의해 실행확률을 예측할 때마다 업데이트될 수 있다.At this time, the execution probability stored in the execution probability storage step S210 may be updated whenever the execution probability is predicted by the execution probability prediction step S150.

메모리 확보단계는 메모리 확보부(230)에서 기 설정된 메모리의 가용기준치를 초과할 경우, 상기 저장된 실행확률에 기초하여 애플리케이션 실행확률이 낮은 순으로 애플리케이션을 종료하여 메모리를 확보할 수 있다(S230).When the memory securing step exceeds the usable threshold value of the memory set in the memory securing unit 230, the application execution probability may be terminated in order of the application execution probability based on the stored execution probability to secure the memory (S230).

이 때 메모리 확보단계(S230)는 상기 기 설정된 메모리의 가용기준치보다 작을 때까지 애플리케이션을 종료하여 메모리를 확보할 수 있다.At this time, the memory securing step S230 may secure the memory by terminating the application until it is smaller than the available reference value of the preset memory.

한편, 상기 LSTM 네트워크는 아래 수식 1 내지 수식 6으로 정의되는

Figure pat00241
(시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수),
Figure pat00242
(시간 t에서
Figure pat00243
에 저장될 데이터를 생성하는 입력 게이트 함수),
Figure pat00244
(시간 t에서
Figure pat00245
에 저장될 데이터를 생성하는 입력 게이트 함수),
Figure pat00246
(시간 t에서 LSTM에 데이터를 저장하는 메모리 셀),
Figure pat00247
(시간 t에서
Figure pat00248
에 저장될 데이터를 선택하는 입력 게이트 함수),
Figure pat00249
(시간 t에서 LSTM의 출력 벡터)로 구성할 수 있다.Meanwhile, the LSTM network is defined by Equations 1 to 6 below.
Figure pat00241
(Forget gate function that determines the amount of data to be discarded among the stored data at time t),
Figure pat00242
(At time t
Figure pat00243
Input gate function to generate data to be stored in),
Figure pat00244
(At time t
Figure pat00245
Input gate function to generate data to be stored in),
Figure pat00246
(Memory cell storing data in LSTM at time t),
Figure pat00247
(At time t
Figure pat00248
Input gate function to select the data to be stored in)
Figure pat00249
It can be configured as (the output vector of LSTM at time t).

<수식 1><Equation 1>

Figure pat00250
Figure pat00250

(

Figure pat00251
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00252
: 시그모이드 활성화 함수,
Figure pat00253
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00254
:
Figure pat00255
함수에서 각
Figure pat00256
에 가중되는 벡터,
Figure pat00257
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00258
:
Figure pat00259
함수에서 각
Figure pat00260
에 가중되는 벡터,
Figure pat00261
:
Figure pat00262
함수를 위한 바이어스 상수)(
Figure pat00251
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00252
: Sigmoid activation function,
Figure pat00253
: Input vector input to LSTM at time t,
Figure pat00254
:
Figure pat00255
Each in function
Figure pat00256
Vector weighted to,
Figure pat00257
: LSTM output vector at time t-1,
Figure pat00258
:
Figure pat00259
Each in function
Figure pat00260
Vector weighted to,
Figure pat00261
:
Figure pat00262
Bias constant for function)

<수식 2><Equation 2>

Figure pat00263
Figure pat00263

(

Figure pat00264
: 시간 t에서
Figure pat00265
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00266
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00267
:
Figure pat00268
함수에서 각
Figure pat00269
에 가중되는 벡터,
Figure pat00270
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00271
:
Figure pat00272
함수에서 각
Figure pat00273
에 가중되는 벡터,
Figure pat00274
:
Figure pat00275
함수를 위한 바이어스 상수)(
Figure pat00264
: At time t
Figure pat00265
Input gate function to generate data to be stored in,
Figure pat00266
: Input vector input to LSTM at time t,
Figure pat00267
:
Figure pat00268
Each in function
Figure pat00269
Vector weighted to,
Figure pat00270
: LSTM output vector at time t-1,
Figure pat00271
:
Figure pat00272
Each in function
Figure pat00273
Vector weighted to,
Figure pat00274
:
Figure pat00275
Bias constant for function)

<수식 3><Equation 3>

Figure pat00276
Figure pat00276

(

Figure pat00277
: 시간 t에서
Figure pat00278
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00279
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00280
:
Figure pat00281
함수에서 각
Figure pat00282
에 가중되는 벡터,
Figure pat00283
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00284
:
Figure pat00285
함수에서 각
Figure pat00286
에 가중되는 벡터,
Figure pat00287
:
Figure pat00288
함수를 위한 바이어스 상수)(
Figure pat00277
: At time t
Figure pat00278
Input gate function to generate data to be stored in,
Figure pat00279
: Input vector input to LSTM at time t,
Figure pat00280
:
Figure pat00281
Each in function
Figure pat00282
Vector weighted to,
Figure pat00283
: LSTM output vector at time t-1,
Figure pat00284
:
Figure pat00285
Each in function
Figure pat00286
Vector weighted to,
Figure pat00287
:
Figure pat00288
Bias constant for function)

<수식 4><Equation 4>

Figure pat00289
Figure pat00289

(

Figure pat00290
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀,
Figure pat00291
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00292
: 시간 t에서
Figure pat00293
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00294
: 시간 t에서
Figure pat00295
에 저장될 데이터를 생성하는 입력 게이트 함수)(
Figure pat00290
: Memory cell that stores data in LSTM at time t,
Figure pat00291
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00292
: At time t
Figure pat00293
Input gate function to generate data to be stored in,
Figure pat00294
: At time t
Figure pat00295
Input gate function to generate data to be stored in)

<수식 5><Equation 5>

Figure pat00296
Figure pat00296

(

Figure pat00297
: 시간 t에서
Figure pat00298
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00299
: 시그모이드 활성화 함수,
Figure pat00300
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00301
:
Figure pat00302
함수에서 각
Figure pat00303
에 가중되는 벡터,
Figure pat00304
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00305
:
Figure pat00306
함수에서 각
Figure pat00307
에 가중되는 벡터,
Figure pat00308
:
Figure pat00309
함수를 위한 바이어스 상수)(
Figure pat00297
: At time t
Figure pat00298
Input gate function to select data to be stored in,
Figure pat00299
: Sigmoid activation function,
Figure pat00300
: Input vector input to LSTM at time t,
Figure pat00301
:
Figure pat00302
Each in function
Figure pat00303
Vector weighted to,
Figure pat00304
: LSTM output vector at time t-1,
Figure pat00305
:
Figure pat00306
Each in function
Figure pat00307
Vector weighted to,
Figure pat00308
:
Figure pat00309
Bias constant for function)

<수식 6><Equation 6>

Figure pat00310
Figure pat00310

(

Figure pat00311
: 시간 t에서 LSTM의 출력 벡터,
Figure pat00312
: 시간 t에서
Figure pat00313
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00314
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀)(
Figure pat00311
: Output vector of LSTM at time t,
Figure pat00312
: At time t
Figure pat00313
Input gate function to select data to be stored in,
Figure pat00314
: Memory cell storing data in LSTM at time t)

그리고 상기 실행확률 예측단계(S150)는 아래 수식 7 및 수식 8로 정의되는 실행확률 값 산출식을 통해 각 애플리케이션에 대한 실행확률 값을 산출할 수 있다.In addition, the execution probability prediction step (S150) may calculate execution probability values for each application through an execution probability value calculation formula defined by Equations 7 and 8 below.

<수식 7><Equation 7>

Figure pat00315
Figure pat00315

(xt: 시간 t에서 실행된 애플리케이션 ui_t를 LSTM로 입력되는 입력벡터, ui: 애플리케이션, ht: xt에 의해 LSTM로부터 출력되는 출력벡터, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터

Figure pat00316
의 j번째 인덱스, m: 집합 U의 원소의 수)(xt: input vector inputted to LSTM with application ui_t executed at time t, ui: application, ht: output vector outputted from LSTM by xt, i: application of execution at time t is the number of applications in set U Pointing index, j: vector
Figure pat00316
Jth index of m, number of elements in set U)

<수식 8><Equation 8>

Figure pat00317
Figure pat00317

(

Figure pat00318
: 시간 t까지 실행된 애플리케이션 기록,
Figure pat00319
: 시간 t+1에서의 애플리케이션 ui의 실행확률 값, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터
Figure pat00320
의 j번째 인덱스, m: 집합 U의 원소의 수)(
Figure pat00318
: Records the applications executed up to time t,
Figure pat00319
: The value of the execution probability of the application ui at time t+1, i: the index indicating the number of applications in the set U that are executed at time t, j: vector
Figure pat00320
Jth index of m, number of elements in set U)

보다 구체적으로 본 발명을 설명하면 도 3을 참조할 수 있다.Referring to the present invention in more detail, reference may be made to FIG. 3.

도 3은 본 발명의 실시예에 따라 본 발명의 시스템을 안드로이드 운영체제에 적용한 구성도를 나타낸 도면이다.3 is a diagram illustrating a configuration diagram of the system of the present invention applied to an Android operating system according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 본 발명의 실시예에 따라 본 발명의 시스템이 적용된 안드로이드 운영체제는 크게 프레임워크 모듈에 해당하는 Android Framework(100)와, 커널 모듈에 해당하는 Android Kernel(200)을 포함할 수 있다.As shown in FIG. 3, according to an embodiment of the present invention, the Android operating system to which the system of the present invention is applied includes the Android Framework 100 corresponding to the framework module and the Android Kernel 200 corresponding to the kernel module. can do.

Android Framework(100)은 Activity Manager Service, Context Management을 포함할 수 있다.Android Framework 100 may include Activity Manager Service and Context Management.

Activity Manager Service은 실행정보 생성부에 해당하는 Activity/Process Context Generator(110)를 포함할 수 있다. Activity Manager Service의 Activity/Process Context Generator(110)는 어떤 애플리케이션이 언제 실행되었는지에 대한 정보를 생성하여 Context Management로 전달할 수 있다.The Activity Manager Service may include an Activity/Process Context Generator 110 corresponding to an execution information generator. The Activity/Process Context Generator 110 of the Activity Manager Service can generate information about which application was executed and when it is delivered to Context Management.

Activity/Process Context Generator(110)는 모바일 운영체제에서 안드로이드의 Activity Manager Service와 같이, 애플리케이션 실행과 종료를 담당하는 부분에 구성될 수 있다. 이는 애플리케이션의 실행이나 정지, 종료 등의 상황 정보를 생성할 수 있다.The Activity/Process Context Generator 110 may be configured in a portion in charge of application execution and termination, such as Android's Activity Manager Service in a mobile operating system. This can generate situation information such as application execution, suspension, and termination.

또한, Activity/Process Context Generator(110)는 애플리케이션 패키지의 이름, 애플리케이션을 실행한 시점의 타임스탬프와 같은 애플리케이션 사용 정보와, 애플리케이션 실행을 위해 생성되는 프로세스마다 생성되는 프로세스의 ID, 각 프로세스가 소속된 애플리케이션 이름 등의 프로세스 생성 정보를 수집할 수 있다.In addition, the Activity/Process Context Generator 110 includes application usage information such as the name of the application package, a timestamp at the time the application is executed, and the ID of the process that is generated for each process created for the application execution, and to which each process belongs. Process creation information such as application name can be collected.

한편, Activity/Process Context Generator(110)이 포함된 Activity Manager Service에서는 애플리케이션 실행 및 프로세스 생성이 발생한 경우, 애플리케이션 사용 정보를 Context Management의 Application Usage Trainer(130)와 Application Usage Predictor(150)로 전달할 수 있다. 또한, 애플리케이션 실행을 위한 프로세스 생성 작업이 발생할 때는 해당 상황 정보를 Application Usage Predictor(150)로 전달할 수 있다.Meanwhile, in the Activity Manager Service including the Activity/Process Context Generator 110, when application execution and process creation occur, application usage information may be delivered to the Application Usage Trainer 130 and Application Usage Predictor 150 of Context Management. . In addition, when a process creation operation for executing an application occurs, corresponding situation information may be transmitted to the Application Usage Predictor 150.

Context Management는 네트워크 학습부에 해당하는 Application Usage Trainer(130), 실행확률 예측부에 해당하는 Application Usage Predictor(150), LSTM Network를 포함할 수 있다.Context Management may include an Application Usage Trainer 130 corresponding to the network learning unit, an Application Usage Predictor 150 corresponding to the execution probability prediction unit, and an LSTM Network.

Context Management의 Application Usage Trainer(130)은 상기 Activity/Process Context Generator(110)로부터 전달받은 정보를 보관하다가 LSTM Network를 학습시킬 수 있다.The Application Usage Trainer 130 of Context Management can store the information received from the Activity/Process Context Generator 110 and train the LSTM Network.

Application Usage Trainer(130)은 Activity/Process Context Generator(110)로부터 어떤 애플리케이션이 실행되었는지에 대한 정보를 받아 그 애플리케이션에 해당하는 ID를 시간 순서대로 스토리지에 기록을 저장할 수 있다. LSTM Network를 학습시킬 때에는 한 번에 학습하고자 하는 데이터의 길이만큼 LSTM Network를 Unfold하여 Feed-forward 네트워크를 생성한 후, Backpropagation 알고리즘으로 네트워크의 가중치 파라미터를 갱신하는 BPTT 알고리즘을 사용할 수 있다. LSTM Network는 예측값과 실제값의 차이인 Mean Squared Error(MSE)를 최소화하도록 학습될 수 있다. 애플리케이션 실행 확률을 적용한 MSE는 다음 수식 9와 같이 정의할 수 있다.The Application Usage Trainer 130 may receive information on which application is executed from the Activity/Process Context Generator 110 and store the IDs corresponding to the application in storage in chronological order. When training the LSTM network, the feed-forward network is generated by unfolding the LSTM network by the length of the data to be learned at a time, and then the BPTT algorithm that updates the network's weight parameters with the backpropagation algorithm can be used. LSTM Network can be learned to minimize Mean Squared Error (MSE), which is the difference between the predicted value and the actual value. The MSE to which the application execution probability is applied can be defined as in Equation 9 below.

<수식 9><Equation 9>

Figure pat00321
Figure pat00321

(MSE: LSTM Network는 예측값과 실제값의 차이,

Figure pat00322
: 시간 t의 애플리케이션 실행 기록 집합, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터
Figure pat00323
의 j번째 인덱스, m: 집합 U의 원소의 수,
Figure pat00324
: 시간 t에서의 애플리케이션 ui의 실행확률 값,
Figure pat00325
: 시간 t에서 애플리케이션 ui가 실행되었는지 여부,
Figure pat00326
: 시간 t에서 실행된 애플리케이션
Figure pat00327
,
Figure pat00328
: 시간 t에서 애플리케이션 실행 기록의 가장 마지막 실행된 애플리케이션)(MSE: LSTM Network is the difference between the predicted value and the actual value,
Figure pat00322
: Application execution history set at time t, i: Index indicating the number of applications in application U executed at time t, j: Vector
Figure pat00323
Jth index of, m: number of elements in set U,
Figure pat00324
: Ui execution probability value at time t,
Figure pat00325
: Whether application ui was executed at time t,
Figure pat00326
: Application run at time t
Figure pat00327
,
Figure pat00328
: Last run application of the application run record at time t)

LSTM Network의 LSTM은 기존 Recurrent Neural Network(RNN)에서 발생하는 Gradient Vanishing 문제를 해결하고, 장기 및 단기적 데이터의 연관성을 학습하도록 할 수 있다. 이와 같은 LSTM을 구성하는 (Forget Gate) ft, (Input Gate) gt 및 it, 메모리 셀 ct, (Output Gate) ot, 시간 t에서 LSTM로부터 출력되는 출력벡터 ht은 상기 수식 1 내지 수식 6으로 정의할 수 있다. 이 때 LSTM Network의 파라미터들은 하기 표 1로 정의할 수 있다.LSTM Network's LSTM can solve the gradient vanishing problem that occurs in the existing Recurrent Neural Network (RNN), and learn to relate the long-term and short-term data. The output vectors ht output from the LSTM at (Forget Gate) ft, (Input Gate) gt and it, memory cell ct, (Output Gate) ot, and time t constituting the LSTM are defined by Equations 1 to 6 Can. At this time, the parameters of the LSTM Network can be defined in Table 1 below.

<표 1><Table 1>

Figure pat00329
Figure pat00329

LSTM Network를 이용해 애플리케이션의 실행 확률을 예측하기 위한 관련 파라미터들은 하기 표 2로 정의할 수 있다.The relevant parameters for predicting the probability of application execution using LSTM Network can be defined in Table 2 below.

<표 2><Table 2>

Figure pat00330
Figure pat00330

시간 t까지 실행된 애플리케이션 기록

Figure pat00331
를 통해 시간 t+1의 애플리케이션
Figure pat00332
의 실행 확률을 알아내기 위해, 실행 확률은
Figure pat00333
로 나타낼 수 있다. 가장 실행 가능성이 낮은 애플리케이션을 선택하기 위해, 시간 t에서 실행된 애플리케이션
Figure pat00334
를 LSTM 모델의 입력
Figure pat00335
로 변환하는 식과, 상기 수식 1 내지 수식 6에 정의된 LSTM 모델에 따른 연산을 수행하는 함수 lstm(
Figure pat00336
)를 상기 수식 7과 같이 정의할 수 있다.Record applications executed up to time t
Figure pat00331
Application of time t+1 through
Figure pat00332
To find the probability of execution, the probability of execution is
Figure pat00333
Can be represented as Application selected at time t to select the least viable application
Figure pat00334
LSTM model input
Figure pat00335
Function to perform the calculation according to the LSTM model defined in Equations 1 to 6 and the equation to convert to lstm(
Figure pat00336
) May be defined as Equation 7 above.

또한, lstm(

Figure pat00337
)의 출력을
Figure pat00338
에 대한 확률값으로 변환하기 위해, 상기 수식 8과 같이 Softmax 함수를 이용할 수 있다.Also, lstm(
Figure pat00337
) Output
Figure pat00338
In order to convert to a probability value for, a Softmax function can be used as in Equation 8 above.

Context Management의 Application Usage Predictor(150)은 상기 학습된 LSTM Network를 이용하여 사용자가 다음에 실행하게 될 애플리케이션에 대한 확률을 예측하고, 매 예측마다 Android Kernel(200)의 Process Management(210)에서 관리하는 프로세스 정보에 실행 확률을 기록해둘 수 있다.The Application Usage Predictor 150 of Context Management predicts the probability of the application to be executed by the user next using the learned LSTM Network, and is managed by the Process Management 210 of the Android Kernel 200 for each prediction. The probability of execution can be recorded in the process information.

이 때 Context Management의 Application Usage Predictor(150)은 상기 학습된 LSTM Network를 이용하는 것뿐만 아니라, Activity/Process Context Generator(110)로부터 어떤 애플리케이션이 실행되었는지에 대한 정보를 추가로 전달받아 이를 이용할 수 있다.At this time, the Application Usage Predictor 150 of Context Management can use the received LSTM Network as well as receive additional information about which application has been executed from the Activity/Process Context Generator 110.

Application Usage Predictor(150)는 하기 표 3의 형식으로 스토리징 저장된 애플리케이션 매핑 테이블을 읽은 후, 하기 표 4와 같이 AppInfo라 부르는 애플리케이션-프로세스 정보의 리스트를 생성할 수 있다.The Application Usage Predictor 150 may generate a list of application-process information called AppInfo as shown in Table 4 below after reading the application mapping table stored in the form of Table 3 below.

<표 3><Table 3>

Figure pat00339
Figure pat00339

(NAME: 애플리케이션의 전체 이름, ID: 애플리케이션의 고유ID)(NAME: Full name of the application, ID: Unique ID of the application)

<표 4><Table 4>

Figure pat00340
Figure pat00340

(name: 애플리케이션의 전체 이름, id: 애플리케이션의 고유 ID, prob: 애플리케이션이 실행될 확률, pids: 애플리케이션에 속한 프로세스들의 pid 리스트)(name: full name of the application, id: unique ID of the application, prob: probability of the application running, pids: list of pids of processes belonging to the application)

안드로이드와 같은 모바일 운영체제는 애플리케이션 사용 시점과 프로세스 생성 시점이 다르다. 이에, Application Usage Predictor(150)에서는 Activity/Process Context Generator(110)로부터 어떤 애플리케이션이 언제 실행되었는지에 대한 정보와, 어떤 애플리케이션의 프로세스가 생성되었는지에 대한 정보를 받을 수 있다.Mobile operating systems, such as Android, differ in the point of application use and process creation. Accordingly, the Application Usage Predictor 150 may receive information about when an application was executed and when and which application process was created from the Activity/Process Context Generator 110.

하기 알고리즘 1은 어떤 애플리케이션이 실행되었는지에 대한 정보를 받을 경우, 수행되는 작업을 나타낼 수 있다.Algorithm 1 below may indicate a task to be performed when receiving information about which application is executed.

<알고리즘 1><Algorithm 1>

Figure pat00341
Figure pat00341

Line 2-3과 같이 LSTM Network를 호출하여 애플리케이션들이 다음에 실행 될 확률 값을 얻고, line 4-5와 같이 AppInfo 리스트를 순회하면서 prob 필드에 값을 저장할 수 있다. 만약 애플리케이션의 프로세스가 이미 생성되어 있으면 File System Management를 통해 line 6-14와 같이 pids를 순회하면서 애플리케이션의 확률 값을 커널의 프로세스 자료구조에 기록할 수 있다. Android Kernel에서는 Floating Point 연산을 지원하지 않기 때문에 line 10과 같이 확률 값을 Integer로 변환하여 기록할 수 있다.By calling LSTM Network as in Line 2-3, you can get the probability value that applications will be executed next, and save the value in the prob field while traversing the AppInfo list as in Line 4-5. If the process of the application has already been created, it is possible to record the probability value of the application in the process data structure of the kernel while traversing pids as shown in line 6-14 through File System Management. Since Android Kernel does not support floating point operation, probability value can be converted to Integer and recorded as in line 10.

하기 알고리즘 2는 어떤 애플리케이션의 프로세스가 생성되었는지에 대한 정보를 받을 경우, 수행되는 작업을 나타낼 수 있다.Algorithm 2 below may indicate an operation to be performed when receiving information about which application process is generated.

<알고리즘 2><Algorithm 2>

Figure pat00342
Figure pat00342

알고리즘 2는 어떤 애플리케이션의 프로세스가 생성되었는지에 대한 정보를 받을 경우 수행되는 작업을 나타낼 수 있다. Line 2와 같이 프로세스가 생성되면 생성된 프로세스의 pid를 해당 애플리케이션의 AppInfo의 pids 리스트에 추가하고 확률 값을 커널의 프로세스 자료구조에 기록할 수 있다.Algorithm 2 may represent an operation performed when receiving information about which application process is created. When a process is created as in Line 2, the pid of the created process can be added to the list of pids of AppInfo of the application and the probability value can be recorded in the process data structure of the kernel.

Android Kernel(200)은 File System Management, 실행확률 저장부에 해당하는 Process Management(210), 메모리 확보부에 해당하는 Memory Management(230)를 포함할 수 있다. 이 때 Memory Management(230)은 Memory Reclaimer을 포함할 수 있다.The Android Kernel 200 may include File System Management, Process Management 210 corresponding to the execution probability storage unit, and Memory Management 230 corresponding to the memory securing unit. At this time, the Memory Management 230 may include a Memory Reclaimer.

File System Management은 Android Kernel 상단에서 실행되는 Application Usage Predictor(150)의 애플리케이션 실행 확률 정보를 애플리케이션에 소속된 각 프로세스 정보에 반영하기 위한 정보 전달 인터페이스를 제공할 수 있다. 정보 전달 인터페이스는 procfs를 통해 구성될 수 있다. procfs는 유닉스 계열 운영 체제에서 프로세스 정보와 같은 시스템 정보를 파일 구조로 보여주며, 파일 입출력 인터페이스를 통해 런타임에 시스템 파라미터를 바꾸는 데에 사용될 수 있다. 본 발명에서는 Application Usage Predictor(150)가 procfs를 통해 애플리케이션의 실행 확률을 Process Management(210)에서 관리하는 프로세스 자료구조에 기록할 수 있다.File System Management may provide an information delivery interface for reflecting application execution probability information of the Application Usage Predictor 150 executed on the top of Android Kernel to each process information belonging to the application. The information delivery interface can be configured through procfs. procfs displays system information, such as process information, in a file structure on Unix-like operating systems, and can be used to change system parameters at runtime through the file input/output interface. In the present invention, the application usage predictor 150 may record an execution probability of an application through procfs in a process data structure managed by Process Management 210.

Process Management(210)는 Android Kernel(200)의 프로세스 자료구조를 통해 프로세스 정보를 관리할 수 있다.Process Management 210 can manage process information through the process data structure of Android Kernel 200.

<표 5>Table 5

Figure pat00343
Figure pat00343

프로세스가 속한 애플리케이션의 실행 확률 값을 기록한 형태는 상기 표 5로서, 이는 prob 필드가 추가된 형태라 할 수 있다. 시스템 프로세스는 종료 시 시스템 크래시 등의 문제가 발생할 수 있기 때문에, Application Usage Predictor(150)를 통해 계산되는 실행 확률 값은 사용자가 직접 실행한 애플리케이션에 소속된 프로세스들에만 적용할 수 있다. 이를 위해 prob을 임의의 음수값으로 초기화하여 시스템 프로세스들을 메인 메모리 우선 회수 대상에서 제외한다.The form in which the execution probability value of the application to which the process belongs is recorded in Table 5 above, may be referred to as a form in which a prob field is added. Since the system process may cause a problem such as a system crash at the end, the execution probability value calculated through the Application Usage Predictor 150 can be applied only to processes belonging to an application directly executed by the user. To this end, prob is initialized to an arbitrary negative value to exclude system processes from main memory priority recall.

Memory Management(230)의 Memory Reclaimer은 메인 메모리 부족 상황이 발생할 경우, 프로세스들에 기록된 실행 확률 값을 탐색하여, 가장 낮은 실행 확률 값을 가진 프로세스를 찾아 종료하고 메모리 공간을 확보할 수 있다. 이는 실행될 확률이 높은 애플리케이션이 메모리에서 제거되지 않고, 바로 재개되는 빈도를 증가시킬 수 있는 이점을 가진다.The memory reclaimer of the memory management 230 may search for the execution probability value recorded in the processes when the main memory shortage situation occurs, find the process having the lowest execution probability value, terminate it, and secure memory space. This has the advantage of increasing the frequency with which applications that are likely to run are not removed from memory and resume immediately.

Memory Management(230)은 메인 메모리 부족 상황 발생 시, Memory Reclaimer를 호출할 수 있다. 하기 알고리즘 3은 Memory Reclaimer에서 수행되는 메모리 회수 작업을 나타낸 알고리즘이라 할 수 있다.The Memory Management 230 may call a Memory Reclaimer when a main memory shortage occurs. The following algorithm 3 may be referred to as an algorithm showing a memory recovery operation performed in the Memory Reclaimer.

<알고리즘 3><Algorithm 3>

Figure pat00344
Figure pat00344

Line 2-3에서는 확률 값이 최소가 되는 프로세스를 가리키기 위한 변수를 초기화할 수 있다. Line 4에서 Process Management의 프로세스 리스트를 순회하고, line 5-8에서와 같이 메인 메모리 우선 회수 대상이 되는 프로세스 중 확률 값이 가장 낮은 프로세스를 선택할 수 있다.Line 2-3 allows you to initialize a variable to point to the process where the probability value is minimal. In Line 4, it is possible to traverse the process list of Process Management and select the process with the lowest probability value among the processes subject to the main memory priority recovery as in lines 5-8.

이와 같이 본 발명의 실시예에 따른 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템 및 방법은, 실제 안드로이드 스마트폰에 구현하여 모바일 애플리케이션의 실행 시간과 애플리케이션이 실행되는 특성을 수집 및 분석할 수 있다. 이의 성능 측정을 위해 사용할 타겟 기기로 하기 표 6과 같이 Qualcomm Snapdragon 810 프로세서가 장착된 Google Nexus 6P 스마트폰을 사용할 수 있다.As described above, the memory management system and method based on the application usage pattern analysis according to the embodiment of the present invention may be implemented in an actual Android smartphone to collect and analyze the execution time of the mobile application and characteristics of the application execution. As a target device to use for measuring its performance, a Google Nexus 6P smartphone equipped with a Qualcomm Snapdragon 810 processor can be used as shown in Table 6 below.

<표 6>Table 6.

Figure pat00345
Figure pat00345

애플리케이션의 실행에는 Cold Launch, Warm Launch, Hot Launch가 존재한다. Hot Launch는 애플리케이션 실행에 필요한 모든 프로세스가 이미 생성되어 있어 새로 프로세스를 생성하지 않아도 되는 경우이다. Warm Launch는 애플리케이션 실행을 위한 프로세스가 일부 실행되고 있지만 하나 이상의 프로세스를 새로 생성해야 하는 경우이다. Cold Launch의 경우 애플리케이션 실행을 위한 프로세스가 생성되지 않아 모든 필요한 프로세스들을 새롭게 생성하는 경우이다.Cold Launch, Warm Launch, and Hot Launch exist in application execution. Hot Launch is a case in which all processes required to run an application have already been created and no new process needs to be created. In the case of Warm Launch, some processes for application execution are running, but one or more processes need to be newly created. In the case of Cold Launch, this is a case where all necessary processes are newly created because a process for running an application is not created.

성능 측정 데이터로 LiveLab Research에서 수집한 실제 사용자의 애플리케이션 사용 기록에서 무작위로 선정한 사용자의 데이터를 이용하였다. 애플리케이션 사용 기록에서 총 애플리케이션의 종류는 35종이었고, 이는 하기 표 7과 같다.As the performance measurement data, randomly selected user data was used from the application usage records of real users collected by LiveLab Research. The total number of application types in the application usage record was 35, as shown in Table 7 below.

<표 7>Table 7

Figure pat00346
Figure pat00346

학습결과의 교차검증을 위하여 10-fold Cross Validation을 사용하여 총 5,000개의 사용 기록 중에서 90%(4500개)을 학습에 이용하고 10%(500개)를 테스트에 이용하였다. 안드로이드에서는 Cold Launch 및 Warm Launch에 대해 애플리케이션 실행 시간 정보를 제공하는데, Hot Launch에 대해서는 실행 시간을 제공하지 않는다. 따라서 전체 테스트 데이터를 기존 기법과, 본 발명의 기법을 이용해 Cold 및 Warm Launch 시의 애플리케이션 누적 실행 시간의 평균값을 비교하였다. 또한 Activity Manager Service를 수정해 각 애플리케이션 실행 타입 별 횟수를 측정해 그 평균값을 비교하였다. 기존 메모리 관리 시스템은 기본 안드로이드 플랫폼과 그 커널의 소스코드를 빌드한 것으로 나타내기 위해 Android+ZRAM+LRU로 표기하였으며, 본 발명의 메모리 관리 시스템은 Android+ZRAM+AMMS로 표기하였다.For cross-validation of learning results, 90% (4500) were used for learning and 10% (500) were used for testing out of a total of 5,000 usage records using 10-fold cross validation. Android provides application execution time information for Cold Launch and Warm Launch, but does not provide execution time for Hot Launch. Therefore, the average value of the cumulative execution time of applications during Cold and Warm Launch was compared using the existing technique and the technique of the present invention. In addition, the Activity Manager Service was modified to measure the number of times for each application execution type, and the average value was compared. The existing memory management system was designated as Android+ZRAM+LRU to indicate that the source code of the basic Android platform and its kernel was built, and the memory management system of the present invention was designated as Android+ZRAM+AMMS.

먼저 애플리케이션 실행 예측 성능을 알아보기 위해 애플리케이션 테스트 데이터 500개를 순서대로 실행하면서 Hot Launch, Warm Launch, Cold Launch 발생한 횟수를 기존 시스템과 제안하는 시스템에 대해 측정하였다. 500개 애플리케이션 사용 기록을 실행할 때 발생하는 애플리케이션 실행 종류를 누적하여 평균을 계산한 결과는 하기 표 8과 같다.First, in order to check the performance of application execution prediction, 500 application test data were executed in order, and the number of occurrences of Hot Launch, Warm Launch, and Cold Launch were measured against the existing system and the proposed system. The results of calculating the average by accumulating the types of application execution that occur when executing 500 application usage records are shown in Table 8 below.

<표 8>Table 8

Figure pat00347
Figure pat00347

Android+ZRAM+AMMS의 애플리케이션 실행에서 가장 오래 걸리는 Cold Launch의 평균 횟수가 76.4회로, Android+ZRAM+LRU의 85회 대비 약 10% 감소하였다. 또한 일부 애플리케이션 데이터를 메모리에 불러오는 Warm Launch의 경우에서도 14.4회에서 12.8회로 10%가 감소하였다.The average number of Cold Launches, which took the longest to run Android+ZRAM+AMMS applications, was 76.4, about 10% less than 85 of Android+ZRAM+LRU. In addition, in the case of Warm Launch, which loads some application data into memory, the decrease was 10% from 14.4 to 12.8.

본 발명의 시스템이 기존 시스템보다 애플리케이션이 실행될 확률을 기존 시스템보다 정확하게 예측하여, 실행될 확률이 높은 애플리케이션이 메인 메모리에서 바로 실행되는 Hot Launch 횟수가 증가하였음을 확인할 수 있다.The system of the present invention accurately predicts the probability that the application will be executed than the existing system than the existing system, and it can be confirmed that the number of hot launches in which the application with a high probability of execution is directly executed in the main memory has increased.

다음으로 기존 시스템과 본 발명의 시스템에 대한 애플리케이션 실행 예측 성능이 애플리케이션 실행 시간에 미치는 영향을 알아보기 위해 애플리케이션이 실행되는 시간을 측정하였다. 애플리케이션 실행 시간은 애플리케이션의 로딩, 프로세스 생성, 액티비티 생성을 한 이후 화면에 View를 그리는 시간을 말한다. 애플리케이션의 실행 시간은 안드로이드 프레임워크에서 제공하는 실행 시간 측정 도구를 이용하였다.Next, the application execution time was measured to determine the effect of the application execution prediction performance on the existing system and the system of the present invention on the application execution time. Application execution time refers to the time to draw a view on the screen after application loading, process creation, or activity creation. The execution time of the application was performed using the execution time measurement tool provided by the Android framework.

실행 시간 측정 도구는 Cold Launch 및 Warm Launch에 대해서만 실행 시간을 제공하기 때문에 애플리케이션 전체가 메모리에 캐시되어 바로 실행이 되는 Hot Launch의 경우는 실행 시간을 측정하지 않았다. 애플리케이션 테스트 데이터 500개를 순서대로 실행하여 Cold Launch와 Warm Launch에 대해 실행 시간을 누적해 평균을 계산한 결과는 하기 표 9와 같다.Since the execution time measurement tool provides execution time only for Cold Launch and Warm Launch, in the case of Hot Launch, where the entire application is cached in memory and executed immediately, the execution time was not measured. The results of calculating the average by accumulating execution times for Cold Launch and Warm Launch by running 500 application test data in order are shown in Table 9 below.

<표 9>Table 9

Figure pat00348
Figure pat00348

Warm Launch의 평균 누적 시간은 기존 시스템의 7095.8ms에서 본 발명 시스템의 6302.8ms로 약 11% 감소하였다. Cold Launch는 기존 시스템의 106128.6ms에서 본 발명 시스템의 86810ms로 약 18% 감소하였다.The average cumulative time of Warm Launch was reduced by about 11% from 7095.8 ms of the existing system to 6302.8 ms of the present system. Cold Launch was reduced by about 18% from 106128.6ms of the existing system to 86810ms of the present system.

Warm Launch와 Cold Launch의 누적 실행 시간의 평균은 본 발명 시스템이 기존 시스템 대비 약 17% 감소하였다. Warm Launch와 Cold Launch의 실행 시간이 Hot Launch보다 길기 때문에, Warm Launch와 Cold Launch의 실행 시간이 모두 감소한다는 것은 전체 애플리케이션의 평균 실행 시간이 감소한다는 것을 나타낸다.The average of the cumulative execution time of Warm Launch and Cold Launch is about 17% lower than that of the existing system. Since the execution time of Warm Launch and Cold Launch is longer than that of Hot Launch, the decrease of both Warm Launch and Cold Launch execution times indicates that the average execution time of the entire application decreases.

본 발명은 어떤 애플리케이션의 실행될 확률을 분석하여 메모리 관리에 적용하기 때문에, 메모리 부족상황에서 실행 확률이 낮은 애플리케이션의 메모리를 우선 회수함으로써 실행될 확률이 높은 애플리케이션의 실행 속도를 평균적으로 향상시킬 수 있다.Since the present invention analyzes the probability of execution of an application and applies it to memory management, it is possible to averagely improve the execution speed of an application having a high probability of being executed by first retrieving the memory of the application having a low probability of execution in a memory shortage situation.

스마트폰의 하드웨어 성능이 높아지고, 사용자들이 고사양을 요구하는 응용 프로그램들을 스마트폰에 설치하여 사용하면서 많은 양의 메인 메모리가 필요하게 되었다. 이 문제를 해결하고자 기존에는, 보다 효율적으로 메인 메모리를 관리하는 ZRAM 스왑 기법이나 보조 저장장치를 활용하는 스왑 기법 등이 개발된 바 있다.The hardware performance of smartphones has increased, and a large amount of main memory is required as users install and use applications that require high specifications on their smartphones. In order to solve this problem, a ZRAM swap technique that manages main memory more efficiently or a swap technique that utilizes auxiliary storage devices has been developed.

다만, ZRAM은 메인 메모리를 사용하기 때문에 크기를 확장하는데 한계가 있으며, 보조 기억장치를 스왑 공간으로 사용하는 전통적인 스왑핑은 반응 시간이 오래 걸리는 문제와, Nand Flash 메모리의 Wear-Out 문제로 스마트폰에는 적용되지 못하는 한계점을 안고 있다. 또한, 기존 LRU 방식의 메모리 관리 정책은 사용자가 사용하는 애플리케이션의 종류가 많아지면서 그 효과가 저하된다.However, since ZRAM uses main memory, there is a limit to expand the size, and traditional swapping using auxiliary storage as a swap space takes a long time to respond and smartphones suffer from wear-out of Nand Flash memory. There are limitations that cannot be applied to. In addition, the effect of the existing LRU method memory management policy decreases as the number of applications used by the user increases.

이러한 문제를 해결하기 위해 본 발명의 메모리 관리 시스템은 사용자가 애플리케이션을 사용하는 정보를 수집하여 학습하고, 애플리케이션이 다음에 실행될 확률을 예측하여 메모리를 관리할 수 있다. 실행 확률 정보를 분석한 뒤 메모리 부족 상황에서 가장 실행 확률이 낮은 애플리케이션부터 메모리 공간에서 제거하기 때문에 자주 사용되는 애플리케이션이 메모리에 최대한 남아 있고 평균 실행 시간을 감소시키는 효과가 있다. 실제 스마트폰 사용자가 사용한 기록을 바탕으로 성능 시험을 수행한 결과, 본 발명은 기존 스마트폰의 메모리 관리 기술에 비해 사용자가 실행할 확률이 높은 애플리케이션들이 메모리 공간에 더 오래 남아서 재개되는 횟수가 약 10% 증가하였고, 애플리케이션의 평균 실행 시간을 약 17% 감소시킨 것을 확인할 수 있다.To solve this problem, the memory management system of the present invention may collect and learn information that a user uses an application, and manage memory by predicting a probability that an application will be executed next. After analyzing the execution probability information, since the application with the lowest execution probability is removed from the memory space in a memory shortage situation, frequently used applications remain in memory as much as possible and have an effect of reducing the average execution time. As a result of performing a performance test based on the records used by the actual smart phone users, the present invention is about 10% of the number of times that applications that are more likely to be executed by users remain in the memory space for longer than the existing smart phone memory management technology and resume. It can be seen that it increased, and the average execution time of the application was reduced by about 17%.

이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다. 따라서 상기 기재 내용은 다음 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.Although the preferred embodiments of the present invention have been described above, the present invention can use various changes, modifications, and equivalents. It is clear that the present invention can be equally applied by appropriately modifying the above embodiments. Therefore, the above description is not intended to limit the scope of the present invention as defined by the following claims.

100 : 프레임워크 모듈 (Android Framework)
110 : 실행정보 생성부 (Activity/Process Context Generator)
130 : 네트워크 학습부 (Application Usage Trainer)
150 : 실행확률 예측부 (Application Usage Predictor)
200 : 커널 모듈 (Android Kernel)
210 : 실행확률 저장부 (Process Management)
230 : 메모리 확보부 (Memory Management)
100: Framework module (Android Framework)
110: execution information generator (Activity/Process Context Generator)
130: Network Usage Department (Application Usage Trainer)
150: execution probability prediction unit (Application Usage Predictor)
200: kernel module (Android Kernel)
210: execution probability storage (Process Management)
230: Memory Management (Memory Management)

Claims (12)

적어도 하나 이상의 애플리케이션이 언제 실행되었는지에 대한 실행정보를 생성하고, 상기 생성된 실행정보로 LSTM(Long Short-Term Memory) 네트워크를 학습시켜 상기 적어도 하나 이상의 애플리케이션 각각에 대한 실행확률을 예측하는 프레임워크 모듈; 및
상기 예측된 실행확률에 기초하여 애플리케이션의 실행확률이 낮은 순으로 애플리케이션을 종료하여 메모리를 확보하는 커널 모듈;을 포함하는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템.
A framework module that generates execution information on when at least one or more applications are executed, and predicts an execution probability for each of the at least one application by learning a long short-term memory (LSTM) network with the generated execution information ; And
A memory management system based on application usage pattern analysis, including; a kernel module that secures memory by terminating the application in the order of low execution probability of the application based on the predicted execution probability.
제 1 항에 있어서, 상기 프레임워크 모듈은,
적어도 하나 이상의 애플리케이션이 언제 실행되었는지에 대한 실행정보를 생성하는 실행정보 생성부;
상기 생성된 실행정보를 LSTM(Long Short-Term Memory) 네트워크에 입력하여 상기 적어도 하나 이상의 애플리케이션의 사용 패턴을 학습하는 네트워크 학습부; 및
상기 학습된 사용 패턴에 기초하여 상기 적어도 하나 이상의 애플리케이션 각각에 대한 실행확률을 예측하는 실행확률 예측부;를 포함하는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템.
The method of claim 1, wherein the framework module,
An execution information generation unit that generates execution information on when at least one application is executed;
A network learning unit that inputs the generated execution information into an LSTM (Long Short-Term Memory) network to learn a usage pattern of the at least one application; And
And an execution probability predicting unit for predicting an execution probability for each of the at least one application based on the learned usage pattern.
제 1 항에 있어서, 상기 커널 모듈은,
상기 예측된 실행확률을 저장하는 실행확률 저장부; 및
기 설정된 메모리의 가용기준치를 초과할 경우, 상기 저장된 실행확률에 기초하여 애플리케이션 실행확률이 낮은 순으로 애플리케이션을 종료하여 메모리를 확보하는 메모리 확보부;를 포함하는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템.
The method of claim 1, wherein the kernel module,
An execution probability storage unit for storing the predicted execution probability; And
Memory management system based on the application usage pattern analysis, including; if the exceeding the available reference value of the preset memory, a memory securing unit for securing the memory by terminating the application in the order of low application execution probability based on the stored execution probability.
제 3 항에 있어서, 상기 실행확률 저장부에서 저장하는 실행확률은,
상기 실행확률 예측부에 의해 실행확률을 예측할 때마다 업데이트되는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템.
According to claim 3, The execution probability stored in the execution probability storage unit,
A memory management system based on application usage pattern analysis that is updated whenever the execution probability is predicted by the execution probability prediction unit.
제 3 항에 있어서, 상기 메모리 확보부는,
상기 기 설정된 메모리의 가용기준치보다 작을 때까지 애플리케이션을 종료하여 메모리를 확보하는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템.
The method of claim 3, wherein the memory securing unit,
A memory management system based on application usage pattern analysis that secures memory by terminating the application until it is less than the available reference value of the preset memory.
제 2 항에 있어서, 상기 LSTM 네트워크는,
아래 수식 1 내지 수식 6으로 정의되는
Figure pat00349
(시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수),
Figure pat00350
(시간 t에서
Figure pat00351
에 저장될 데이터를 생성하는 입력 게이트 함수),
Figure pat00352
(시간 t에서
Figure pat00353
에 저장될 데이터를 생성하는 입력 게이트 함수),
Figure pat00354
(시간 t에서 LSTM에 데이터를 저장하는 메모리 셀),
Figure pat00355
(시간 t에서
Figure pat00356
에 저장될 데이터를 선택하는 입력 게이트 함수),
Figure pat00357
(시간 t에서 LSTM의 출력 벡터)로 구성하는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템.
<수식 1>
Figure pat00358

(
Figure pat00359
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00360
: 시그모이드 활성화 함수,
Figure pat00361
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00362
:
Figure pat00363
함수에서 각
Figure pat00364
에 가중되는 벡터,
Figure pat00365
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00366
:
Figure pat00367
함수에서 각
Figure pat00368
에 가중되는 벡터,
Figure pat00369
:
Figure pat00370
함수를 위한 바이어스 상수)
<수식 2>
Figure pat00371

(
Figure pat00372
: 시간 t에서
Figure pat00373
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00374
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00375
:
Figure pat00376
함수에서 각
Figure pat00377
에 가중되는 벡터,
Figure pat00378
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00379
:
Figure pat00380
함수에서 각
Figure pat00381
에 가중되는 벡터,
Figure pat00382
:
Figure pat00383
함수를 위한 바이어스 상수)
<수식 3>
Figure pat00384

(
Figure pat00385
: 시간 t에서
Figure pat00386
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00387
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00388
:
Figure pat00389
함수에서 각
Figure pat00390
에 가중되는 벡터,
Figure pat00391
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00392
:
Figure pat00393
함수에서 각
Figure pat00394
에 가중되는 벡터,
Figure pat00395
:
Figure pat00396
함수를 위한 바이어스 상수)
<수식 4>
Figure pat00397

(
Figure pat00398
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀,
Figure pat00399
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00400
: 시간 t에서
Figure pat00401
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00402
: 시간 t에서
Figure pat00403
에 저장될 데이터를 생성하는 입력 게이트 함수)
<수식 5>
Figure pat00404

(
Figure pat00405
: 시간 t에서
Figure pat00406
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00407
: 시그모이드 활성화 함수,
Figure pat00408
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00409
:
Figure pat00410
함수에서 각
Figure pat00411
에 가중되는 벡터,
Figure pat00412
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00413
:
Figure pat00414
함수에서 각
Figure pat00415
에 가중되는 벡터,
Figure pat00416
:
Figure pat00417
함수를 위한 바이어스 상수)
<수식 6>
Figure pat00418

(
Figure pat00419
: 시간 t에서 LSTM의 출력 벡터,
Figure pat00420
: 시간 t에서
Figure pat00421
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00422
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀)
The method of claim 2, wherein the LSTM network,
Defined by Equations 1 to 6 below
Figure pat00349
(Forget gate function that determines the amount of data to be discarded among the stored data at time t),
Figure pat00350
(At time t
Figure pat00351
Input gate function to generate data to be stored in),
Figure pat00352
(At time t
Figure pat00353
Input gate function to generate data to be stored in),
Figure pat00354
(Memory cell storing data in LSTM at time t),
Figure pat00355
(At time t
Figure pat00356
Input gate function to select the data to be stored in)
Figure pat00357
Memory management system based on application usage pattern analysis consisting of (output vector of LSTM at time t).
<Equation 1>
Figure pat00358

(
Figure pat00359
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00360
: Sigmoid activation function,
Figure pat00361
: Input vector input to LSTM at time t,
Figure pat00362
:
Figure pat00363
Each in function
Figure pat00364
Vector weighted to,
Figure pat00365
: LSTM output vector at time t-1,
Figure pat00366
:
Figure pat00367
Each in function
Figure pat00368
Vector weighted to,
Figure pat00369
:
Figure pat00370
Bias constant for function)
<Equation 2>
Figure pat00371

(
Figure pat00372
: At time t
Figure pat00373
Input gate function to generate data to be stored in,
Figure pat00374
: Input vector input to LSTM at time t,
Figure pat00375
:
Figure pat00376
Each in function
Figure pat00377
Vector weighted to,
Figure pat00378
: LSTM output vector at time t-1,
Figure pat00379
:
Figure pat00380
Each in function
Figure pat00381
Vector weighted to,
Figure pat00382
:
Figure pat00383
Bias constant for function)
<Equation 3>
Figure pat00384

(
Figure pat00385
: At time t
Figure pat00386
Input gate function to generate data to be stored in,
Figure pat00387
: Input vector input to LSTM at time t,
Figure pat00388
:
Figure pat00389
Each in function
Figure pat00390
Vector weighted to,
Figure pat00391
: LSTM output vector at time t-1,
Figure pat00392
:
Figure pat00393
Each in function
Figure pat00394
Vector weighted to,
Figure pat00395
:
Figure pat00396
Bias constant for function)
<Equation 4>
Figure pat00397

(
Figure pat00398
: Memory cell that stores data in LSTM at time t,
Figure pat00399
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00400
: At time t
Figure pat00401
Input gate function to generate data to be stored in,
Figure pat00402
: At time t
Figure pat00403
Input gate function to generate data to be stored in)
<Equation 5>
Figure pat00404

(
Figure pat00405
: At time t
Figure pat00406
Input gate function to select data to be stored in,
Figure pat00407
: Sigmoid activation function,
Figure pat00408
: Input vector input to LSTM at time t,
Figure pat00409
:
Figure pat00410
Each in function
Figure pat00411
Vector weighted to,
Figure pat00412
: LSTM output vector at time t-1,
Figure pat00413
:
Figure pat00414
Each in function
Figure pat00415
Vector weighted to,
Figure pat00416
:
Figure pat00417
Bias constant for function)
<Equation 6>
Figure pat00418

(
Figure pat00419
: Output vector of LSTM at time t,
Figure pat00420
: At time t
Figure pat00421
Input gate function to select data to be stored in,
Figure pat00422
: Memory cell storing data in LSTM at time t)
제 6 항에 있어서, 상기 실행확률 예측부는,
아래 수식 7 및 수식 8로 정의되는 실행확률 값 산출식을 통해 각 애플리케이션에 대한 실행확률 값을 산출하는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 시스템.
<수식 7>
Figure pat00423

(xt: 시간 t에서 실행된 애플리케이션 ui_t를 LSTM로 입력되는 입력벡터, ui: 애플리케이션, ht: xt에 의해 LSTM로부터 출력되는 출력벡터, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터
Figure pat00424
의 j번째 인덱스, m: 집합 U의 원소의 수)
<수식 8>
Figure pat00425

(
Figure pat00426
: 시간 t까지 실행된 애플리케이션 기록,
Figure pat00427
: 시간 t+1에서의 애플리케이션 ui의 실행확률 값, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터
Figure pat00428
의 j번째 인덱스, m: 집합 U의 원소의 수)
The method of claim 6, wherein the execution probability prediction unit,
A memory management system based on an application usage pattern analysis that calculates an execution probability value for each application through an execution probability value calculation formula defined by Equations 7 and 8 below.
<Equation 7>
Figure pat00423

(xt: input vector inputted to LSTM with application ui_t executed at time t, ui: application, ht: output vector outputted from LSTM by xt, i: application of execution at time t is the number of applications in set U Pointing index, j: vector
Figure pat00424
Jth index of m, number of elements in set U)
<Equation 8>
Figure pat00425

(
Figure pat00426
: Records the applications executed up to time t,
Figure pat00427
: The value of the execution probability of the application ui at time t+1, i: the index indicating the number of applications in the set U that are executed at time t, j: vector
Figure pat00428
Jth index of m, number of elements in set U)
실행정보 생성부에서 적어도 하나 이상의 애플리케이션이 언제 실행되었는지에 대한 실행정보를 생성하는 실행정보 생성단계;
네트워크 학습부에서 상기 생성된 실행정보를 LSTM(Long Short-Term Memory) 네트워크에 입력하여 상기 적어도 하나 이상의 애플리케이션의 사용 패턴을 학습하는 네트워크 학습단계;
실행확률 예측부에서 상기 학습된 사용 패턴에 기초하여 상기 적어도 하나 이상의 애플리케이션 각각에 대한 실행확률을 예측하는 실행확률 예측단계;
실행확률 저장부에서 상기 예측된 실행확률을 저장하는 실행확률 저장단계; 및
메모리 확보부에서 기 설정된 메모리의 가용기준치를 초과할 경우, 상기 저장된 실행확률에 기초하여 애플리케이션 실행확률이 낮은 순으로 애플리케이션을 종료하여 메모리를 확보하는 메모리 확보단계;를 포함하는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 방법.
An execution information generation step of generating execution information on when the at least one application is executed by the execution information generation unit;
A network learning step of learning the usage pattern of the at least one application by inputting the generated execution information into a long short-term memory (LSTM) network in a network learning unit;
An execution probability prediction step in which an execution probability prediction unit predicts an execution probability for each of the at least one application based on the learned usage pattern;
An execution probability storage step of storing the predicted execution probability in an execution probability storage unit; And
Based on the analysis of the application usage pattern, including: a memory securing step of securing the memory by terminating the application in the order of low application execution probability based on the stored execution probability, when the memory usage unit exceeds the preset usage standard of the memory; How to manage memory.
제 8 항에 있어서, 상기 실행확률 저장단계에서 저장하는 실행확률은,
상기 실행확률 예측단계에 의해 실행확률을 예측할 때마다 업데이트되는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 방법.
The execution probability stored in the execution probability storage step is 10.
A memory management method based on an application usage pattern analysis that is updated whenever the execution probability is predicted by the execution probability prediction step.
제 8 항에 있어서, 상기 메모리 확보단계는,
상기 기 설정된 메모리의 가용기준치보다 작을 때까지 애플리케이션을 종료하여 메모리를 확보하는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 방법.
The method of claim 8, wherein the step of securing the memory,
A memory management method based on an application usage pattern analysis that secures a memory by terminating an application until it is smaller than the available reference value of the preset memory.
제 8 항에 있어서, 상기 LSTM 네트워크는,
아래 수식 1 내지 수식 6으로 정의되는 (Forget Gate) ft, (Input Gate) gt 및 it, 메모리 셀 ct, (Output Gate) ot, 시간 t에서 LSTM로부터 출력되는 출력벡터 ht로 구성하는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 방법.
<수식 1>
Figure pat00429

(
Figure pat00430
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00431
: 시그모이드 활성화 함수,
Figure pat00432
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00433
:
Figure pat00434
함수에서 각
Figure pat00435
에 가중되는 벡터,
Figure pat00436
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00437
:
Figure pat00438
함수에서 각
Figure pat00439
에 가중되는 벡터,
Figure pat00440
:
Figure pat00441
함수를 위한 바이어스 상수)
<수식 2>
Figure pat00442

(
Figure pat00443
: 시간 t에서
Figure pat00444
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00445
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00446
:
Figure pat00447
함수에서 각
Figure pat00448
에 가중되는 벡터,
Figure pat00449
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00450
:
Figure pat00451
함수에서 각
Figure pat00452
에 가중되는 벡터,
Figure pat00453
:
Figure pat00454
함수를 위한 바이어스 상수)
<수식 3>
Figure pat00455

(
Figure pat00456
: 시간 t에서
Figure pat00457
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00458
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00459
:
Figure pat00460
함수에서 각
Figure pat00461
에 가중되는 벡터,
Figure pat00462
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00463
:
Figure pat00464
함수에서 각
Figure pat00465
에 가중되는 벡터,
Figure pat00466
:
Figure pat00467
함수를 위한 바이어스 상수)
<수식 4>
Figure pat00468

(
Figure pat00469
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀,
Figure pat00470
: 시간 t에서 저장된 데이터 중 버릴 데이터의 양을 결정하는 망각 게이트 함수,
Figure pat00471
: 시간 t에서
Figure pat00472
에 저장될 데이터를 생성하는 입력 게이트 함수,
Figure pat00473
: 시간 t에서
Figure pat00474
에 저장될 데이터를 생성하는 입력 게이트 함수)
<수식 5>
Figure pat00475

(
Figure pat00476
: 시간 t에서
Figure pat00477
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00478
: 시그모이드 활성화 함수,
Figure pat00479
: 시간 t에서 LSTM에 입력되는 입력벡터,
Figure pat00480
:
Figure pat00481
함수에서 각
Figure pat00482
에 가중되는 벡터,
Figure pat00483
: 시간 t-1에서 LSTM의 출력 벡터,
Figure pat00484
:
Figure pat00485
함수에서 각
Figure pat00486
에 가중되는 벡터,
Figure pat00487
:
Figure pat00488
함수를 위한 바이어스 상수)
<수식 6>
Figure pat00489

(
Figure pat00490
: 시간 t에서 LSTM의 출력 벡터,
Figure pat00491
: 시간 t에서
Figure pat00492
에 저장될 데이터를 선택하는 입력 게이트 함수,
Figure pat00493
: 시간 t에서 LSTM에 데이터를 저장하는 메모리 셀)
The method of claim 8, wherein the LSTM network,
Application usage pattern analysis consisting of (Forget Gate) ft, (Input Gate) gt and it, memory cell ct, (Output Gate) ot, and output vector ht output from LSTM at time t defined by Equations 1 to 6 below Memory management method based on.
<Equation 1>
Figure pat00429

(
Figure pat00430
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00431
: Sigmoid activation function,
Figure pat00432
: Input vector input to LSTM at time t,
Figure pat00433
:
Figure pat00434
Each in function
Figure pat00435
Vector weighted to,
Figure pat00436
: LSTM output vector at time t-1,
Figure pat00437
:
Figure pat00438
Each in function
Figure pat00439
Vector weighted to,
Figure pat00440
:
Figure pat00441
Bias constant for function)
<Equation 2>
Figure pat00442

(
Figure pat00443
: At time t
Figure pat00444
Input gate function to generate data to be stored in,
Figure pat00445
: Input vector input to LSTM at time t,
Figure pat00446
:
Figure pat00447
Each in function
Figure pat00448
Vector weighted to,
Figure pat00449
: LSTM output vector at time t-1,
Figure pat00450
:
Figure pat00451
Each in function
Figure pat00452
Vector weighted to,
Figure pat00453
:
Figure pat00454
Bias constant for function)
<Equation 3>
Figure pat00455

(
Figure pat00456
: At time t
Figure pat00457
Input gate function to generate data to be stored in,
Figure pat00458
: Input vector input to LSTM at time t,
Figure pat00459
:
Figure pat00460
Each in function
Figure pat00461
Vector weighted to,
Figure pat00462
: LSTM output vector at time t-1,
Figure pat00463
:
Figure pat00464
Each in function
Figure pat00465
Vector weighted to,
Figure pat00466
:
Figure pat00467
Bias constant for function)
<Equation 4>
Figure pat00468

(
Figure pat00469
: Memory cell that stores data in LSTM at time t,
Figure pat00470
: Forgetting gate function which determines the amount of data to be discarded among the stored data at time t,
Figure pat00471
: At time t
Figure pat00472
Input gate function to generate data to be stored in,
Figure pat00473
: At time t
Figure pat00474
Input gate function to generate data to be stored in)
<Equation 5>
Figure pat00475

(
Figure pat00476
: At time t
Figure pat00477
Input gate function to select data to be stored in,
Figure pat00478
: Sigmoid activation function,
Figure pat00479
: Input vector input to LSTM at time t,
Figure pat00480
:
Figure pat00481
Each in function
Figure pat00482
Vector weighted to,
Figure pat00483
: LSTM output vector at time t-1,
Figure pat00484
:
Figure pat00485
Each in function
Figure pat00486
Vector weighted to,
Figure pat00487
:
Figure pat00488
Bias constant for function)
<Equation 6>
Figure pat00489

(
Figure pat00490
: Output vector of LSTM at time t,
Figure pat00491
: At time t
Figure pat00492
Input gate function to select data to be stored in,
Figure pat00493
: Memory cell storing data in LSTM at time t)
제 11 항에 있어서, 상기 실행확률 예측단계는,
아래 수식 7 및 수식 8로 정의되는 실행확률 값 산출식을 통해 각 애플리케이션에 대한 실행확률 값을 산출하는 애플리케이션 사용 패턴 분석에 기초한 메모리 관리 방법.
<수식 7>
Figure pat00494

(xt: 시간 t에서 실행된 애플리케이션 ui_t를 LSTM로 입력되는 입력벡터, ui: 애플리케이션, ht: xt에 의해 LSTM로부터 출력되는 출력벡터, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터
Figure pat00495
의 j번째 인덱스, m: 집합 U의 원소의 수)
<수식 8>
Figure pat00496

(
Figure pat00497
: 시간 t까지 실행된 애플리케이션 기록,
Figure pat00498
: 시간 t+1에서의 애플리케이션 ui의 실행확률 값, i: 시간 t에서 실행된 애플리케이션이 집합 U의 몇 번째 애플리케이션인지 가리키는 인덱스, j: 벡터
Figure pat00499
의 j번째 인덱스, m: 집합 U의 원소의 수)
The method of claim 11, wherein the predicting the probability of execution,
A memory management method based on an application usage pattern analysis that calculates an execution probability value for each application through an execution probability value calculation formula defined by Equations 7 and 8 below.
<Equation 7>
Figure pat00494

(xt: input vector inputted to LSTM with application ui_t executed at time t, ui: application, ht: output vector outputted from LSTM by xt, i: application of execution at time t is the number of applications in set U Pointing index, j: vector
Figure pat00495
Jth index of m, number of elements in set U)
<Equation 8>
Figure pat00496

(
Figure pat00497
: Records the applications executed up to time t,
Figure pat00498
: The value of the execution probability of the application ui at time t+1, i: the index indicating the number of applications in the set U that are executed at time t, j: vector
Figure pat00499
Jth index of m, number of elements in set U)
KR1020190170005A 2018-12-26 2019-12-18 Memory management system and method considering application usage patterns analysis KR102280298B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180169809 2018-12-26
KR1020180169809 2018-12-26

Publications (2)

Publication Number Publication Date
KR20200080164A true KR20200080164A (en) 2020-07-06
KR102280298B1 KR102280298B1 (en) 2021-07-22

Family

ID=71571272

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190170005A KR102280298B1 (en) 2018-12-26 2019-12-18 Memory management system and method considering application usage patterns analysis

Country Status (1)

Country Link
KR (1) KR102280298B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220011311A (en) * 2020-07-21 2022-01-28 (주)에스디생명공학 Composition for the Improvement and Protection of Liver Health Comprising Extract of Hibiscus Syriacus
WO2022154263A1 (en) * 2021-01-13 2022-07-21 삼성전자 주식회사 Electronic device and operation method of electronic device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100021725A (en) * 2008-08-18 2010-02-26 삼성전자주식회사 Apparatus and method for reallocation of memory in mobile communication terminal
KR20150108695A (en) * 2014-03-18 2015-09-30 삼성전자주식회사 Method and Apparatus for Managing Memory
US20160259557A1 (en) 2015-03-05 2016-09-08 Samsung Electronics Co., Ltd. Mobile device and data management method of the same
KR101897923B1 (en) * 2017-09-20 2018-10-31 한국전력공사 System for providing identify target object based on neural network learning model, method thereof, and computer readable storage having the same
KR101945117B1 (en) * 2017-08-14 2019-02-01 성균관대학교산학협력단 A smart device and method for managing memory thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100021725A (en) * 2008-08-18 2010-02-26 삼성전자주식회사 Apparatus and method for reallocation of memory in mobile communication terminal
KR20150108695A (en) * 2014-03-18 2015-09-30 삼성전자주식회사 Method and Apparatus for Managing Memory
US20160259557A1 (en) 2015-03-05 2016-09-08 Samsung Electronics Co., Ltd. Mobile device and data management method of the same
KR101945117B1 (en) * 2017-08-14 2019-02-01 성균관대학교산학협력단 A smart device and method for managing memory thereof
KR101897923B1 (en) * 2017-09-20 2018-10-31 한국전력공사 System for providing identify target object based on neural network learning model, method thereof, and computer readable storage having the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이상정. ‘텐서플로우 - 순환 신경망 2’. 순천향대학교 컴퓨터공학과, 2018.02.28., pp.1-21. (출처: http://cs2.sch.ac.kr/wordpress/wp-content/uploads/2018/02/18-8-%ED%85%90%EC%84%9C%ED%94%8C%EB%A1%9C%EC%9A%B0-RNN2.pdf)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220011311A (en) * 2020-07-21 2022-01-28 (주)에스디생명공학 Composition for the Improvement and Protection of Liver Health Comprising Extract of Hibiscus Syriacus
WO2022154263A1 (en) * 2021-01-13 2022-07-21 삼성전자 주식회사 Electronic device and operation method of electronic device

Also Published As

Publication number Publication date
KR102280298B1 (en) 2021-07-22

Similar Documents

Publication Publication Date Title
CN113010260B (en) Container number elastic expansion method and container number elastic expansion method system
US20190095250A1 (en) Application program management method and device
JP2017228086A (en) Machine learning management program, machine learning management method, and machine learning management device
US20070136402A1 (en) Automatic prediction of future out of memory exceptions in a garbage collected virtual machine
RU2651216C2 (en) Method, device and computer storage medium for data migration
US10049034B2 (en) Information processing apparatus
KR102280298B1 (en) Memory management system and method considering application usage patterns analysis
CN106802772B (en) Data recovery method and device and solid state disk
CN111274039B (en) Memory recycling method and device, storage medium and electronic equipment
CN112882830A (en) Video memory management method, video memory management device, model training device, electronic equipment and storage medium
JP2023139227A (en) Battery health state prediction method, device, and electronic instrument and readable storage medium
CN109582649A (en) A kind of metadata storing method, device, equipment and readable storage medium storing program for executing
Lee et al. Mobile memory management system based on user's application usage patterns
KR102118799B1 (en) Apparatus and Method for managing power of processor in a mobile terminal device
CN114996173A (en) Method and device for managing write operation of storage equipment
Tu et al. Unveiling energy efficiency in deep learning: Measurement, prediction, and scoring across edge devices
CN108628678B (en) Method, device and equipment for determining memory parameters
CN117235088A (en) Cache updating method, device, equipment, medium and platform of storage system
CN111694835B (en) Number section access method, system, equipment and storage medium of logistics electronic bill
CN114389953B (en) Method and system for dynamic expansion and contraction of Kubernetes container based on flow prediction
US20230100110A1 (en) Computing resource management method, electronic equipment and program product
US11494697B2 (en) Method of selecting a machine learning model for performance prediction based on versioning information
CN113296951A (en) Resource allocation scheme determination method and equipment
CN116107761B (en) Performance tuning method, system, electronic device and readable storage medium
Tasneem et al. Android memory optimization

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right