KR101747571B1 - 메모리 최적화 방법, 장치, 프로그램 및 기록매체 - Google Patents

메모리 최적화 방법, 장치, 프로그램 및 기록매체 Download PDF

Info

Publication number
KR101747571B1
KR101747571B1 KR1020157013547A KR20157013547A KR101747571B1 KR 101747571 B1 KR101747571 B1 KR 101747571B1 KR 1020157013547 A KR1020157013547 A KR 1020157013547A KR 20157013547 A KR20157013547 A KR 20157013547A KR 101747571 B1 KR101747571 B1 KR 101747571B1
Authority
KR
South Korea
Prior art keywords
control group
resource
value
resource threshold
processes
Prior art date
Application number
KR1020157013547A
Other languages
English (en)
Other versions
KR20160064036A (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 시아오미 아이엔씨.
Publication of KR20160064036A publication Critical patent/KR20160064036A/ko
Application granted granted Critical
Publication of KR101747571B1 publication Critical patent/KR101747571B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 메모리 최적화 방법, 장치, 프로그램 및 기록매체에 관한 것으로, 컴퓨터 기술분야에 속한다. 상기 메모리 최적화 방법은, 컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하고; 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 임계값에 도달함이 검출되었을 경우, 상기 새로 생성된 프로세스를 상기 자원 문턱치의 제한을 받지 않는 상기 컨트롤 그룹에 추가하며; 상기 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작도록 한다. 본 발명은 단말기가 스왑 아웃 조작을 수행하는 동시에 컨트롤 그룹에 새로 생성된 프로세스를 추가할 경우, 수행되는 스왑 아웃 조작의 시간지연이 비교적 길어 단말기의 운행속도에 영향을 주는 문제점을 해결함으로써 메모리를 압축할 때 조작 시간지연을 감소시키는 효과를 달성한다.

Description

메모리 최적화 방법, 장치, 프로그램 및 기록매체{METHOD, APPARATUS, PROGRAM, AND RECORDING MEDIUM FOR MEMORY OPTIMIZATION}
본원 발명은 출원번호가 CN 201410602435.3이고 출원일자가 2014년 10월 31일인 중국 특허 출원에 기반하여 제출되며 상기 중국 특허 출원의 우선권을 주장하는 바, 상기 중국 특허 출원의 모든 내용은 본원 발명에 원용된다.
본 발명은 컴퓨터 기술분야에 관한 것으로, 특히 메모리 최적화 방법, 장치, 프로그램 및 기록매체에 관한 것이다.
단말기에서 실행되는 응용 프로그램이 많아짐에 따라, 단말기의 사용가능한 메모리는 갈수록 적어져 실행되는 응용 프로그램의 원활성에 영향을 주고있다. 따라서, 단말기에 대해 메모리 최적화를 진행할 필요가 있다.
메모리 최적화를 진행할 경우, 단말기는 생성된 다수의 프로세스를 하나의 컨트롤 그룹(Control Group, Cgroup)에 구획하고 자원 문턱치를 설정함으로써 상기 컨트롤 그룹에서 프로세스가 차지하는 총 자원값을 제한할 수 있고; 단말기가 새로 생성된 프로세스를 상기 컨트롤 그룹에 추가하여야 할 경우, 추가됨이 검출된 후, 상기 컨트롤 그룹의 총 자원값이 자원 문턱치를 초과할 때, 스왑 아웃(swap out) 조작을 수행한다. 즉, 단말기는 컨트롤 그룹에서 한동안 사용되지 않는 유휴 프로세스와 대응되는 데이터를 저장기기에 전이하여 상기 데이터가 차지하는 자원을 상기 새로 생성된 프로세스에 분배하며, 상기 유휴 프로세스를 다시 사용하여야 할 경우에는 저장기기로부터 다시 상기 데이터를 컨트롤 그룹이 차지하는 자원으로 전이시킨다.
발명자는 본 발명을 실현하는 과정에서, 관련 기술에 적어도 하기와 같은 결함이 존재한다는 것을 발견하였다. 단말기가 스왑 아웃 조작을 수행하는 동시에 컨트롤 그룹에 새로 생성된 프로세스를 추가할 경우, 수행되는 스왑 아웃 조작의 시간지연이 비교적 길어 단말기의 운행속도에 영향을 준다.
단말기가 스왑 아웃 조작을 수행하는 동시에 컨트롤 그룹에 새로 생성된 프로세스를 추가할 경우, 수행되는 스왑 아웃 조작의 시간지연이 비교적 길어 단말기의 운행속도에 영향을 주는 문제점을 해결하기 위하여, 본 발명은 메모리 최적화 방법, 장치, 프로그램 및 기록매체를 제공한다.
본 발명의 실시예의 제1양태에 따르면,
컨트롤 그룹(control group)에 새로 생성된 프로세스(process)를 추가하여야 할 경우, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하는 단계 - 상기 자원 임계값은, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 컨트롤 그룹과 대응되는 자원 문턱치보다 작으며, 상기 새로 생성된 프로세스를 상기 컨트롤 그룹에 추가한 후 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 큰 경우의 자원값임 - 와;
현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 임계값에 도달함이 검출되었을 경우, 상기 새로 생성된 프로세스를 상기 자원 문턱치의 제한을 받지 않는 상기 컨트롤 그룹에 추가하는 단계와;
상기 컨트롤 그룹에서 유휴 프로세스(idle process)가 차지하는 자원에 대해 스왑 아웃(swap out) 조작을 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작도록 하는 단계를 포함하는 메모리 최적화 방법을 제공한다.
선택적으로, 상기 컨트롤 그룹이 상기 자원 문턱치의 제한을 받는 시스템 컨트롤 그룹일 경우, 상기 새로 생성된 프로세스를 상기 자원 문턱치의 제한을 받지 않는 상기 컨트롤 그룹에 추가하는 단계는,
상기 시스템 컨트롤 그룹의 상기 자원 문턱치를 저장하는 단계와;
문턱치상기 시스템 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값에 대한 상기 자원 문턱치의 제한을 취소하는 단계와;
상기 새로 생성된 프로세스를 상기 시스템 컨트롤 그룹에 추가하는 단계를 포함한다.
선택적으로, 상기 컨트롤 그룹이 자원 문턱치의 제한을 받지 않는 비시스템 컨트롤 그룹일 경우, 상기 메모리 최적화 방법은 시스템 컨트롤 그룹의 자원 문턱치를 판독하여 상기 자원 문턱치를 상기 비시스템 컨트롤 그룹과 대응되는 자원 문턱치로 결정하는 단계를 더 포함한다.
선택적으로, 상기 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작도록 하는 단계는,
상기 컨트롤 그룹에 상기 자원 문턱치보다 큰 초기 자원 문턱치를 설정하는 단계와;
상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계와;
상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 것으로 검출되었을 경우, 상기 초기 자원 문턱치를 감소시키고 상기 초기 자원 문턱치가 상기 자원 문턱치와 같을 때까지 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하되, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작을 때 정지하는 단계와;
상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 큰 것으로 검출되었을 경우, 상기 컨트롤 그룹에서 상기 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하는 단계를 포함한다.
선택적으로, 상기 초기 자원 문턱치를 감소시키고 상기 초기 자원 문턱치가 상기 자원 문턱치와 같을 때까지 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하되, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작을 때 정지하는 단계는,
상기 초기 자원 문턱치를 감소시키는 단계와;
감소된 후의 상기 초기 자원 문턱치와 상기 자원 문턱치의 차이값이 소정 수치보다 작은 지의 여부를 검출하는 단계와;
상기 차이값이 상기 소정 수치 보다 작은 것으로 검출되었을 경우, 감소된 후의 상기 초기 자원 문턱치를 상기 자원 문턱치로 설정하고 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작을 때 정지하는 단계를 포함한다.
선택적으로, 상기 메모리 최적화 방법은,
상기 초기 자원 문턱치를 감소시킬 시 오류가 발생할 경우, 상기 초기 자원 문턱치에 대한 수정을 정지하는 단계와;
소정 시간 간격이 지난 후, 상기 초기 자원 문턱치를 감소되기 전의 초기 자원 문턱치로 설정하고 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하는 단계를 더 포함한다.
본 발명의 실시예의 제2양태에 따르면,
컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하도록 구성되는 자원 검출 모듈 - 상기 자원 임계값은, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 컨트롤 그룹과 대응되는 자원 문턱치보다 작으며, 상기 새로 생성된 프로세스를 상기 컨트롤 그룹에 추가한 후 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 큰 경우의 자원값임 - 과;
상기 자원 검출 모듈에 의해 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 임계값에 도달함이 검출되었을 경우, 상기 새로 생성된 프로세스를 상기 자원 문턱치의 제한을 받지 않는 상기 컨트롤 그룹에 추가하도록 구성되는 프로세스 추가 모듈과;
상기 프로세스 추가 모듈에 의해 추가되는 상기 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작도록 구성되는 자원 스왑 아웃 모듈을 포함하는 메모리 최적화 장치를 제공한다.
선택적으로, 상기 컨트롤 그룹이 상기 자원 문턱치의 제한을 받는 시스템 컨트롤 그룹일 경우, 상기 프로세스 추가 모듈은,
상기 시스템 컨트롤 그룹의 상기 자원 문턱치를 저장하도록 구성되는 문턱치 저장 서브 모듈과;
문턱치상기 시스템 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값에 대한 상기 자원 문턱치의 제한을 취소하도록 구성되는 제한 취소 서브 모듈과;
상기 새로 생성된 프로세스를 상기 시스템 컨트롤 그룹에 추가하도록 구성되는 프로세스 추가 서브 모듈을 포함한다.
선택적으로, 상기 컨트롤 그룹이 자원 문턱치의 제한을 받지 않는 비시스템 컨트롤 그룹일 경우, 상기 메모리 최적화 장치는 시스템 컨트롤 그룹의 자원 문턱치를 판독하여 상기 자원 문턱치를 상기 비시스템 컨트롤 그룹과 대응되는 자원 문턱치로 결정하도록 구성되는 문턱치 판독 모듈을 더 포함한다.
선택적으로, 상기 자원 스왑 아웃 모듈은,
상기 컨트롤 그룹에 상기 자원 문턱치보다 큰 초기 자원 문턱치를 설정하도록 구성되는 제1 설정 서브 모듈과;
상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 제1 설정 서브 모듈에 의해 설정되는 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하도록 구성되는 자원 검출 서브 모듈과;
상기 자원 검출 서브 모듈에 의해 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 것으로 검출되었을 경우, 상기 초기 자원 문턱치를 감소시키고 상기 초기 자원 문턱치가 상기 자원 문턱치와 같을 때까지 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 계속하여 수행하되, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작을 때 정지하도록 구성되는 제1 처리 서브 모듈과;
상기 자원 검출 서브 모듈에 의해 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 큰 것으로 검출되었을 경우, 상기 컨트롤 그룹에서 상기 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 계속하여 수행하도록 구성되는 제2 처리 서브 모듈을 포함한다.
선택적으로, 상기 제1 처리 서브 모듈은,
상기 초기 자원 문턱치를 감소시키도록 구성되는 문턱치 감소 서브 모듈과;
상기 문턱치 감소 서브 모듈에 의해 감소된 후의 상기 초기 자원 문턱치와 상기 자원 문턱치의 차이값이 소정 수치보다 작은 지의 여부를 검출하도록 구성되는 차이값 검출 서브 모듈과;
상기 차이값 검출 서브 모듈에 의해 상기 차이값이 상기 소정 수치 보다 작은 것으로 검출되었을 경우, 감소된 후의 상기 초기 자원 문턱치를 상기 자원 문턱치로 설정하고 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 계속하여 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작을 때 정지하도록 구성되는 제2 설정 서브 모듈을 포함한다.
선택적으로, 상기 제1 처리 서브 모듈은,
상기 초기 자원 문턱치를 감소시킬 시 오류가 발생할 경우, 상기 초기 자원 문턱치에 대한 수정을 정지하도록 구성되는 수정 일시 정지 서브 모듈과;
소정 시간 간격이 지난 후, 상기 초기 자원 문턱치를 감소되기 전의 초기 자원 문턱치로 설정하고 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 계속하여 수행하도록 구성되는 검출 순환 서브 모듈을 더 포함한다.
본 발명의 실시예의 제3양태에 따르면,
프로세서와;
프로세서에 의해 실행 가능한 인스트럭션을 저장하기 위한 메모리를 포함하고;
상기 프로세서는,
컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출 - 상기 자원 임계값은, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 컨트롤 그룹과 대응되는 자원 문턱치보다 작으며, 상기 새로 생성된 프로세스를 상기 컨트롤 그룹에 추가한 후 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 큰 경우의 자원값임 - 하고;
현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 임계값에 도달함이 검출되었을 경우, 상기 새로 생성된 프로세스를 상기 자원 문턱치의 제한을 받지 않는 상기 컨트롤 그룹에 추가하며;
상기 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작도록 구성되는 메모리 최적화 장치를 제공한다.
본 발명의 실시예의 제4양태에 따르면, 본 발명은, 프로세서에 의해 실행되는 것을 통하여 상기 메모리 최적화 방법을 실현하는 기록매체에 저장되는 프로그램을 제공한다.
본 발명의 실시예의 제5양태에 따르면, 본 발명은, 상기 프로그램이 기록된 기록매체를 제공한다.
본 발명의 실시예에서 제공하는 과제 해결 수단은 하기와 같은 유리한 효과를 포함할 수 있다.
컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하고; 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달함이 검출되었을 경우, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가하며; 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작도록 한다. 이에 따라, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가한 후, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값을 압축할 수 있어 단말기가 스왑 아웃 조작을 수행하는 동시에 컨트롤 그룹에 새로 생성된 프로세스를 추가할 경우, 수행되는 스왑 아웃 조작의 시간지연이 비교적 길어 단말기의 운행속도에 영향을 주는 문제점을 해결함으로써 메모리를 압축할 때 조작 시간지연을 감소시키는 효과를 달성한다.
상기의 일반적인 설명과 후술되는 구체적인 설명은 단지 예시적인 것이며 본 발명을 제한하는 것이 아님을 이해해야 한다.
아래의 도면은 명세서의 일부분으로서 명세서 전체를 구성하며 본 발명에 맞는 실시예를 예시하여 본 발명의 원리를 해석하기 위한 것이다.
도1은 일 예시적 실시예에 따라 도시한 메모리 최적화 방법의 흐름도이다.
도2는 다른 예시적 실시예에 따라 도시한 메모리 최적화 방법의 흐름도이다.
도3은 일 예시적 실시예에 따라 도시한 메모리 최적화 장치의 블록도이다.
도4는 일 예시적 실시예에 따라 도시한 메모리 최적화 장치의 블록도이다.
도5는 일 예시적 실시예에 따라 도시한 메모리 최적화를 위한 장치의 블록도이다. 
여기서, 예시적 실시예에 대해 상세히 설명하고 이를 첨부되는 도면에 예시적으로 나타낸다. 하기에서 첨부되는 도면에 대해 설명할 때, 별도로 표시하지 않는 한, 다른 도면의 동일한 숫자는 동일하거나 유사한 구성요소를 나타낸다. 하기의 예시적 실시예에서 설명한 실시형태는 본 발명과 일치한 모든 실시형태를 의미하는 것은 아니다. 반대로, 이들은 첨부된 특허청구범위에서 설명한, 본 발명의 일부 양태와 일치한 장치와 방법에 대한 예일 뿐이다.
도1은 일 예시적 실시예에 따라 도시한 메모리 최적화 방법의 흐름도이고, 상기 메모리 최적화 방법은 단말기에 응용되며, 도1에 도시된 바와 같이, 상기 메모리 최적화 방법은 하기와 같은 단계를 포함한다.
단계101에서, 컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하고, 상기 자원 임계값은, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 컨트롤 그룹과 대응되는 자원 문턱치보다 작으며, 새로 생성된 프로세스를 컨트롤 그룹에 추가한 후 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 큰 경우의 자원값이다.
자원 문턱치는 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원의 최대치이고, 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 컨트롤 그룹의 자원 문턱치보다 클 경우, 컨트롤 그룹은 자원에 대한 스왑 아웃 조작을 수행하여 메모리를 압축하게 된다.
단계102에서, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달함이 검출되었을 경우, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가한다.
컨트롤 그룹이 자원 문턱치의 제한을 받고 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 달할 경우, 상기 컨트롤 그룹에 새로 생성된 프로세스를 다시 추가하는 동시에 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행함으로써 새로 생성된 프로세스를 추가한 후, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작도록 확보하여야 한다. 단, 스왑 아웃 조작을 수행하는 동시에 컨트롤 그룹에 새로 생성된 프로세스를 추가하면, 스왑 아웃 조작과 추가 조작의 시간지연이 비교적 길어져 단말기의 운행속도에 영향을 주게 되므로 단말기는 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가할 수 있다.
단계103에서, 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작도록 한다.
새로 생성된 프로세스를 추가한 후, 이때의 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 크므로 단말기는 추가적으로 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 메모리를 압축하여야 한다. 스왑 아웃 조작은 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원을 압축한 후, 가상 저장기기에 전이시키는 조작이다.
종합해보면, 본 발명에서 제공하는 메모리 최적화 방법에 있어서, 컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하고; 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달함이 검출되었을 경우, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가하며; 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작도록 한다. 이에 따라, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가한 후, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값을 압축할 수 있어 단말기가 스왑 아웃 조작을 수행하는 동시에 컨트롤 그룹에 새로 생성된 프로세스를 추가할 경우, 수행되는 스왑 아웃 조작의 시간지연이 비교적 길어 단말기의 운행속도에 영향을 주는 문제점을 해결함으로써 메모리를 압축할 때 조작 시간지연을 감소시키는 효과를 달성한다.
도2는 다른 예시적 실시예에 따라 도시한 메모리 최적화 방법의 흐름도이고, 상기 메모리 최적화 방법은 단말기에 응용되며, 도2에 도시된 바와 같이, 상기 메모리 최적화 방법은 하기와 같은 단계를 포함한다.
단계201에서, 컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하고, 상기 자원 임계값은, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 컨트롤 그룹과 대응되는 자원 문턱치보다 작으며, 새로 생성된 프로세스를 컨트롤 그룹에 추가한 후 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 큰 경우의 자원값이다.
자원 문턱치는 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원의 최대치이고, 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 컨트롤 그룹의 자원 문턱치보다 클 경우, 컨트롤 그룹은 자원에 대한 스왑 아웃 조작을 수행하여 메모리를 압축하게 된다.
상기 자원 임계값은, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 컨트롤 그룹과 대응되는 자원 문턱치보다 작으며, 새로 생성된 프로세스를 컨트롤 그룹에 추가한 후 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 큰 경우의 자원값이다. 예를 들어, 컨트롤 그룹과 대응되는 자원 문턱치는 500MB이고, 새로 생성된 프로세스가 추가된 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값은 480MB이며, 이때 총 자원값인 480M은 자원 문턱치인 500M보다 작고 새로 생성된 프로세스를 추가한 후, 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 520MB이며, 이때 총 자원값인 520M은 자원 문턱치인 500MB보다 크며, 480MB를 상기 컨트롤 그룹의 자원 임계값으로 결정한다.
본 실시예에서, 컨트롤 그룹은 시스템 컨트롤 그룹일 수 있다. 여기서, 시스템 컨트롤 그룹은 시스템 고유의 자원 문턱치의 제한을 받는 컨트롤 그룹이고, 단말기는 시스템 컨트롤 그룹의 자원 문턱치를 직접 판독하여 상기 자원 문턱치를 상기 컨트롤 그룹과 대응되는 자원 문턱치로 결정할 수 있다.
본 실시예에서, 컨트롤 그룹은 비시스템 컨트롤 그룹일 수도 있다. 비시스템 컨트롤 그룹은 단말기에 의해 생성된 컨트롤 그룹이고, 상기 컨트롤 그룹은 자원 문턱치의 제한을 받지 않는다. 단말기는 시스템 컨트롤 그룹의 자원 문턱치를 판독하고 상기 자원 문턱치를 상기 컨트롤 그룹과 대응되는 자원 문턱치로 결정할 수 있다. 즉, 컨트롤 그룹이 자원 문턱치의 제한을 받지 않는 비시스템 컨트롤 그룹일 경우, 본 실시예에서 제공하는 메모리 최적화 방법은 시스템 컨트롤 그룹의 자원 문턱치를 판독하여 자원 문턱치를 비시스템 컨트롤 그룹과 대응되는 자원 문턱치로 결정하는 단계를 더 포한한다.
단계202에서, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달함이 검출되었을 경우, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가한다.
컨트롤 그룹이 자원 문턱치의 제한을 받고 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 달할 경우, 상기 컨트롤 그룹에 새로 생성된 프로세스를 다시 추가하는 동시에 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행함으로써 새로 생성된 프로세스를 추가한 후, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작도록 확보하여야 한다. 단, 스왑 아웃 조작을 수행하는 동시에 컨트롤 그룹에 새로 생성된 프로세스를 추가하면, 스왑 아웃 조작과 추가 조작의 시간지연이 비교적 길어져 단말기의 운행속도에 영향을 주게 되므로 단말기는 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가할 수 있다.
여기서, 자원 문턱치의 제한을 받지 않는 컨트롤 그룹은 자원 문턱치의 제한을 받는 시스템 컨트롤 그룹일 수 있고, 자원 문턱치의 제한을 취소한 후 얻어진 컨트롤 그룹일 수 있으며, 단말기에 의해 생성되는 자원 문턱치의 제한을 받지 않는 비시스템 컨트롤 그룹일 수도 있다.
여기서, 컨트롤 그룹이 자원 문턱치의 제한을 받는 시스템 컨트롤 그룹일 경우, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가하는 단계는,
1)시스템 컨트롤 그룹의 자원 문턱치를 저장하는 단계와;
2)문턱치시스템 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값에 대한 자원 문턱치의 제한을 취소하는 단계와;
3)새로 생성된 프로세스를 시스템 컨트롤 그룹에 추가하는 단계를 포함한다.
단말기는 시스템 컨트롤 그룹의 자원 문턱치를 저장하고 문턱치시스템 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값에 대한 자원 문턱치의 제한을 취소함으로써 상기 시스템 컨트롤 그룹이 자원 문턱치의 제한을 받지 않는 컨트롤 그룹으로 되도록 한 후, 새로 생성된 프로세스를 상기 자원의 제한을 받지 않는 시스템 컨트롤 그룹에 추가한다.
단계203에서, 컨트롤 그룹에 자원 문턱치보다 큰 초기 자원 문턱치를 설정한다.
새로 생성된 프로세스를 컨트롤 그룹에 추가한 후, 이때의 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 크므로 단말기는 추가적으로 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 메모리를 압축하여야 한다. 스왑 아웃 조작은 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원을 압축한 후, 가상 저장기기에 전이시키는 조작이고, 상기 가상 저장기기는 RAM(Random Access Memory, 랜덤 액세스 메모리)일 수 있다.
컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원을 압축하고 자원 문턱치가 비교적 작음으로 인한 빈번한 스왑 아웃 조작의 수행이 단말기의 운행속도에 영향을 주는 문제점을 방지하기 위하여, 단말기는 컨트롤 그룹에 비교적 큰 초기 자원 문턱치를 설정하고 상기 초기 자원 문턱치를 부단히 감소시킴으로써 감소시킨 초기 자원 문턱치를 통해 메모리를 점차 압축할 수 있다.
단계204에서, 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출한다.
초기 자원 문턱치를 결정한 후, 단말기는 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하고, 총 자원 문턱치가 초기 자원 문턱치보다 작을 경우, 초기 자원 문턱치가 과도하게 크게 설정되어 초기 자원 문턱치를 감소시켜야 하는데, 즉 단계205를 수행해야 하고, 총 자원 문턱치가 초기 자원값보다 클 경우, 스왑 아웃 조작 즉 단계206을 수행해야 한다.
단계205에서, 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 것으로 검출되었을 경우, 초기 자원 문턱치를 감소시키고 초기 자원 문턱치가 자원 문턱치와 같을 때까지 단계204를 계속하여 수행하되, 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작을 때 정지한다.
여기서, 초기 자원 문턱치를 감소시키고 초기 자원 문턱치가 자원 문턱치와 같을 때까지 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하되, 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작을 때 정지하는 단계는,
1)초기 자원 문턱치를 감소시키는 단계와;
2)감소된 후의 초기 자원 문턱치와 자원 문턱치의 차이값이 소정 수치보다 작은 지의 여부를 검출하는 단계와;
3)차이값이 소정 수치 보다 작은 것으로 검출되었을 경우, 감소된 후의 초기 자원 문턱치를 자원 문턱치로 설정하고 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작을 때 정지하는 단계를 포함한다.
단말기는 초기 자원 문턱치를 감소시키고 얻어진 수치를 감소된 후의 초기 자원 문턱치로 결정한다. 여기서, 감소된 후의 초기 자원 문턱치는 감소되기 전의 초기 자원 문턱치가 감소되어 고정된 수치로 얻어진 것일 수 있고, 감소되기 전의 초기 자원 문턱치와 자원 문턱치의 관계에 의해 얻어진 것일 수도 있다.
감소되기 전의 초기 자원 문턱치와 자원 문턱치의 관계에 의해 감소된 후의 초기 자원 문턱치를 산출할 경우, 단말기는 감소된 후의 초기 자원 문턱치와 자원 문턱치의 차이값을 획득하고 상기 차이값이 소정 수치보다 작은 지의 여부를 검출한다. 상기 차이값이 소정 수치보다 큰 것으로 검출되었을 경우, 단말기는 감소된 후의 초기 자원 문턱치를 새로운 초기 자원 문턱치로 설정하고 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하며; 상기 차이값이 소정 수치보다 작은 것으로 검출되었을 경우, 단말기는 감소된 후의 초기 자원 문턱치를 자원 문턱치로 설정한 후, 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작을 때 정지한다.
예를 들어, 컨트롤 그룹의 자원 문턱치는 500MB이고 초기 자원 문턱치는 900MB이며 소정 수치는 150MB이다. 단말기에 의해 1차적으로 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 600MB임이 검출되었을 경우, 총 자원값인 600MB가 초기 자원 문턱치인 900MB보다 작으므로 단말기는 초기 자원 문턱치를 감소시키는 조작을 수행하고 감소된 후의 초기 자원 문턱치=감소되기 전의 초기 자원 문턱치-(감소되기 전의 초기 자원 문턱치-자원 문턱치)/2의 공식에 따라 감소된 후의 초기 자원 문턱치가 700MB임을 결정하며 감소된 후의 초기 자원 문턱치인 700MB와 자원 문턱치인 500MB의 차이값이 200MB임을 산출하는데, 200MB가 소정 수치인 150M보다 크므로 단말기는 700MB를 초기 자원 문턱치로 설정하고 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행한다.
단말기에 의해 2차적으로 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 500MB임이 검출되었을 경우, 총 자원값인 500MB가 초기 자원 문턱치인 700MB보다 작으므로 단말기는 계속하여 상기 공식에 따라 감소된 후의 초기 자원 문턱치가 600MB임을 결정하고 감소된 후의 초기 자원 문턱치인 600MB와 자원 문턱치인 500MB의 차이값이 100MB임을 획득하는데, 100MB가 소정 수치인 150M보다 작으므로 단말기는 감소된 후의 초기 자원 문턱치를 자원 문턱치인 500MB로 설정한 후, 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작을 때 정지한다.
설명해야 할 것은, 단말기에 의해 기설정된 검출시간 내에 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 항상 초기 자원 문턱치보다 큰 것으로 검출되었을 경우, 상기 기설정된 검출시간 내에 단말기는 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 중복하여 수행한다. 스왑 아웃 조작을 중복하여 수행하여야 할 경우, 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원이 비교적 작을 수 있으므로 스왑 아웃 조작의 수행을 일시 정지할 수 있고 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원이 비교적 많을 경우, 다시 스왑 아웃 조작을 수행함으로써 컨트롤 그룹에서 유휴 프로세스가 비교적 적을 경우, 단말기에 대한 스왑 아웃 조작의 중복된 수행이 단말기의 운행속도에 영향을 주는 문제점을 방지하고 스왑 아웃 조작의 수행 빈도를 하강시켜 메모리를 점차 압축하여 메모리에 대한 압축효율을 향상시킬 수 있다.
따라서, 단말기는 기설정된 검출시간 내에 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 항상 초기 자원 문턱치보다 큰 것으로 검출되었을 경우, 초기 자원 문턱치를 감소시키는 조작시 오류가 발생함을 결정할 수 있는데, 이때 본 실시예에서 제공하는 메모리 최적화 방법은,
1)초기 자원 문턱치를 감소시킬 시 오류가 발생할 경우, 초기 자원 문턱치에 대한 수정을 정지하는 단계와;
2)소정 시간 간격이 지난 후, 초기 자원 문턱치를 감소되기 전의 초기 자원 문턱치로 설정하고 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하는 단계를 더 포함한다.
단말기에 의해 초기 자원 문턱치를 감소시킬 시 오류가 발생함이 검출되었을 경우, 소정 시간내에 초기 자원 문턱치를 수정하는 스레드의 운행을 정지하고 감소되기 전의 초기 자원 문턱치를 초기 자원 문턱치로 결정하며 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행한다.
예를 들어, 단말기는 기설정된 검출시간(3분) 내에 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 항상 초기 자원 문턱치보다 큰 것으로 검출되었을 경우, 초기 자원 문턱치를 수정하는 스레드의 운행을 정지하고 카운팅하기 시작한다. 감소되기 전의 초기 자원 문턱치가 900MB이고 소정 시간이 1분이라면, 카운팅 시작 1분후, 단말기는 초기 자원 문턱치를 감소되기 전의 초기 자원 문턱치인 900MB로 결정하고 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행한다.
단계206에서, 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 큰 것으로 검출되었을 경우, 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 단계204를 계속한다.
예를 들어, 단말기에 의해 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 900MB임이 검출되었을 경우, 총 자원값인 900MB가 초기 자원 문턱치인 500MB보다 크므로 단말기는 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원을 압축한 후, 가상기기에 저장하고 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행한다.
종합해보면, 본 발명에서 제공하는 메모리 최적화 방법에 있어서, 컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하고; 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달함이 검출되었을 경우, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가하며; 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작도록 한다. 이에 따라, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가한 후, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값을 압축할 수 있어 단말기가 스왑 아웃 조작을 수행하는 동시에 컨트롤 그룹에 새로 생성된 프로세스를 추가할 경우, 수행되는 스왑 아웃 조작의 시간지연이 비교적 길어 단말기의 운행속도에 영향을 주는 문제점을 해결함으로써 메모리를 압축할 때 조작 시간지연을 감소시키는 효과를 달성한다.
이 외에, 초기 자원 문턱치를 감소시킬 시 오류가 발생할 경우, 초기 자원 문턱치에 대한 수정을 정지하고 소정 시간 간격이 지난 후, 초기 자원 문턱치를 감소되기 전의 초기 자원 문턱치로 설정함으로써 컨트롤 그룹에서 유휴 프로세스가 과도하게 적을 경우, 단말기에 대한 스왑 아웃 조작의 중복된 수행이 단말기의 운행속도에 영향을 주는 문제점을 방지하고 스왑 아웃 조작의 수행 빈도를 하강시켜 메모리를 점차 압축하여 메모리에 대한 압축효율을 향상시킬 수 있다.
도3은 일 예시적 실시예에 따라 도시한 메모리 최적화 장치의 블록도이고, 상기 메모리 최적화 장치는 단말기에 응용되며, 도3에 도시된 바와 같이, 상기 메모리 최적화 장치는 자원 검출 모듈(310), 프로세스 추가 모듈(320)과 자원 스왑 아웃 모듈(330)을 포함한다.
상기 자원 검출 모듈(310)은 컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하도록 구성되고, 자원 임계값은, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 컨트롤 그룹과 대응되는 자원 문턱치보다 작으며, 새로 생성된 프로세스를 컨트롤 그룹에 추가한 후 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 큰 경우의 자원값이다.
상기 프로세스 추가 모듈(320)은 자원 검출 모듈에 의해 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달함이 검출되었을 경우, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가하도록 구성된다.
상기 자원 스왑 아웃 모듈(330)은 프로세스 추가 모듈에 의해 추가되는 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작도록 구성된다.
종합해보면, 본 발명에서 제공하는 메모리 최적화 방법에 있어서, 컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하고; 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달함이 검출되었을 경우, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가하며; 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작도록 한다. 이에 따라, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가한 후, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값을 압축할 수 있어 단말기가 스왑 아웃 조작을 수행하는 동시에 컨트롤 그룹에 새로 생성된 프로세스를 추가할 경우, 수행되는 스왑 아웃 조작의 시간지연이 비교적 길어 단말기의 운행속도에 영향을 주는 문제점을 해결함으로써 메모리를 압축할 때 조작 시간지연을 감소시키는 효과를 달성한다.
도4는 일 예시적 실시예에 따라 도시한 메모리 최적화 장치의 블록도이고, 상기 메모리 최적화 장치는 단말기에 응용되며, 도4에 도시된 바와 같이, 상기 메모리 최적화 장치는 자원 검출 모듈(310), 프로세스 추가 모듈(320)과 자원 스왑 아웃 모듈330을 포함한다.
상기 자원 검출 모듈(310)은 컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하도록 구성되고, 자원 임계값은, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 컨트롤 그룹과 대응되는 자원 문턱치보다 작으며, 새로 생성된 프로세스를 컨트롤 그룹에 추가한 후 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 큰 경우의 자원값이다.
상기 프로세스 추가 모듈(320)은 자원 검출 모듈(310)에 의해 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달함이 검출되었을 경우, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가하도록 구성된다.
자원 스왑 아웃 모듈(330)은 프로세스 추가 모듈(320)에 의해 추가되는 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작도록 구성된다.
선택적으로, 컨트롤 그룹이 자원 문턱치의 제한을 받는 시스템 컨트롤 그룹일 경우, 프로세스 추가 모듈(320)은 문턱치 저장 서브 모듈(321), 제한 취소 서브 모듈(322)과 프로세스 추가 서브 모듈(323)을 포함한다.
상기 문턱치 저장 서브 모듈(321)은 시스템 컨트롤 그룹의 자원 문턱치를 저장하도록 구성된다.
상기 제한 취소 서브 모듈(322)은 문턱치시스템 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값에 대한 자원 문턱치의 제한을 취소하도록 구성된다.
프로세스 추가 서브 모듈(323)은 새로 생성된 프로세스를 시스템 컨트롤 그룹에 추가하도록 구성된다.
선택적으로, 컨트롤 그룹이 자원 문턱치의 제한을 받지 않는 비시스템 컨트롤 그룹일 경우, 메모리 최적화 장치는 문턱치 판독 모듈(340)을 더 포함한다.
상기 문턱치 판독 모듈(340)은 시스템 컨트롤 그룹의 자원 문턱치를 판독하여 자원 문턱치를 비시스템 컨트롤 그룹과 대응되는 자원 문턱치로 결정하도록 구성된다.
선택적으로, 자원 스왑 아웃 모듈(330)은 제1 설정 서브 모듈(331), 자원 검출 서브 모듈(332), 제1 처리 서브 모듈(333)과 제2 처리 서브 모듈(334)을 포함한다.
상기 제1 설정 서브 모듈(331)은 컨트롤 그룹에 자원 문턱치보다 큰 초기 자원 문턱치를 설정하도록 구성된다.
상기 자원 검출 서브 모듈(332)은 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 제1 설정 서브 모듈(331)에 의해 설정되는 초기 자원 문턱치보다 작은 지의 여부를 검출하도록 구성된다.
상기 제1 처리 서브 모듈(333)은 자원 검출 서브 모듈(332)에 의해 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 것으로 검출되었을 경우, 초기 자원 문턱치를 감소시키고 초기 자원 문턱치가 자원 문턱치와 같을 때까지 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 계속하여 수행하되, 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작을 때 정지하도록 구성된다.
상기 제2 처리 서브 모듈(334)은 자원 검출 서브 모듈(332)에 의해 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 큰 것으로 검출되었을 경우, 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 계속하여 수행하도록 구성된다.
선택적으로, 제1 처리 서브 모듈(333)은 문턱치 감소 서브 모듈(3331), 차이값 검출 서브 모듈(3332)과 제2 설정 서브 모듈(3333)을 포함한다.
상기 문턱치 감소 서브 모듈(3331)은 초기 자원 문턱치를 감소시키도록 구성된다.
상기 차이값 검출 서브 모듈(3332)은 문턱치 감소 서브 모듈(3331)에 의해 감소된 후의 초기 자원 문턱치와 자원 문턱치의 차이값이 소정 수치보다 작은 지의 여부를 검출하도록 구성된다.
상기 제2 설정 서브 모듈(3333)은 차이값 검출 서브 모듈(3332)에 의해 차이값이 소정 수치 보다 작은 것으로 검출되었을 경우, 감소된 후의 초기 자원 문턱치를 자원 문턱치로 설정하고 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 계속하여 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작을 때 정지하도록 구성된다.
선택적으로, 제1 처리 서브 모듈(333)은 수정 일시 정지 서브 모듈(3334)과 검출 순환 서브 모듈(3335)을 더 포함한다.
상기 수정 일시 정지 서브 모듈(3334)은 초기 자원 문턱치를 감소시킬 시 오류가 발생할 경우, 초기 자원 문턱치에 대한 수정을 정지하도록 구성된다.
상기 검출 순환 서브 모듈(3335)은 소정 시간 간격이 지난 후, 초기 자원 문턱치를 감소되기 전의 초기 자원 문턱치로 설정하고 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 계속하여 수행하도록 구성된다.
종합해보면, 본 발명에서 제공하는 메모리 최적화 장치에 있어서, 컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하고; 현재 시각 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달함이 검출되었을 경우, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가하며; 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 문턱치보다 작도록 한다. 이에 따라, 새로 생성된 프로세스를 자원 문턱치의 제한을 받지 않는 컨트롤 그룹에 추가한 후, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값을 압축할 수 있어 단말기가 스왑 아웃 조작을 수행하는 동시에 컨트롤 그룹에 새로 생성된 프로세스를 추가할 경우, 수행되는 스왑 아웃 조작의 시간지연이 비교적 길어 단말기의 운행속도에 영향을 주는 문제점을 해결함으로써 메모리를 압축할 때 조작 시간지연을 감소시키는 효과를 달성한다
이 외에, 초기 자원 문턱치를 감소시킬 시 오류가 발생할 경우, 초기 자원 문턱치에 대한 수정을 정지하고 소정 시간 간격이 지난 후, 초기 자원 문턱치를 감소되기 전의 초기 자원 문턱치로 설정함으로써 컨트롤 그룹에서 유휴 프로세스가 과도하게 적을 경우, 단말기에 대한 스왑 아웃 조작의 중복된 수행이 단말기의 운행속도에 영향을 주는 문제점을 방지하고 스왑 아웃 조작의 수행 빈도를 하강시켜 메모리를 점차 압축하여 메모리에 대한 압축효율을 향상시킬 수 있다.
상기 실시예의 장치에 있어서, 각 모듈이 조작을 수행하는 구체적인 형태는 이미 당해 방법 관련 실시예에서 상세하게 설명되었는 바, 여기서는 상세하게 설명하지 않는다.
도5는 일 예시적 실시예에 따라 도시한 메모리 최적화 장치(500)의 블록도이다. 예를 들어, 장치(500)는 휴대폰, 컴퓨터, 디지털 방송 단말기, 메시지 송수신 기기, 게임 콘솔, 태블릿 기기, 의료 기기, 휘트니스 기기, 개인 휴대 정보 단말기 등일 수 있다.
도5를 참조하면, 장치(500)는 프로세싱 어셈블리(502), 메모리(504), 전원 어셈블리(506), 멀티미디어 어셈블리(508), 오디오 어셈블리(510), 입력/출력(I/O) 인터페이스(512), 센서 어셈블리(514) 및 통신 어셈블리(516)와 같은 하나 또는 다수의 어셈블리를 포함할 수 있다.
프로세싱 어셈블리(502)는 통상적으로 표시, 전화 호출, 데이터 통신, 카메라 조작 및 기록 조작과 관련한 장치(500)의 전체 조작을 제어한다. 프로세싱 어셈블리(502)는 상기 메모리 최적화 방법의 전부 또는 일부 단계를 완성하도록 하나 또는 다수의 프로세서(518)를 포함하여 인스트럭션을 실행할 수 있다. 이 외에, 프로세싱 어셈블리(502)는 프로세싱 어셈블리(502)와 기타 어셈블리 사이의 교류가 편리하도록 하나 또는 다수의 모듈을 포함할 수 있다. 예를 들어, 프로세싱 어셈블리(502)는 멀티미디어 어셈블리(508)와 프로세싱 어셈블리(502) 사이의 교류가 편리하도록 멀티미디어 모듈을 포함할 수 있다.
메모리(504)는 장치(500)의 조작을 지지하도록 각종 유형의 데이터를 저장하도록 구성된다. 이러한 데이터의 예시는 장치(500)에서 조작하기 위한 어느 하나의 응용 프로그램 또는 방법의 인스트럭션, 연계인 데이터, 전화번호부 데이터, 메시지, 이미지, 동영상 등을 포함한다. 메모리(504)는 스태틱 랜덤 액세스 메모리(SRAM), 전기적 소거 가능한 프로그램 가능 판독전용 메모리(EEPROM), 소거 및 프로그램 가능 판독전용 메모리(EPROM), 프로그램 가능 판독전용 메모리(PROM), 판독 전용 메모리(ROM), 자기 메모리, 플래시 메모리, 디스크 또는 CD와 같은 모든 유형의 휘발성 또는 비휘발성 메모리 기기 또는 그들의 조합으로 이루어질 수 있다.
전원 어셈블리(506)는 장치(500)의 각종 어셈블리에 전력을 제공한다. 전원 어셈블리(506)는 전원 관리 시스템, 하나 또는 다수의 전원, 장치(500)에 전력을 생성, 관리 및 분배하는 것과 관련되는 기타 어셈블리를 포함할 수 있다.
멀티미디어 어셈블리(508)는 상기 장치(500)와 사용자 사이에 하나의 출력 인터페이스를 제공하는 스크린을 포함한다. 일부 실시예에서 스크린은 액정 디스플레이(LCD)와 터치 패널(TP)을 포함할 수 있다. 스크린이 터치 패널을 포함하면, 스크린은 사용자가 입력한 신호를 수신하도록 터치 스크린으로 실현될 수 있다. 터치 패널은 터치, 슬라이딩과 터치 패널의 손동작을 감지하도록 하나 또는 다수의 터치 센서를 포함한다. 상기 터치 센서는 터치 또는 슬라이딩 동작의 경계를 감지할 수 있을 뿐만 아니라 상기 터치 또는 슬라이딩 조작과 관련한 지속시간과 압력도 검출할 수 있다. 일부 실시예에서, 멀티미디어 어셈블리(508)는 하나의 프론트 카메라 및/또는 리어 카메라를 포함한다. 장치(500)가 조작 모드 예를 들어, 촬영 모드 또는 동영상 모드일 경우, 프론트 카메라 및/또는 리어 카메라는 외부의 멀티미디어 데이터를 수신할 수 있다. 매 하나의 프론트 카메라와 리어 카메라는 하나의 고정된 광학렌즈 시스템이거나 초점 거리와 광학 줌 능력을 가질 수 있다.
오디오 어셈블리(510)는 오디오 신호를 출력 및/또는 입력하도록 구성된다. 예를 들어, 오디오 어셈블리(510)는 하나의 마이크(MIC)를 포함하는 바, 장치(500)가 조작 모드, 예를 들어 호출 모드, 기록 모드 및 음성 인식 모드일 경우, 마이크는 외부의 오디오 신호를 수신하도록 구성된다. 수신된 오디오 신호는 진일보로 메모리(504)에 저장되거나 통신 어셈블리(516)를 거쳐 발송될 수 있다. 일부 실시예에서 오디오 어셈블리(510)는 오디오 신호를 출력하기 위한 하나의 스피커를 더 포함한다.
I/O 인터페이스(512)는 프로세싱 어셈블리(502)와 주변 인터페이스 모듈 사이에 인터페이스를 제공하되 상기 주변 인터페이스 모듈은 키보드, 클릭 휠, 버튼 등일 수 있다. 이러한 버튼은 홈버튼, 음량버튼, 작동버튼과 잠금버튼을 포함할 수 있지만 이에 제한하지는 않는다.
센서 어셈블리(514)는 하나 또는 다수의 센서를 포함하여 장치(500)에 여러 방면의 상태평가를 제공한다. 예를 들어, 센서 어셈블리(514)는 장치(500)의 온/오프상태, 어셈블리의 상대위치, 예를 들어 어셈블리는 장치(500)의 모니터와 키패드를 검출할 수 있고, 센서 어셈블리(514)는 장치(500) 또는 장치(500)의 한 어셈블리의 위치변화, 사용자와 장치(500)의 접촉여부, 장치(500) 방위 또는 가속/감속과 장치(500)의 온도변화를 검출할 수도 있다. 센서 어셈블리(514)는 아무런 물리접촉이 없을 경우 주변 물체의 존재를 검출하도록 구성된 근접 센서를 포함할 수 있다. 센서 어셈블리(514)는CMOS 또는 CCD 영상 센서와 같은 광 센서를 더 포함하여 영상응용에 사용한다. 일부 실시예에서, 상기 센서 어셈블리(514)는 가속도 센서, 자이로 센서, 자기 센서, 압력 센서 또는 온도 센서를 더 포함할 수 있다.
통신 어셈블리(516)는 장치(500)와 기타 기기 사이의 유선 또는 무선방식의 통신이 편리하도록 구성된다. 장치(500)는 통신표준에 의한 무선 네트워크, 예를 들어 WiFi, 2G 또는 3G 또는 이들의 조합을 액세스할 수 있다. 일 예시적 실시예에서, 통신 어셈블리(516)는 방송 신호를 거쳐 외부 방송 관리 시스템의 방송 신호 또는 방송과 관련한 정보를 수신한다. 일 예시적 실시예에서, 상기 통신 어셈블리(516)는 근거리 통신을 촉진하도록 근거리 자기장 통신(NFC)모듈을 더 포함한다. 예를 들어 NFC모듈은 무선주파수 인식(RFID)기술, 적외선 통신규격(IrDA)기술, 초광대역(UWB)기술, 블루투스(BT)기술과 기타 기술에 기반하여 실현할 수 있다.
예시적인 실시예에서 장치(500)는 상기 메모리 최적화 방법을 수행하도록 하나 또는 다수의 응용 주문형 직접회로(ASIC), 디지털신호 프로세서(DSP), 디지털신호 처리기기(DSPD), 프로그램 가능 논리 소자(PLD), 필드 프로그램 가능 게이트 어레이(FPGA), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 또는 기타 전자부품에 의해 실현될 수 있다.
예시적인 실시예에서, 인스트럭션을 포함한 비일시적 컴퓨터 판독 가능한 기록매체, 예를 들어 상기 메모리 최적화 방법을 완성하도록 장치(500)의 프로세서(518)가 실행하는 인스트럭션을 포함한 메모리(504)를 더 제공한다. 예를 들어, 상기 비일시적 컴퓨터 판독 가능한 기록매체는 ROM, 랜덤 액세스 메모리(RAM), CD-ROM, 테이프, 플로피 디스켓과 광 데이터 저장기기 등일 수 있다.
본 발명이 속하는 기술분야에서 통상의 지식을 가진 자들은 명세서를 고려하여 여기서 공개한 발명을 실시한 후 본 발명의 기타 실시형태를 용이하게 생각해낼 수 있다. 본원 발명은 본 발명의 모든 변형, 용도 또는 적응성 변화를 포함하고 이러한 변형, 용도 또는 적응성 변화는 본 발명의 일반적인 원리를 따르며 본 발명이 공개하지 않은 본 기술분야에서의 공지된 상식 또는 통상적인 기술수단을 포함한다. 명세서와 실시예는 예시적인 것일 뿐 본 발명의 진정한 범위와 기술적 사상은 하기의 청구 범위에 의해 밝혀질 것이다.
본 발명은 상기에서 설명하고 도면에 도시한 정확한 구조에 제한되는 것이 아니라 그 범위를 벗어나지 않는 한 여러가지 수정과 변경을 할 수 있음을 이해해야 한다. 본 발명의 범위는 첨부되는 청구 범위에 의해서만 제한된다.

