KR102365227B1 - 전자장치 및 그 제어방법 - Google Patents

전자장치 및 그 제어방법 Download PDF

Info

Publication number
KR102365227B1
KR102365227B1 KR1020170035295A KR20170035295A KR102365227B1 KR 102365227 B1 KR102365227 B1 KR 102365227B1 KR 1020170035295 A KR1020170035295 A KR 1020170035295A KR 20170035295 A KR20170035295 A KR 20170035295A KR 102365227 B1 KR102365227 B1 KR 102365227B1
Authority
KR
South Korea
Prior art keywords
memory
allocated
processes
priority
electronic device
Prior art date
Application number
KR1020170035295A
Other languages
English (en)
Other versions
KR20180106641A (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 KR1020170035295A priority Critical patent/KR102365227B1/ko
Priority to PCT/KR2018/003190 priority patent/WO2018174501A1/en
Priority to US15/926,750 priority patent/US20180276032A1/en
Publication of KR20180106641A publication Critical patent/KR20180106641A/ko
Application granted granted Critical
Publication of KR102365227B1 publication Critical patent/KR102365227B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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/5038Allocation 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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Abstract

프로세서를 포함하는 전자장치가 개시된다. 프로세서는 프로그램의 실행에 따라 프로그램에 대응하는 프로세스에 일반메모리 및 커널메모리 중 적어도 하나를 할당하여 프로그램의 수행을 제어하고, 실행 중인 복수의 프로세스 각각에 할당된 일반메모리 및 커널메모리의 총량을 산출하며, 복수의 프로세스 중 산출된 일반메모리 및 커널메모리의 총량에 기초하여 우선순위가 낮은 것으로 선택된 프로세스를 소거한다. 이로 인하여 보다 효율적으로 메모리를 확보할 수 있다.

Description

전자장치 및 그 제어방법{ELECTRONICAL APPARATUS AND CONTROL METHOD THEREOF}
본 발명은 전자장치 및 그 제어방법에 관한 것으로, 보다 구체적으로 메모리를 효율적으로 관리하기 위한 전자장치 및 그 제어방법에 관한 것이다.
전자장치는 다양한 프로그램을 실행할 수 있다. 실행된 프로그램의 실행이 종료되거나 다른 프로그램으로 전환된 뒤에도 실행되었던 프로그램의 프로세스는 여전히 메모리에 존재할 수 있다. 이를 통해, 전자장치는 상주하는 프로세스에 의해 프로그램을 빠르게 시작할 수 있다. 하지만 메모리에 상주하는 프로세스로 인하여 전자장치의 프로그램의 실행을 위한 잔여 메모리가 부족해지는 문제가 있다.
이를 해소하기 위한 종래기술에 따르면, 불필요한 프로세스를 소거함으로써 메모리를 확보한다.
하지만, 종래 기술에 따른 프로세스 소거 방법은 프로세스에 실제로 할당된 메모리양에 기초하여 프로세스를 소거하지 못하여 프로세스를 소거한 뒤에도 메모리가 원하는 만큼 확보되지 않는 문제가 있다.
나아가, 종래 기술에 따르면 최근에 실행이 전환되어 백그라운드로 이동한 프로세스와 이미 백그라운드에 위치한 프로세스들의 우선순위에 차이가 없어 사용자의 프로그램 이용형태를 충분히 고려하지 못하는 문제가 있다.
따라서 본 발명은 상술한 문제점을 해결하기 위한 것으로서, 프로세스에 실제로 할당된 메모리에 기초하여 프로세스를 소거함으로써 메모리를 효율적으로 확보하는 전자장치 및 그 제어방법이 제공된다.
상기한 문제점을 해결하기 위한 본 발명의 일 실시예에 따르면, 전자장치에 있어서, 프로그램의 실행에 따라 상기 프로그램에 대응하는 프로세스에 일반메모리 및 커널메모리 중 적어도 하나를 할당하여 상기 프로그램의 수행을 제어하고, 실행 중인 복수의 프로세스 각각에 할당된 상기 일반메모리 및 상기 커널메모리의 총량을 산출하며, 상기 복수의 프로세스 중 상기 산출된 일반메모리 및 커널메모리의 총량에 기초하여 우선순위가 낮은 것으로 선택된 프로세스를 소거하는 프로세서를 포함하는 전자장치가 제공된다. 이로 인하여 메모리를 효율적으로 확보할 수 있다.
상기 프로세서는 상기 각 프로세스에 전용하여 할당된 메모리의 사용량에 기초하여 상기 일반메모리 및 상기 커널메모리의 총량을 결정할 수 있다.
상기 프로세서는, 상기 프로세스의 상태, 사용 빈도 및 미리 정해진 특정 프로그램의 프로세스인지 여부 중 적어도 하나에 더 기초하여 상기 우선순위를 결정할 수 있다.
상기 프로세서는, 상기 프로세스를 백그라운드로 이동시키고, 상기 백그라운드에 위치한 기존의 복수의 프로세스의 우선순위를 낮출 수 있다.상기 프로세서는, 상기 백그라운드에 위치한 상기 복수의 프로세스 중 적어도 하나의 프로세스에 할당된 메모리를 산출하며, 상기 산출결과에 기초하여 상기 우선순위가 낮은 것으로 선택된 상기 프로세스를 소거할 수 있다.
상기 프로세서는 상기 복수의 프로세스를 중요도에 기초하여 우선순위가 높은 제1그룹 및 우선순위가 낮은 제2그룹으로 분류하고, 상기 프로세스가 백그라운드로 이동될 때, 상기 제1그룹 및 상기 제2그룹 각각에 포함된 복수의 프로세스의 상기 우선순위를 낮출 수 있다.
상기한 문제점을 해결하기 위하여 본 발명의 다른 일 실시예에 따르면, 전자장치의 제어방법에 있어서, 프로그램의 실행에 따라 상기 프로그램에 대응하는 프로세스에 일반메모리 및 커널메모리 중 적어도 하나를 할당하여 상기 프로그램의 수행을 제어하는 단계; 실행 중인 복수의 프로세스 각각에 할당된 상기 일반메모리 및 상기 커널메모리의 총량을 산출하는 단계; 및 상기 복수의 프로세스 중 상기 산출된 일반메모리 및 커널메모리의 총량에 기초하여 우선순위가 낮은 것으로 선택된 프로세스를 소거하는 단계를 포함하는 프로세서의 제어방법이 제공된다. 이로 인하여 메모리를 보다 효율적으로 확보할 수 있다.
상기 선택된 프로세스를 소거하는 단계는,
상기 각 프로세스에 전용하여 할당된 메모리의 사용량에 기초하여 상기 일반메모리 및 상기 커널메모리의 총량을 결정하는 단계를 포함할 수 있다.
상기 전자장치의 제어방법은, 상기 프로세스의 상태, 사용 빈도 및 미리 정해진 특정 프로그램의 프로세스인지 여부 중 적어도 하나에 더 기초하여 상기 우선순위를 결정하는 단계를 더 포함할 수 있다.
상기 전자장치의 제어방법은, 상기 프로세스를 백그라운드로 이동시키는 단계; 및 상기 백그라운드에 위치한 기존의 복수의 프로세스의 우선순위를 낮추는 단계를 더 포함할 수 있다.상기 선택된 프로세스를 소거하는 단계는,
상기 메모리 산출요청에 대응하여, 상기 백그라운드에 위치한 상기 복수의 프로세스 중 적어도 하나의 프로세스에 할당된 메모리를 산출하며, 상기 산출결과에 기초하여 상기 우선순위가 낮은 것으로 선택된 상기 프로세스를 소거하는 단계를 포함할 수 있다.
상기 전자장치의 제어방법은, 상기 복수의 프로세스를 중요도에 기초하여 우선순위가 높은 제1그룹 및 우선순위가 낮은 제2그룹으로 분류하는 단계; 및 상기 프로세스가 백그라운드로 이동될 때, 상기 제1그룹 및 상기 제2그룹 각각에 포함된 복수의 프로세스의 상기 우선순위를 낮추는 단계를 포함할 수 있다.
상기한 바와 같이, 본 발명에 의하면 각 프로세스에 할당된 메모리에 기초하여 프로세스를 소거함으로써 메모리를 보다 효율적으로 확보할 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자장치를 도시한다.
도 2는 본 발명의 일 실시예에 따른 전자장치의 블록도를 도시한다.
도 3은 본 발명의 일 실시예에 따른 프로세서의 블록도를 도시한다.
도 4는 본 발명의 일 실시예에 따른 할당된 메모리의 산출결과를 도시한다.
도 5는 본 발명의 다른 일 실시예에 따른 할당된 메모리의 산출결과를 도시한다.
도 6은 본 발명의 다른 일 실시예에 따른 할당된 메모리의 산출결과를 도시한다.
도 7은 본 발명의 일 실시예에 따라 프로세스가 백그라운드로 이동될 때 다른 프로세스의 우선순위를 변경하는 일 예를 도시한다.
도 8은 본 발명의 일 실시예에 따라 프로세스를 복수의 그룹으로 구분하고 프로세스가 해당 그룹으로 이동될 때 그룹의 다른 프로세스의 우선순위를 변경하는 예를 도시한다.
도 9는 본 발명의 일 실시예에 따른 전자장치의 제어흐름도를 도시한다.
이하에서는 첨부도면을 참조하여 본 발명에 따른 실시예들에 관해 상세히 설명한다. 이하 실시예들의 설명에서는 첨부된 도면들에 기재된 사항들을 참조하는 바, 각 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 구성요소를 나타낸다.
만일, 실시예에서 제1구성요소, 제2구성요소 등과 같이 서수를 포함하는 용어가 있다면, 이러한 용어는 다양한 구성요소들을 설명하기 위해 사용되는 것이며, 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용되는 바, 이들 구성요소는 용어에 의해 그 의미가 한정되지 않는다. 실시예에서 사용하는 용어는 해당 실시예를 설명하기 위해 적용되는 것으로서, 본 발명의 사상을 한정하지 않는다.
이하 실시예들에 의해 설명되는 본 발명의 사상은 다양한 기능을 수행하는 전자장치에 적용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자장치를 도시한다. 본 발명의 일 실시예에 따른 전자장치(1)는 컴퓨터, TV, 스마트폰 등으로 구현될 수 있다. 본 발명의 다른 실시예로서, 전자장치(1)는 태블릿PC, 멀티미디어 재생기, 전자액자, 디지털광고판, LFD, 디지털 사이니지, 셋탑박스, 스마트워치, 냉장고 등 네트워크 신호를 수신하고, 컨텐츠를 제공할 수 있는 다양한 장치로 구현될 수 있으나, 본 발명에 따른 전자장치(1)는 전술된 예시로 한정되지 않는다.
본 실시예에서의 전자장치(1)는 저장된 프로그램 등 명령어에 따른 동작을 수행하는 프로세서(207)에 의해 제어된다. 프로세서(도 2의 207 참조)는 프로그램(도 3의 305 참조)에 대응하는 프로세스(303)를 일시적으로 저장하는 메모리(301)를 포함한다. 프로세서(207)의 제어부(300)는 명령에 의해 프로그램이 실행될 때, 프로그램(305)의 데이터를 이용하여 프로세스(303)를 메모리(301)에 로드한다. 프로세서(207)는, 로드되는 각 프로세스(303)에 대하여 메모리(301)의 일부 저장 공간을 할당하는데, 이하, 편의상 이를 단순히 '메모리를 할당한다'라고 설명한다.
프로세서(207)는 이후, 메모리(301)가 부족하거나, 메모리확보 명령이 수신되는 등 소정의 조건이 만족됨에 대응하여 복수의 프로세스(303) 중 선택된 적어도 하나를 소거한다. 소거될 프로세스(303)의 선택은 각 프로세스(303) 상호 간의 상대적인 우선순위에 따라 결정된다. 즉, 프로세서(207)는, 복수의 프로세스(303) 중에서, 우선순위가 상대적으로 낮은 프로세스(303)를 소거될 프로세스(303)로 선택한다. 프로세스(303)의 우선순위는, 예컨대, 프로세스(303)가 수행된 빈도, 종료된 순서 등과 같은 프로세스(303)의 중요도와, 프로세스(303)에 할당된 메모리의 사용량에 기초하여 결정된다.
도 2는 본 발명의 일 실시예에 따른 전자장치의 블록도를 도시한다. 본 발명의 일 실시예에 따른 전자장치(1)는 신호수신부(200), 신호처리부(201), 디스플레이부(203), 통신부(205), 저장부(209) 및 프로세서(207)를 포함한다. 도 2에 도시된 본 발명의 일 실시예에 따른 전자장치(1)의 구성은 하나의 예시일 뿐이며, 본 발명의 일 실시예에 따른 전자장치(1)는 도 2에 도시된 구성 외 다른 구성이 추가되거나, 혹은 도 2에 도시된 구성 중 어느 하나가 배제되어 구현될 수도 있다.
신호수신부(200)는 외부로부터 컨텐츠의 신호를 수신한다. 컨텐츠의 신호는 방송신호를 포함한다. 신호수신부(200)는 방송신호송출장비 또는 방송신호를 중계하는 중계장치로부터 방송신호를 수신하기 위한 튜너(tuner)를 구비할 수 있다. 튜너는 복수의 채널 중 사용자에 의해 선택된 어느 하나의 채널의 방송신호를 튜닝하여 수신할 수 있다. 신호수신부(200)는 서버로부터 네트워크를 통해 컨텐츠의 신호를 수신할 수도 있다.
전자장치(1)는 전술한 바와 같이 핸드폰, 스마트폰, 태블릿 PC 등 모바일 장치로 구성될 수도 있다. 전자장치(1)가 모바일장치로 구성되는 경우, 전자장치(1)는 이동통신을 통해 외부 장치와 연결되기 위한 이동통신부를 추가로 구비할 수 있다. 이동통신부는 적어도 하나 이상의 안테나를 포함하는 외부 장치와 통신하며 음성통화, 영상통화, 문자메시지 또는 멀티미디어 메시지를 위한 무선신호를 송수신한다.
신호처리부(201)는 신호수신부(200)를 통해 수신되는 컨텐츠의 신호에 대해 신호처리를 수행하고, 신호처리가 수행된 신호를 디스플레이부(203)에 출력함으로써 디스플레이부(203)에 출력영상이 표시되도록 한다. 신호처리부(201)가 수행하는 신호처리 프로세스는, 예를 들면, 영상 및 오디오를 포함하는 컨텐츠 신호를 영상, 오디오 부가데이터의 각 하위스트림으로 구분하는 디멀티플렉싱(demultiplexing), 인터레이스(interace) 방식의 영상신호를 프로그레시브(progressive) 방식으로 변환하는 디인터레이싱(de-interlacing), 영상신호의 해상도를 조정하는 스케일링(scaling), 영상 화질 개선을 위한 노이즈 감소(noise reduction), 디테일 강화(detail enhancement), 프레임 리프레시 레이트(frame refresh rate) 변환 등을 포함할 수 있다.
디스플레이부(203)는 신호처리부(201)에서 처리된 신호에 기초하여 컨텐츠의 영상을 표시한다. 디스플레이부(203)의 구현방식은 한정되지 않으며, 예를 들면 액정(liquid crystal), 플라즈마(plasma), 발광 다이오드(light-emitting diode), 유기발광 다이오드(organic light-emitting diode), 면전도 전자총(surface-conduction electron-emitter), 탄소 나노 튜브(carbon nano-tube), 나노 크리스탈(nano-crystal) 등의 다양한 디스플레이 방식으로 구현될 수 있다.
디스플레이부(203)는 액정 방식인 경우에, 액정 디스플레이 패널과 액정 디스플레이 패널에 광을 공급하는 백라이트유닛과, 액정 디스플레이 패널을 구동시키는 패널구동기판 등을 포함한다. 디스플레이부(203)는 백라이트유닛없이, 자발광소자인 OLED패널로 구현될 수도 있다.
통신부(205)는 유선통신을 위한 접속부를 포함하며, 접속부는 HDMI(high definition multimedia interface), HDMI-CEC(consumer electronics control), USB, 컴포넌트(component) 등의 규격에 따른 신호/데이터를 송/수신할 수 있으며, 이들 각각의 규격에 대응하는 적어도 하나 이상의 커넥터 또는 단자를 포함한다. 통신부(205)는 유선 LAN(local area network)을 통해 복수의 서버들과 유선 통신을 수행할 수 있다.
통신부(205)는 유선 접속을 위한 커넥터 또는 단자를 포함하는 접속부 이외에도 다양한 다른 통신 방식으로 구현될 수 있다. 예컨대, 통신부(205)는 무선 LAN을 통해 무선 통신 또는 무선 근거리 통신 등을 수행할 수 있다. 외부 장치와 무선 통신을 수행하기 위해 RF(radio frequency)신호를 송수신하는 RF회로를 포함할 수 있으며, Wi-fi, 블루투스, 지그비(Zigbee), UWM(Ultra-Wide Band), Wireless USB, NFC(Near Field Communication), 적외선 통신(IrDA, infrared data association) 중 하나 이상의 통신을 수행하도록 구성될 수 있다.
저장부(209)는 전자장치(1)의 다양한 데이터를 저장하도록 구성된다. 본 실시예에서의 저장부(209)는 플래쉬 메모리(flash memory), EPROM 또는 EEPROM 등과 같은 비휘발성 메모리로 구성된다.
프로세서(207)는 전자장치(1)의 제반 구성들이 동작하기 위한 제어를 수행한다. 프로세서(207)는 설치된 프로그램이 시작될 때 적어도 일부가 로드되는 휘발성의 메모리(301)를 포함한다. 메모리(301)는 프로그램(도 3의 305 참조)의 데이터를 로드한다. 메모리(301)는 제어부(300)의 제어에 따라 프로그램(305)에 대응하는 하나 이상의 프로세서(207)에 할당된다. 프로세서(207)는 메모리(301)의 동작을 제어하는 마이크로프로세서, CPU(central processing unit) 등 서브프로세서들을 포함할 수 있다.
프로세서(207)를 동작하기 위한 제어프로그램은, BIOS, 디바이스드라이버, 운영체계, 펌웨어, 플랫폼 및 응용프로그램(어플리케이션) 중 적어도 하나의 형태로 구현되는 프로그램(들)을 포함할 수 있다. 하나의 실시예로서, 응용프로그램은, 전자장치(1)의 제조시에 전자장치(1)에 미리 설치 또는 저장되거나, 혹은 추후 사용 시에 외부로부터 응용프로그램의 데이터를 수신하여 수신된 데이터에 기초하여 전자장치(1)에 설치될 수 있다. 응용프로그램의 데이터는, 예컨대, 어플리케이션 마켓과 같은 외부서버로부터 전자장치(1)로 다운로드 될 수도 있다.
본 발명의 일 실시예로서, 프로세서(207)는 프로그램(305)의 실행에 따라 프로그램(305)에 대응하는 프로세스(303)에 메모리(301)를 일부 할당함으로써 프로그램(305)의 수행을 제어한다. 프로세서(207)는 메모리(301)를 확보할 필요가 있는 경우, 복수의 프로세스(303) 중 중요도에 따른 우선순위가 낮은 프로세스(303)에 할당된 메모리(301)의 사용량을 산출한다. 여기에서, 중요도에 따른 우선순위는 프로세스(303)의 사용 빈도, 상태, 중요한 특정 프로그램의 프로세스인지 여부 등에 기초하여 결정될 수 있다. 이어서, 프로세서(207)는 산출결과에 기초하여 선택된 프로세스(303)를 소거함으로써 메모리(301)를 확보한다. 본 실시예에서는, 중요도에 따른 우선순위가 낮은 프로세스(303)에 대하여 할당된 메모리(301)의 사용량을 산출하나, 그 처리 순서는 이에 한정되지 않으며, 메모리(301)의 사용량을 산출한 이 후에, 중요도에 따른 프로세스(303)의 우선순위 판단이 이루어질 수도 있다.
프로세서(207)는 사용자로부터 메모리확보명령이 수신되거나 새롭게 실행되어야 할 프로그램(305)의 프로세스(303)에 할당될 메모리(301)가 부족할 때 또는 주기적으로 메모리 확보를 수행한다.
프로세서(207)는 실행되어야 할 프로그램(305)의 프로세스(303)에 할당되어야 할 메모리(301)의 사용량에 기초하여 프로세스(303)를 적어도 하나 이상 소거할 수도 있다.
이하, 도면을 통해 프로세서(207)의 동작에 대해서 자세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 프로세서의 블록도를 도시한다. 프로세서(207)는 메모리(301)와 제어부(300)를 포함한다. 제어부(300)는 메모리(301)의 동작을 관리하고 제어한다. 메모리(301)는 일반 프로세스가 할당되는 일반메모리의 영역과, 운영체제 등 커널이 할당되는 커널메모리의 영역을 포함한다. 일반메모리 및 커널메모리 각각의 영역은, 메모리(301)의 어느 저장공간에 집중 또는 분산되어 있을 수 있다. 일 실시예로서, 제어부(300)는 커널 메모리 중에서 운영체제가 할당된 부분을 제외한 여유 부분에 일반 프로세스를 할당할 수도 있다. 프로그램(305)에 대응하는 프로세스(303)는 메모리(301)에 할당되어 동작한다. 한편, 프로세스(303)는 할당된 메모리(301) 중 일부를 다른 프로세스(303)와 공유할 수도 있다. 메모리(301)의 공유는 예컨대, 시분할로 이루어진다. 따라서, 하나의 프로세스(303)가 소거되더라도 공유중인 메모리(301)는 확보되지 않는다.
프로그램(305)의 실행이 종료되더라도 메모리(301)에 할당된 프로세스(303)는 메모리(301)에서 소거될 때까지 남아있는다. 실행의 종료된 프로그램(305)의 프로세스(303)는 메모리(301)의 백그라운드로 이동한다. 도 3에서는, 메모리(301)가 프로세서(207)와 일체로 구현되는 예를 도시하나, 본 발명은 이에 한정되지 않으며, 메모리는 프로세서와 별개의 구성으로 구현될 수도 있다.
도 4는 본 발명의 일 실시예에 따른 할당된 메모리의 산출결과를 도시한다.
메모리 확보의 수행을 위해, 먼저 제어부(300)는 각 프로세스(303)에 할당된 메모리(301)를 산출한다. 실시예에 따라서, 중요도에 따른 우선순위가 가장 낮은 적어도 하나의 프로세스(303)에 할당된 메모리(301)의 사용량만 산출할 수도 있다. 제어부(300)는 각 프로세스(303)에 할당된 메모리(301)의 사용량을 산출하기 위해 '/proc file system'에서 프로세스(303) 별 메모리 정보를 가지고 있는 파일에 접근할 수 있다. 메모리정보를 가지는 파일은 일례로서 '/proc/PID/statm '가 있다.
부호 400은 제어부(300)가 각 프로세스(303)에 대해서 할당된 메모리(301)의 사용량을 산출한 값을 도시한다. 산출된 값(400)은 사용자에게 UI로 제공될 수도 있다. 제어부(300)는 프로세스(303)가 실제로 메모리(301)에 매핑되어 있는 크기의 합으로서, 다른 프로세스(303)와 공유된 메모리(301)의 사용량을 합산하여 산출할 수 있다. 합산하여 산출된 값을 RSS(Resident set size)값이라고도 한다. 다른 예로서, 제어부(300)는 프로세스(303)가 전용하는 메모리(301)와 다른 프로세스(303)와 공유된 메모리(301)를 공유하고 있는 프로세스(303)의 수로 나눈 값을 산출된 값(400)으로 제공할 수도 있다. 이를 PSS(Proportioanl set size)값이라고도 한다.
제어부(300)는 할당된 메모리양이 많은 프로세스(303)를 소거할 프로세스(303)의 우선순위가 높은 것으로 결정할 수 있다. 즉, 만일, 복수의 프로세스(303) 상호 간에 중요도에 따른 우선순위가 서로 동등하다면, 제어부(300)는 할당된 메모리양이 가장 많은 프로세스(303)를 선택하여 소거할 수 있다. 본 실시예에 따르면, 제3프로세스에 할당된 메모리값이 가장 높으므로, 제어부(300)는 제3프로세스를 소거한다.
도 5는 본 발명의 다른 일 실시예에 따른 할당된 메모리의 산출결과를 도시한다. 부호 500은 제어부(300)가 각 프로세스(303)에 대해서 할당된 메모리(301)의 사용량을 산출한 값을 도시한다. 산출된 값(500)은 각 프로세스(303)에 할당된 고유메모리값과 다른 프로세스(303)와 공유중인 공유메모리값을 구분하여 표시한다. 고유메모리값은 다른 프로세스(303)와 공유되지 않는 값으로서, USS(unique set size)또는 PUS(private unique size)라고도 한다.
제어부(300)는 산출된 고유메모리값에 기초하여 프로세스(303)가 소거될 때 확보할 수 있는 메모리(301)의 사용량을 보다 정확하게 판단할 수 있다. 제어부(300)는 할당된 고유메모리값이 가장 높은 프로세스(303)를 먼저 소거할 수 있다. 본 실시예에 따르면, 제1프로세스에 할당된 고유메모리값이 가장 높으므로, 제1프로세스를 소거하면 실제로 확보되는 메모리(301)가 제일 많다. 제어부(300)는 산출결과에 기초하여 제1프로세스를 소거한다.
도 6은 본 발명의 다른 일 실시예에 따른 할당된 메모리의 산출결과를 도시한다. 부호 600은 제어부(300)가 각 프로세스(303)에 대해서 할당된 메모리(301)의 사용량을 산출한 값을 도시한다. 산출된 값(600)은 각 프로세스(303)에 대하여 일반메모리에 할당된 일반메모리값과, 커널메모리에 할당된 커널메모리값으로 구분될 수 있다. 전술한 바와 같이 제어부(300)는 프로세스(303)에 커널메모리를 일부 할당할 수 있다. 제어부(300)는, 각 프로세스(303)에 할당된 일반메모리값뿐만 아니라, 커널메모리값을 합한 메모리의 총 사용량에 기초하여 소거될 프로세스(303)를 결정할 수 있다.
본 실시예에 따르면, 제3프로세스에 할당된 일반메모리값 및 커널메모리값의 총량이 가장 높다. 따라서, 제어부(300)는 일반메모리값뿐만 아니라, 커널메모리값을 포함한 산출결과에 기초하여 제3프로세스를 소거한다.
제어부(300)는 도 4 내지 도 6에서 소개된 메모리 산출방법을 종합적으로 이용하여 메모리의 총 사용량을 결정할 수 있다. 예컨대, 제어부(300)는, 도 5를 참조하여 설명한 고유메모리값을, 도 6을 참조하여 설명한, 메모리의 총 사용량의 결정에 이용할 수 있다. 즉, 제어부(300)는, 어느 프로세스에 할당된 일반메모리값 및 커널메모리값의 총량을, 다른 프로세스와 공유되는 부분을 제외한 해당 프로세스의 고유메모리값만을 고려하여 결정할 수 있다.
제어부(300)는, 각 프로세스(303)의 중요도와 함께, 각 프로세스(303)에 대하여 할당된 메모리의 총 사용량에 기초하여 각 프로세스(303)의 우선순위를 최종 결정하고, 결정된 우선순위에 기초하여 소거될 프로세스(303)를 결정한다.
도 7은 본 발명의 일 실시예에 따라 프로세스가 백그라운드로 이동될 때 다른 프로세스의 우선순위를 변경하는 일 예를 도시한다.
프로그램(305)의 실행이 종료되거나, 다른 프로그램(305)의 실행에 따라 실행 중이던 프로그램(305)의 프로세스(303)는 백그라운드로 이동하게 된다. 제어부(300)는 백그라운드로 프로세스(303)가 이동될 때, 프로세스(303)에 비하여 기존에 백그라운드에 위치하던 복수의 프로세스(700)의 우선순위를 낮춘다.
본 실시예에 따르면, 최근에 백그라운드로 이동된 프로세스(303)의 우선순위가 가장 높게 되어, 기존 프로세스가 대신 소거되고, 프로세스(303)은 소거되지 않게 된다. 이에 따라, 최근에 실행이 종료된 프로그램(305)을 다시 실행할 때 프로세스(303)가 유지되어 있어 프로그램(305)을 실행하는 반응속도가 향상된다.
도 8은 본 발명의 일 실시예에 따라 프로세스를 복수의 그룹으로 구분하고 프로세스가 해당 그룹으로 이동될 때 그룹의 다른 프로세스의 우선순위를 변경하는 다른 예를 도시한다.
복수의 프로세스는 사용 빈도 등의 중요도에 기초하여 복수의 그룹(800, 801)으로 구분될 수 있다. 본 실시예에서, 사용 빈도가 소정 빈도보다 높은 프로세스들은 제1그룹(800)으로 구분되고, 사용 빈도가 소정 빈도보다 낮은 프로세스들은 제2그룹(801)으로 구분한다. 각 그룹(800, 801)은 그 사용 빈도에 따라, 제1그룹(800)은 높은 우선순위를, 제2그룹(801)은 낮은 우선순위를 각각 가질 수 있다. 프로세스(303)는 백그라운드로 이동될 때, 기 분류된 어느 하나의 그룹(800, 801)으로 이동된다. 제어부(300)는, 프로세스(303)가 백그라운드로 이동되면, 제1프로세스(303)의 우선순위에 비하여, 제1그룹(800)의 기존 프로세스(제2프로세스)의 우선순위 및 제2그룹(801)의 기존 프로세스(제3 및 제4프로세스) 우선순위를 모두 하강시킨다. 이에 따라, 제1프로세스(303)가, 우선순위가 높은 제1그룹(800)은 물론이고, 우선순위가 낮은 제2그룹(801)으로 이동하더라도, 제1프로세스(303)의 우선순위가, 제1그룹(800) 및 제2그룹(801)의 기존 프로세스들의 우선순위보다 높게 유지될 수 있다. 이로 인하여, 최근에 사용한 프로세스(303)에 비하여, 기존의 다른 프로세스들의 우선순위를 낮춤으로써, 최근에 사용이 전환된 프로세스(303)를 우선순위를 높게 유지하여 해당 프로세스(303)의 재시작 시의 반응 속도가 향상된다. 또한, 더욱이 상대적으로 오랫동안 사용되지 않은 기존 프로세스를 소거함으로써, 메모리를 회수 했을 때, 해당 프로세스가 다시 실행될 가능성이 낮아지므로, 시스템적으로도 안정된 메모리를 확보할 수 있게 된다.
도 9는 본 발명의 일 실시예에 따른 전자장치의 제어흐름도를 도시한다. 먼저, 동작 S900에서, 프로세서(207)는 프로그램(305)의 실행에 따라 프로그램(305)에 대응하는 프로세스(303)에 일반메모리 및 커널메모리 중 적어도 하나를 할당하여 프로그램(305)의 수행을 제어한다. 이어서, 동작 S901에서, 프로세서(207)는, 복수의 프로세스(303) 각각에 할당된 일반메모리 및 커널메모리의 총량을 산출한다. 마지막으로, 동작 S902에서, 프로세서(207)는 복수의 프로세스(303) 중 산출된 일반메모리 및 커널메모리의 총량에 기초하여 우선순위가 낮은 것으로 선택된 프로세스(303)를 소거한다.
200 신호수신부
201 신호처리부
203 디스플레이부
205 통신부
207 프로세서
209 저장부

Claims (13)

  1. 전자장치에 있어서,
    제1프로세스와 제2프로세스를 실행하고,
    상기 제1프로세스와 상기 제2프로세스의 실행에 응답하여 상기 제1프로세스와 상기 제2프로세스의 각각에 다른 프로세스들과 공유되지 않는 고유 메모리와 다른 프로세스들과 공유되는 공유 메모리 중 적어도 하나를 할당하고,
    상기 제1프로세스와 상기 제2프로세스에 상기 고유 메모리만 할당하거나 상기 공유 메모리와 상기 고유 메모리를 모두 할당하는 지를 식별하고,
    상기 고유 메모리만 할당하거나 상기 공유 메모리와 상기 고유 메모리를 모두 할당하는 경우, 상기 제1프로세스와 상기 제2프로세스의 종료 시 상기 제1프로세스와 상기 제2프로세스에 각각 할당된 상기 공유 메모리를 제외한 상기 고유 메모리의 제1사용량과 제2사용량을 산출하고,
    상기 산출된 제1사용량과 제2사용량에 기초하여 상기 제1프로세스와 상기 제2프로세스 중 하나를 선택하고,
    상기 제1프로세스와 상기 제2프로세스 중 상기 선택된 프로세스를 종료하는 프로세서를 포함하는 전자장치.
  2. 삭제
  3. 제 1항에 있어서,
    상기 프로세서는 프로세스의 상태, 상기 프로세스의 사용 빈도 및 미리 정해진 특정 프로그램의 프로세스인지 여부 중 적어도 하나에 더 기초하여 상기 프로세스의 우선순위를 식별하는 전자장치.
  4. 제 1항에 있어서,
    상기 프로세서는 상기 제1프로세스와 상기 제2프로세스 중 상기 종료된 프로세스를 백그라운드로 이동시키고, 상기 백그라운드에 위치한 기존의 복수의 프로세스의 우선순위를 낮추는 전자장치.
  5. 제 4항에 있어서,
    상기 프로세서는 상기 백그라운드에 위치한 복수의 프로세스 중 적어도 하나의 프로세스에 할당된 메모리를 산출하며, 상기 산출된 상기 적어도 하나의 프로세스에 할당된 메모리의 양에 기초하여 상기 우선순위가 낮은 것으로 선택된 상기 프로세스를 소거하는 전자장치.
  6. 제 4항에 있어서,
    상기 프로세서는 상기 복수의 프로세스를 중요도에 기초하여 제1우선순위를 가지는 제1그룹 및 제2우선순위를 가지는 제2그룹으로 분류하고, 상기 제1프로세스와 상기 제2프로세스 중 상기 종료된 프로세스가 상기 백그라운드로 이동될 때, 상기 제1그룹 및 상기 제2그룹 각각에 포함된 복수의 프로세스의 상기 우선순위를 낮추는 전자장치.
  7. 전자장치의 제어방법에 있어서,
    제1프로세스와 제2프로세스를 실행하는 단계;
    상기 제1프로세스와 상기 제2프로세스의 실행에 응답하여 상기 제1프로세스와 상기 제2프로세스의 각각에 다른 프로세스들과 공유되지 않는 고유 메모리와 다른 프로세스들과 공유되는 공유 메모리 중 적어도 하나를 할당하는 단계;
    상기 제1프로세스와 상기 제2프로세스에 상기 고유 메모리만 할당하거나 상기 공유 메모리와 상기 고유 메모리를 모두 할당하는 지를 식별하는 단계;
    상기 고유 메모리만 할당하거나 상기 공유 메모리와 상기 고유 메모리를 모두 할당하는 경우, 상기 제1프로세스와 상기 제2프로세스의 종료 시 상기 제1프로세스와 상기 제2프로세스에 각각 할당된 상기 공유 메모리를 제외한 상기 고유 메모리의 제1사용량과 제2사용량을 산출하는 단계;
    상기 산출된 제1사용량과 제2사용량에 기초하여 상기 제1프로세스와 상기 제2프로세스 중 하나를 선택하는 단계; 및,
    상기 제1프로세스와 상기 제2프로세스 중 상기 선택된 프로세스를 종료하는 단계를 포함하는 전자장치의 제어방법.
  8. 삭제
  9. 제 7항에 있어서,
    프로세스의 상태, 상기 프로세스의 사용 빈도 및 미리 정해진 특정 프로그램의 프로세스인지 여부 중 적어도 하나에 더 기초하여 상기 프로세스의 우선순위를 식별하는 단계를 포함하는 전자장치의 제어방법.
  10. 제 7항에 있어서,
    상기 제1프로세스와 상기 제2프로세스 중 상기 종료된 프로세스를 백그라운드로 이동시키는 단계; 및
    상기 백그라운드에 위치한 기존의 복수의 프로세스의 우선순위를 낮추는 단계를 더 포함하는 전자장치의 제어방법.
  11. 제 10항에 있어서,
    상기 선택된 프로세스를 종료하는 단계는,
    상기 백그라운드에 위치한 복수의 프로세스 중 적어도 하나의 프로세스에 할당된 메모리를 산출하며, 상기 산출된 상기 적어도 하나의 프로세스에 할당된 메모리의 양에 기초하여 상기 우선순위가 낮은 것으로 선택된 프로세스를 소거하는 단계를 포함하는 전자장치의 제어방법.
  12. 제 10항에 있어서,
    상기 복수의 프로세스를 중요도에 기초하여 제1우선순위를 가지는 제1그룹 및 제2우선순위를 가지는 제2그룹으로 분류하는 단계; 및
    상기 제1프로세스와 상기 제2프로세스 중 상기 종료된 프로세스가 상기 백그라운드로 이동될 때, 상기 제1그룹 및 상기 제2그룹 각각에 포함된 복수의 프로세스의 상기 우선순위를 낮추는 단계를 포함하는 전자장치의 제어방법.
  13. 제 7항 및 제9항 내지 제12항 중 어느 한 항에 기재된 전자장치의 제어방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 컴퓨터 판독가능한 기록 매체.
KR1020170035295A 2017-03-21 2017-03-21 전자장치 및 그 제어방법 KR102365227B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170035295A KR102365227B1 (ko) 2017-03-21 2017-03-21 전자장치 및 그 제어방법
PCT/KR2018/003190 WO2018174501A1 (en) 2017-03-21 2018-03-19 Electronic apparatus and control method thereof
US15/926,750 US20180276032A1 (en) 2017-03-21 2018-03-20 Electronic apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170035295A KR102365227B1 (ko) 2017-03-21 2017-03-21 전자장치 및 그 제어방법

Publications (2)

Publication Number Publication Date
KR20180106641A KR20180106641A (ko) 2018-10-01
KR102365227B1 true KR102365227B1 (ko) 2022-02-22

Family

ID=63582596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170035295A KR102365227B1 (ko) 2017-03-21 2017-03-21 전자장치 및 그 제어방법

Country Status (3)

Country Link
US (1) US20180276032A1 (ko)
KR (1) KR102365227B1 (ko)
WO (1) WO2018174501A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080168235A1 (en) 2007-01-07 2008-07-10 Matt Watson Memory Management Methods and Systems
US20100115273A1 (en) 2007-07-02 2010-05-06 Computer Associates Think, Inc. System and method for finding kernel memory leaks
US20120102504A1 (en) * 2010-10-25 2012-04-26 Microsoft Corporation Application lifetime management
US20120179882A1 (en) * 2011-01-07 2012-07-12 Bernhard Iii Leroy Francis Cooperative memory management
US20130054922A1 (en) 2011-08-23 2013-02-28 Vmware, Inc. Cooperative memory resource management for virtualized computing devices

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544063B (zh) * 2013-09-30 2017-02-08 三星电子(中国)研发中心 应用于安卓平台的进程清除方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080168235A1 (en) 2007-01-07 2008-07-10 Matt Watson Memory Management Methods and Systems
US20100115273A1 (en) 2007-07-02 2010-05-06 Computer Associates Think, Inc. System and method for finding kernel memory leaks
US20120102504A1 (en) * 2010-10-25 2012-04-26 Microsoft Corporation Application lifetime management
US20120179882A1 (en) * 2011-01-07 2012-07-12 Bernhard Iii Leroy Francis Cooperative memory management
US20130054922A1 (en) 2011-08-23 2013-02-28 Vmware, Inc. Cooperative memory resource management for virtualized computing devices

Also Published As

Publication number Publication date
KR20180106641A (ko) 2018-10-01
US20180276032A1 (en) 2018-09-27
WO2018174501A1 (en) 2018-09-27

Similar Documents

Publication Publication Date Title
US11483830B2 (en) Frequency spectral management apparatus and method, geographical location database and secondary system apparatus
US9665410B2 (en) Processing of application programming interface traffic
CN109254849B (zh) 应用程序的运行方法及装置
US9736529B2 (en) USB sharing method for combo TV set, combo TV set and computer readable storage medium
JP6695980B2 (ja) ネットワーク利用率を向上させるためのネットワーク支援プロトコルの使用
KR20180083482A (ko) 디스플레이장치 및 그 제어방법
US11064150B2 (en) High resolution user interface
US20150074233A1 (en) Method for providing streaming service and electronic device thereof
KR20180062758A (ko) 디스플레이장치 및 그 제어방법
CN113535251A (zh) 一种线程管理方法及装置
CN111078356A (zh) Gpu集群资源控制系统、方法、装置、设备及存储介质
KR102365227B1 (ko) 전자장치 및 그 제어방법
US20110125993A1 (en) Display apparatus and control method thereof
CN109753353B (zh) 虚拟机资源分配方法、装置及电子设备
KR102332525B1 (ko) 전자 장치 및 그 동작방법
KR20180071570A (ko) 전자장치 및 그 제어방법
US20150220434A1 (en) Electronic device and method for executing garbage collection
EP3163895A1 (en) System and method for remote control of smart television
US10419806B1 (en) Modularly activated cloud-DVR storage
US10387227B2 (en) Method and electronic apparatus for executing application
KR102561860B1 (ko) 전자장치 및 그 제어방법
US9794640B2 (en) Signal processing apparatus, signal processing method, and broadcasting system including the signal processing apparatus
US20150261547A1 (en) Method and apparatus for controlling memory in electronic device
CN106227607B (zh) 终端中硬件设备的分配方法和装置
US11178459B1 (en) Nonlinear dynamic prioritized content caching for segmented content

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant