WO2024025143A1 - 성능 정보를 고려하는 메모리 관리 방법 및 장치 - Google Patents
성능 정보를 고려하는 메모리 관리 방법 및 장치 Download PDFInfo
- Publication number
- WO2024025143A1 WO2024025143A1 PCT/KR2023/008050 KR2023008050W WO2024025143A1 WO 2024025143 A1 WO2024025143 A1 WO 2024025143A1 KR 2023008050 W KR2023008050 W KR 2023008050W WO 2024025143 A1 WO2024025143 A1 WO 2024025143A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- memory threshold
- threshold
- predetermined
- electronic device
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 335
- 238000007726 management method Methods 0.000 title claims abstract description 8
- 238000000034 method Methods 0.000 claims abstract description 62
- 230000008569 process Effects 0.000 claims abstract description 52
- 230000004044 response Effects 0.000 claims description 15
- 230000009467 reduction Effects 0.000 claims description 13
- 238000011084 recovery Methods 0.000 abstract description 23
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
Definitions
- Various embodiments of the present disclosure relate to a memory management method and device that performs a memory reclaim operation by dynamically setting a memory threshold by additionally considering performance information of an electronic device in addition to the amount of free memory.
- Memory reclaim operations can be performed through memory reallocation (Reclaim) or process termination (Kill).
- the memory recovery operation through memory reallocation maintains process execution, but selects the memory to be recovered and moves (Swap Out) or drops the selected memory contents to a swap medium (or device) (i.e., allocated memory area).
- Memory can be recovered by unlinking.
- Memory recovery operation through process termination is performed when free memory in the system is insufficient (i.e., less than a certain threshold) by forcibly terminating a process that is judged to be of low importance according to a certain priority among the running processes. This allows the memory in use to be recovered.
- Various embodiments of the present disclosure provide a memory management method and device that performs a memory recovery operation by dynamically setting a memory threshold by additionally considering the performance factor (or performance information) of the electronic device in addition to the amount of free memory. It is provided.
- an electronic device includes: a memory storing at least one instruction corresponding to at least one program; and at least one processor electrically connected to the memory and executing the at least one instruction as a process;
- the at least one processor obtains performance information and the amount of free memory of the electronic device, determines a memory threshold based on the performance information and the amount of free memory, and sets the memory threshold to the determined memory threshold. It is updated, and if the amount of free memory is less than the memory threshold at a predetermined time, the predetermined process may be terminated.
- the performance information may include at least one of CPU usage overhead of the memory reallocation process, memory swap out/in overhead due to memory reallocation, file dropping/loading overhead due to memory reallocation, and application response speed. It can contain one.
- the at least one processor may obtain the performance information and the amount of free memory at a predetermined cycle, determine a memory threshold, and update the memory threshold.
- the at least one processor may set at least one of a maximum memory threshold and a minimum memory threshold based on an external input.
- the at least one processor determines whether the amount of free memory exceeds the memory threshold and whether the performance of the electronic device is below a predetermined performance standard based on the performance information, Even if the amount of free memory exceeds the memory threshold, if the performance of the electronic device is below a predetermined performance standard, the memory threshold may be increased by a predetermined increase value.
- the at least one processor determines whether the amount of free memory exceeds the maximum memory threshold and whether the performance of the electronic device is above a predetermined performance standard based on the performance information, If the amount of free memory exceeds the maximum memory threshold and the performance of the electronic device is above a predetermined performance standard, the memory threshold may be reduced by a predetermined reduction value.
- the at least one processor may increase the memory threshold by the predetermined increase value within the maximum memory threshold limit.
- the at least one processor may reduce the memory threshold by the predetermined reduction value within the minimum memory threshold limit.
- a memory management method includes: acquiring performance information and the amount of free memory of an electronic device; determining a memory threshold based on the performance information and the amount of free memory; updating the memory threshold with the determined memory threshold; and terminating a predetermined process when the amount of free memory is less than the memory threshold at a predetermined time.
- the performance information may include at least one of CPU usage overhead of the memory reallocation process, memory swap out/in overhead due to memory reallocation, file dropping/loading overhead due to memory reallocation, and application response speed. It can contain one.
- the operations of obtaining the performance information and the amount of free memory, determining the memory threshold, and updating the memory threshold may be performed at a predetermined cycle.
- the operation may include setting at least one of a maximum memory threshold and a minimum memory threshold based on an external input.
- the operation of determining the memory threshold determines whether the amount of free memory exceeds the memory threshold and whether the performance of the electronic device is below a predetermined performance standard based on the performance information. action; and an operation of increasing the memory threshold by a predetermined increase value when the performance of the electronic device is less than a predetermined performance standard even though the amount of free memory exceeds the memory threshold.
- the operation of determining the memory threshold determines whether the amount of free memory exceeds the maximum memory threshold and whether the performance of the electronic device is greater than or equal to a predetermined performance standard based on the performance information. The act of judging; and when the amount of free memory exceeds the maximum memory threshold and the performance of the electronic device is greater than or equal to a predetermined performance standard, reducing the memory threshold by a predetermined reduction value.
- the operation of increasing the memory threshold by a predetermined increase value may increase the memory threshold by the predetermined increase value within the maximum memory threshold limit.
- the operation of reducing the memory threshold by a predetermined reduction value may reduce the memory threshold by the predetermined reduction value within the minimum memory threshold limit.
- a computer-readable recording medium may be included on which a program for performing the method is recorded.
- a memory recovery operation can be performed by dynamically setting a memory threshold by additionally considering performance information of the electronic device in addition to the amount of free memory. Accordingly, it is possible to improve the problem of device performance degradation that may occur when a memory recovery operation is performed through memory reallocation in a situation where the amount of free memory is greater than the memory threshold. In other words, in a situation where memory recovery through memory reallocation alone does not restore memory and only deteriorates device performance, memory recovery and device performance are improved by advancing the memory recovery operation through process termination through dynamic setting of the memory threshold. It can be improved.
- the user's device usage pattern can be optimally reflected in memory management, thereby improving the user's device usability and satisfaction. For example, if a user uses a lot of heavy applications that require high device resources such as memory, the memory threshold can be dynamically increased so that background applications can be terminated more quickly, which allows running foreground applications to run smoothly. It can use device resources effectively. On the other hand, if the user uses a lot of light applications, the memory threshold is dynamically reduced, allowing previously running applications to exist more in the background without being terminated, and to quickly switch to the foreground application when necessary. , it can improve the user’s device usability and satisfaction.
- FIG. 1 is a schematic block diagram of an electronic device according to an embodiment of the present disclosure.
- Figure 2 shows a schematic flowchart of a memory recovery method through process termination according to an embodiment of the present disclosure.
- FIG. 3 illustrates a flowchart of dynamically updating a memory threshold based on device performance information and free memory amount according to an embodiment of the present disclosure.
- FIG. 4 is a conceptual diagram illustrating memory swap out/in overhead due to memory reallocation among device performance information according to an embodiment of the present disclosure.
- FIG. 1 is a schematic block diagram of an electronic device according to an embodiment of the present disclosure.
- the electronic device 100 is not limited thereto, but may include one or more processors 110 and one or more memories 120.
- Electronic device 100 may include additional components 130 .
- the electronic device 100 may include additional components in addition to the illustrated components, or at least one of the illustrated components may be omitted.
- one or more processors 110 may include storage and processing circuitry to support the operation of the electronic device 100.
- the storage and processing circuitry provides storage, such as non-volatile memory (e.g., flash memory, or other electrically programmable ROM configured to form a solid state drive (SSD)), volatile memory (e.g., static or dynamic RAM), and the like. It can be included.
- the processing circuitry within the processor 110 may be used to control the operation of the electronic device 100.
- the processing circuit consists of a central processing unit (CPU), graphics processing unit (GPU), MCU (Micro Controller Unit), sensor hub, supplementary processor, communication processor, application processor, and ASIC ( It may be based on at least one of Application Specific Integrated Circuit (Application Specific Integrated Circuit) and Field Programmable Gate Arrays (FPGA), and may include at least one core.
- the memory 120 and the additional component 130 described below are one embodiment of the processor and are provided as functional elements that perform a unique function or operation as at least a part of the processor, or as a subject that performs an independent function or operation. It may also be provided as a separate hardware component.
- one or more memories 120 are storage media used by the electronic device 100 and may store at least one command or data corresponding to at least one program.
- the data may be used in protocols, configuration, control, and other functions of electronic device 100, including operations corresponding to or including any of the methods and/or procedures illustratively described in this disclosure. May include variables and/or configuration information.
- the program may include an operating system (OS) program and various application programs.
- Memory 120 may include non-volatile memory, volatile memory, or a combination thereof. Memory 120 may interface with a memory slot that allows one or more formats of removable memory cards (eg, SD card, memory stick, compact flash, etc.) to be inserted and removed.
- the memory 120 may provide the stored data according to the request of the processor 110.
- electronic device 100 may include additional components 130.
- the additional component 130 may be configured in various ways depending on the type of electronic device 100.
- the additional component may include, but is not limited to, at least one of a transceiver, a display, a power unit (eg, a battery), an input/output unit (I/O Unit), a driver, and a computing unit.
- the electronic device 100 may include a bus.
- one or more system components e.g., processor 110, memory 120, etc.
- one or more buses may include circuitry that interconnects or controls various combinations of system components wired and wirelessly. It will be understood by those skilled in the art that one or more system components may be interconnected by one or more buses, but are not limited to this, and may be interconnected or controlled in a variety of ways.
- the electronic device 100 includes a TV, an eXtended Reality (XR) device, a hologram device, an AI server, a home appliance, a mobile device, a digital broadcasting terminal device, an IoT device, a desktop computer, a laptop, a robot, a vehicle, It may be implemented in the form of a public safety device, MTC (Machine Type Communication) device, medical device, fintech device, security device, climate/environment device, base station, network node, etc., but is not limited thereto.
- MTC Machine Type Communication
- the processor 110 determines whether the amount of free memory is less than a predetermined memory threshold at a predetermined time, and if the amount of free memory is less than the memory threshold, performs a memory recovery operation by terminating the process. You can.
- the memory recovery operation through process termination terminates processes that are judged to be of low importance according to a given priority among the running processes when there is insufficient free memory in the system (i.e., when it is below the memory threshold), and thus the process is used due to the execution of the process. Memory in progress can be recovered.
- the predetermined time may include at least one of a time when memory allocation is required by an application or the like and a predetermined periodic time, but is not limited thereto.
- the memory threshold may be set to an initial value set based on external input (eg, user input) when the device is booted.
- the processor 110 may dynamically update the memory threshold by additionally considering the amount of free memory and performance information of the electronic device 100. To this end, the processor 110 may obtain performance information and the amount of free memory of the electronic device 100.
- the performance information may include at least one of performance overhead and application response speed resulting from a memory recovery operation through memory reallocation, but is not limited thereto.
- Performance overhead arising from memory reclaim operations through memory reallocation includes CPU usage overhead of the memory reallocation process, memory swap out/in overhead due to memory reallocation, and file dropping/loading overhead due to memory reallocation. It may include at least one of:
- the performance information may include various information that can objectively determine the performance of the electronic device 100.
- the CPU usage overhead of the memory reallocation process may include at least one information of CPU usage amount and CPU usage rate by a system program (eg, Kswapd) that performs memory reallocation.
- Memory swap out/in overhead due to memory reallocation is at least one of the time it takes to move the memory in use to a swap medium (swap out), load it back into memory in the future (swap in), and the number of swap outs/ins. may include.
- File dropping/loading overhead due to memory reallocation may include at least one of the time it takes to disconnect the OS from the memory in use and load it back into memory in the future, and the number of drops/loading times. .
- the application response speed may include at least one of information about the UI response speed from the user and the processing speed of handling the UI from the user.
- application response speed may include, but is not limited to, the response speed of a cursor displayed when a user operates the UI of an application using a remote control, or the processing speed of handling remote control keys.
- the processor 110 may determine a memory threshold based on the performance information and the amount of free memory, and update the memory threshold with the determined memory threshold. A detailed description of the dynamic setting of the memory threshold will be described later with reference to FIG. 3.
- the processor 110 is not limited thereto, but may acquire the performance information and amount of free memory at a predetermined cycle, determine a memory threshold, and update the memory threshold.
- Figure 2 shows a schematic flowchart of a memory recovery method through process termination according to an embodiment of the present disclosure.
- the electronic device 100 may determine whether the amount of free memory is less than the memory threshold at a certain point in time. As a result of the determination, if the amount of free memory exceeds the memory threshold, operation S210 is performed again at another predetermined time, and if the amount of free memory is less than the memory threshold, operation S220 may be performed.
- the predetermined time point may include at least one time point when memory allocation is required by an application or the like and a predetermined periodic time point.
- the memory threshold may be set in advance with a value set based on external input (eg, user input) as the initial value. Additionally, the memory threshold may be dynamically updated based on the amount of free memory and performance information of the electronic device 100. Dynamic updating of the memory threshold will be described later with reference to FIG. 3.
- the electronic device 100 may select a process to retrieve memory in use based on a predetermined priority.
- a certain priority may be set based on external input, but it will be understood by those skilled in the art that it can be set in various ways.
- the predetermined priority may be set in the following order: Background application, Favorite application, service application without restart, Foreground application, daemon process without restart, service application with restart, daemon process with restart, VIP process.
- the background application may refer to an application that was previously executed but is not currently displayed and is inactive.
- the Favorite application may refer to an application that is separately given a higher priority among background applications.
- the service application without restart may mean an application without a restart option among service applications without a user interface (UI).
- the foreground application may refer to an application currently displayed on the display and running.
- the daemon process without restart may mean a daemon process without a restart option among daemon processes operating in the background to respond to service requests.
- the VIP process may be preset as a VIP process based on external input, but is not limited to this.
- the electronic device 100 may terminate the process selected in operation S220, thereby recovering the memory being used by the selected process.
- FIG. 3 illustrates a flowchart of dynamically updating a memory threshold based on device performance information and free memory amount according to an embodiment of the present disclosure.
- the electronic device 100 may perform operations S310 to S360 at a predetermined period, but is not limited thereto.
- the electronic device 100 may obtain performance information and the amount of free memory.
- the performance information may include at least one of CPU usage overhead of the memory reallocation process, memory swap out/in overhead due to memory reallocation, file dropping/loading overhead due to memory reallocation, and application response speed. , but is not limited to this.
- the performance information may include various information that can objectively determine the performance of the electronic device 100.
- the electronic device 100 determines whether the amount of free memory exceeds a previously set memory threshold and whether the performance of the electronic device 100 is below a predetermined performance standard based on the performance information (i.e. It is possible to determine whether a given performance standard is not met. Even if the amount of free memory exceeds a previously set memory threshold, if the performance of the electronic device is below a predetermined performance standard, the process may proceed to operation S330.
- the predetermined performance standard may be identified by at least one combination of the performance information. For example, in determining whether the predetermined performance standard is below the predetermined performance standard, the predetermined performance standard is that the CPU usage overhead of the memory reallocation process is greater than or equal to a first increase rate (e.g., 10%) compared to the previous judgment cycle, and the memory reallocation process is Memory swap out/in overhead due to allocation is greater than the second increase rate (e.g. 20%) compared to the previous judgment cycle, and file drop/loading overhead due to memory reallocation is greater than the third increase rate (e.g. 20%) compared to the previous judgment cycle. ) or more and the application response speed may include at least one of a predetermined time (e.g. 2 seconds) or more.
- a predetermined time e.g. 2 seconds
- the electronic device 100 may increase the memory threshold by a predetermined increase value.
- the electronic device 100 may increase the memory threshold by the predetermined increase value within the maximum memory threshold limit.
- the maximum memory threshold may be set in advance based on an external input, but is not limited thereto. Due to the increased memory threshold, the electronic device 100 can recover memory by advancing the memory recovery operation through process termination described above in FIG. 2, and may occur by performing the memory recovery operation through memory reallocation. Deterioration in the performance of existing devices can be prevented in advance. Meanwhile, when the memory threshold is increased by a predetermined increase value, the electronic device 100 increases the maximum memory threshold within the limit, thereby controlling the memory recovery operation through process termination to not be performed too frequently. .
- the electronic device 100 determines whether the amount of free memory exceeds the maximum memory threshold and whether the performance of the electronic device 100 is greater than or equal to a predetermined performance standard (i.e., based on the performance information). It can be determined whether the performance criteria are met. If the amount of free memory exceeds the maximum memory threshold and the performance of the electronic device 100 is greater than or equal to a predetermined performance standard, the process may proceed to operation S350.
- the predetermined performance standard may be identified by at least one combination of the performance information. For example, in determining whether or not the predetermined performance standard is higher than the predetermined performance standard, the predetermined performance standard is that the CPU usage overhead of the memory reallocation process is less than the first increase rate (e.g. 10%) compared to the previous judgment cycle, and the memory reallocation process is Memory swap out/in overhead due to allocation is less than the second increase rate (e.g. 20%) compared to the previous judgment cycle, and file drop/loading overhead due to memory reallocation is less than the third increase rate (e.g. 20%) compared to the previous judgment cycle. ) and the application response speed may include at least one of less than a predetermined time (e.g. 2 seconds).
- a predetermined time e.g. 2 seconds
- the electronic device 100 may decrease the memory threshold by a predetermined reduction value.
- the electronic device 100 may reduce the memory threshold by the predetermined reduction value within the minimum memory threshold limit.
- the minimum memory threshold may be set in advance based on an external input, but is not limited thereto.
- the reduced memory threshold causes the electronic device 100 to use memory through terminating the process described above in FIG. 2.
- the performance of the recovery movement may be delayed.
- the electronic device 100 reduces it within the minimum memory threshold limit, thereby controlling the memory recovery operation through process termination to be performed at least to a certain level. You can.
- the electronic device 100 may update the memory threshold with the memory threshold determined in operation S330 or operation S350.
- the electronic device 100 may perform operations S210 to S230 described above with reference to FIG. 2 using the updated memory threshold.
- the predetermined increase value and the predetermined decrease value may be the same value (e.g. 5Mbytes) set in advance based on an external input, but are not limited thereto and may be set to various values, as will be explained to those skilled in the art. You will understand.
- FIG. 4 is a conceptual diagram illustrating memory swap out/in overhead due to memory reallocation among device performance information according to an embodiment of the present disclosure.
- the processor 110 selects a process (e.g., process 1) to reclaim the memory in use based on a predetermined criterion, and moves the memory pages in use to the swap medium 410 to reclaim the memory in use. It can be recovered (Swap Out). In this case, the processor 110 may compress memory pages in use and then swap them out. The processor 110 may load the memory pages moved to the swap medium 410 back into memory in the future (Swap In). In this case, the processor 110 may decompress the memory pages and then load them back into memory.
- the processor 110 can measure at least one piece of information among the time it takes to swap out and swap in and the number of times swap out/in, and store it as the performance information.
- Electronic devices may be of various types. Electronic devices may include, for example, display devices, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to embodiments of this document are not limited to the above-described devices.
- unit or “module” used in various embodiments of this document may include a unit implemented with hardware, software, or firmware, for example, logic, logic block, component, or circuit. Can be used interchangeably with the same term.
- the “ ⁇ part” or “ ⁇ module” may be an integrated part or a minimum unit of the part or a part thereof that performs one or more functions.
- “ ⁇ unit” or “ ⁇ module” may be implemented in the form of an application-specific integrated circuit (ASIC).
- ASIC application-specific integrated circuit
- a program executed by the electronic device 100 described throughout this document may be implemented with hardware components, software components, and/or a combination of hardware components and software components.
- a program can be executed by any system that can execute computer-readable instructions.
- Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device.
- Software may be implemented as a computer program including instructions stored on computer-readable storage media.
- Computer-readable storage media include, for example, magnetic storage media (e.g., ROM (Read-Only Memory), RAM (Random-Access Memory), floppy disk, hard disk, etc.) and optical read media (e.g., CD-ROM). (CD-ROM), DVD (Digital Versatile Disc), etc.
- the computer-readable storage medium is distributed across networked computer systems, so that computer-readable code can be stored and executed in a distributed manner.
- Computer programs may be distributed (e.g., downloaded or uploaded) online, through an application store (e.g., Play StoreTM) or directly between two user devices (e.g., smart phones).
- an application store e.g., Play StoreTM
- two user devices e.g., smart phones
- at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
- each component (e.g., module or program) of the above-described components may include a single or plural entity, and some of the plurality of entities may be separately placed in other components. there is.
- one or more of the components or operations described above may be omitted, or one or more other components or operations may be added.
- multiple components eg, modules or programs
- the integrated component may perform one or more functions of each component of the plurality of components in the same or similar manner as those performed by the corresponding component of the plurality of components prior to the integration. .
- operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, or omitted. Alternatively, one or more other operations may be added.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
Abstract
본 개시의 다양한 실시예는 여유 메모리 양 이외에 전자 장치의 성능 정보를 추가로 고려하여 메모리 임계값을 동적으로 설정함으로써 메모리 회수 동작을 수행하는 메모리 관리 방법 및 장치에 관한 것이다. 이를 위한 전자 장치는 적어도 하나의 프로그램에 대응하는 적어도 하나의 명령어를 저장하는 메모리; 및 상기 메모리와 전기적으로 연결되고, 상기 적어도 하나의 명령어를 프로세스로 실행하는 적어도 하나의 프로세서를 포함하고; 상기 적어도 하나의 프로세서는 상기 전자 장치의 성능 정보 및 여유 메모리 양을 획득하고, 상기 성능 정보 및 상기 여유 메모리 양에 기초하여, 메모리 임계값을 결정하고, 상기 결정된 메모리 임계값으로 상기 메모리 임계값을 갱신하고, 소정 시점에 상기 여유 메모리 양이 상기 메모리 임계값 미만인 경우, 소정 프로세스를 종료할 수 있다.
Description
본 개시의 다양한 실시예들은 여유 메모리 양 이외에 전자 장치의 성능 정보를 추가로 고려하여 메모리 임계값을 동적으로 설정함으로써 메모리 회수 동작을 수행하는 메모리 관리 방법 및 장치에 관한 것이다.
전자 장치는 동작에 필요한 최소한의 메모리가 유지되지 않으면 최악의 경우 복구 불가능한 상태에 빠질 수 있기 때문에, 메모리 할당이 필요할 때 또는 주기적으로 여유(available) 메모리를 모니터링하고, 필요하다고 판단되면 사용중인 메모리에 대한 메모리 회수 동작을 수행할 수 있다. 전자 장치는 운영체제(OS: Operating System)의 부분으로서 메모리에 상주하는 커널(Kernel) 및 애플리케이션/서비스 프로그램 등이 사용하는 메모리들을 대상으로 메모리 회수 동작을 수행할 수 있다.
메모리 회수 동작은 메모리 재할당(Reclaim) 또는 프로세스 종료(Kill)를 통해 수행될 수 있다. 메모리 재할당을 통한 메모리 회수 동작은 프로세스 실행은 유지하되 회수할 메모리를 선별하고 선별된 메모리 내용을 스왑(Swap) 매체(또는 장치)로 이동(Swap Out)시키거나 드랍(즉, 할당된 메모리 영역에 대한 링킹 해제)시킴으로써 메모리를 회수할 수 있다. 프로세스 종료를 통한 메모리 회수 동작은 시스템 내 여유 메모리가 부족한 경우(즉, 소정의 임계값 미만인 경우) 실행중인 프로세스들 중 소정의 우선순위에 의해 중요도가 낮다고 판단되는 프로세스를 강제로 종료시킴으로써 해당 프로세스 실행으로 인해 사용중인 메모리를 회수할 수 있다.
전자 장치에서 사전에 고정값으로 설정된 메모리 임계값을 기준으로 여유 메모리 부족 여부를 판단하고 프로세스를 종료하는 경우, 사용자의 장치 사용 패턴 등을 메모리 관리에 최적화하여 반영할 수 없다. 또한, 여유 메모리가 소정의 임계값 이상인 경우 프로세스 종료에 의한 메모리 회수 동작은 수행되지 않으나, 여유 메모리가 메모리 재할당을 통해 회수할 수 있는 메모리를 포함함으로 인해 메모리 재할당을 통한 메모리 회수 동작이 수행될 수 있다. 이 경우 재할당 메모리 선별, 스왑 아웃/인 또는 파일 드랍/로딩 작업에 CPU, 스왑 매체 등 장치 오버헤드가 발생하고, 동작 중인 애플리케이션 성능에 영향을 미칠 수 있어 결국 전자 장치의 사용성 저하로 이어질 수 있다.
본 개시의 다양한 실시예들은 여유 메모리 양 이외에 전자 장치의 성능 지표(Performance Factor)(또는 성능 정보)를 추가로 고려하여 메모리 임계값을 동적으로 설정함으로써 메모리 회수 동작을 수행하는 메모리 관리 방법 및 장치를 제공하는데 있다.
본 개시의 일 실시예에 따르면 전자 장치는 적어도 하나의 프로그램에 대응하는 적어도 하나의 명령어를 저장하는 메모리; 및 상기 메모리와 전기적으로 연결되고, 상기 적어도 하나의 명령어를 프로세스로 실행하는 적어도 하나의 프로세서를 포함하고; 상기 적어도 하나의 프로세서는 상기 전자 장치의 성능 정보 및 여유 메모리 양을 획득하고, 상기 성능 정보 및 상기 여유 메모리 양에 기초하여, 메모리 임계값을 결정하고, 상기 결정된 메모리 임계값으로 상기 메모리 임계값을 갱신하고, 소정 시점에 상기 여유 메모리 양이 상기 메모리 임계값 미만인 경우, 소정 프로세스를 종료할 수 있다.
일 실시예에 따르면, 상기 성능 정보는 메모리 재할당 프로세스의 CPU 사용 오버헤드, 메모리 재할당으로 인한 메모리 스왑 아웃/인 오버헤드, 메모리 재할당으로 인한 파일 드랍/로딩 오버헤드 및 애플리케이션 응답 속도 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 소정 주기로 상기 성능 정보 및 여유 메모리 양을 획득하고, 메모리 임계값을 결정하고, 상기 메모리 임계값을 갱신할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 외부 입력에 기초하여 최대 메모리 임계값 및 최소 메모리 임계값 중 적어도 하나를 설정할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 여유 메모리 양이 상기 메모리 임계값을 초과하는지 여부 및 상기 성능 정보에 기초하여 상기 전자 장치의 성능이 소정의 성능 기준 미만인지 여부를 판단하고, 상기 여유 메모리 양이 상기 메모리 임계값을 초과하더라도 상기 전자 장치의 성능이 소정의 성능 기준 미만인 경우, 상기 메모리 임계값을 소정 증가값만큼 증가시킬 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 여유 메모리 양이 상기 최대 메모리 임계값을 초과하는지 여부 및 상기 성능 정보에 기초하여 상기 전자 장치의 성능이 소정의 성능 기준 이상인지 여부를 판단하고, 상기 여유 메모리 양이 상기 최대 메모리 임계값을 초과하고, 상기 전자 장치의 성능이 소정의 성능 기준 이상인 경우, 상기 메모리 임계값을 소정 감소값만큼 감소시킬 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 최대 메모리 임계값 한도 내에서 상기 메모리 임계값을 상기 소정 증가값만큼 증가시킬 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 프로세서는 상기 최소 메모리 임계값 한도 내에서 상기 메모리 임계값을 상기 소정 감소값만큼 감소시킬 수 있다.
또한, 본 개시의 일 실시예에 따르면 메모리 관리 방법은, 전자 장치의 성능 정보 및 여유 메모리 양을 획득하는 동작; 상기 성능 정보 및 상기 여유 메모리 양에 기초하여, 메모리 임계값을 결정하는 동작; 상기 결정된 메모리 임계값으로 상기 메모리 임계값을 갱신하는 동작; 및 소정 시점에 상기 여유 메모리 양이 상기 메모리 임계값 미만인 경우, 소정 프로세스를 종료하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 성능 정보는 메모리 재할당 프로세스의 CPU 사용 오버헤드, 메모리 재할당으로 인한 메모리 스왑 아웃/인 오버헤드, 메모리 재할당으로 인한 파일 드랍/로딩 오버헤드 및 애플리케이션 응답 속도 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 상기 성능 정보 및 상기 여유 메모리 양을 획득하는 동작, 상기 메모리 임계값을 결정하는 동작 및 상기 메모리 임계값을 갱신하는 동작은 소정 주기로 수행될 수 있다.
일 실시예에 따르면, 외부 입력에 기초하여 최대 메모리 임계값 및 최소 메모리 임계값 중 적어도 하나를 설정하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 메모리 임계값을 결정하는 동작은 상기 여유 메모리 양이 상기 메모리 임계값을 초과하는지 여부 및 상기 성능 정보에 기초하여 상기 전자 장치의 성능이 소정의 성능 기준 미만인지 여부를 판단하는 동작; 및 상기 여유 메모리 양이 상기 메모리 임계값을 초과하더라도 상기 전자 장치의 성능이 소정의 성능 기준 미만인 경우, 상기 메모리 임계값을 소정 증가값만큼 증가시키는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 메모리 임계값을 결정하는 동작은 상기 여유 메모리 양이 상기 최대 메모리 임계값을 초과하는지 여부 및 상기 성능 정보에 기초하여 상기 전자 장치의 성능이 소정의 성능 기준 이상인지 여부를 판단하는 동작; 및 상기 여유 메모리 양이 상기 최대 메모리 임계값을 초과하고, 상기 전자 장치의 성능이 소정의 성능 기준 이상인 경우, 상기 메모리 임계값을 소정 감소값만큼 감소시키는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 메모리 임계값을 소정 증가값만큼 증가시키는 동작은 상기 최대 메모리 임계값 한도 내에서 상기 메모리 임계값을 상기 소정 증가값만큼 증가시킬 수 있다.
일 실시예에 따르면, 상기 메모리 임계값을 소정 감소값만큼 감소시키는 동작은 상기 최소 메모리 임계값 한도 내에서 상기 메모리 임계값을 상기 소정 감소값만큼 감소시킬 수 있다.
또한, 본 개시의 일 실시예에 따르면 상기 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체를 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 여유 메모리 양 이외에 전자 장치의 성능 정보를 추가로 고려하여 메모리 임계값을 동적으로 설정함으로써 메모리 회수 동작을 수행할 수 있다. 따라서, 여유 메모리 양이 메모리 임계값보다 큰 상황에서 메모리 재할당을 통한 메모리 회수 동작이 수행되어 발생될 수 있는 장치의 성능 저하 문제를 개선시킬 수 있다. 즉, 메모리 재할당을 통한 메모리 회수 동작만으로 메모리 회복은 되지 않고 장치의 성능만 저하되는 상황에서, 메모리 임계값 동적 설정을 통해 프로세스 종료를 통한 메모리 회수 동작 수행을 앞당김으로써 메모리 회복 및 장치 성능을 개선시킬 수 있다.
또한, 메모리 임계값 동적 설정에 장치의 성능 정보를 고려함으로써 사용자의 장치 사용 패턴을 메모리 관리에 최적화하여 반영할 수 있으므로 사용자의 장치 사용성 및 만족도를 제고시킬 수 있다. 예를 들어, 사용자가 메모리 등 장치 자원(resource) 요구량이 높은 무거운 애플리케이션을 많이 사용하는 경우 메모리 임계값이 동적으로 증가됨으로써 백그라운드 애플리케이션이 더 빨리 종료될 수 있고, 이를 통해 실행 중인 포그라운드 애플리케이션이 원활하게 장치 자원을 사용하게 할 수 있다. 반면, 사용자가 가벼운 애플리케이션을 많이 사용하는 경우 메모리 임계값이 동적으로 감소됨으로써, 상대적으로 이전에 실행했던 애플리케이션들이 종료되지 않고 백그라운드에서 더 많이 존재할 수 있고, 필요 시 포그라운드 애플리케이션으로 빠르게 전환될 수 있으므로, 사용자의 장치 사용성 및 만족도를 제고시킬 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치의 개략적인 블록도이다.
도 2는 본 개시의 일 실시예에 따른 프로세스 종료를 통한 메모리 회수 방법의 개략적인 흐름도를 도시한다.
도 3은 본 개시의 일 실시예에 따른 장치의 성능 정보 및 여유 메모리 양에 기초하여 메모리 임계값을 동적으로 갱신하는 흐름도를 도시한다.
도 4는 본 개시의 일 실시예에 따른 장치의 성능 정보 중, 메모리 재할당으로 인한 메모리 스왑 아웃/인 오버헤드를 설명하기 위한 개념도이다.
이하에서는 도면을 참조하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면의 설명과 관련하여, 동일하거나 유사한 구성요소에 대해서는 동일하거나 유사한 참조 부호가 사용될 수 있다. 또한, 도면 및 관련된 설명에서는, 잘 알려진 기능 및 구성에 대한 설명이 명확성과 간결성을 위해 생략될 수 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치의 개략적인 블록도이다.
일 실시예에 따르면, 전자 장치(100)는 이에 제한되지 않으나, 하나 이상의 프로세서(110) 및 하나 이상의 메모리(120)를 포함할 수 있다. 전자 장치(100)는 추가 컴포넌트(130)를 포함할 수 있다. 전자 장치(100)는 도시된 구성요소 외에 추가적인 구성요소를 포함하거나, 도시된 구성요소 중 적어도 하나를 생략할 수 있다.
일 실시예에 따르면, 하나 이상의 프로세서(110)는, 전자 장치(100)의 동작을 지원하기 위한 저장 및 프로세싱 회로부를 포함할 수 있다. 저장 및 프로세싱 회로부는 비휘발성 메모리(예를 들어, 플래시 메모리, 또는 SSD(Solid State Drive)를 형성하도록 구성된 다른 전기적 프로그래밍 가능한 ROM), 휘발성 메모리(예를 들어, 정적 또는 동적 RAM) 등과 같은 스토리지를 포함할 수 있다. 프로세서(110) 내의 프로세싱 회로부는 전자 장치(100)의 동작을 제어하는 데 사용될 수 있다. 프로세싱 회로부는 중앙처리장치(CPU), 그래픽처리장치(GPU), MCU(Micro Controller Unit), 센서 허브, 보조 프로세서(Supplementary Processor), 통신 프로세서(Communication Processor), 애플리케이션 프로세서(Application Processor), ASIC(Application Specific Integrated Circuit), 및 FPGA(Field Programmable Gate Arrays) 중 적어도 하나에 기초할 수 있고, 적어도 하나의 코어를 포함할 수 있다. 이하에서 설명되는 메모리(120) 및 추가 컴포넌트(130)는 프로세서의 일 실시예로서 프로세서의 적어도 일부로서 특유의 기능 또는 동작을 수행하는 기능적 요소로 제공되거나, 독립적인 기능 또는 동작을 수행하는 주체로서 별개의 하드웨어 구성요소로 제공될 수도 있다.
일 실시예에 따르면, 하나 이상의 메모리(120)는 전자 장치(100)가 사용하는 저장 매체로서, 적어도 하나의 프로그램에 대응하는 적어도 하나의 명령어 또는 데이터를 저장할 수 있다. 상기 데이터는 본 개시에서 예시적으로 설명된 방법들 및/또는 절차들 중 임의의 것에 대응하거나 이들을 포함하는 동작들을 포함하는, 전자 장치(100)의 프로토콜, 구성, 제어 및 다른 기능들에서 사용되는 변수들 및/또는 설정 정보들을 포함할 수 있다. 상기 프로그램은 운영체제(OS: Operating System) 프로그램 및 다양한 응용 프로그램을 포함할 수 있다. 메모리(120)는 비휘발성 메모리, 휘발성 메모리, 또는 이들의 조합을 포함할 수 있다. 메모리(120)는 하나 이상의 포맷들의 착탈식 메모리 카드들(예를 들어, SD 카드, 메모리 스틱, 콤팩트 플래시 등)이 삽입 및 제거될 수 있게 하는 메모리 슬롯과 인터페이싱할 수 있다. 메모리(120)는 프로세서(110)의 요청에 따라 저장된 상기 데이터를 제공할 수 있다.
일 실시예에 따르면, 전자 장치(100)는 추가 컴포넌트(130)를 포함할 수 있다. 일 실시예에 따르면, 추가 컴포넌트(130)는 전자 장치(100)의 종류에 따라 다양하게 구성될 수 있다. 예를 들어, 추가 컴포넌트는 트랜시버, 디스플레이, 파워 유닛(예를 들어, 배터리), 입출력부(I/O Unit), 구동부 및 컴퓨팅부 중 적어도 하나를 포함할 수 있으나 이에 제한되는 것은 아니다.
일 실시예에 따르면, 전자 장치(100)는 버스를 포함할 수 있다. 일 실시예에 따르면, 하나 이상의 시스템 컴포넌트(예를 들어, 프로세서(110), 메모리(120) 등)는 하나 이상의 버스에 의해 상호연결될 수 있다. 일 실시예에서 하나 이상의 버스는 시스템 컴포넌트들의 다양한 조합을 유무선으로 상호 연결하거나 제어하는 회로부를 포함할 수 있다. 하나 이상의 시스템 컴포넌트는 하나 이상의 버스에 의해 상호연결될 수 있으나, 이에 제한되지 않고 다양한 방식으로 상호 연결 또는 제어할 수 있음은 당업자에게 이해될 것이다.
일 실시예에 따르면, 전자 장치(100)는 TV, XR(eXtended Reality) 장치, 홀로그램 장치, AI 서버, 가전, 모바일 장치, 디지털 방송용 단말 장치, IoT 장치, 데스크 탑 컴퓨터, 노트북, 로봇, 차량, 공공 안전 장치, MTC(Machine Type Communication) 장치, 의료 장치, 핀테크 장치, 보안 장치, 기후/환경 장치, 기지국, 네트워크 노드 등의 형태로 구현될 수 있으나 이에 제한되는 것은 아니다.
일 실시예에 따르면, 프로세서(110)는 소정 시점에 여유 메모리 양이 소정의 메모리 임계값 미만인지 여부를 판단하고, 상기 여유 메모리 양이 메모리 임계값 미만인 경우 프로세스 종료를 통한 메모리 회수 동작을 수행할 수 있다. 프로세스 종료를 통한 메모리 회수 동작은 시스템 내 여유 메모리가 부족한 경우(즉, 메모리 임계값 미만인 경우) 실행중인 프로세스들 중 소정의 우선순위에 의해 중요도가 낮다고 판단되는 프로세스를 종료시킴으로써 해당 프로세스 실행으로 인해 사용중인 메모리를 회수할 수 있다. 상기 소정 시점은 애플리케이션 등에 의해 메모리 할당이 필요한 시점 및 소정의 주기적인 시점 중 적어도 하나를 포함할 수 있으나, 이에 제한되지 않는다.
일 실시예에 따르면, 상기 메모리 임계값은 장치가 부팅될 때 외부 입력(예. 사용자 입력)에 기초하여 설정된 값을 초기값으로 하여 설정될 수 있다. 프로세서(110)는 여유 메모리 양 및 전자 장치(100)의 성능 정보를 추가로 고려하여 상기 메모리 임계값을 동적으로 갱신할 수 있다. 이를 위해, 프로세서(110)는 전자 장치(100)의 성능 정보 및 여유 메모리 양을 획득할 수 있다.
상기 성능 정보는 메모리 재할당을 통한 메모리 회수 동작으로 인해 발생하는 성능 오버헤드 및 애플리케이션 응답 속도 중 적어도 하나를 포함할 수 있으나, 이에 제한되지 않는다. 메모리 재할당을 통한 메모리 회수 동작으로 인해 발생하는 성능 오버헤드는 메모리 재할당 프로세스의 CPU 사용 오버헤드, 메모리 재할당으로 인한 메모리 스왑 아웃/인 오버헤드 및 메모리 재할당으로 인한 파일 드랍/로딩 오버헤드 중 적어도 하나를 포함할 수 있다. 상기 성능 정보는 전자 장치(100)의 성능을 객관적으로 판단할 수 있는 다양한 정보를 포함할 수 있다.
예를 들어, 메모리 재할당 프로세스의 CPU 사용 오버헤드는 메모리 재할당을 수행하는 시스템 프로그램(예. Kswapd)에 의한 CPU 사용양 및 CPU 사용율 중 적어도 하나의 정보를 포함할 수 있다. 메모리 재할당으로 인한 메모리 스왑 아웃/인 오버헤드는 사용중인 메모리를 스왑 매체에 이동하고(Swap out), 향후 다시 메모리로 로딩(Swap in)하는데 걸리는 시간 및 스왑 아웃/인 횟수 중 적어도 하나의 정보를 포함할 수 있다. 메모리 재할당으로 인한 파일 드랍/로딩 오버헤드는 사용중인 메모리에 대한 OS의 연결을 해제(drop)하고, 향후 다시 메모리로 로딩하는데 걸리는 시간 및 드랍/로딩 횟수 중 적어도 하나의 정보를 포함할 수 있다. 애플리케이션 응답 속도는 사용자로부터의 UI 반응 속도 및 사용자로부터의 UI를 핸들링하는 처리 속도 중 적어도 하나의 정보를 포함할 수 있다. 예를 들어, 애플리케이션 응답 속도는 사용자가 리모컨을 이용하여 애플리케이션의 UI를 동작시킬 때 디스플레이되는 커서 등의 반응 속도를 포함하거나, 리모컨 키를 핸들링하는 처리 속도를 포함할 수 있으나, 이에 제한되지 않는다.
일 실시예에 따르면, 프로세서(110)는 상기 성능 정보 및 상기 여유 메모리 양에 기초하여, 메모리 임계값을 결정하고, 상기 결정된 메모리 임계값으로 상기 메모리 임계값을 갱신할 수 있다. 메모리 임계값 동적 설정에 대한 상세한 설명은 이하 도 3을 참조하여 후술한다.
일 실시예에 따르면, 프로세서(110)는 이에 제한되지 않으나 소정 주기로 상기 성능 정보 및 여유 메모리 양을 획득하고, 메모리 임계값을 결정하고, 상기 메모리 임계값을 갱신할 수 있다.
도 2는 본 개시의 일 실시예에 따른 프로세스 종료를 통한 메모리 회수 방법의 개략적인 흐름도를 도시한다.
도 2를 참조하면, 일 실시예에 따른 동작 S210에서, 전자 장치(100)는 소정 시점에 여유 메모리 양이 메모리 임계값 미만인지 여부를 판단할 수 있다. 판단 결과 상기 여유 메모리 양이 상기 메모리 임계값을 초과하는 경우 다른 소정 시점에 동작 S210이 다시 수행되고, 상기 여유 메모리 양이 상기 메모리 임계값 미만인 경우 동작 S220으로 이동할 수 있다. 상기 소정 시점은 애플리케이션 등에 의해 메모리 할당이 필요한 시점 및 소정의 주기적인 시점을 적어도 하나 포함할 수 있다. 메모리 임계값은 외부 입력(예. 사용자 입력)에 기초하여 설정된 값을 초기값으로 하여 사전에 설정될 수 있다. 또한, 메모리 임계값은 여유 메모리 양 및 전자 장치(100)의 성능 정보에 기초하여, 동적으로 갱신될 수 있다. 메모리 임계값의 동적 갱신은 이하 도 3을 참조하여 후술한다.
동작 S220에서, 전자 장치(100)는 소정의 우선순위에 기초하여 사용중인 메모리를 회수할 프로세스를 선택할 수 있다.
소정의 우선순위는 외부 입력에 기초하여 설정될 수 있으나, 다양한 방식으로 설정할 수 있음은 당업자에게 이해될 것이다. 예를 들면, 상기 소정의 우선 순위는 Background 애플리케이션, Favorite 애플리케이션, 재시작(restart) 없는 서비스 애플리케이션, Foreground 애플리케이션, 재시작 없는 데몬 프로세스, 재시작 있는 서비스 애플리케이션, 재시작 있는 데몬 프로세스, VIP 프로세스 순서로 설정될 수 있다. 상기 Background 애플리케이션은 이전에 실행되었으나 현재 디스플레이되지 않고 비활성화된 애플리케이션을 의미할 수 있다. 상기 Favorite 애플리케이션은 백그라운드 애플리케이션 중에 별도로 더 높은 우선 순위를 부여받은 애플리케이션을 의미할 수 있다. 상기 재시작 없는 서비스 애플리케이션은 사용자 인터페이스(UI: User Interface)가 없는 서비스 애플리케이션 중 재시작 옵션이 없는 애플리케이션을 의미할 수 있다. 상기 Foreground 애플리케이션은 현재 디스플레이에 출력되어 실행 중인 애플리케이션을 의미할 수 있다. 상기 재시작 없는 데몬 프로세스는 서비스 요청에 응답하기 위해 백그라운드에서 동작 중인 데몬 프로세스 중 재시작 옵션이 없는 데몬 프로세스를 의미할 수 있다. 상기 VIP 프로세스는 외부 입력에 기초하여 VIP 프로세스로 사전에 설정될 수 있으나, 이에 제한되지 않는다.
동작 S230에서, 전자 장치(100)는 동작 S220에서 선택된 프로세스를 종료할 수 있고, 이를 통해 선택된 프로세스에 의해 사용중인 메모리를 회수할 수 있다.
도 3은 본 개시의 일 실시예에 따른 장치의 성능 정보 및 여유 메모리 양에 기초하여 메모리 임계값을 동적으로 갱신하는 흐름도를 도시한다.
일 실시예에 따르면, 전자 장치(100)는 동작 S310 내지 동작 S360의 동작들을 소정 주기에 의해 수행할 수 있으나, 이에 제한되지 않는다.
도 3을 참조하면, 일 실시예에 따른 동작 S310에서, 전자 장치(100)는 성능 정보 및 여유 메모리 양을 획득할 수 있다. 상기 성능 정보는 메모리 재할당 프로세스의 CPU 사용 오버헤드, 메모리 재할당으로 인한 메모리 스왑 아웃/인 오버헤드, 메모리 재할당으로 인한 파일 드랍/로딩 오버헤드 및 애플리케이션 응답 속도 중 적어도 하나를 포함할 수 있으나, 이에 제한되지 않는다. 상기 성능 정보는 전자 장치(100)의 성능을 객관적으로 판단할 수 있는 다양한 정보를 포함할 수 있다.
동작 S320에서, 전자 장치(100)는 상기 여유 메모리 양이 이전에 설정된 메모리 임계값을 초과하는지 여부 및 상기 성능 정보에 기초하여 전자 장치(100)의 성능이 소정의 성능 기준 미만인지 여부(즉, 소정의 성능 기준을 만족하지 못하는지 여부)를 판단할 수 있다. 상기 여유 메모리 양이 이전에 설정된 메모리 임계값을 초과하더라도 상기 전자 장치의 성능이 소정의 성능 기준 미만인 경우, 동작 S330으로 이동할 수 있다.
상기 소정의 성능 기준은 상기 성능 정보의 적어도 하나의 조합으로 식별될 수 있다. 예를 들어, 상기 소정의 성능 기준 미만인지 여부를 판단함에 있어서, 상기 소정의 성능 기준은 메모리 재할당 프로세스의 CPU 사용 오버헤드가 이전 판단 주기 대비 제1 증가율(예. 10%) 이상, 메모리 재할당으로 인한 메모리 스왑 아웃/인 오버헤드가 이전 판단 주기 대비 제2 증가율(예. 20%) 이상, 메모리 재할당으로 인한 파일 드랍/로딩 오버헤드가 이전 판단 주기 대비 제3 증가율(예. 20%) 이상 및 애플리케이션 응답 속도가 소정 시간(예. 2초) 이상 중 적어도 하나를 포함할 수 있다.
동작 S330에서, 전자 장치(100)는 상기 메모리 임계값을 소정 증가값만큼 증가시킬 수 있다. 이 경우, 전자 장치(100)는 최대 메모리 임계값 한도 내에서 상기 메모리 임계값을 상기 소정 증가값만큼 증가시킬 수 있다. 상기 최대 메모리 임계값은 외부 입력에 기초하여 사전에 설정될 수 있으나, 이에 제한되지 않는다. 증가된 메모리 임계값으로 인해, 전자 장치(100)는 도 2에서 상술한 프로세스 종료를 통한 메모리 회수 동작 수행을 앞당겨 메모리를 회수할 수 있으며, 메모리 재할당을 통한 메모리 회수 동작이 수행되어 발생될 수 있는 장치의 성능 저하를 사전에 방지할 수 있다. 한편, 상기 메모리 임계값을 소정 증가값만큼 증가시키는 경우, 전자 장치(100)는 상기 최대 메모리 임계값 한도 내에서 증가시킴으로써, 프로세스 종료를 통한 메모리 회수 동작이 너무 빈번하게 수행되지 않도록 제어할 수 있다.
동작 S340에서, 전자 장치(100)는 상기 여유 메모리 양이 상기 최대 메모리 임계값을 초과하는지 여부 및 상기 성능 정보에 기초하여 전자 장치(100)의 성능이 소정의 성능 기준 이상인지 여부(즉, 소정의 성능 기준을 만족하는지 여부)를 판단할 수 있다. 상기 여유 메모리 양이 상기 최대 메모리 임계값을 초과하고, 전자 장치(100)의 성능이 소정의 성능 기준 이상인 경우, 동작 S350으로 이동할 수 있다.
상기 소정의 성능 기준은 상기 성능 정보의 적어도 하나의 조합으로 식별될 수 있다. 예를 들어, 상기 소정의 성능 기준 이상인지 여부를 판단함에 있어서, 상기 소정의 성능 기준은 메모리 재할당 프로세스의 CPU 사용 오버헤드가 이전 판단 주기 대비 제1 증가율(예. 10%) 미만, 메모리 재할당으로 인한 메모리 스왑 아웃/인 오버헤드가 이전 판단 주기 대비 제2 증가율(예. 20%) 미만, 메모리 재할당으로 인한 파일 드랍/로딩 오버헤드가 이전 판단 주기 대비 제3 증가율(예. 20%) 미만 및 애플리케이션 응답 속도가 소정 시간(예. 2초) 미만 중 적어도 하나를 포함할 수 있다.
동작 S350에서, 전자 장치(100)는 상기 메모리 임계값을 소정 감소값만큼 감소시킬 수 있다. 이 경우, 전자 장치(100)는 최소 메모리 임계값 한도 내에서 상기 메모리 임계값을 상기 소정 감소값만큼 감소시킬 수 있다. 상기 최소 메모리 임계값은 외부 입력에 기초하여 사전에 설정될 수 있으나, 이에 제한되지 않는다. 여유 메모리 양이 상기 최대 메모리 임계값을 초과하고 전자 장치(100)의 성능이 소정의 성능 기준 이상인 경우, 감소된 메모리 임계값으로 인해 전자 장치(100)는 도 2에서 상술한 프로세스 종료를 통한 메모리 회수 동작 수행을 늦출 수 있다. 한편, 상기 메모리 임계값을 상기 소정 감소값만큼 감소시키는 경우, 전자 장치(100)는 상기 최소 메모리 임계값 한도 내에서 감소시킴으로써, 프로세스 종료를 통한 메모리 회수 동작이 최소한 일정 수준으로는 수행되도록 제어할 수 있다.
동작 S360에서, 전자 장치(100)는 동작 S330 또는 동작 S350에서 결정된 메모리 임계값으로 메모리 임계값을 갱신할 수 있다. 전자 장치(100)는 갱신된 메모리 임계값을 이용하여 도 2에서 상술한 동작 S210 내지 동작 S230을 수행할 수 있다.
일 실시예에 따르면, 상기 소정 증가값 및 상기 소정 감소값은 외부 입력에 기초하여 사전에 설정된 동일한 값(예. 5Mbytes)일 수 있으나, 이에 제한되지 않고 각각 다양한 값으로 설정될 수 있음은 당업자에게 이해될 것이다.
도 4는 본 개시의 일 실시예에 따른 장치의 성능 정보 중, 메모리 재할당으로 인한 메모리 스왑 아웃/인 오버헤드를 설명하기 위한 개념도이다.
도 4를 참조하면, 프로세서(110)는 소정 기준에 기초하여 사용중인 메모리를 회수할 프로세스(예. 프로세스 1)를 선택하고, 사용중인 메모리 페이지들을 스왑 매체(410)로 이동함으로써 사용중인 메모리를 회수할 수 있다(스왑 아웃: Swap Out). 이 경우, 프로세서(110)는 사용중인 메모리 페이지들을 압축한 후 스왑 아웃할 수 있다. 프로세서(110)는 스왑 매체(410)로 이동된 상기 메모리 페이지들을 향후 다시 메모리로 로딩할 수 있다(스왑 인: Swap In). 이 경우, 프로세서(110)는 상기 메모리 페이지들의 압축을 푼 후에 다시 메모리로 로딩할 수 있다. 프로세서(110)는 스왑 아웃 및 스왑 인에 걸리는 시간 및 스왑 아웃/인 횟수 중 적어도 하나의 정보를 측정할 수 있고, 상기 성능 정보로 저장할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 디스플레이 장치, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 예를 들면, 단수로 표현된 구성요소는 문맥상 명백하게 단수만을 의미하지 않는다면 복수의 구성요소를 포함하는 개념으로 이해되어야 한다. 본 문서에서 사용되는 '및/또는'이라는 용어는, 열거되는 항목들 중 하나 이상의 항목에 의한 임의의 가능한 모든 조합들을 포괄하는 것임이 이해되어야 한다. 본 개시에서 사용되는 '포함하다,' '가지다,' '구성되다' 등의 용어는 본 개시 상에 기재된 특징, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐이고, 이러한 용어의 사용에 의해 하나 또는 그 이상의 다른 특징들이나 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하려는 것은 아니다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다.
본 문서의 다양한 실시예들에서 사용된 용어 "~부" 또는 "~모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. "~부" 또는 "~모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시예에 따르면, "~부" 또는 "~모듈"은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들에서 사용된 용어 “~할 경우”는 문맥에 따라 “~할 때”, 또는 “~할 시” 또는 “결정하는 것에 응답하여” 또는 “검출하는 것에 응답하여”를 의미하는 것으로 해석될 수 있다. 유사하게, “~라고 결정되는 경우” 또는 “~이 검출되는 경우”는 문맥에 따라 “결정 시” 또는 “결정하는 것에 응답하여”, 또는 “검출 시” 또는 “검출하는 것에 응답하여”를 의미하는 것으로 해석될 수 있다.
본 문서를 통해 설명된 전자 장치(100)에 의해 실행되는 프로그램은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 프로그램은 컴퓨터로 읽을 수 있는 명령어들을 수행할 수 있는 모든 시스템에 의해 수행될 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령어(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 저장 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(Read-Only Memory), RAM(Random-Access Memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 저장 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 컴퓨터 프로그램은 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
Claims (15)
- 전자 장치에 있어서,적어도 하나의 프로그램에 대응하는 적어도 하나의 명령어를 저장하는 메모리; 및상기 메모리와 전기적으로 연결되고, 상기 적어도 하나의 명령어를 프로세스로 실행하는 적어도 하나의 프로세서를 포함하고;상기 적어도 하나의 프로세서는상기 전자 장치의 성능 정보 및 여유 메모리 양을 획득하고,상기 성능 정보 및 상기 여유 메모리 양에 기초하여, 메모리 임계값을 결정하고,상기 결정된 메모리 임계값으로 상기 메모리 임계값을 갱신하고,소정 시점에 상기 여유 메모리 양이 상기 메모리 임계값 미만인 경우, 소정 프로세스를 종료하는, 전자 장치.
- 제 1항에 있어서,상기 성능 정보는메모리 재할당 프로세스의 CPU 사용 오버헤드, 메모리 재할당으로 인한 메모리 스왑 아웃/인 오버헤드, 메모리 재할당으로 인한 파일 드랍/로딩 오버헤드 및 애플리케이션 응답 속도 중 적어도 하나를 포함하는, 전자 장치
- 제 1항에 있어서,상기 적어도 하나의 프로세서는소정 주기로 상기 성능 정보 및 여유 메모리 양을 획득하고, 메모리 임계값을 결정하고, 상기 메모리 임계값을 갱신하는, 전자 장치
- 제 1항에 있어서,상기 적어도 하나의 프로세서는외부 입력에 기초하여 최대 메모리 임계값 및 최소 메모리 임계값 중 적어도 하나를 설정하는, 전자 장치.
- 제 4항에 있어서,상기 적어도 하나의 프로세서는상기 여유 메모리 양이 상기 메모리 임계값을 초과하는지 여부 및 상기 성능 정보에 기초하여 상기 전자 장치의 성능이 소정의 성능 기준 미만인지 여부를 판단하고,상기 여유 메모리 양이 상기 메모리 임계값을 초과하더라도 상기 전자 장치의 성능이 소정의 성능 기준 미만인 경우, 상기 메모리 임계값을 소정 증가값만큼 증가시키는, 전자 장치.
- 제 4항에 있어서,상기 적어도 하나의 프로세서는상기 여유 메모리 양이 상기 최대 메모리 임계값을 초과하는지 여부 및 상기 성능 정보에 기초하여 상기 전자 장치의 성능이 소정의 성능 기준 이상인지 여부를 판단하고,상기 여유 메모리 양이 상기 최대 메모리 임계값을 초과하고, 상기 전자 장치의 성능이 소정의 성능 기준 이상인 경우, 상기 메모리 임계값을 소정 감소값만큼 감소시키는, 전자 장치.
- 제 5항에 있어서,상기 적어도 하나의 프로세서는상기 최대 메모리 임계값 한도 내에서 상기 메모리 임계값을 상기 소정 증가값만큼 증가시키는, 전자 장치.
- 제 6항에 있어서,상기 적어도 하나의 프로세서는상기 최소 메모리 임계값 한도 내에서 상기 메모리 임계값을 상기 소정 감소값만큼 감소시키는, 전자 장치.
- 전자 장치의 성능 정보 및 여유 메모리 양을 획득하는 동작;상기 성능 정보 및 상기 여유 메모리 양에 기초하여, 메모리 임계값을 결정하는 동작;상기 결정된 메모리 임계값으로 상기 메모리 임계값을 갱신하는 동작; 및소정 시점에 상기 여유 메모리 양이 상기 메모리 임계값 미만인 경우, 소정 프로세스를 종료하는 동작을 포함하는, 메모리 관리 방법.
- 제 9항에 있어서,상기 성능 정보 및 여유 메모리 양을 획득하는 동작, 상기 메모리 임계값을 결정하는 동작 및 상기 메모리 임계값을 갱신하는 동작은소정 주기로 수행되는, 방법.
- 제 9항에 있어서,외부 입력에 기초하여 최대 메모리 임계값 및 최소 메모리 임계값 중 적어도 하나를 설정하는 동작을 포함하는, 방법.
- 제 11항에 있어서,상기 메모리 임계값을 결정하는 동작은상기 여유 메모리 양이 상기 메모리 임계값을 초과하는지 여부 및 상기 성능 정보에 기초하여 상기 전자 장치의 성능이 소정의 성능 기준 미만인지 여부를 판단하는 동작; 및상기 여유 메모리 양이 상기 메모리 임계값을 초과하더라도 상기 전자 장치의 성능이 소정의 성능 기준 미만인 경우, 상기 메모리 임계값을 소정 증가값만큼 증가시키는 동작을 포함하는, 방법.
- 제 11항에 있어서,상기 메모리 임계값을 결정하는 동작은상기 여유 메모리 양이 상기 최대 메모리 임계값을 초과하는지 여부 및 상기 성능 정보에 기초하여 상기 전자 장치의 성능이 소정의 성능 기준 이상인지 여부를 판단하는 동작; 및상기 여유 메모리 양이 상기 최대 메모리 임계값을 초과하고, 상기 전자 장치의 성능이 소정의 성능 기준 이상인 경우, 상기 메모리 임계값을 소정 감소값만큼 감소시키는 동작을 포함하는, 방법.
- 제 12항에 있어서,상기 메모리 임계값을 소정 증가값만큼 증가시키는 동작은상기 최대 메모리 임계값 한도 내에서 상기 메모리 임계값을 상기 소정 증가값만큼 증가시키는, 방법.
- 제 13항에 있어서,상기 메모리 임계값을 소정 감소값만큼 감소시키는 동작은상기 최소 메모리 임계값 한도 내에서 상기 메모리 임계값을 상기 소정 감소값만큼 감소시키는, 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220092286A KR20240014742A (ko) | 2022-07-26 | 2022-07-26 | 성능 정보를 고려하는 메모리 관리 방법 및 장치 |
KR10-2022-0092286 | 2022-07-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024025143A1 true WO2024025143A1 (ko) | 2024-02-01 |
Family
ID=89706676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/008050 WO2024025143A1 (ko) | 2022-07-26 | 2023-06-12 | 성능 정보를 고려하는 메모리 관리 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240014742A (ko) |
WO (1) | WO2024025143A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101591601B1 (ko) * | 2014-08-20 | 2016-02-04 | 한양대학교 산학협력단 | 메모리 최적화 방법 및 그 방법을 수행하는 사용자 단말 |
KR20190106623A (ko) * | 2018-03-09 | 2019-09-18 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
KR20210051873A (ko) * | 2019-10-31 | 2021-05-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 메모리 시스템 |
KR20220033912A (ko) * | 2020-09-10 | 2022-03-17 | 삼성전자주식회사 | 메모리를 관리하기 위한 전자 장치, 전자 장치의 동작 방법, 및 비 일시적 저장 매체 |
KR20220102056A (ko) * | 2021-01-12 | 2022-07-19 | 삼성전자주식회사 | 메모리를 관리하는 전자 장치와 이의 동작 방법 |
-
2022
- 2022-07-26 KR KR1020220092286A patent/KR20240014742A/ko unknown
-
2023
- 2023-06-12 WO PCT/KR2023/008050 patent/WO2024025143A1/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101591601B1 (ko) * | 2014-08-20 | 2016-02-04 | 한양대학교 산학협력단 | 메모리 최적화 방법 및 그 방법을 수행하는 사용자 단말 |
KR20190106623A (ko) * | 2018-03-09 | 2019-09-18 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
KR20210051873A (ko) * | 2019-10-31 | 2021-05-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 메모리 시스템 |
KR20220033912A (ko) * | 2020-09-10 | 2022-03-17 | 삼성전자주식회사 | 메모리를 관리하기 위한 전자 장치, 전자 장치의 동작 방법, 및 비 일시적 저장 매체 |
KR20220102056A (ko) * | 2021-01-12 | 2022-07-19 | 삼성전자주식회사 | 메모리를 관리하는 전자 장치와 이의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20240014742A (ko) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832100B (zh) | 一种apk插件的加载方法及其终端 | |
CN102027453B (zh) | 用于在虚拟环境中优化中断处理的系统和方法 | |
CN110895492B (zh) | 设备控制方法、装置、存储介质及电子设备 | |
US11360884B2 (en) | Reserved memory in memory management system | |
US20140149984A1 (en) | Information processing apparatus, information processing method, and computer readable medium | |
US11675621B2 (en) | Method for controlling execution of application, electronic device and storage medium for the same | |
CN106020984B (zh) | 电子设备中进程的创建方法及装置 | |
CN111459523A (zh) | 一种画质芯片软件升级方法、装置、电子设备及存储介质 | |
CN114168490A (zh) | 确定内存回收阈值的方法及相关设备 | |
CN110738156B (zh) | 一种基于消息中间件的人脸识别系统及方法 | |
CN112650541B (zh) | 一种应用程序启动加速方法、系统、设备及存储介质 | |
CN111475299A (zh) | 内存分配方法、装置、存储介质及电子设备 | |
WO2024025143A1 (ko) | 성능 정보를 고려하는 메모리 관리 방법 및 장치 | |
CN110365839B (zh) | 关机方法、装置、介质及电子设备 | |
CN111078405A (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN114816766B (zh) | 一种计算资源分配方法及其相关组件 | |
CN109144708B (zh) | 电子计算装置及调整一内存回收函数的触发机制的方法 | |
WO2014109487A1 (ko) | 응용프로그램 관리장치 및 관리방법 | |
CN115390992A (zh) | 一种虚拟机创建方法、装置、设备和存储介质 | |
WO2018226765A1 (en) | System and method for changing a slave identification of integrated circuits over a shared bus | |
JPWO2014087654A1 (ja) | データ送信装置、データ送信方法、及び記録媒体 | |
US20200174822A1 (en) | Startup method and apparatus for virtual machine, and smart terminal | |
KR20220051546A (ko) | 전자장치 및 그 제어방법 | |
CN114489826A (zh) | 芯片运行方法、装置、存储介质及电子设备 | |
CN116028433B (zh) | 数据迁移方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23846803 Country of ref document: EP Kind code of ref document: A1 |