Claims (15)

  1. 자원 검출 모듈에 의하여, 컨트롤 그룹(control group)에 새로 생성된 프로세스(process)를 추가하여야 할 경우, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하는 단계 - 상기 자원 임계값은, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 컨트롤 그룹과 대응되는 자원 문턱치보다 작으며, 상기 새로 생성된 프로세스를 상기 컨트롤 그룹에 추가한 후 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 큰 경우의 자원값임 - 와,
    프로세스 추가 모듈에 의하여, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 임계값에 도달함이 검출되었을 경우, 상기 새로 생성된 프로세스를 상기 자원 문턱치의 제한을 받지 않는 상기 컨트롤 그룹에 추가하는 단계 - 상기 자원 문턱치의 제한을 받지 않는 컨트롤 그룹은 자원 문턱치의 제한을 받는 시스템 컨트롤 그룹일 수 있고, 자원 문턱치의 제한을 취소한 후 얻어진 컨트롤 그룹일 수 있으며, 단말기에 의해 생성되는 자원 문턱치의 제한을 받지 않는 비시스템 컨트롤 그룹일 수도 있음 - 와,
    자원 스왑 아웃 모듈에 의하여, 상기 컨트롤 그룹에서 유휴 프로세스(idle process)가 차지하는 자원에 대해 스왑 아웃(swap out) 조작을 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작도록 하는 단계를 포함하되,
    상기 컨트롤 그룹이 상기 자원 문턱치의 제한을 받는 시스템 컨트롤 그룹일 경우,
    상기 새로 생성된 프로세스를 상기 자원 문턱치의 제한을 받지 않는 상기 컨트롤 그룹에 추가하는 단계는,
    상기 시스템 컨트롤 그룹의 상기 자원 문턱치를 저장하는 단계와,
    상기 시스템 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값에 대한 상기 자원 문턱치의 제한을 취소하는 단계와,
    상기 새로 생성된 프로세스를 상기 시스템 컨트롤 그룹에 추가하는 단계를 포함하는
    메모리 최적화 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 컨트롤 그룹이 자원 문턱치의 제한을 받지 않는 비시스템 컨트롤 그룹일 경우,
    상기 메모리 최적화 방법은
    시스템 컨트롤 그룹의 자원 문턱치를 판독하고, 상기 자원 문턱치를 상기 비시스템 컨트롤 그룹과 대응되는 자원 문턱치로 결정하는 단계를 더 포함하는
    메모리 최적화 방법.

  4. 제1항 또는 제3항에 있어서,
    상기 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작도록 하는 단계는,
    상기 컨트롤 그룹에 상기 자원 문턱치보다 큰 초기 자원 문턱치를 설정하는 단계와,
    상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계와,
    상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 것으로 검출되었을 경우, 상기 초기 자원 문턱치를 감소시키고 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 상기 초기 자원 문턱치가 상기 자원 문턱치와 같을 때까지 계속하여 수행하되, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작을 때 정지하는 단계와,
    상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 큰 것으로 검출되었을 경우, 상기 컨트롤 그룹에서 상기 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하고, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하는 단계를 포함하는
    메모리 최적화 방법.
  5. 제4항에 있어서,
    상기 초기 자원 문턱치를 감소시키고 상기 초기 자원 문턱치가 상기 자원 문턱치와 같을 때까지 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하되, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작을 때 정지하는 단계는,
    상기 초기 자원 문턱치를 감소시키는 단계와,
    감소된 후의 상기 초기 자원 문턱치와 상기 자원 문턱치의 차이값이 소정 수치보다 작은 지의 여부를 검출하는 단계와,
    상기 차이값이 상기 소정 수치 보다 작은 것으로 검출되었을 경우, 감소된 후의 상기 초기 자원 문턱치를 상기 자원 문턱치로 설정하고 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작을 때 정지하는 단계를 포함하는
    메모리 최적화 방법.

  6. 제4항에 있어서,
    상기 초기 자원 문턱치를 감소시킬 시 오류가 발생할 경우, 상기 초기 자원 문턱치에 대한 수정을 정지하는 단계와,
    소정 시간 간격이 지난 후, 상기 초기 자원 문턱치를 감소되기 전의 초기 자원 문턱치로 설정하고 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 단계를 계속하여 수행하는 단계를 더 포함하는
    메모리 최적화 방법.
  7. 컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출하도록 구성되는 자원 검출 모듈 - 상기 자원 임계값은, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 컨트롤 그룹과 대응되는 자원 문턱치보다 작으며, 상기 새로 생성된 프로세스를 상기 컨트롤 그룹에 추가한 후 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 큰 경우의 자원값임 - 과,
    상기 자원 검출 모듈에 의해 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 임계값에 도달함이 검출되었을 경우, 상기 새로 생성된 프로세스를 상기 자원 문턱치의 제한을 받지 않는 상기 컨트롤 그룹에 추가하도록 구성되는 프로세스 추가 모듈 - 상기 자원 문턱치의 제한을 받지 않는 컨트롤 그룹은 자원 문턱치의 제한을 받는 시스템 컨트롤 그룹일 수 있고, 자원 문턱치의 제한을 취소한 후 얻어진 컨트롤 그룹일 수 있으며, 단말기에 의해 생성되는 자원 문턱치의 제한을 받지 않는 비시스템 컨트롤 그룹일 수도 있음 - 과,
    상기 프로세스 추가 모듈에 의해 추가되는 상기 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작도록 구성되는 자원 스왑 아웃 모듈을 포함하되,
    상기 컨트롤 그룹이 상기 자원 문턱치의 제한을 받는 시스템 컨트롤 그룹일 경우, 상기 프로세스 추가 모듈은,
    상기 시스템 컨트롤 그룹의 상기 자원 문턱치를 저장하도록 구성되는 문턱치 저장 서브 모듈과,
    상기 시스템 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값에 대한 상기 자원 문턱치의 제한을 취소하도록 구성되는 제한 취소 서브 모듈과,
    상기 새로 생성된 프로세스를 상기 시스템 컨트롤 그룹에 추가하도록 구성되는 프로세스 추가 서브 모듈을 포함하는
    메모리 최적화 장치.
  8. 삭제
  9. 제7항에 있어서,
    상기 컨트롤 그룹이 자원 문턱치의 제한을 받지 않는 비시스템 컨트롤 그룹일 경우, 상기 메모리 최적화 장치는
    시스템 컨트롤 그룹의 자원 문턱치를 판독하고, 상기 자원 문턱치를 상기 비시스템 컨트롤 그룹과 대응되는 자원 문턱치로 결정하도록 구성되는 문턱치 판독 모듈을 더 포함하는
    메모리 최적화 장치.
  10. 제7항 또는 제9항에 있어서,
    상기 자원 스왑 아웃 모듈은,
    상기 컨트롤 그룹에 상기 자원 문턱치보다 큰 초기 자원 문턱치를 설정하도록 구성되는 제1 설정 서브 모듈과,
    상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 제1 설정 서브 모듈에 의해 설정되는 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하도록 구성되는 자원 검출 서브 모듈과,
    상기 자원 검출 서브 모듈에 의해 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 것으로 검출되었을 경우, 상기 초기 자원 문턱치를 감소시키고 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 상기 초기 자원 문턱치가 상기 자원 문턱치와 같을 때까지 계속하여 수행하되, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작을 때 정지하도록 구성되는 제1 처리 서브 모듈과,
    상기 자원 검출 서브 모듈에 의해 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 큰 것으로 검출되었을 경우, 상기 컨트롤 그룹에서 상기 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하고 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 계속하여 수행하도록 구성되는 제2 처리 서브 모듈을 포함하는
    메모리 최적화 장치.
  11. 제10항에 있어서,
    상기 제1 처리 서브 모듈은,
    상기 초기 자원 문턱치를 감소시키도록 구성되는 문턱치 감소 서브 모듈과,
    상기 문턱치 감소 서브 모듈에 의해 감소된 후의 상기 초기 자원 문턱치와 상기 자원 문턱치의 차이값이 소정 수치보다 작은 지의 여부를 검출하도록 구성되는 차이값 검출 서브 모듈과,
    상기 차이값 검출 서브 모듈에 의해 상기 차이값이 상기 소정 수치보다 작은 것으로 검출되었을 경우, 감소된 후의 상기 초기 자원 문턱치를 상기 자원 문턱치로 설정하고, 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 계속하여 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작을 때 정지하도록 구성되는 제2 설정 서브 모듈을 포함하는
    메모리 최적화 장치.
  12. 제10항에 있어서,
    상기 제1 처리 서브 모듈은,
    상기 초기 자원 문턱치를 감소시킬 시 오류가 발생할 경우, 상기 초기 자원 문턱치에 대한 수정을 정지하도록 구성되는 수정 일시 정지 서브 모듈과,
    소정 시간 간격이 지난 후, 상기 초기 자원 문턱치를 감소되기 전의 초기 자원 문턱치로 설정하고 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 초기 자원 문턱치보다 작은 지의 여부를 검출하는 조작을 계속하여 수행하도록 구성되는 검출 순환 서브 모듈을 더 포함하는
    메모리 최적화 장치.
  13. 프로세서와,
    프로세서에 의해 실행 가능한 인스트럭션을 저장하기 위한 메모리를 포함하고,
    상기 프로세서는,
    컨트롤 그룹에 새로 생성된 프로세스를 추가하여야 할 경우, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 자원 임계값에 도달하는 지의 여부를 검출 - 상기 자원 임계값은, 현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 컨트롤 그룹과 대응되는 자원 문턱치보다 작으며, 상기 새로 생성된 프로세스를 상기 컨트롤 그룹에 추가한 후 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 큰 경우의 자원값임 - 하고,
    현재 시각 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 임계값에 도달함이 검출되었을 경우, 상기 새로 생성된 프로세스를 상기 자원 문턱치의 제한을 받지 않는 상기 컨트롤 그룹에 추가 - 상기 자원 문턱치의 제한을 받지 않는 컨트롤 그룹은 자원 문턱치의 제한을 받는 시스템 컨트롤 그룹일 수 있고, 자원 문턱치의 제한을 취소한 후 얻어진 컨트롤 그룹일 수 있으며, 단말기에 의해 생성되는 자원 문턱치의 제한을 받지 않는 비시스템 컨트롤 그룹일 수도 있음 - 하며,
    상기 컨트롤 그룹에서 유휴 프로세스가 차지하는 자원에 대해 스왑 아웃 조작을 수행하여 상기 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값이 상기 자원 문턱치보다 작도록 구성되되,
    상기 컨트롤 그룹이 상기 자원 문턱치의 제한을 받는 시스템 컨트롤 그룹일 경우,
    상기 새로 생성된 프로세스를 상기 자원 문턱치의 제한을 받지 않는 상기 컨트롤 그룹에 추가하기 위해서,
    상기 시스템 컨트롤 그룹의 상기 자원 문턱치를 저장하고,
    상기 시스템 컨트롤 그룹에서 모든 프로세스가 차지하는 총 자원값에 대한 상기 자원 문턱치의 제한을 취소하고,
    상기 새로 생성된 프로세스를 상기 시스템 컨트롤 그룹에 추가하도록 구성되는
    메모리 최적화 장치.
  14. 프로세서에 의해 실행되는 것을 통하여 제1항 또는 제3항에 기재된 메모리 최적화 방법을 실현하는 것을 특징으로 하는 기록매체에 저장된 컴퓨터 프로그램.
  15. 제14항에 기재된 컴퓨터 프로그램이 기록된 컴퓨터 판독가능 기록매체.
