KR102302364B1 - 전자장치에서 메모리를 제어하는 방법 및 장치 - Google Patents

전자장치에서 메모리를 제어하는 방법 및 장치 Download PDF

Info

Publication number
KR102302364B1
KR102302364B1 KR1020140031242A KR20140031242A KR102302364B1 KR 102302364 B1 KR102302364 B1 KR 102302364B1 KR 1020140031242 A KR1020140031242 A KR 1020140031242A KR 20140031242 A KR20140031242 A KR 20140031242A KR 102302364 B1 KR102302364 B1 KR 102302364B1
Authority
KR
South Korea
Prior art keywords
memory
program
kernel
framework
execution
Prior art date
Application number
KR1020140031242A
Other languages
English (en)
Other versions
KR20150108257A (ko
Inventor
서선애
김상훈
김진수
신동준
Original Assignee
삼성전자 주식회사
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사, 성균관대학교산학협력단 filed Critical 삼성전자 주식회사
Priority to KR1020140031242A priority Critical patent/KR102302364B1/ko
Priority to US14/660,392 priority patent/US9588912B2/en
Publication of KR20150108257A publication Critical patent/KR20150108257A/ko
Application granted granted Critical
Publication of KR102302364B1 publication Critical patent/KR102302364B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Abstract

본 발명은 전자장치에서 메모리를 제어하는 방법 및 장치에 관한 것이다. 본 발명은 커널이os 프레임웍으로부터 프로그램 정보에 따른 중요도 및 메모리 사용량을 수신하는 과정과, 상기 커널이 상기 os 프레임웍으로부터 메모리 요청신호를 수신하는 과정과, 상기 커널이 상기 os 프레임웍으로부터 수신한 메모리 요청 신호에 대응하는 적어도 하나 이상의 프로그램을 실행 종료하는 과정을 포함하는 것을 특징으로 할 수 있다.
따라서 본 발명에 따르면 메모리를 제어하여 효율성을 향상시킬 수 있다.

Description

전자장치에서 메모리를 제어하는 방법 및 장치{METHOD AND APPARATUS FOR CONTROLLING MEMORY IN ELECTRONIC DEVICE}
본 발명의 다양한 실시 예는 os프레임웍과 커널을 통하여 메모리를 제어하는 방법 및 장치에 관한 것이다.
최근, 전자 장치는 정지 영상 또는 동영상 등의 영상 촬영, 음악 파일 또는 동영상 파일 등의 멀티미디어 파일 재생, 게임, 방송 수신/출력, 길 안내 서비스 등의 다양한 기능들을 수행할 수 있게 되었다. 이러한 전자장치는 다양한 기능을 동시에 실행할 수 있는 기능을 지원한다.
전자장치는 운영체제(OS, Operating System) 레벨에서 메모리(memory)를 관리할 수 있다. 예를 들어, 전자장치는 운영체제 레벨에서 최근 실행 순서에 기반하여 백그라운드 프로세스(background process)를 관리할 수 있다. 한 실시 예에 따라, 전자장치는 최근 실행 순서에 기반하여, 가장 최근에 실행된(예컨대, 19개)프로그램을 제외하고, 그 이전에 실행된 프로그램을 실행 종료하여 메모리를 관리할 수 있다.
전자장치는 메모리가 부족하면, 전자장치는 가장 낮은 중요도를 가지는 클래스에서 메모리를 가장 많이 사용하거나 가장 오래 전에 실행된 프로그램을 실행 종료한다. 하지만, 이와 같이 프로그램을 종료하면, 비효율적인 측면이 있다. 왜냐하면, 종료된 프로그램의 부팅시간, 실행 횟수, 실행 시간 등과 같은 사용자 경험을 고려하지 않기 때문이다. 예를 들어, 부팅 시간이 오래 걸리는 프로그램이 종료되면, 전자장치는 다시 프로그램을 시작하기 위하여 오랜 시간을 대기해야 한다.
따라서, 전자장치에서 필요한 메모리 확보를 위하여 백그라운드 프로그램 실행 종료 시, 사용자 경험 기반의 중요도에 따라 프로그램을 실행 종료하여 메모리를 제어하는 방법 및 장치를 제안한다.
상기와 같은 과제를 해결하기 위한 본 발명은 커널이os 프레임웍으로부터 프로그램 정보에 따른 중요도 및 메모리 사용량을 수신하는 과정과, 상기 커널이 상기 os 프레임웍으로부터 메모리 요청신호를 수신하는 과정과, 상기 커널이 상기 os 프레임웍으로부터 수신한 메모리 요청 신호에 대응하는 적어도 하나 이상의 프로그램을 실행 종료하는 과정을 포함하는 것을 특징으로 할 수 있다.
또한, 상기와 같은 과제를 해결하기 위한 본 발명은 프로그램 정보를 수집하고, 상기 프로그램 정보에 따라 중요도를 결정하고, 상기 중요도 및 프로그램 실행에 따른 메모리 사용량을 커널에 전송하고, 메모리 요청 감지 시, 커널에 메모리 요청 신호를 전송하는 os프레임웍과, 상기 os프레임웍으로부터 상기 중요도 및 상기 메모리 사용량을 수신하고, 상기 메모리 요청 신호 수신 시, 실행 종료할 상기 적어도 하나 이상의 프로그램을 선택하고, 선택한 프로그램을 종료하는 커널을 포함하는 것을 특징으로 할 수 있다.
본 발명의 실시 예에 따른 전자장치는 사용자 경험을 향상시킬 수 있으며, 프로그램 실행 종료에 따른 초기화 시, 소모되는 에너지를 최소화하여 시스템 전력효율을 개선할 수 있다. 또한 본 발명의 실시 예에 따른 전자장치는 프로그램이나 os 프레임웍에서 메모리를 요청하면, 프로그램을 종료시켜 메모리를 확보할 수 있다.
도 1은 본 발명의 실시 예에 따른 os 프레임웍과 커널을 포함하는 전자장치의 구성을 개략적으로 나타낸 도면.
도 2a 내지 도2c는 본 발명의 실시 예에 따른 os 프레임웍과 커널의 운용과정의 일 예를 도시하는 도면.
도 3는 본 발명의 실시 예에 따른 os 프레임웍과 커널의 운용과정을 나타낸 흐름도.
도 4은 본 발명의 실시 예에 따른 os 프레임웍의 운용과정을 나타낸 흐름도.
도 5는 본 발명의 실시 예에 따른 커널의 운용과정을 나타낸 흐름도.
이하, 첨부된 도면들을 참조하여 다양한 실시 예들을 상세히 설명한다. 이때, 첨부된 도면들에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 또한 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 하기의 설명에서는 본 발명의 다양한 실시 예들에 따른 동작을 이해하는데 필요한 부분만이 설명되며, 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
이하의 설명에서 ‘프로그램 정보’라는 용어는 전자장치가 실행하는 응용프로그램에 대한 정보를 의미하는 용어로 사용될 것이다. 프로그램 정보는 해당하는 프로그램의 부팅 시간(프로그램을 시작하여 실제 사용할 수 있을 때까지 걸린 시간), 메모리량, 프로그램의 실행이 시작되는 시점부터 종료되는 시점까지인 실행 시간, 네트워크 접근량, 프로그램 사용 빈도 등의 정보를 포함한다.
본 발명의 실시 예에서 ‘os프레임웍’은 프로그램에게 공용 라이브러리와 실행환경을 제공하고, 윈도우, 패키지 등을 관리하며, ‘커널’은 os프레임웍에게 메모리 및 프로세스 관리, 보안, 네트워크 등의 서비스를 제공한다.
도 1은 본 발명의 실시 예에 따른 os 프레임웍과 커널을 포함하는 전자장치의 구성을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 전자장치는 무선통신부(110), 저장부(120), 터치스크린(130), 제어부(140)를 포함하여 구성된다.
무선통신부(110)는 전자장치와 무선 통신 시스템 사이 또는 전자장치와 다른 전자장치가 위치한 네트워크(network) 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 예를 들어, 무선 통신부(110)는 이동통신 모듈, 무선 랜(WLAN, Wireless Local Area Network) 모듈, 근거리 통신 모듈, 위치 산출 모듈, 그리고 방송 수신 모듈 등을 포함하여 구성될 수 있다. 특히, 본 발명에서 무선통신부(110)는 앱 실행을 감지하면, 무선 통신을 수행한다.
저장부(120)는 전자장치를 위한 모든 프로그램이 저장될 수도 있다. 특히, 본 발명에서 저장부(120)는 프로그램 정보를 저장하고 있다.
터치스크린(130)는 터치패널(131)과 표시패널(132)를 포함하여 구성된다. 터치패널(131)은 사용자 입력이 발생하면, 이를 제어부(140)에 전달한다. 여기서 사용자 입력은 펜과 같은 터치 입력기구 또는 손가락으로 입력 요청하는 것일 수 있다. 표시패널(132)은 제어부(140)가 전달하는 내용을 표시한다.
제어부(140)는 os프레임웍(141)과 커널(142)를 포함하여 구성될 수 있으며, 전자장치의 전반적인 동작을 제어할 수 있다. 특히, 본 발명의 실시 예에서 제어부(140)는 사용자 경험을 반영하고, 시스템 효율을 고려하여 프로그램 정보를 수집한다. 여기서, 프로그램 정보는 프로그램의 부팅시간, 사용 빈도, 프로그램의 실행이 시작되는 시점부터 종료되는 시점까지인 실행 시간, 최근 사용 빈도, 메모리량, 네트워크 접근량 등의 정보이다. 그리고 제어부(140)는 수집된 프로그램 정보에 따라 중요도를 결정한다. 이후, 제어부(140)는 메모리 사용량을 계산한다. 이 때, 제어부(140)는 프로그램(예컨대, 앱(App))실행에 따른 메모리 요청이 발생하면, 필요한 만큼의 메모리를 확보하기 위하여 중요도가 낮은 프로그램을 실행 종료한다. 또한, 제어부(140)는 메모리 부족 시, 필요한 만큼의 메모리를 확보하기 위하여 중요도가 낮은 프로그램을 실행 종료(kill)한다. 제어부(140)가 수행하는 이러한 동작은 도 2a 내지 도 2c및 도 3 내지 도 5를 참조하여 os프레임웍(141)과 커널(142)이 수행하는 동작에 의해 설명하도록 한다.
도 2a 내지 도2c는 본 발명의 실시 예에 따른 os 프레임웍과 커널의 운용과정의 일 예를 도시하는 도면이다. 도 3는 본 발명의 실시 예에 따른 os 프레임웍과 커널의 운용과정을 나타낸 흐름도이다.
도 2a는 os프레임웍(141)의 운용과정의 일 예를 도시하는 도면이다. 도 2a를 참조하면, os프레임웍(141)은 전자장치에 저장된 프로그램들의 정보를 수집한다. 여기서, 프로그램 정보는 프로그램의 부팅 시간(프로그램을 시작하여 실제 사용할 수 있을 때까지 걸린 시간), 메모리량, 프로그램의 실행이 시작되는 시점부터 종료되는 시점까지인 실행 시간, 네트워크 접근량, 프로그램 사용 빈도 등의 정보일 수 있다. 그리고 수집한 프로그램 정보에 해당하는 중요도를 판단하여 커널(142)에 전송한다.
도 2b는 커널(142)의 운용과정의 일 예를 도시하는 도면이다. 도 2b를 참조하면, 커널(142)은 os프레임웍(141)으로부터 중요도 및 프로그램 실행에 따른 메모리 사용량을 수신한 대기상태를 유지한다. 그리고 프로그램 실행에 따라 메모리 부족을 판단하면, 커널(142)는 중요도에 따라 실행종료 프로그램을 선택하고, 선택한 프로그램(예를 들어, 프로그램1, 프로그램2)을 종료한다. 여기서, 중요도는 수집된 프로그램 정보에 의해 결정된 중요도이다. 이에 따라, 커널(142)는 중요도가 낮은 적어도 하나 이상의 프로그램을 동시에 종료한다.
도 2c는 프로그램 실행에 따라 os프레임웍(141)이 메모리를 요청하는 일예이다. os프레임웍(141)은 대기상태를 유지한다. 대기상태에서 os프레임웍(141)은 프로그램 정보를 수집하고, 수집한 프로그램 정보에 따라 중요도를 결정하여 커널(142)에 전송한다. 이러한 대기상태에서 os프레임웍(141)은 예컨대, 프로그램 1을 실행을 감지하면, 필요한 메모리를 계산하여 커널(142)에 메모리 요청 신호를 전송한다. 커널(142)은 메모리 요청 신호를 수신하고, 메모리 요청 신호가 필요로하는 메모리를 판단한다. 그리고 os프레임웍(141)이 필요로하는 만큼의 메모리를 확보하기 위하여 커널(142)은 실행 종료할 프로그램을 선택한다. 실행 종료할 프로그램 선택 시, 커널(142)은 실행중인 프로그램 중 중요도가 낮고, 필요한 메모리에 적합한 프로그램을 우선적으로 선택한다. 실행 종료할 프로그램을 선택하면, 커널(142)은 선택한 적어도 하나 이상의 프로그램(예를 들어, 프로그램2, 프로그램3)을 실행 종료한다.
도 3을 참조하면, os프레임웍(141)은 301단계에서 사용자 경험 및 효율성을 고려하여 프로그램 정보를 수집한다. 여기서, 프로그램 정보는 현재 실행되는 프로그램의 부팅 시간(프로그램을 시작하여 실제 사용할 수 있을 때까지 걸린 시간), 메모리량, 프로그램의 실행이 시작되는 시점부터 종료되는 시점까지인 실행 시간, 네트워크 접근양, 프로그램 사용 빈도 등의 정보이다. os프레임웍(141)은 303단계에서 수집된 프로그램 정보에 대응하여 중요도를 결정한다. 예를 들어, 사용 빈도가 높은 프로그램은 높은 값의 중요도가 부여되고, 사용 빈도가 낮은 프로그램은 낮은 값의 중요도가 부여될 수 있다. os프레임웍(141)은 305단계에서 결정한 중요도 및 프로그램 실행에 따른 메모리 사용량을 커널(142)에 전송한다. 여기서, 메모리 사용량은 사용할 수 있는 총 메모리에서 프로그램이 실행됨에 따라 사용하는 메모리 사용량이다. 이에 따라, 제어부(140)는 사용 가능한 메모리를 판단할 수 있다. 이후, os프레임웍(141)은 307단계에서 메모리 요청을 감지하면, 309단계에서 커널(142)에 메모리 요청 신호를 전송한다. 여기서, 메모리 요청은 프로그램 실행하는데 필요한 메모리를 요청하는 신호이다. 예를 들어, 카메라 실행 요청을 감지하면, os프레임웍(141)은 카메라 실행시 필요한 메모리(예컨대, 400MB) 요청 신호를 커널(142)에 전송한다. 커널(142)는 309단계에서 os프레임웍(141)으로부터 메모리 요청 신호를 수신하면, 311단계에서 메모리 부족 여부를 판단한다. 메모리 부족을 판단하면, 커널(142)는 313단계에서 실행 종료하기 위한 적어도 하나 이상의 프로그램을 선택한다. 여기서 선택되는 적어도 하나 이상의 프로그램은 중요도에 의해 결정된 최적의 프로그램 조합이다. 상기 최적의 프로그램 조합은 수집된 프로그램 정보에 따라 필요한 메모리를 충족시키기 위하여 찾아낸 조합니다. 이에 따라, 필요한 메모리만큼의 하나 또는 그 이상의 프로그램이 선택될 수 있다. 또한, 상기 최적의 프로그램 조합은 주어진 제한 조건(예컨대, 효율성을 높이기 위한 사용자 경험, 부팅 시간)을 만족하는 한 개 이상의 프로그램일 수 있으며, 상기 제한 조건 만족과 동시에 중요도의 합이 가장 작게 되는 프로그램의 조합일 수 있다. 이후, 커널(142)는 315단계에서 선택된 적어도 하나 이상의 프로그램을 동시에 종료한다.
도 4은 본 발명의 실시 예에 따른 os 프레임웍의 운용과정을 나타낸 흐름도이다.
도 4를 참조하면, os프레임웍(141)은 401단계에서 대기상태를 유지한다. 여기서, 대기 상태는 전원이 공급된 상태를 의미하며, 외부 전자장치 또는 기지국으로부터 제어 명령 또는 특정 정보 등을 수신할 수 있는 상태를 의미한다. 대기상태를 유지하는 os프레임웍(141)은 403단계에서 프로그램 정보를 수집하여 중요도를 결정하여 커널(142)에 전송한다. 여기서, 프로그램 정보는 전자장치가 실행하는 응용프로그램에 대한 정보일 수 있으며, 해당하는 프로그램의 부팅 시간, 메모리량, 프로그램의 실행 시간(실행이 시작되는 시점부터 종료되는 시점까지), 네트워크 접근량, 프로그램 사용 빈도 등의 정보를 포함한다. 그리고 os프레임웍(141)은 수집한 프로그램 정보에 따라 프로그램의 중요도를 결정한다. 예를 들어, 프로그램의 실행시간이 길수록 높은 중요도를 부여하고, 프로그램의 실행시간이 짧을수록 낮은 중요도를 부여할 수 있다. 이후, os프레임웍(141)은 407단계에서 메모리 할당 요청을 감지하면(예컨대, 프로그램 실행요청을 감지하면), 409단계에서 커널(142)에 메모리 할당을 요청신호를 전송한다. 여기서, 요청하는 메모리는 실행 요청을 감지한 프로그램이 필요로하는 메모리량이다. 한편, 메모리 할당요청이 아니면, os프레임웍(141)은 현재 실행되는 프로그램의 메모리 사용량을 커널(142)에 전송하고, 대기상태로 분기한다. 메모리 사용량을 커널(142)에 전송하기 위하여, os프레임웍(141)은 커널 인터페이스를 통하여 이루어지거나 또는 내부 시스템 호출을 통하여 요청할 수 있다.
상술한 바와 같이, os프레임웍(141)은 사용자 경험을 반영하고, 시스템 효율을 고려하여 프로그램 정보 수집한다. 사용자 경험을 반영하고, 시스템 효율을 고려하는 정보는 프로그램의 부팅 시간, 메모리량, 프로그램의 실행이 시작되는 시점부터 종료되는 시점까지인 실행 시간, 네트워크 접근량, 프로그램 사용 빈도 등이 있다. 또한, os프레임웍(141)은 수집한 프로그램 정보를 바탕으로 중요도를 평가하고, 평가 결과 및 프로그램 실행정보를 커널(142)에 전송한다.
도 5는 본 발명의 실시 예에 따른 커널의 운용과정을 나타낸 흐름도이다. 도 5를 참조하면, 커널(142)은 501단계에서 대기상태를 유지한다. 여기서, 대기 상태는 전원이 공급된 상태를 의미하며, os프레임웍(141)로부터 수집된 프로그램 정보에 따라 결정된 중요도 및 프로그램 실행에 따른 메모리 사용량을 수신한 상태를 의미한다. 대기상태를 유지하는 커널(142)은 503단계에서 os프레임웍(141)으로부터 메모리 사용량을 수신하는지 검사한다. os프레임웍(141)으로부터 메모리 사용량을 수신하면, 커널(142)은 505단계에서 현재 실행중인 프로그램에 따른 메모리 사용량을 판단한다. 한편, os프레임웍(141)으로부터 메모리 사용량 수신이 아닌 경우, 커널(142)은 513단계에서 os프레임웍(141)으로부터 메모리 할당 요청 신호를 수신하는지 검사한다. 메모리 할당 요청 신호 수신 시, 커널(141)은 커널 인터페이스 또는 시스템 내부 호출을 통하여 수신할 수 있다. 이 후, 커널(142)은 메모리 할당 요청신호를 수신하지 않으면, 501단계 이전으로 분기하여 대기상태를 유지한다. 한편, os프레임웍(141)으로부터 메모리 할당 요청 신호를 수신하면, 커널(142)은 507단계에서 메모리가 부족한지 검사한다. 메모리가 부족하지 않으면, 커널(142)은 501단계 이전의 대기상태로 분기한다. 한편, 커널(142)은 메모리가 부족하면, 509단계에서 실행을 종료하기 위한 프로그램을 선택한다. 실행 종료하기 위한 프로그램 선택 시, 커널(142)은 프로그램 정보에 따라 결정된 중요도를 기반으로 최적의 프로그램 조합을 선택한다. 여기서, 최적의 프로그램 조합은 수집된 프로그램 정보를 바탕으로 필요한 메모리 양에 맞도록 하나 또는 그 이상의 프로그램을 종료하기 위하여 찾아낸 조합이다. 실행을 종료하기 위한 프로그램을 선택하면, 커널(142)은 511단계에서 적어도 하나 이상의 선택된 프로그램을 실행 종료(kill)하고, 501단계 이전으로 분기하여 대기상태를 유지한다.
상술한 바와 같이, 커널(142)은 os프레임웍(141)으로부터 프로그램 정보에 따른 메모리 사용량 또는 메모리 요청을 수신한다. 이 때, 커널(142)은 메모리 사용량을 계산하고, 메모리의 부족을 판단 하면, 실행을 중지할 프로그램을 선택한다. 실행 중지 프로그램 선택 시, 커널(142)은 os프레임웍(141)으로부터 수신한 프로그램 정보에 따라 결정된 중요도에 따라 선택한다. 즉, 실행 중지 프로그램 선택 시, 커널(142)은 사용자 경험을 반영하고, 시스템 효율성에 가장 영향을 적게 미치는 프로그램을 선택한다. 또한, 실행 중지 프로그램 선택 시, 커널(142)은 필요한 메모리 양에 맞도록 하나 이상의 프로그램을 동시에 실행 중지한다. 여기서, 필요한 메모리 양은 os프레임웍(141)으로부터 수신된다.
그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
110: 무선통신부
120: 저장부
130: 터치스크린
140: 제어부

Claims (16)

  1. 전자장치에서 메모리를 제어하는 방법에 있어서,
    커널이 os 프레임웍으로부터 프로그램 정보에 따른 중요도 및 메모리 사용량을 수신하는 과정과,
    상기 커널이 상기 os 프레임웍으로부터 메모리 요청신호를 수신하는 과정과,
    상기 커널이 상기 os 프레임웍으로부터 수신한 메모리 요청 신호에 응답하여 필요한 메모리 량을 확인하는 과정과,
    상기 필요한 메모리 량을 확보하기 위해, 상기 중요도를 기반으로 상기 필요한 메모리 량에 대응되는 적어도 하나 이상의 프로그램을 실행 종료하는 과정을 포함하는 것을 특징으로 하는 방법.
  2. 제 1항에 있어서,
    상기 커널이 os 프레임웍으로부터 프로그램 정보에 따른 중요도 및 메모리 사용량을 수신하는 과정은,
    상기 os프레임웍이 프로그램 정보를 수집하는 과정과,
    상기 os프레임웍이 상기 프로그램 정보에 따라 결정한 중요도를 상기 커널에 전송하는 과정을 포함하는 것을 특징으로 하는 방법.
  3. 제 1항에 있어서,
    상기 커널이 os 프레임웍으로부터 프로그램 정보에 따른 중요도 및 메모리 사용량을 수신하는 과정은,
    프로그램 실행에 따른 메모리 사용량을 수신하는 것을 특징으로 하는 방법.
  4. 제 1항에 있어서,
    상기 커널이 상기 os 프레임웍으로부터 메모리 요청신호를 수신하는 과정은,
    상기 커널이 메모리 사용량을 판단하는 과정과,
    메모리 부족을 판단하면, 상기 중요도에 따라 적어도 하나 이상의 프로그램을 실행 종료하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  5. 제 1항에 있어서,
    상기 메모리 요청 신호는 프로그램 실행에 따라 필요한 메모리 양을 요청하는 것을 특징으로 하는 방법.
  6. 제 1항에 있어서,
    상기 커널이 상기 os 프레임웍으로부터 수신한 메모리 요청 신호에 대응하여 적어도 하나 이상의 프로그램을 실행 종료하는 과정은,
    상기 중요도에 따라 적어도 하나 이상의 프로그램을 실행종료 하도록 제어하는 것을 특징으로 하는 방법.
  7. 제 1항에 있어서,
    상기 커널이 상기 os 프레임웍으로부터 수신한 메모리 요청 신호에 대응하여 적어도 하나 이상의 프로그램을 실행 종료하는 과정은,
    상기 커널이 프로그램 실행에 따른 메모리 사용량을 판단하는 과정과,
    메모리 부족을 판단하면, 상기 적어도 하나 이상의 프로그램을 실행종료하는 과정인 것을 특징으로 하는 방법.
  8. 제 1항에 있어서,
    상기 프로그램 정보는 프로그램 부팅 시간, 실행 빈도, 메모리 사용량, 실행 시간, 네트워크 및 저장장치 접근량 중 적어도 하나 이상인 것을 특징으로 하는 방법.
  9. 메모리를 제어하는 장치에 있어서,
    프로그램 정보를 수집하고, 상기 프로그램 정보에 따라 중요도를 결정하고, 상기 중요도 및 프로그램 실행에 따른 메모리 사용량을 커널에 전송하고, 메모리 요청 감지 시, 커널에 메모리 요청 신호를 전송하는 os프레임웍과,
    상기 os프레임웍으로부터 상기 중요도 및 상기 메모리 사용량을 수신하고, 상기 메모리 요청 신호 수신 시, 필요한 메모리 량을 확인하고, 상기 필요한 메모리 량을 확보하기 위해 상기 중요도를 기반으로 상기 필요한 메모리 량에 대응되는 적어도 하나 이상의 프로그램을 선택하고, 상기 선택한 프로그램을 종료하는 커널을 포함하여 구성되는 것을 특징으로 하는 장치.
  10. 제 9항에 있어서,
    상기 os프레임웍은,
    프로그램 부팅 시간, 실행 빈도, 메모리 사용량, 실행 시간, 네트워크 접근량 중 적어도 하나 이상을 상기 프로그램 정보로 수집하는 것을 특징으로 하는 장치.
  11. 제 9항에 있어서,
    상기 os프레임웍은,
    프로그램 실행에 따른 메모리 사용량을 전송하는 것을 특징으로 하는 장치.
  12. 제 9항에 있어서,
    상기 os프레임웍은,
    프로그램 실행에 따라 상기 메모리 요청신호를 상기 커널에 전송하는 것을 특징으로 하는 장치.
  13. 제 9항에 있어서,
    상기 커널은,
    상기 os프레임웍으로부터 메모리 사용량을 수신한 후, 메모리 부족을 판단하면, 상기 중요도에 따라 적어도 하나 이상의 프로그램을 실행 종료하는 것을 특징으로 하는 장치.
  14. 제 9항에 있어서,
    상기 커널은,
    상기 os프레임웍으로부터 수신한 메모리 요청신호에 대응하여 적어도 하나 이상의 프로그램을 선택하고, 선택한 프로그램을 종료하는 것을 특징으로 하는 장치.
  15. 제 9항에 있어서,
    상기 커널은,
    실행 종료할 상기 적어도 하나 이상의 프로그램을 선택시, 상기 중요도에 따라 선택하는 것을 특징으로 하는 장치.
  16. 제 9항에 있어서,
    상기 커널은,
    상기 메모리 요청 신호 수신 이후, 메모리 부족을 판단하면, 상기 중요도에 따라 적어도 하나 이상의 프로그램을 실행종료하는 것을 특징으로 하는 장치.
KR1020140031242A 2014-03-17 2014-03-17 전자장치에서 메모리를 제어하는 방법 및 장치 KR102302364B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140031242A KR102302364B1 (ko) 2014-03-17 2014-03-17 전자장치에서 메모리를 제어하는 방법 및 장치
US14/660,392 US9588912B2 (en) 2014-03-17 2015-03-17 Method and apparatus for controlling memory in electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140031242A KR102302364B1 (ko) 2014-03-17 2014-03-17 전자장치에서 메모리를 제어하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20150108257A KR20150108257A (ko) 2015-09-25
KR102302364B1 true KR102302364B1 (ko) 2021-09-15

Family

ID=54068975

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140031242A KR102302364B1 (ko) 2014-03-17 2014-03-17 전자장치에서 메모리를 제어하는 방법 및 장치

Country Status (2)

Country Link
US (1) US9588912B2 (ko)
KR (1) KR102302364B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2554940B (en) * 2016-10-14 2020-03-04 Imagination Tech Ltd Out-of-bounds recovery circuit

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080163050A1 (en) 2006-12-28 2008-07-03 Sony Corporation Information processing apparatus and method, program, and recording medium
US7503044B2 (en) * 1998-11-24 2009-03-10 Microsoft Corporation System and method for terminating applications
US8510743B2 (en) 2007-10-31 2013-08-13 Google Inc. Terminating computer applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7503044B2 (en) * 1998-11-24 2009-03-10 Microsoft Corporation System and method for terminating applications
US20080163050A1 (en) 2006-12-28 2008-07-03 Sony Corporation Information processing apparatus and method, program, and recording medium
US8510743B2 (en) 2007-10-31 2013-08-13 Google Inc. Terminating computer applications

Also Published As

Publication number Publication date
KR20150108257A (ko) 2015-09-25
US9588912B2 (en) 2017-03-07
US20150261547A1 (en) 2015-09-17

Similar Documents

Publication Publication Date Title
US10437631B2 (en) Operating system hot-switching method and apparatus and mobile terminal
KR102205836B1 (ko) 태스크 스케줄링 방법 및 장치
CN103106092A (zh) 终端设备中系统软件升级方法和装置
CN104243479A (zh) 一种外接设备聚合装置和方法
US9736529B2 (en) USB sharing method for combo TV set, combo TV set and computer readable storage medium
US20110302302A1 (en) Adaptive mobile cloud system using private virtual intance and construction method thereof
US9253228B2 (en) Cloud computing method, computing apparatus and server using the same
US20160050712A1 (en) Method of controlling an electronic device according to a communication state of the electronic device
KR102257737B1 (ko) 전자장치의 처리량 제어장치 및 방법
US20220159765A1 (en) Method for network sharing and related devices
KR20120071060A (ko) 동적으로 확장 가능한 기능을 제공하는 스토리지 장치 및 그것의 동작 방법
KR102255361B1 (ko) 인텐트 처리 방법 및 그 전자 장치
KR102302364B1 (ko) 전자장치에서 메모리를 제어하는 방법 및 장치
CN105278942B (zh) 组件管理方法及装置
EP3584700A1 (en) Fingerprint recognition method and related product
CN111045789B (zh) 一种虚拟机开机方法、装置及电子设备和存储介质
CN106919458B (zh) Hook目标内核函数的方法及装置
US10007529B2 (en) Data terminal running mode switching method, device, and data terminal
JP6059330B2 (ja) アプリケーション転送システム、アプリケーション転送方法、端末、およびプログラム
CN110023907B (zh) 一种处理方法及装置
CN105824661A (zh) 一种软件共享的方法及电子设备
KR101863677B1 (ko) 단말기와 스마트카드 간 인터페이스 시스템 및 그 방법
KR102378373B1 (ko) 복수의 충전 회로를 활용하는 전자 장치 및 방법
US9658674B2 (en) Mobile system optimization method
US20100293559A1 (en) Sharing input/output (i/o) resources across multiple computing systems and/or environments

Legal Events

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