KR20230114004A - Electronic apparatus and control method thereof - Google Patents
Electronic apparatus and control method thereof Download PDFInfo
- Publication number
- KR20230114004A KR20230114004A KR1020220009957A KR20220009957A KR20230114004A KR 20230114004 A KR20230114004 A KR 20230114004A KR 1020220009957 A KR1020220009957 A KR 1020220009957A KR 20220009957 A KR20220009957 A KR 20220009957A KR 20230114004 A KR20230114004 A KR 20230114004A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- electronic device
- usage
- capacity
- predicted usage
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99955—Archiving or backup
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
전자장치는, 실행할 프로세스의 개시에 응답하여, 프로세스에 사용될 것으로 예측되는 메모리의 예측 사용량을 식별하고, 메모리의 현재 사용 가능한 가용량을 식별하고, 식별된 가용량 및 식별된 예측 사용량에 기초하여 메모리의 가용량을 추가 확보할 것인지 여부를 판단하며, 판단 결과에 따라서 메모리의 가용량의 추가 확보 동작을 선택적으로 수행하고, 프로세스의 메모리 할당 요청에 응답하여, 프로세스에 메모리를 할당하는 프로세서를 포함한다.In response to initiation of a process to run, the electronic device identifies a predicted amount of memory expected to be used by the process, identifies a currently available amount of memory, and uses the memory based on the identified amount and the identified predicted amount. and a processor that determines whether to additionally secure the available capacity of the memory, selectively performs an additional securing operation of the available capacity of the memory according to the determination result, and allocates the memory to the process in response to a memory allocation request of the process. .
Description
본 발명은 실행되는 프로세스에 메모리를 할당하는 전자장치 및 그 제어방법에 관한 것으로서, 상세하게는 메모리의 현재 가용량을 고려하여 메모리를 기 할당한 이전 프로세스를 종료시킴으로써 새로운 프로세스에 대한 메모리의 가용량을 확보하는 전자장치 및 그 제어방법에 관한 것이다.The present invention relates to an electronic device for allocating memory to a running process and a method for controlling the same, and more particularly, by terminating a previous process that previously allocated memory in consideration of the current capacity of memory, the available capacity of memory for a new process It relates to an electronic device that secures and a control method thereof.
프로세스를 실행하기 위해, 연산을 위한 CPU, 칩셋, 메모리 등의 전자부품들을 기본적으로 포함하는 전자장치는, 처리 대상이 되는 정보 또는 사용 용도가 무엇인지에 따라서 다양한 종류로 구분될 수 있다. 예를 들면, 전자장치에는 범용의 정보를 처리하는 PC(personal computer)나 서버(server) 등의 정보처리장치, 영상데이터를 처리하는 영상처리장치, 오디오를 처리하는 오디오장치, 가정 내 잡무를 수행하는 생활가전 등이 있다. 영상처리장치는 처리된 영상데이터를 자체 구비한 디스플레이 패널(display panel) 상에 영상으로 표시하는 디스플레이장치로 구현될 수 있다. 이와 같은 다양한 종류의 전자장치는 상호 통신 가능하게 연결되며, 소정의 서비스를 제공하는 서버 또는 호스트의 역할과, 상기한 서비스를 제공받는 클라이언트의 역할 중 어느 하나를 수행할 수 있다.In order to execute a process, an electronic device that basically includes electronic components such as a CPU, a chipset, and a memory for calculation may be classified into various types depending on information to be processed or usage. For example, electronic devices include an information processing device such as a PC (personal computer) or server that processes general-purpose information, an image processing device that processes image data, an audio device that processes audio, and performs household chores. There are household appliances to do. The image processing device may be implemented as a display device that displays processed image data as an image on a display panel provided therewith. These various types of electronic devices are communicatively connected to each other and may perform either a role of a server or host providing a predetermined service or a role of a client receiving the service.
전자장치는 프로세스에 메모리를 할당하고, 해당 프로세스의 데이터를 메모리의 할당된 저장영역에 저장하여 실행시킴으로써, 다양한 기능을 구현한다. 그러나, 전자장치가 동작하는 동안에 다양한 프로세스에 대하여 메모리를 할당하는 한편, 메모리의 저장영역은 제한이 있으므로, 어느 시점에서는 차후 프로세스들의 실행을 위해 메모리의 가용한 용량, 즉 가용량을 확보하는 메모리 확보 동작이 수행될 필요가 있다. 전자장치의 어떤 종류의 운영체제는, 가능한 한 많은 프로세스를 메모리에 상주시키고, 프로세스의 종료에 따른 메모리의 해제는 최대한 늦게 하려는 성향을 가진다. 이는, 유휴 자원의 메모리를 최대한 활용하기 위함이다. 이러한 경우에, 전자장치는 여러 프로세스가 실행되는 중에 메모리의 가용량이 기 설정된 문턱값 이하로 내려가면, 메모리 스왑을 수행하거나 메모리에 할당된 프로세스들 중 일부를 종료시킴으로써 메모리의 충분한 가용량을 확보한다. An electronic device implements various functions by allocating a memory to a process and storing and executing data of the corresponding process in an allocated storage area of the memory. However, while the electronic device allocates memory for various processes while operating, since the storage area of the memory is limited, at some point, the available capacity of the memory, that is, the memory that secures the available capacity is secured for the execution of subsequent processes. An action needs to be performed. A certain type of operating system of an electronic device tends to have as many processes reside in memory as possible and release memory as late as possible upon termination of a process. This is to make maximum use of the memory of the idle resource. In this case, the electronic device secures sufficient memory capacity by performing a memory swap or terminating some of the processes allocated to the memory when the capacity of the memory falls below a preset threshold while several processes are running. .
그런데, 이 경우에는 프로세스가 실행되는 중간에 메모리 확보 동작이 수행되므로, CPU 등의 부하에 따른 프로세스의 동작 지연이 발생할 수도 있다. 예를 들어, 프로세스가 동영상 재생 플레이어이고 영상컨텐트를 재생하여 영상을 표시하는 경우를 고려할 수 있다. 메모리 확보 동작을 수행하기 위해 CPU를 비롯한 전자장치의 자원이 소요되면, 동영상 재생 프로세스에 할당되는 자원이 줄어들게 되고, 이로 인해 영상의 재생이 끊기거나 영상의 재생이 지연되거나 영상의 해상도가 낮아지는 등, 정상적으로 영상컨텐트를 재생하기에 곤란한 상황이 될 수도 있다.However, in this case, since a memory securing operation is performed in the middle of a process being executed, a process operation delay may occur due to a load of a CPU or the like. For example, a case in which the process is a video playback player and displays video by playing video content may be considered. If the resources of the electronic device, including the CPU, are consumed to perform the memory securing operation, the resources allocated to the video playback process are reduced, which causes video playback to be interrupted, video playback to be delayed, or video resolution to be lowered. However, it may be difficult to reproduce video content normally.
따라서, 메모리의 가용량을 확보하면서도, 실행중인 여러 프로세스의 퍼포먼스가 저하되는 것을 방지하여, 원활한 동작을 제공하는 전자장치가 요구된다.Therefore, there is a need for an electronic device that provides smooth operation by preventing deterioration in the performance of various running processes while securing available memory capacity.
본 발명의 실시예에 따른 전자장치는, 메모리와, 실행할 프로세스의 개시에 응답하여, 상기 프로세스에 사용될 것으로 예측되는 상기 메모리의 예측 사용량을 식별하고, 상기 메모리의 현재 사용 가능한 가용량을 식별하고, 상기 식별된 가용량 및 상기 식별된 예측 사용량에 기초하여 상기 메모리의 가용량을 추가 확보할 것인지 여부를 판단하며, 상기 판단 결과에 따라서 상기 메모리의 가용량의 추가 확보 동작을 선택적으로 수행하고, 상기 프로세스의 메모리 할당 요청에 응답하여, 상기 프로세스에 상기 메모리를 할당하는 프로세서를 포함한다.An electronic device according to an embodiment of the present invention, in response to the initiation of a memory and a process to be executed, identifies a predicted usage of the memory expected to be used by the process, identifies a currently usable capacity of the memory, Based on the identified capacity and the identified predicted usage, it is determined whether to additionally secure the capacity of the memory, and according to the determination result, an operation of additionally securing the capacity of the memory is selectively performed, and a processor allocating the memory to the process in response to a memory allocation request of the process.
또한, 상기 프로세서는, 상기 식별된 예측 사용량이 상기 식별된 가용량을 초과하는 것에 기초하여 상기 추가 확보 동작을 수행하고, 상기 식별된 예측 사용량이 상기 식별된 가용량을 초과하지 않는 것에 기초하여 상기 추가 확보 동작을 수행하지 않을 수 있다.In addition, the processor performs the additional securing operation based on the identified predicted usage exceeds the identified capacity, and based on the identified predicted usage does not exceed the identified capacity, the processor Additional securing operations may not be performed.
또한, 상기 프로세서는, 상기 메모리의 예측 사용량을 식별할 수 없는 것에 기초하여 상기 추가 확보 동작을 수행하지 않을 수 있다.In addition, the processor may not perform the additional securing operation based on not being able to identify the estimated usage amount of the memory.
또한, 상기 프로세서는, 상기 프로세스의 메모리 사용 이력에 기초하여 상기 예측 사용량을 식별할 수 있다.Also, the processor may identify the estimated usage amount based on the memory usage history of the process.
또한, 상기 프로세서는, 상기 메모리 사용 이력에서 상기 프로세스의 최대 메모리 사용량들의 평균을 상기 예측 사용량으로 식별할 수 있다.In addition, the processor may identify an average of maximum memory usages of the process in the memory usage history as the predicted usage.
또한, 상기 프로세서는, 상기 메모리 사용 이력에서 상기 프로세스의 최대 메모리 사용량들 중에서 가장 높은 값을 상기 예측 사용량으로 식별할 수 있다.In addition, the processor may identify the highest value among maximum memory usages of the process in the memory usage history as the predicted usage.
또한, 상기 프로세서는, 상기 메모리를 기 할당하여 실행중인 하나 이상의 타 프로세스를 종료시킴으로써 상기 추가 확보 동작을 수행할 수 있다.In addition, the processor may perform the additional securing operation by pre-allocating the memory and terminating one or more other processes that are running.
또한, 스토리지를 더 포함하고, 상기 프로세서는, 실행중인 하나 이상의 타 프로세스에 기 할당된 상기 메모리의 데이터를 상기 스토리지로 이동시킴으로써 상기 추가 확보 동작을 수행할 수 있다.The processor may further include a storage, and the processor may perform the additional securing operation by moving data of the memory pre-allocated to one or more other running processes to the storage.
또한, 외부장치와 통신하는 인터페이스부와, 상기 예측 사용량에 관한 정보가 저장된 스토리지를 더 포함하고, 상기 프로세서는, 상기 인터페이스부를 통해 상기 외부장치로부터 수신되는 업데이트정보를 사용하여 상기 스토리지에 저장된 상기 정보를 업데이트할 수 있다.The processor may further include an interface unit communicating with an external device and a storage storing information on the predicted usage amount, wherein the processor uses update information received from the external device through the interface unit to store the information stored in the storage. can be updated.
또한, 사용자입력부와, 상기 예측 사용량에 관한 정보가 저장된 스토리지를 더 포함하고, 상기 프로세서는, 상기 사용자입력부를 통한 사용자 입력에 따라서 상기 스토리지에 저장된 상기 정보를 업데이트할 수 있다.The processor may further include a user input unit and a storage in which information on the predicted amount of usage is stored, and the processor may update the information stored in the storage according to a user input through the user input unit.
또한, 본 발명의 실시예에 따른 전자장치의 제어방법은, 실행할 프로세스의 개시에 응답하여, 상기 프로세스에 사용될 것으로 예측되는 메모리의 예측 사용량을 식별하는 단계와, 상기 메모리의 현재 사용 가능한 가용량을 식별하는 단계와, 상기 식별된 가용량 및 상기 식별된 예측 사용량에 기초하여 상기 메모리의 가용량을 추가 확보할 것인지 여부를 판단하며, 상기 판단 결과에 따라서 상기 메모리의 가용량의 추가 확보 동작을 선택적으로 수행하는 단계와, 상기 프로세스의 메모리 할당 요청에 응답하여, 상기 프로세스에 상기 메모리를 할당하는 단계를 포함한다.In addition, a control method of an electronic device according to an embodiment of the present invention includes the steps of identifying a predicted usage amount of a memory that is expected to be used in the process in response to the start of a process to be executed, and determining the currently usable capacity of the memory. determining whether to additionally secure the capacity of the memory based on the identified capacity and the identified predicted usage, and selectively performing an additional securing operation of the capacity of the memory according to the determination result and allocating the memory to the process in response to the memory allocation request of the process.
도 1은 전자장치의 구성 블록도이다.
도 2는 전자장치의 제어방법을 나타내는 플로우차트이다.
도 3은 전자장치에서 프로세스의 실행 시 메모리 추가확보 과정을 나타내는 플로우차트이다.
도 4는 전자장치가 프로세스의 예측 사용량에 관한 정보를 획득하는 예시들을 나타내는 구성 블록도이다.
도 5는 전자장치가 프로세스 사용 이력에 기초하여 프로세스의 예측 사용량을 도출하는 방법을 나타내는 예시도이다.
도 6은 타 프로세스들로부터 종료할 것들을 선택하는 방법을 나타내는 예시도이다.
도 7은 전자장치가 프로세스에 대해 식별된 예측 사용량보다 제한하여 메모리를 할당하는 경우를 나타내는 예시도이다.1 is a configuration block diagram of an electronic device.
2 is a flowchart showing a control method of an electronic device.
3 is a flowchart illustrating a process of securing additional memory when a process is executed in an electronic device.
4 is a block diagram illustrating examples in which an electronic device acquires information about a predicted usage amount of a process.
5 is an exemplary diagram illustrating a method for an electronic device to derive a predicted usage amount of a process based on a process usage history.
6 is an exemplary diagram illustrating a method of selecting those to be terminated from other processes.
7 is an exemplary diagram illustrating a case in which an electronic device allocates memory with a limit greater than the predicted usage amount identified for a process.
이하에서는 첨부도면을 참조하여 본 발명에 따른 실시예들에 관해 상세히 설명한다. 각 도면을 참조하여 설명하는 실시예들은 특별한 언급이 없는 한 상호 배타적인 구성이 아니며, 하나의 장치 내에서 복수 개의 실시예가 선택적으로 조합되어 구현될 수 있다. 이러한 복수의 실시예의 조합은 본 발명의 기술분야에서 숙련된 기술자가 본 발명의 사상을 구현함에 있어서 임의로 선택되어 적용될 수 있다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. Embodiments described with reference to each drawing are not mutually exclusive configurations unless otherwise specified, and a plurality of embodiments may be selectively combined and implemented in one device. A combination of these plurality of embodiments may be arbitrarily selected and applied by a person skilled in the art in implementing the spirit of the present invention.
만일, 실시예에서 제1구성요소, 제2구성요소 등과 같이 서수를 포함하는 용어가 있다면, 이러한 용어는 다양한 구성요소들을 설명하기 위해 사용되는 것이며, 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용되는 바, 이들 구성요소는 용어에 의해 그 의미가 한정되지 않는다. 실시예에서 사용하는 용어는 해당 실시예를 설명하기 위해 적용되는 것으로서, 본 발명의 사상을 한정하지 않는다.If there are terms including ordinal numbers, such as the first element and the second element in the embodiment, these terms are used to describe various elements, and the term distinguishes one element from other elements. As used to do, these components are not limited in meaning by terms. Terms used in the embodiments are applied to describe the corresponding embodiments and do not limit the spirit of the present invention.
또한, 본 명세서에서의 복수의 구성요소 중 "적어도 하나(at least one)"라는 표현이 나오는 경우에, 본 표현은 복수의 구성요소 전체 뿐만 아니라, 복수의 구성요소 중 나머지를 배제한 각 하나 혹은 이들의 조합 모두를 지칭한다.In addition, when the expression "at least one" among a plurality of components in the present specification appears, this expression refers to not only the entire plurality of components, but also each one or these excluding the rest of the plurality of components. refers to all combinations of
도 1은 전자장치의 구성 블록도이다.1 is a configuration block diagram of an electronic device.
도 1에 도시된 바와 같이, 본 실시예는 전자장치(1)에 관한 것이다. 전자장치(1)는 다양한 종류의 장치로 구현될 수 있는 바, 예를 들면 PC, 서버 등을 포함하는 정보처리장치이거나; TV, 모니터, 디지털 사이니지(signage), 전자칠판, 전자액자 등을 포함하는 고정형 디스플레이장치이거나; 스마트폰, 태블릿기기, 휴대용 멀티미디어 재생기기 등을 포함하는 모바일기기이거나; 셋탑박스, 광학미디어 재생기기 등을 포함하는 영상처리장치이거나; 냉장고, 세탁기, 의류관리기기, 공기조화기 등을 포함하는 생활가전이거나; IoT(internet of things) 환경을 구축하는 게이트웨이, 허브, 호스트장치, 슬레이브장치이거나; 사람이 착용할 수 있는 웨어러블 디바이스(wearable device) 등으로 구현될 수 있다.As shown in FIG. 1 , this embodiment relates to an
전자장치(1)는 동작을 위해 다양한 하드웨어 요소들을 포함한다. 본 실시예에서는 전자장치(1)가 디스플레이장치로 구현되는 경우에 관해 설명한다. 그러나, 앞서 설명한 바와 같이 전자장치(1)는 다양한 종류의 장치로 구현될 수 있으므로, 이하 설명하는 구성은 다양한 구현 예시 중 하나에 불과함을 밝힌다.The
전자장치(1)는 인터페이스부(10)를 포함할 수 있다. 인터페이스부(10)는 전자장치(1)가 다양한 종류의 외부장치와 통신을 수행하고, 또한 데이터를 송수신하기 위한 인터페이스 회로를 포함한다. 인터페이스부(10)는 연결 방식에 따라서, 유선 통신연결을 위한 하나 이상의 유선인터페이스부(11), 또는 무선 통신연결을 위한 하나 이상의 무선인터페이스부(12) 중 적어도 하나를 포함한다.The
유선인터페이스부(11)는 기 정의된 전송규격의 케이블이 접속되는 커넥터 또는 포트를 포함한다. 예를 들면, 유선인터페이스부(11)는 방송신호를 수신하도록 지상파 또는 위성방송 안테나에 접속되거나 케이블방송의 케이블이 접속되는 포트를 포함한다. 또는, 유선인터페이스부(11)는 다양한 영상처리장치와 접속하도록 HDMI, DP(DisplayPort), DVI, 컴포넌트, 컴포지트, S-Video, 썬더볼트(Thunderbolt) 등 다양한 유선전송규격의 케이블이 접속되는 포트를 포함한다. 또는, 유선인터페이스부(11)는 USB 기기와 접속하기 위한 USB 규격의 포트를 포함한다. 또는, 유선인터페이스부(11)는 광케이블이 접속되는 광포트를 포함한다. 또는, 유선인터페이스부(11)는 외부 마이크로폰이 접속되는 오디오 입력 포트와, 헤드셋, 이어폰, 외부 스피커 등이 접속되는 오디오 출력 포트를 포함한다. 또는, 유선인터페이스부(11)는 광역 네트워크에 접속하기 위해 게이트웨이, 라우터, 허브 등에 접속하는 이더넷 포트를 포함한다.The wired interface unit 11 includes a connector or port to which a cable of a predefined transmission standard is connected. For example, the wired interface unit 11 includes a port connected to a terrestrial or satellite broadcasting antenna or a cable of cable broadcasting to receive a broadcasting signal. Alternatively, the wired interface unit 11 provides a port to which cables of various wire transmission standards such as HDMI, DP (DisplayPort), DVI, component, composite, S-Video, and Thunderbolt are connected to connect to various image processing devices. include Alternatively, the wired interface unit 11 includes a USB standard port for connection with a USB device. Alternatively, the wired interface unit 11 includes an optical port to which an optical cable is connected. Alternatively, the wired interface unit 11 includes an audio input port to which an external microphone is connected, and an audio output port to which a headset, earphone, external speaker, etc. are connected. Alternatively, the wired interface unit 11 includes an Ethernet port connected to a gateway, router, hub, or the like to access a wide area network.
무선인터페이스부(12)는 다양한 종류의 무선통신 프로토콜에 대응하는 통신모듈, 통신칩 등의 구성요소들 중 적어도 하나 이상을 포함하는 양방향 통신회로를 포함한다. 예를 들면, 무선인터페이스부(12)는 와이파이(Wi-Fi) 방식에 따라서 AP(Access Point)와 무선통신을 수행하는 와이파이 통신칩과, 블루투스, Zigbee, Z-Wave, WirelessHD, WiGig, NFC 등의 무선통신을 수행하는 통신칩, IR 통신을 위한 IR 모듈, 모바일기기와 이동통신을 수행하는 이동통신칩 등을 포함한다.The wireless interface unit 12 includes a bidirectional communication circuit including at least one of components such as communication modules and communication chips corresponding to various types of wireless communication protocols. For example, the wireless interface unit 12 includes a Wi-Fi communication chip that performs wireless communication with an AP (Access Point) according to a Wi-Fi method, Bluetooth, Zigbee, Z-Wave, WirelessHD, WiGig, NFC, etc. It includes a communication chip that performs wireless communication, an IR module for IR communication, and a mobile communication chip that performs mobile communication with a mobile device.
전자장치(20)는 디스플레이부(20)를 포함할 수 있다. 디스플레이부(20)는 프로세서(270)에 의해 처리되는 영상신호를 영상으로 표시하기 위한 화면을 형성한다. 디스플레이부(20)는 디스플레이 패널을 포함하는데, 디스플레이 패널의 구조에는 여러 가지 설계방식이 적용될 수 있다. 예를 들면, 디스플레이부(20)는 액정과 같은 수광형 구조의 디스플레이 패널 및 이에 광을 제공하는 백라이트를 포함할 수 있다. 또는, 디스플레이부(20)는 OLED(organic light emitting diodes)와 같은 자발광 구조의 디스플레이 패널을 포함할 수 있다. 또는, 디스플레이부(20)는 복수의 마이크로 LED 모듈이 타일 형태로 조합되어 대화면을 형성하는 구조일 수도 있다.The
전자장치(1)는 사용자입력부(30)를 포함할 수 있다. 사용자입력부(30)는 사용자의 입력을 수행하기 위해 사용자가 조작할 수 있도록 마련된 다양한 종류의 사용자 입력 인터페이스 관련 회로를 포함한다. 사용자입력부(30)는 전자장치(1)의 종류에 따라서 여러 가지 형태의 구성이 가능하며, 예를 들면 전자장치(1)의 기계 버튼부 또는 전자 버튼부; 다양한 종류의 센서; 터치패드; 디스플레이부(20)에 설치된 터치스크린; 전자장치(1)와 분리되며 인터페이스부(10)를 통해 연결된 키보드, 마우스, 리모트 컨트롤러와 같은 외부입력기기 등이 있다.The
전자장치(1)는 저장부(40)를 포함할 수 있다. 저장부(40)는 디지털화된 데이터를 저장하기 위한 저장공간을 가진다. 저장부(40)는 프로세서(50)에 의해 처리되기 위한 데이터가 저장되며 전원이 제공되지 않으면 데이터를 보존할 수 없는 휘발성 속성을 가진 하나 이상의 메모리(memory)(41)를 포함한다. 메모리(41)에는 버퍼(buffer), 램(RAM; Random Access Memory) 등이 있다. 또한, 저장부(140)는 전원의 제공 유무와 무관하게 데이터를 보존할 수 있는 비휘발성 속성을 가진 하나 이상의 스토리지(storage)(42)를 포함한다. 스토리지(42)에는 플래시메모리(flash-memory), HDD(hard-disc drive), SSD(solid-state drive) ROM(Read Only Memory) 등이 있다.The
전자장치(1)는 프로세서(50)를 포함할 수 있다. 프로세서(50)는 인쇄회로기판 상에 장착되는 CPU, 칩셋, 버퍼, 회로 등으로 구현되는 하나 이상의 하드웨어 프로세서를 포함하며, 설계 방식에 따라서는 SOC(system on chip)로 구현될 수도 있다. 전자장치(1)가 디스플레이장치인 경우에, 프로세서(50)는 영상컨텐트를 영상으로 표시하기 위해 디멀티플렉서, 디코더, 스케일러, 오디오 DSP(Digital Signal Processor), 앰프 등의 다양한 프로세스에 대응하는 모듈들을 포함한다. 여기서, 이러한 모듈들 중 일부 또는 전체가 SOC로 구현될 수 있다. 예를 들면, 디멀티플렉서, 디코더, 스케일러 등 영상처리와 관련된 모듈이 영상처리 SOC로 구현되고, 오디오 DSP는 SOC와 별도의 칩셋으로 구현되는 것이 가능하다.The
프로세서(50)는 전자장치(1)의 동작을 위해 운영체제(60)를 비롯한 여러 소프트웨어 프로그램을 실행시킨다. 예를 들어, 운영체제(60)의 원본 데이터는 스토리지(42)에 저장되며, 전자장치(1)의 부팅에 따라서 이 데이터가 메모리(41)에 저장됨으로써 운영체제(60)가 실행된다. 다양한 종류의 어플리케이션이 운영체제(60) 상에서 실행되며, 프로세서(50)는 이러한 프로그램들의 실행을 위한 연산처리를 수행한다. 전자장치(1)에서 소정의 기능이 요구될 때, 운영체제(60) 또는 어플리케이션에 의해 해당 기능에 관련된 프로세스(62)의 데이터가 메모리(41)에 저장되고 실행된다.The
전자장치(1)는 메모리(41)의 저장공간을 관리하기 위한 메모리관리모듈(61)을 포함한다. 메모리관리모듈(61)은 운영체제(60)의 일부이거나, 운영체제(60) 상에서 구동되는 미들웨어 또는 어플리케이션일 수 있다. 메모리관리모듈(61)은 프로세서(50)의 연산처리에 의해 실행된다. 메모리관리모듈(61)은, 예를 들어 프로세스(62)를 실행하기 위한 요청이 발생하면, 해당 프로세스(62)로부터 메모리(41) 할당 요청을 수신하고, 해당 프로세스(62)에 대응하는 데이터가 메모리(41)의 저장공간에 저장될 수 있도록 해당 프로세스(62)에 메모리(41)를 할당한다. 프로세스(62)에 대한 메모리(41)의 할당 시, 메모리관리모듈(61)은 메모리(41)의 전체 저장공간 중 현재 가용한 저장공간(즉, 타 프로세스에 의해 사용되지 않고 있는 저장공간)을 해당 프로세스(62)에 할당한다.The
여기서, 프로세스(62)에 대한 메모리(41) 할당에 관해 설명한다. 프로세스(62)가 실행되기 위해서는 프로세서(50)가 연산 가능하도록 프로세스(62)의 데이터가 메모리(41) 상에 저장되어 있어야 한다. 프로세스(62)의 실행의 개시 시, 스토리지(42)에 저장되어 있는 프로세스(62)의 데이터는 메모리(41)로 저장된다. 상기한 데이터가 메모리(41)에 저장되기에 앞서서, 먼저 메모리관리모듈(61)은 메모리(41)의 가용한 저장공간 중에서 프로세스(62)에 할당할 저장공간을 지정한다. 이후, 프로세스(62)의 데이터는 메모리(41)의 상기와 같이 지정된 저장공간에 저장된다. 이와 같이 메모리관리모듈(61)이 프로세스(62)의 데이터가 저장되기 위한 메모리(41)의 저장공간을 지정하는 동작이, 해당 프로세스(62)에 대한 메모리(41) 할당에 해당한다.Here, the allocation of the memory 41 to the process 62 will be described. In order for the process 62 to be executed, data of the process 62 must be stored in the memory 41 so that the
이와 같이 프로세스(62)의 실행 개시 시점으로부터, 프로세스(62)에 대한 메모리(41)의 할당 요청이 수신되고, 메모리(41)를 할당받은 후 프로세스(62)가 실행되는 시점까지의 과정에서, 프로세서(50)는 메모리관리모듈(61)을 사용하여 메모리(41)의 사용 가능한 저장공간을 추가로 확보하는(즉, 메모리(41)의 가용량을 추가로 확보하는) 동작을 수행할 수 있다. 이하, 이러한 실시예에 관해 설명한다.In this way, in the process from the start point of execution of the process 62 to the point at which the memory 41 allocation request for the process 62 is received, the memory 41 is allocated, and the process 62 is executed, The
도 2는 전자장치의 제어방법을 나타내는 플로우차트이다.2 is a flowchart showing a control method of an electronic device.
도 1 및 도 2에 도시된 바와 같이, 하기 동작은 전자장치(1)의 프로세서(50)에 의해 수행된다.As shown in FIGS. 1 and 2 , the following operations are performed by the
210 단계에서 전자장치(1)는 프로세스(62)의 개시 이벤트를 감지한다. 전자장치(1)는 동작 중에, 새로운 프로세스(62)의 실행 개시 요청을 접수할 수 있다.In
220 단계에서 전자장치(1)는 프로세스(62)에 사용될 것으로 예측되는 메모리(41)의 예측 사용량을 식별한다. 본 예측 사용량은, 프로세스(62)에 대해 메모리(41)를 할당한 이후, 프로세스(62)가 실행되는 동안에 사용할 것으로 예측되는 메모리(41)의 최대 사용량과 연관된다. 예측 사용량에 관한 자세한 설명은 후술한다.In
230 단계에서 전자장치(1)는 메모리(41)의 현재 사용 가능한 가용량을 식별한다. 즉, 전자장치(1)는 메모리(41)의 전체 저장공간 중에서 아직 사용되지 않는 저장공간의 용량을 식별한다.In
240 단계에서 전자장치(1)는 식별된 가용량 및 식별된 예측 사용량에 기초하여, 메모리(41)의 가용량을 추가 확보할 것인지 여부를 판단한다. 예를 들어, 전자장치(1)는 상기한 가용량 및 예측 사용량을 상호 비교한 결과에 따라서 상기한 판단을 수행하는데, 이에 관한 자세한 설명은 후술한다.In
250 단계에서 판단 결과가 메모리(41)의 가용량을 추가 확보하는 것이면(250 단계에서 "Yes"), 260 단계에서 전자장치(1)는 추가 확보 동작을 수행하고, 270 단계로 이행한다. 반면에, 250 단계에서 판단 결과가 메모리(41)의 가용량을 추가 확보하지 않는 것이면(250 단계에서 "No"), 전자장치(1)는 추가 확보 동작을 수행하지 않고 270 단계로 이행한다.If the determination result in
270 단계에서 전자장치(1)는 프로세스(62)의 메모리 할당 요청에 응답하여 프로세스(62)에 메모리(41)를 할당한다. 이로써, 프로세스(62)의 데이터는 메모리(41)의 할당된 저장공간에 저장되고, 프로세스(62)가 실행된다.In
프로세스(62)의 런칭(즉, 실행 개시 이벤트), 프로세스(62)의 메모리(41) 할당 요청, 프로세스(62)에 대한 메모리(41) 할당, 프로세스(62)의 실행의 시퀀스가 진행된다. 이러한 시퀀스에서, 본 실시예에 따른 전자장치(1)는 프로세스(62)에 의한 메모리(41)의 예측 사용량에 기초하여 메모리(41)의 가용량을 추가로 확보하는 동작을, 프로세스(62)의 메모리(41) 할당 요청이 발생하기 이전에 수행한다. 이와 같이, 전자장치(1)는 프로세스(62)를 위한 메모리(41)의 가용량을 미리 추가 확보함으로써, 프로세스(62)의 실행 시 퍼포먼스가 지연되는 것을 방지할 수 있다. 프로세스(62)의 퍼포먼스가 지연되는 예시로는, 영상컨텐트 재생 중에 영상 및 오디오의 동기가 어긋나거나, 영상이 끊기거나, 영상의 화질이 저하되는 등의 경우가 있다.The process 62 launches (i.e., an execution start event), process 62 requests memory 41 allocation, memory 41 allocation to process 62, and execution of process 62 proceeds in sequence. In this sequence, the
결과적으로, 전자장치(1)는 메모리(41)의 가용량의 추가 확보 및 프로세스(62)의 퍼포먼스의 지연 방지를 함께 달성함으로써, 원활한 동작을 제공할 수 있다.As a result, the
한편, 전자장치(1)의 프로세서(50)는 상기와 같이 프로세스(62)에 사용될 것으로 예측되는 메모리(41)의 예측 사용량을 식별하는 동작, 또는 프로세스(62)를 위해 메모리(41)의 가용량을 추가 확보할 것인지 여부를 판단하는 동작 등을 수행하기 위한 데이터 분석, 처리, 및 결과 정보 생성 중 적어도 일부를 규칙 기반 또는 인공지능(Artificial Intelligence) 알고리즘으로서 기계학습, 신경망 네트워크(neural network), 또는 딥러닝 알고리즘 중 적어도 하나를 이용하여 수행할 수 있다.On the other hand, the
일 예로, 전자장치(1)의 프로세서(50)는 학습부 및 인식부의 기능을 함께 수행할 수 있다. 학습부는 학습된 신경망 네트워크를 생성하는 기능을 수행하고, 인식부는 학습된 신경망 네트워크를 이용하여 데이터를 인식(또는, 추론, 예측, 추정, 판단)하는 기능을 수행할 수 있다. 학습부는 신경망 네트워크를 생성하거나 갱신할 수 있다. 학습부는 신경망 네트워크를 생성하기 위해서 학습 데이터를 획득할 수 있다. 일 예로, 학습부는 학습 데이터를 전자장치(1)의 저장부 또는 외부로부터 획득할 수 있다. 학습 데이터는, 신경망 네트워크의 학습을 위해 이용되는 데이터일 수 있으며, 상기한 동작을 수행한 데이터를 학습데이터로 이용하여 신경망 네트워크를 학습시킬 수 있다.For example, the
학습부는 학습 데이터를 이용하여 신경망 네트워크를 학습시키기 전에, 획득된 학습 데이터에 대하여 전처리 작업을 수행하거나, 또는 복수 개의 학습 데이터들 중에서 학습에 이용될 데이터를 선별할 수 있다. 일 예로, 학습부는 학습 데이터를 기 설정된 포맷으로 가공하거나, 필터링하거나, 또는 노이즈를 추가/제거하여 학습에 적절한 데이터의 형태로 가공할 수 있다. 학습부는 전처리된 학습 데이터를 이용하여 상기한 동작을 수행하도록 설정된 신경망 네트워크를 생성할 수 있다.The learning unit may perform pre-processing on the acquired training data before training the neural network using the training data, or may select data to be used for learning from among a plurality of training data. For example, the learning unit may process the learning data into a form of data suitable for learning by processing the learning data in a preset format, filtering, or adding/removing noise. The learning unit may generate a neural network set to perform the above operation using the preprocessed training data.
학습된 신경망 네트워크는, 복수의 신경망 네트워크(또는, 레이어)들로 구성될 수 있다. 복수의 신경망 네트워크의 노드들은 가중치를 가지며, 복수의 신경망 네트워크들은 일 신경망 네트워크의 출력 값이 다른 신경망 네트워크의 입력 값으로 이용되도록 서로 연결될 수 있다. 신경망 네트워크의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN (Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks)과 같은 모델을 포함할 수 있다.A learned neural network may be composed of a plurality of neural networks (or layers). Nodes of a plurality of neural network networks have weights, and the plurality of neural network networks may be connected to each other so that an output value of one neural network network is used as an input value of another neural network network. Examples of neural network networks include Convolutional Neural Network (CNN), Deep Neural Network (DNN), Recurrent Neural Network (RNN), Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN), Bidirectional Recurrent Deep Neural Network (BRDNN), and It may include models such as Deep Q-Networks.
한편 인식부는 상기한 동작을 수행하기 위해, 타겟 데이터를 획득할 수 있다. 타겟 데이터는 전자장치의 저장부 또는 외부로부터 획득된 것일 수 있다. 타겟 데이터는 신경망 네트워크의 인식 대상이 되는 데이터일 수 있다. 인식부는 타겟 데이터를 학습된 신경망 네트워크에 적용하기 전에, 획득된 타겟 데이터에 대하여 전처리 작업을 수행하거나, 또는 복수 개의 타겟 데이터들 중에서 인식에 이용될 데이터를 선별할 수 있다. 일 예로, 인식부는 타겟 데이터를 기 설정된 포맷으로 가공하거나, 필터링 하거나, 또는 노이즈를 추가/제거하여 인식에 적절한 데이터의 형태로 가공할 수 있다. 인식부는 전처리된 타겟 데이터를 신경망 네트워크에 적용함으로써, 신경망 네트워크로부터 출력되는 출력값을 획득할 수 있다. 인식부는 출력값과 함께, 확률값 또는 신뢰도값을 획득할 수 있다.Meanwhile, the recognizer may obtain target data to perform the above operation. The target data may be acquired from a storage unit of the electronic device or from the outside. The target data may be data to be recognized by a neural network. Before applying the target data to the learned neural network, the recognizer may perform preprocessing on the acquired target data or select data to be used for recognition from among a plurality of target data. For example, the recognizer may process the target data into a form of data suitable for recognition by processing the target data into a preset format, filtering, or adding/removing noise. The recognizer may obtain an output value output from the neural network by applying the preprocessed target data to the neural network. The recognition unit may obtain a probability value or a reliability value together with the output value.
이하, 전자장치(1)의 구체적인 동작에 관해 설명한다.Hereinafter, specific operations of the
도 3은 전자장치에서 프로세스의 실행 시 메모리 추가확보 과정을 나타내는 플로우차트이다.3 is a flowchart illustrating a process of securing additional memory when a process is executed in an electronic device.
도 1, 도 2 및 도 3에 도시된 바와 같이, 전자장치(1)의 프로세서(50)는 전방 태스크(foreground task)(310), 메모리관리 태스크(memory management task)(320), 후방 태스크(background task)(330)의 세 가지 동작을 병행하여 수행할 수 있다(각 태스크의 명칭은 편의상 붙여진 것으로서 각 명칭이 실시예의 특징을 한정하지 않음). 전방 태스크(310)에서는, 초기 시점 T0에서 프로세스(62)의 실행이 개시된다. 메모리관리 태스크(320)에서는 전방 태스크(310) 및 후방 태스크(330) 각각의 과정과 관련된 메모리(41)의 관리가 이루어지며, 예를 들어 메모리(41)의 추가 확보 동작이 선택적으로 수행된다. 소프트웨어의 측면에서, 메모리관리 태스크(320)는 예를 들어 메모리관리모듈(61)에 의해 실행될 수 있다. 후방 태스크(330)에서는 초기 시점 T0에서 이미 메모리(41)가 할당되어 실행중인 하나 이상의 타 프로세스에 관련된 동작이 수행된다.1, 2 and 3, the
초기 시점 T0 이전에는 프로세스(62)가 실행되고 있지 않고, 하나 이상의 타 프로세스가 실행되고 있다(400 단계). 이 때, 프로세스(62)의 런칭 이벤트, 즉 프로세스(62)의 실행 요청에 따라서 프로세스(62)의 실행이 개시된다(410 단계; 도 2의 201 단계에 대응). 앞서 설명한 바와 같이, 프로세스(62)가 실행되기 이전에, 프로세스(62)에 메모리(41)가 할당되고(즉, 프로세스(62)에 메모리(41)의 가용한 저장공간이 할당되고), 할당된 메모리(41)의 저장공간에 프로세스(62)의 데이터가 저장된다.Prior to the initial point in time T0, process 62 is not running, and one or more other processes are running (step 400). At this time, execution of the process 62 is started according to the launching event of the process 62, that is, the execution request of the process 62 (step 410; corresponding to step 201 of FIG. 2). As described above, before the process 62 is executed, the memory 41 is allocated to the process 62 (i.e., the available storage space of the memory 41 is allocated to the process 62), and the allocation The data of the process 62 is stored in the storage space of the memory 41.
전자장치(1)는 프로세스(62)에 사용될 것으로 예측되는 메모리(41)의 예측 사용량을 식별한다(420 단계; 도 2의 220 단계에 대응). 이와 같은 예측 사용량은 여러 가지 방식으로 식별될 수 있는데, 이에 관한 자세한 설명은 후술한다.The
전자장치(1)는 메모리(41)의 현재 가용량이 식별된 예측 사용량보다 큰지 여부를 판단한다(430 단계; 도 2의 230, 240, 250 단계에 대응). 본 실시예에서는 식별된 예측 사용량과 메모리(41)의 현재 가용량을 비교하는 경우에 관해 설명하지만, 그 이외의 방법도 가능하다. 통상적으로 메모리(41)는 전자장치(1)의 정상적인 퍼포먼스를 위해 저장공간을 필요로 하는 바, 전자장치(1)는 메모리(41)의 현재 가용량에서 상기한 이유를 고려하여 사전 설정된 용량을 차감하고, 식별된 예측 사용량과 상기 차감된 용량을 비교할 수도 있다.The
메모리(41)의 현재 가용량이 식별된 예측 사용량보다 크면(430 단계에서 "Yes"; 도 2의 250 단계에서 "No"에 대응), 전자장치(1)는 480 단계로 이행한다. 반면에, 메모리(41)의 현재 가용량이 식별된 예측 사용량보다 크지 않으면(430 단계에서 "No"; 도 2의 250 단계에서 "Yes"에 대응), 전자장치(1)는 메모리(41) 추가 확보 동작을 수행한다(도 2의 260 단계에 대응). 메모리(41) 추가 확보 동작의 예시로서, 전자장치(1)는 타 프로세스 중에서 종료할 타 프로세스를 선별하고(440 단계), 선별된 타 프로세스의 종료신호를 후방 태스크(330) 측으로 전달한다(450 단계). 전자장치(1)는 이러한 종료신호에 따라서, 선별된 타 프로세스를 종료시킨다(460 단계). 타 프로세스가 종료되면, 종료된 타 프로세스에 할당되었던 메모리(41)의 저장공간은 다시 사용될 수 있다(즉, 메모리(41)의 가용량에 추가됨).If the current available capacity of the memory 41 is greater than the identified predicted usage amount (“Yes” in step 430; corresponding to “No” in
메모리(41) 추가 확보 동작이 상기한 예시만으로 한정되는 것은 아니다. 예를 들면, 전자장치(1)는 메모리(41) 추가 확보 동작으로서 메모리 스왑을 수행할 수도 있다. 전자장치(1)는 메모리(41)에 저장되어 있는 타 프로세스의 데이터를 메모리(41) 이외의 저장매체, 예를 들면 스토리지(42)로 이동시킴으로써, 메모리(41)의 가용량을 추가로 확보할 수도 있다. 타 프로세스의 데이터가 스토리지(42)로 이동한 이후, 해당 데이터가 저장되었던 메모리(41)의 저장공간은 다시 사용될 수 있다.The additional securing operation of the memory 41 is not limited to the above example. For example, the
전자장치(1)는 메모리(41)의 현재 가용량이 식별된 예측 사용량보다 큰지 여부를 다시 판단한다(470 단계). 메모리(41)의 현재 가용량이 식별된 예측 사용량보다 크면(470 단계에서 "Yes"), 전자장치(1)는 480 단계로 이행한다. 반면에, 메모리(41)의 현재 가용량이 식별된 예측 사용량보다 크지 않으면(470 단계에서 "No"), 전자장치(1)는 440 단계로 이행하여 메모리(41)의 추가 확보 동작을 재개한다.The
전자장치(1)는 시점 T1에 프로세스(62)에 대한 메모리(41) 할당 요청을 수신한다(480 단계). 전자장치(1)는 메모리(41) 할당 요청에 응답하여, 프로세스(62)에 메모리(41)를 할당함으로써 프로세스(62)가 실행되도록 한다(490 단계; 도 2의 270 단계에 대응).The
이와 같이, 전자장치(1)는 프로세스(62)가 실행을 위해 런칭되면, 프로세스(62)에 대한 메모리(41) 할당 요청이 수신되기 이전에 프로세스(62)를 위한 메모리(41)의 추가 확보를 수행한다. 이로써, 이후 프로세스(62)가 실행되는 동안에, 메모리(41)의 가용량 부족으로 인한 프로세스(62)의 실행 지연을 방지할 수 있다.As such, when the process 62 is launched for execution, the
한편, 420 단계에서, 여러 가지 이유로 인해 전자장치(1)가 프로세스(62)의 메모리 예측 사용량을 식별할 수 없는 경우도 가능하다. 예를 들어, 전자장치(1)는 사전에 저장된 정보를 사용하여 프로세스(62)의 예측 사용량을 식별하는데, 해당 정보에 프로세스(62)에 관한 내용이 검색되지 않을 수도 있고, 정보에 대한 억세스가 다양한 이유로 차단될 수도 있다. 이러한 경우에, 전자장치(1)는 메모리(41) 추가 확보 동작을 수행하지 않고, 480 단계로 이행할 수 있다.Meanwhile, in step 420, it is also possible that the
이하, 전자장치(1)가 프로세스(62)에 사용될 것으로 예측되는 메모리(41)의 예측 사용량을 식별하는 방법에 관해 설명한다.Hereinafter, a method for the
도 4는 전자장치가 프로세스의 예측 사용량에 관한 정보를 획득하는 예시들을 나타내는 구성 블록도이다.4 is a block diagram illustrating examples in which an electronic device acquires information about a predicted usage amount of a process.
도 4에 도시된 바와 같이, 전자장치(1)의 프로세서(50), 또는 프로세서(50)에 의해 구동되는 메모리관리모듈(61)은, 스토리지(42)에 저장된 정보(500)를 획득하고, 획득한 정보(500)를 검색함으로써 프로세스가 사용할 것으로 예측되는 메모리(41)의 예측 사용량을 식별할 수 있다. 본 정보(500)는 테이블, 리스트 등 다양한 형식을 가질 수 있으며, 복수의 프로세스에 각기 대응하는 예측 사용량을 기록한다. 이를 위하여, 전자장치(1)는 각 프로세스의 종료 시에 해당 프로세스의 최대 메모리(41) 사용량을 사전 설정된 파일에 저장한다.As shown in FIG. 4, the
본 정보(500)에서 각 프로세스는 고유한 명칭 또는 ID에 의해 구별된다. 본 실시예의 예시에 따르면, 제1프로세스의 예측 사용량은 50MB, 제2프로세스의 예측 사용량은 200MB, 제3프로세스의 예측 사용량은 70MB이다. 예를 들어, 프로세서(50) 또는 메모리관리모듈(61)은 런칭되는 프로세스가 제2프로세스이면, 본 정보(500)를 검색함으로써 제2프로세스의 예측 사용량이 200MB임을 식별할 수 있다.In this
이와 같은 정보(500)는 다양한 방식에 기초하여 생성되어, 스토리지(42)에 저장된다. 한 가지 예시로는, 정보(500)는 전자장치(1)의 제조 단계에서 스토리지(42)에 저장되고, 제품으로 출시될 수 있다. 전자장치(1)의 제조사는 다양한 실험 및 시뮬레이션을 통해 각 프로세스 별 최적의 예측 사용량을 도출하여, 그 결과를 반영한 정보(500)를 제품 출시 이전에 전자장치(1)의 스토리지(42)에 저장할 수 있다.
한 가지 예시로는, 전자장치(1)가 인터페이스부(10)를 통해 서버(2)와 통신 가능한 경우에, 정보(500)는 서버(2)로부터 인터페이스부(10)를 통해 전자장치(1)에 전달될 수 있다. 전자장치(1)에 인스톨되는 운영체제, 어플리케이션 등 다양한 소프트웨어 프로그램이 업데이트됨에 따라서, 여러 프로세스의 예측 사용량은 상기한 업데이트 이전과 이후가 서로 달라질 수 있다. 전자장치(1)가 서버(2)로부터 주기적으로 업데이트된 정보(500)를 제공받을 수 있는 바, 최적의 메모리(41) 관리가 가능해진다. 앞서 설명한 예시인 전자장치(1)의 제조 단계에서 정보(500)가 저장된 경우에도, 전자장치(1)는 서버(2)로부터 제공되는 새로운 정보(500)를 제공받아 기 저장된 정보(500)를 업데이트할 수도 있다.As one example, when the
한 가지 예시로는, 전자장치(1)는 사용자입력부(30)를 통해 사용자가 특정 프로세스의 예측 사용량을 직접 입력받을 수도 있다. 이를 위해, 전자장치(1)는 사용자가 프로세스에 대응하는 예측 사용량을 용이하게 입력할 수 있도록 제공되는 UI를 표시하고, UI를 통해 입력되는 값을 해당 프로세스의 예측 사용량으로 스토리지(42)에 저장할 수 있다. 정보(500)가 전자장치(1)의 제조 단계에서 저장되거나 또는 서버(2)로부터 전자장치(1)에 제공되는 경우에도, 전자장치(1)는 사용자입력부(30)를 통해 스토리지(42)에 기 저장된 정보(500)를 수정하도록 제공할 수도 있다.As one example, the
한 가지 예시로는, 전자장치(1)는 AI(510)가 탑재된 경우에, AI(510)에 의해 생성된 정보(500)를 획득할 수도 있다. AI(510)는 전자장치(1)에 탑재될 수도 있고, 전자장치(1)와 통신 가능한 서버 등의 외부장치에 탑재될 수도 있다. 또는, 전자장치(1)는 AI(510)로부터 획득한 정보(500)를 스토리지(42)에 저장하지 않고, 특정 프로세스의 예측 사용량을 다이렉트로 AI(510)로부터 획득할 수도 있다.As one example, the
한 가지 예시로는, 전자장치(1)는 대상이 되는 프로세스(62)로부터 직접 해당 프로세스(62)의 예측 사용량이 전달될 수 있다. 예를 들면, 메모리관리모듈(61)은 프로세스(62)의 런칭 시, 해당 프로세스(62)로부터 API(application programming interface)를 통해 예측 사용량을 전달받을 수도 있다. 이러한 경우에, 전자장치(1)는 정보(500) 없이도 프로세스(62)의 예측 사용량을 식별할 수 있다.As one example, the
한 가지 예시로는, 전자장치(1)에서 수행된 프로세스의 메모리 사용 이력(520)에 기초하여 정보(500)가 생성될 수도 있다. 예를 들어, 과거에 제1프로세스가 복수 회 실행되었을 때에, 제1프로세스가 실제로 사용한 메모리(41)의 사용량의 최대치가 매회당 기록되어 메모리 사용 이력(520)으로 저장된다. 전자장치(1)는 메모리 사용 이력(520)에 저장된 제1프로세스에 대한 과거 복수 회의 최대 사용량에 기초하여, 제1프로세스의 예측 사용량을 도출하여 정보(500)에 기록할 수 있다.As one example,
이하, 전자장치(1)가 프로세스의 메모리 사용 이력(520)에 기초하여 프로세스의 예측 사용량을 도출하는 예시에 관해 설명한다.Hereinafter, an example in which the
도 5는 전자장치가 프로세스 사용 이력에 기초하여 프로세스의 예측 사용량을 도출하는 방법을 나타내는 예시도이다.5 is an exemplary diagram illustrating a method for an electronic device to derive a predicted usage amount of a process based on a process usage history.
도 4 및 도 5에 도시된 바와 같이, 프로세스의 메모리 사용 이력(520)은 복수의 프로세스 각각에 대한 메모리(41)의 최대 사용량의 이력을 저장한다. 예를 들어, 프로세스의 메모리 사용 이력(520)에서, 제1프로세스가 1회차 최대 사용량이 40MB, 2회차 최대 사용량이 50MB, 3회차 최대 사용량이 60MB, 4회차 최대 사용량이 50MB이라고 할 때, 전자장치(1)는 이들 값에 기초하여 다양한 방법으로 제1프로세스의 예측 사용량을 산출할 수 있다.As shown in FIGS. 4 and 5 , the
한 가지 예시로서, 전자장치(1)는 제1프로세스의 복수 회의 실행 시 최대 사용량들의 평균을 예측 사용량으로 산출할 수 있다. 본 실시예에서의 예를 들면, (40+50+60+50)/4=50으로서, 제1프로세스의 예측 사용량은 50MB로 산출된다.As an example, the
한 가지 예시로서, 전자장치(1)는 제1프로세스의 복수 회의 실행 시 최대 사용량들 중에서 가장 높은 값을 예측 사용량으로 산출할 수 있다. 본 실시예에서의 예를 들면, 40, 50, 60, 50의 네 값 중에서 60이 가장 높은 값이므로, 제1프로세스의 예측 사용량은 60MB로 산출될 수 있다.As one example, the
이 외에도, 전자장치(1)는 다양한 방법을 사용하여 프로세스의 메모리 사용 이력(520)으로부터 프로세스의 예측 사용량이 산출될 수 있다.In addition to this, the
이하, 타 프로세스들 중에서 종료할 타 프로세스를 선택하는 방법에 관해 설명한다.Hereinafter, a method of selecting another process to be terminated from among other processes will be described.
도 6은 타 프로세스들로부터 종료할 것들을 선택하는 방법을 나타내는 예시도이다.6 is an exemplary diagram illustrating a method of selecting those to be terminated from other processes.
도 1 및 도 6에 도시된 바와 같이, 전자장치(1)는 프로세스의 런칭 시에 현재 실행중인 복수의 타 프로세스 중에서, 종료시킬 하나 이상의 타 프로세스를 선택한다. 여기서, 전자장치(1)가 메모리(41) 추가확보를 위해 종료시킬 타 프로세스를 선별하는 방법은 다양하게 마련된다.As shown in FIGS. 1 and 6 , the
전자장치(1)는 여러 타 프로세스의 실행에 관한 이력정보 또는 로그(600)를 참조할 수 있다. 이러한 로그(600)는 여러 타 프로세스의 실행에 관한 기록, 예를 들어 각 프로세스의 실행 시점(프로세스가 메모리(41)에 할당되어 실행되는 시점), 각 프로세스에 대한 타 프로세스, 어플리케이션, 운영체제, 하드웨어 등의 전자장치(1)의 다양한 자원에 의해 억세스된 회수, 각 프로세스가 사용중인 메모리(41)의 현재 사용량 등에 관한 정보를 포함한다. 전자장치(1)는 이러한 로그(600)의 정보에 기초하여 종료시킬 타 프로세스를 선택한다.The
한 가지 예시로서, 전자장치(1)는 복수의 타 프로세스 각각의 실행 시점을 기준으로, 종료시킬 타 프로세스를 선택할 수 있다. 본 기준은, 실행 시점이 오래된 순서일 수 있다. 본 실시예에서와 같이 #1, #2, #3, #4, #5의 5가지의 타 프로세스 중에서 2개의 타 프로세스를 선택한다고 할 때, 전자장치(1)는 실행 시점이 상대적으로 오래된 #2, #4를 선택할 수 있다.As one example, the
한 가지 예시로서, 전자장치(1)는 복수의 타 프로세스 각각의 억세스된 회수를 기준으로, 종료시킬 타 프로세스를 선택할 수 있다. 본 기준은, 억세스된 회수가 적은 순서일 수 있다. 본 실시예에서의 5가지 타 프로세스 중에서, 전자장치(1)는 억세스된 회수가 상대적으로 적은 #1, #4를 선택할 수 있다.As one example, the
한 가지 예시로서, 전자장치(1)는 복수의 타 프로세스 각각의 현재 메모리(41)의 사용량을 기준으로, 종료시킬 타 프로세스를 선택할 수 있다. 본 기준은, 예를 들면 메모리(41)의 사용량이 많은 순서일 수 있다. 본 실시예에서의 5가지 타 프로세스 중에서, 전자장치(1)는 현재 메모리(41)의 사용량이 상대적으로 많은 #3, #5를 선택할 수 있다.As one example, the
이상 설명한 예시들 외에도, 다양한 방법이 타 프로세스의 선택에 적용될 수 있다. 예를 들면, 각 타 프로세스는 프로세스 ID 별로 우선순위 또는 예외조건을 가질 수 있다. 프로세스 중에는 전자장치(1)의 동작에 필수적이기 때문에 종료되면 안되는 것도 있을 수 있고, 전자장치(1)의 동작에 필수적이지 않더라도, 상대적으로 중요도가 높은 프로세스와 낮은 프로세스가 있을 수 있다. 이러한 경우에, 앞서 설명한 여러 조건(실행 시점, 억세스된 회수, 현재 메모리(41) 사용량 등)과 무관하게, 전자장치(1)는 사전 설정된 우선순위 또는 중요도에 따라서, 상대적으로 낮은 우선순위 또는 중요도를 가진 타 프로세스를 종료시킬 대상으로 선택할 수 있다.In addition to the examples described above, various methods may be applied to the selection of other processes. For example, each other process may have a priority or an exceptional condition for each process ID. Some of the processes may not be terminated because they are essential to the operation of the
한편, 전자장치(1)가 프로세스의 런칭에 응답하여 해당 프로세스에 대한 메모리(41) 예측 사용량을 식별하였을 때, 식별된 예측 사용량을 앞선 실시예와 같이 그대로 수용할 수도 있고, 상한치를 두어 제한할 수도 있다. 이하, 이러한 실시예에 관해 설명한다.On the other hand, when the
도 7은 전자장치가 프로세스에 대해 식별된 예측 사용량보다 제한하여 메모리를 할당하는 경우를 나타내는 예시도이다.7 is an exemplary diagram illustrating a case in which an electronic device allocates memory with a limit greater than the predicted usage amount identified for a process.
도 1 및 도 7에 도시된 바와 같이, 전자장치(1)는 프로세스(62)의 런칭 시에 메모리(41)의 저장공간(700)을 할당한다. 저장공간(700)에는 기 실행중인 프로세스(타 프로세스)에 할당된 공간(710)과, 어떠한 프로세스에도 할당되지 않은 자유공간(720)이 있으며, 전자장치(1)는 자유공간(720)에 새로 런칭되는 프로세스(62)를 할당한다. 전자장치(1)는 앞선 실시예에서 설명한 바와 같이 프로세스(62)에 대한 메모리(41)의 저장공간(700)의 예측 사용량 W1을 식별한다.As shown in FIGS. 1 and 7 , the
도 7의 C1은 식별된 예측 사용량 W1이 그대로 저장공간(730)에 할당된 경우를 나타낸다. 앞선 실시예에 따르면, 전자장치(1)는 자유공간(720)이 허용하는 범위 내라면 프로세스(62)에 대해 저장공간(730)을 할당할 수 있다.C1 of FIG. 7 shows a case where the identified predicted usage amount W1 is allocated to the
그런데, 설계 방식에 따라서는, 전자장치(1)에서 메모리(41) 할당 용량에 상한치가 부여될 수도 있다. 도 7의 C2는 이러한 경우를 나타낸다. 이 경우에는, 식별된 예측 사용량이 설정된 상한치를 넘으면, 상한치까지의 용량만이 할당되고 그 이상의 용량은 할당되지 않는다. 프로세스(62)의 식별된 예측 사용량 W1이 상한치 W2를 초과하면(W1>W2), W1에서 W2를 초과하는 용량 W3는 배제되고 상한치 W2까지의 용량만이 프로세스(62)에 대해 할당된다(W2=W1-W3).However, depending on the design method, an upper limit may be assigned to the allocated capacity of the memory 41 in the
한편, 앞선 실시예에서는 복수의 타 프로세스 중에서 종료시킬 하나 이상의 타 프로세스를 선택하는 경우에 관해 설명한 바 있다. 여기서, 설계 방식에 따라서는, 전자장치(1)의 사전 설정된 동작 모드에 대응하여, 종료시킬 하나 이상의 타 프로세스를 선택하는 방법이 달라질 수도 있다.Meanwhile, in the previous embodiment, the case of selecting one or more other processes to be terminated from among a plurality of other processes has been described. Here, depending on the design method, a method of selecting one or more other processes to be terminated may be different in correspondence to the preset operation mode of the
전자장치(1)에는 복수의 모드가 마련되며, 전자장치(1)의 현재 상태, 이벤트 또는 사용자 입력 등의 요인에 따라서, 자동 또는 수동으로 어느 한 모드로 이행할 수 있다. 예를 들어, 전자장치(1)에는 어떠한 타 프로세스도 종료시키지 않는 모드 0, 타 프로세스들 중 일부를 종료시킬 수 있는 모드 1, 타 프로세스들 전체를 종료시킬 수 있는 모드 2가 마련될 수 있다.A plurality of modes are provided in the
전자장치(1)가 모드 0에 있을 때에는, 타 프로세스의 종료가 불가하므로 앞서 설명한 바와 같은 메모리(41)의 추가 확보 동작이 수행되지 않는다. 전자장치(1)는 프로세스(62)가 런칭되면, 메모리(41)의 추가 확보 동작 없이 프로세스(62)에 메모리(41)를 할당한다.When the
전자장치(1)가 모드 1에 있을 때에는, 타 프로세스 중 일부는 종료 가능하며 나머지는 종료가 가능하지 않으므로, 메모리(41) 추가 확보 동작 시에 종료가 가능하게 설정된 타 프로세스들 중에서 종료시킬 것들을 선택한다.When the
전자장치(1)가 모드 2에 있을 때에는, 타 프로세스들 모두가 종료 가능하므로, 전자장치(1)는 앞선 실시예에서 설명한 바와 같이 종료시킬 타 프로세스를 선택할 수 있다.When the
이상 실시예들에서 설명한 바와 같은 장치의 동작은, 해당 장치에 탑재된 인공지능에 의해 수행될 수 있다. 인공지능은 기계 학습 알고리즘을 활용하여 다양한 제반 시스템에 적용될 수 있다. 인공지능 시스템은 인간 수준 내지는 인간 수준에 버금가는 지능을 구현하는 컴퓨터 시스템으로서, 기계, 장치 또는 시스템이 자율적으로 학습하고 판단하며, 사용 경험의 누적에 기반하여 인식률 및 판단 정확도가 향상되는 시스템이다. 인공지능 기술은 입력되는 데이터들의 특징을 스스로 분류하고 학습하는 알고리즘을 이용한 기계학습 기술 및 알고리즘을 활용하여, 인간의 두뇌의 인지, 판단 등의 기능을 모사하는 요소 기술들로 구성된다.The operation of the device as described in the above embodiments may be performed by artificial intelligence built into the device. Artificial intelligence can be applied to various systems by utilizing machine learning algorithms. An artificial intelligence system is a computer system that implements human-level or human-level intelligence, and a machine, device, or system autonomously learns and judges, and the recognition rate and judgment accuracy are improved based on the accumulation of experience. Artificial intelligence technology consists of machine learning technology using an algorithm that classifies and learns the characteristics of input data by itself, and element technologies that mimic functions such as recognition and judgment of the human brain by utilizing algorithms.
요소 기술들은, 예를 들면 인간의 언어와 문자를 인식하는 언어적 이해 기술, 사물을 인간의 시각처럼 인식하는 시각적 이해 기술, 정보를 판단하여 논리적으로 추론하고 예측하는 추론 및 예측 기술, 인간의 경험 정보를 지식 데이터로 처리하는 지식 표현 기술, 차량의 자율 주행이나 로봇의 움직임을 제어하는 동작 제어 기술 중 적어도 어느 하나를 포함한다.Elemental technologies include, for example, linguistic understanding technology that recognizes human language and text, visual understanding technology that recognizes objects as human eyes, reasoning and prediction technology that logically infers and predicts information by judging information, and human experience. It includes at least one of a knowledge expression technology for processing information into knowledge data and a motion control technology for controlling autonomous driving of a vehicle or movement of a robot.
여기서, 언어적인 이해는 인간의 언어 또는 문자를 인식하고 응용 처리하는 기술로서, 자연어의 처리, 기계 번역, 대화 시스템, 질의 응답, 음성 인식 및 합성 등을 포함한다.Here, linguistic understanding is a technology for recognizing and applying human language or text, and includes natural language processing, machine translation, dialogue system, question and answering, voice recognition and synthesis, and the like.
추론 예측은 정보를 판단하여 논리적으로 예측하는 기술로서, 지식 및 확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다.Inference prediction is a technique of logically predicting by judging information, and includes knowledge and probability-based inference, optimization prediction, preference-based planning, and recommendation.
지식 표현은 인간의 경험 정보를 지식 데이터로 자동화 처리하는 기술로서, 데이터의 생성 및 분류와 같은 지식 구축, 데이터의 활용과 같은 지식 관리 등을 포함한다.Knowledge representation is a technology that automatically processes human experience information into knowledge data, and includes knowledge construction such as generation and classification of data, knowledge management such as utilization of data, and the like.
본 발명의 예시적 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이러한 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 삭제 가능 또는 재기록 가능 여부와 상관없이, USB 메모리장치와 같은 비휘발성 저장 장치, 또는 예를 들어 RAM, ROM, 플래시메모리, 메모리 칩, 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 이동 단말 내에 포함될 수 있는 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 본 저장 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어의 기술 분야에서 숙련된 기술자에게 공지되어 사용 가능한 것일 수도 있다. 또는, 본 컴퓨터 프로그램 명령은 컴퓨터 프로그램 프로덕트에 의해 구현될 수도 있다.Methods according to exemplary embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer readable medium. Such computer readable media may include program instructions, data files, data structures, etc. alone or in combination. For example, computer readable media, whether removable or rewritable, include non-volatile storage devices such as USB memory devices, or memory such as RAM, ROM, flash memory, memory chips, integrated circuits, or For example, it may be stored in an optically or magnetically recordable and machine-readable storage medium such as a CD, DVD, magnetic disk, or magnetic tape. It will be appreciated that a memory that may be included in a mobile terminal is one example of a machine-readable storage medium suitable for storing a program or programs including instructions implementing embodiments of the present invention. Program instructions recorded on this storage medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in the art of computer software. Alternatively, the present computer program instructions may be implemented by a computer program product.
1 : 전자장치
40 : 저장부
41 : 메모리
42 : 스토리지
50 : 프로세서1: electronic device
40: storage unit
41: memory
42: storage
50: processor
Claims (15)
메모리와,
실행할 프로세스의 개시에 응답하여, 상기 프로세스에 사용될 것으로 예측되는 상기 메모리의 예측 사용량을 식별하고,
상기 메모리의 현재 사용 가능한 가용량을 식별하고,
상기 식별된 가용량 및 상기 식별된 예측 사용량에 기초하여 상기 메모리의 가용량을 추가 확보할 것인지 여부를 판단하며, 상기 판단 결과에 따라서 상기 메모리의 가용량의 추가 확보 동작을 선택적으로 수행하고,
상기 프로세스의 메모리 할당 요청에 응답하여, 상기 프로세스에 상기 메모리를 할당하는 프로세서를 포함하는 전자장치.In electronic devices,
memory,
in response to initiation of a process to run, identify a predicted usage of the memory that is expected to be used by the process;
identify a currently available capacity of the memory;
Based on the identified capacity and the identified predicted usage, it is determined whether or not to additionally secure the capacity of the memory, and selectively perform an additional securing operation of the capacity of the memory according to the determination result;
and a processor allocating the memory to the process in response to a memory allocation request of the process.
상기 프로세서는, 상기 식별된 예측 사용량이 상기 식별된 가용량을 초과하는 것에 기초하여 상기 추가 확보 동작을 수행하고, 상기 식별된 예측 사용량이 상기 식별된 가용량을 초과하지 않는 것에 기초하여 상기 추가 확보 동작을 수행하지 않는 전자장치.According to claim 1,
The processor performs the additional securing operation based on the identified predicted usage exceeding the identified capacity, and based on the identified predicted usage does not exceed the identified capacity, the additional securing An electronic device that does not perform an action.
상기 프로세서는, 상기 메모리의 예측 사용량을 식별할 수 없는 것에 기초하여 상기 추가 확보 동작을 수행하지 않는 전자장치.According to claim 2,
The electronic device of claim 1 , wherein the processor does not perform the additional securing operation based on not being able to identify the predicted usage amount of the memory.
상기 프로세서는, 상기 프로세스의 메모리 사용 이력에 기초하여 상기 예측 사용량을 식별하는 전자장치.According to claim 1,
The processor identifies the predicted usage based on the memory usage history of the process.
상기 프로세서는, 상기 메모리 사용 이력에서 상기 프로세스의 최대 메모리 사용량들의 평균을 상기 예측 사용량으로 식별하는 전자장치.According to claim 4,
The processor identifies an average of maximum memory usages of the process in the memory usage history as the predicted usage.
상기 프로세서는, 상기 메모리 사용 이력에서 상기 프로세스의 최대 메모리 사용량들 중에서 가장 높은 값을 상기 예측 사용량으로 식별하는 전자장치.According to claim 4,
The processor identifies a highest value among maximum memory usages of the process in the memory usage history as the predicted usage.
상기 프로세서는, 상기 메모리를 기 할당하여 실행중인 하나 이상의 타 프로세스를 종료시킴으로써 상기 추가 확보 동작을 수행하는 전자장치.According to claim 1,
The processor performs the additional securing operation by pre-allocating the memory and terminating one or more other processes being executed.
스토리지를 더 포함하고,
상기 프로세서는, 실행중인 하나 이상의 타 프로세스에 기 할당된 상기 메모리의 데이터를 상기 스토리지로 이동시킴으로써 상기 추가 확보 동작을 수행하는 전자장치.According to claim 1,
Including more storage;
The electronic device of claim 1 , wherein the processor performs the additional securing operation by moving data of the memory pre-allocated to one or more other running processes to the storage.
외부장치와 통신하는 인터페이스부와,
상기 예측 사용량에 관한 정보가 저장된 스토리지를 더 포함하고,
상기 프로세서는, 상기 인터페이스부를 통해 상기 외부장치로부터 수신되는 업데이트정보를 사용하여 상기 스토리지에 저장된 상기 정보를 업데이트하는 전자장치.According to claim 1,
an interface unit communicating with an external device;
Further comprising a storage in which information about the predicted usage is stored,
The processor updates the information stored in the storage using update information received from the external device through the interface unit.
사용자입력부와,
상기 예측 사용량에 관한 정보가 저장된 스토리지를 더 포함하고,
상기 프로세서는, 상기 사용자입력부를 통한 사용자 입력에 따라서 상기 스토리지에 저장된 상기 정보를 업데이트하는 전자장치.According to claim 1,
a user input unit;
Further comprising a storage in which information about the predicted usage is stored,
The processor updates the information stored in the storage according to a user input through the user input unit.
실행할 프로세스의 개시에 응답하여, 상기 프로세스에 사용될 것으로 예측되는 메모리의 예측 사용량을 식별하는 단계와,
상기 메모리의 현재 사용 가능한 가용량을 식별하는 단계와,
상기 식별된 가용량 및 상기 식별된 예측 사용량에 기초하여 상기 메모리의 가용량을 추가 확보할 것인지 여부를 판단하며, 상기 판단 결과에 따라서 상기 메모리의 가용량의 추가 확보 동작을 선택적으로 수행하는 단계와,
상기 프로세스의 메모리 할당 요청에 응답하여, 상기 프로세스에 상기 메모리를 할당하는 단계를 포함하는 전자장치의 제어방법.In the control method of the electronic device,
in response to initiation of a process to run, identifying a predicted usage of memory expected to be used by the process;
identifying a currently usable capacity of the memory;
Determining whether to additionally secure the capacity of the memory based on the identified capacity and the predicted usage, and selectively performing an additional securing operation of the capacity of the memory according to the determination result; ,
and allocating the memory to the process in response to a memory allocation request of the process.
상기 프로세스에 상기 메모리를 할당하는 단계는,
상기 식별된 예측 사용량이 상기 식별된 가용량을 초과하는 것에 기초하여 상기 추가 확보 동작을 수행하는 단계와,
상기 식별된 예측 사용량이 상기 식별된 가용량을 초과하지 않는 것에 기초하여 상기 추가 확보 동작을 수행하지 않는 단계를 포함하는 전자장치의 제어방법.According to claim 11,
Allocating the memory to the process,
performing the additional reserving operation based on the identified predicted usage amount exceeding the identified capacity; and
and not performing the additional securing operation based on the identified predicted usage amount not exceeding the identified available usage amount.
상기 프로세스에 상기 메모리를 할당하는 단계는,
상기 메모리의 예측 사용량을 식별할 수 없는 것에 기초하여 상기 추가 확보 동작을 수행하지 않는 단계를 더 포함하는 전자장치의 제어방법.According to claim 12,
Allocating the memory to the process,
The control method of the electronic device further comprising not performing the additional securing operation based on not being able to identify the predicted memory usage.
상기 메모리의 예측 사용량을 식별하는 단계는,
상기 프로세스의 메모리 사용 이력에 기초하여 상기 예측 사용량을 식별하는 전자장치의 제어방법.According to claim 11,
The step of identifying the predicted usage of the memory,
A control method of an electronic device for identifying the estimated usage amount based on the memory usage history of the process.
상기 프로세스의 메모리 사용 이력에 기초하여 상기 예측 사용량을 식별하는 단계는,
상기 메모리 사용 이력에서 상기 프로세스의 최대 메모리 사용량들의 평균을 상기 예측 사용량으로 식별하는 단계를 포함하는 전자장치의 제어방법.According to claim 14,
Identifying the predicted usage based on the memory usage history of the process,
and identifying an average of maximum memory usages of the process in the memory usage history as the predicted usage.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220009957A KR20230114004A (en) | 2022-01-24 | 2022-01-24 | Electronic apparatus and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220009957A KR20230114004A (en) | 2022-01-24 | 2022-01-24 | Electronic apparatus and control method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230114004A true KR20230114004A (en) | 2023-08-01 |
Family
ID=87561611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220009957A KR20230114004A (en) | 2022-01-24 | 2022-01-24 | Electronic apparatus and control method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230114004A (en) |
-
2022
- 2022-01-24 KR KR1020220009957A patent/KR20230114004A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579910B2 (en) | Dynamic classifier selection based on class skew | |
CN107102788B (en) | Application notification | |
US11521038B2 (en) | Electronic apparatus and control method thereof | |
US20180129537A1 (en) | Managing memory usage using soft memory targets | |
US11023180B2 (en) | Method, equipment and system for managing the file system | |
EP3377432B1 (en) | A method and an apparatus for determining an allocation decision for at least one elevator | |
US20140149984A1 (en) | Information processing apparatus, information processing method, and computer readable medium | |
US9736529B2 (en) | USB sharing method for combo TV set, combo TV set and computer readable storage medium | |
US20200167183A1 (en) | Electronic apparatus and control method thereof | |
KR102667564B1 (en) | Electronic apparatus and method for data processing | |
KR102091409B1 (en) | Electronic apparatus and control method thereof | |
CN109639827A (en) | Client side upgrading method and device | |
KR20230114004A (en) | Electronic apparatus and control method thereof | |
KR20220169695A (en) | Electronic apparatus and control method thereof | |
US11726821B2 (en) | Electronic apparatus and control method thereof | |
KR102407577B1 (en) | User device and method for processing input message | |
US11113130B2 (en) | Electronic apparatus and control method thereof | |
EP4365750A1 (en) | Electronic device and control method therefor | |
US20240168805A1 (en) | Automated ad-hoc task scheduling using task velocity | |
KR20220051546A (en) | Electronic apparatus and control method thereof | |
KR20230032492A (en) | Electronic apparatus and control method thereof | |
CN114995950A (en) | Method and device for reallocating nodes, electronic equipment and storage medium | |
CN115080233A (en) | Resource allocation management method, device, equipment and storage medium for application software | |
CN118069302A (en) | Data processing method and device, electronic equipment and storage medium |