KR1020157013547A 2014-10-31 2015-03-24 메모리 최적화 방법, 장치, 프로그램 및 기록매체 KR101747571B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410602435.3A CN104407924B (zh) 2014-10-31 2014-10-31 内存优化方法及装置
CN201410602435.3 2014-10-31
PCT/CN2015/074941 WO2016065820A1 (zh) 2014-10-31 2015-03-24 内存优化方法及装置

Publications (2)

Publication Number Publication Date
KR20160064036A KR20160064036A (ko) 2016-06-07
KR101747571B1 true KR101747571B1 (ko) 2017-06-14

Family

ID=52645557

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157013547A KR101747571B1 (ko) 2014-10-31 2015-03-24 메모리 최적화 방법, 장치, 프로그램 및 기록매체

Country Status (8)

Country Link
EP (1) EP3015983B1 (ko)
JP (1) JP6114888B2 (ko)
KR (1) KR101747571B1 (ko)
CN (1) CN104407924B (ko)
BR (1) BR112015015217A2 (ko)
MX (1) MX349598B (ko)
RU (1) RU2618380C2 (ko)
WO (1) WO2016065820A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407924B (zh) * 2014-10-31 2017-11-21 小米科技有限责任公司 内存优化方法及装置
US9678868B2 (en) 2014-10-31 2017-06-13 Xiaomi Inc. Method and device for optimizing memory
CN105094967B (zh) * 2015-06-26 2019-04-16 小米科技有限责任公司 进程运行方法及装置
CN107783836B (zh) * 2016-08-31 2020-10-09 中国电信股份有限公司 基于 Linux 容器控制Web 应用资源的方法和装置
CN107220077B (zh) * 2016-10-20 2019-03-19 华为技术有限公司 应用启动的管控方法和管控设备
CN109710396B (zh) 2017-10-26 2023-08-22 华为技术有限公司 一种信息采集及内存释放的方法及装置
WO2019167157A1 (ja) 2018-02-28 2019-09-06 三菱電機株式会社 リソース制御装置、リソース制御方法及びリソース制御プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140020085A1 (en) * 2012-07-12 2014-01-16 Microsoft Corporation Background Application Management

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2166791C1 (ru) * 2000-07-20 2001-05-10 Закрытое акционерное общество "МЦСТ" Способ и система для асинхронной загрузки массивов данных
US7234047B1 (en) * 2002-04-24 2007-06-19 Adaptec, Inc. Method for managing memory space during system initialization
US7788461B2 (en) * 2004-04-15 2010-08-31 International Business Machines Corporation System and method for reclaiming allocated memory to reduce power in a data processing system
US8024739B2 (en) * 2007-01-09 2011-09-20 International Business Machines Corporation System for indicating and scheduling additional execution time based on determining whether the execution unit has yielded previously within a predetermined period of time
US8156492B2 (en) * 2007-09-07 2012-04-10 Oracle International Corporation System and method to improve memory usage in virtual machines running as hypervisor guests
US9086921B2 (en) * 2010-11-16 2015-07-21 Vmware, Inc. Dynamic database memory management according to swap rates
JP2012242877A (ja) * 2011-05-16 2012-12-10 Sony Corp メモリ管理装置、メモリ管理方法、および、制御プログラム
US20130188483A1 (en) * 2012-01-20 2013-07-25 Alcatel-Lucent Canada, Inc. Resource Threshold Overload Protection
WO2013161056A1 (ja) * 2012-04-27 2013-10-31 株式会社日立製作所 プロセス処理装置、方法及びプログラム
CN104102324B (zh) * 2013-04-08 2017-01-18 艾倍格有限公司 管理移动设备内存的方法、服务器及计算机可读介质
CN106096030B (zh) * 2013-04-23 2019-10-15 北京奇虎科技有限公司 对浏览器运行进行优化的方法和装置
JP5862722B2 (ja) * 2014-07-31 2016-02-16 富士通株式会社 マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
CN104407924B (zh) * 2014-10-31 2017-11-21 小米科技有限责任公司 内存优化方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140020085A1 (en) * 2012-07-12 2014-01-16 Microsoft Corporation Background Application Management

Also Published As

Publication number Publication date
MX2015006489A (es) 2016-06-28
RU2015121678A (ru) 2016-12-27
EP3015983B1 (en) 2021-03-31
KR20160064036A (ko) 2016-06-07
CN104407924B (zh) 2017-11-21
CN104407924A (zh) 2015-03-11
JP6114888B2 (ja) 2017-04-12
MX349598B (es) 2017-08-04
WO2016065820A1 (zh) 2016-05-06
BR112015015217A2 (pt) 2017-07-11
JP2016538675A (ja) 2016-12-08
RU2618380C2 (ru) 2017-05-03
EP3015983A1 (en) 2016-05-04

Similar Documents

Publication Publication Date Title
KR101747571B1 (ko) 메모리 최적화 방법, 장치, 프로그램 및 기록매체
KR101706359B1 (ko) 백그라운드 애플리케이션을 제어하기 위한 방법 및 장치
WO2017113660A1 (zh) 应用程序管理方法及装置
CN105338409B (zh) 一种网络视频预加载方法及装置
US10409684B2 (en) Method, device and storage medium for cleaning memory
CN107040591B (zh) 一种对客户端进行控制的方法及装置
JP6186094B2 (ja) ファームウェア圧縮方法、ファームウェア圧縮解除方法、装置、プログラム及び記録媒体
US20170055221A1 (en) Method and apparatus for starting energy saving mode
CN107888965B (zh) 图像礼物展示方法及装置、终端、系统、存储介质
WO2018120906A1 (zh) 缓存状态报告bsr上报触发方法、装置和用户终端
CN110262692B (zh) 一种触摸屏扫描方法、装置及介质
CN111031177A (zh) 屏幕录制方法、设备及可读存储介质
US9678868B2 (en) Method and device for optimizing memory
US11375403B2 (en) Method and apparatus for detecting maximum transmission unit value
RU2626089C2 (ru) Способ и устройство для загрузки приложения темы
US20210314996A1 (en) Method and apparatus for configuring and determining transmission block scheduling interval, and base station
CN106547462B (zh) 拍照控制方法、装置及移动终端
CN109922203B (zh) 终端、熄屏方法和装置
US20210400588A1 (en) Configuration adjustment methods, apparatuses, electronic device and computer readable storage medium
CN112307229A (zh) 数据处理方法及装置、电子设备、计算机可读存储介质
CN110704197B (zh) 处理内存访问开销的方法、装置及介质
CN111722919B (zh) 运行后台应用程序的方法、装置、存储介质及电子设备
JP7421502B2 (ja) Ac規制方法及び装置
CN105893146B (zh) 内存处理方法及装置
CN107124505B (zh) 录制方法及装置

Legal Events

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