WO2023101155A1 - 메모리 회수 방법 및 장치 - Google Patents
메모리 회수 방법 및 장치 Download PDFInfo
- Publication number
- WO2023101155A1 WO2023101155A1 PCT/KR2022/013109 KR2022013109W WO2023101155A1 WO 2023101155 A1 WO2023101155 A1 WO 2023101155A1 KR 2022013109 W KR2022013109 W KR 2022013109W WO 2023101155 A1 WO2023101155 A1 WO 2023101155A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- amount
- execution
- foreground
- memory usage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0653—Monitoring storage devices or systems
Definitions
- Various embodiments of the present disclosure provide a memory recovery method and apparatus for selectively recovering memory by estimating the amount of free memory at the time when a predetermined time has elapsed based on memory usage information in response to the foreground execution of an application process. there is.
- an electronic device includes a display; a memory for storing at least one command corresponding to at least one program; and a processor electrically connected to the memory and the display and executing the at least one command as a process.
- the processor predicts the amount of free memory when a predetermined time elapses based on the memory usage information stored in the memory in response to the foreground execution of the first process, and the predicted amount of free memory exceeds a predetermined threshold. If it exceeds, the memory reclamation operation may be suspended for the predetermined time, and if the estimated free memory amount is less than a predetermined threshold, the memory reclamation operation may be performed without the delay.
- the memory recovery method may include an operation of estimating an amount of free memory when a predetermined time elapses based on memory usage information corresponding to the foreground execution of the first process. there is.
- the method may include an operation of suspending execution of a memory recovery operation for the predetermined time period when the estimated free memory amount exceeds a predetermined threshold value.
- the method may include an operation of performing a memory recovery operation without the suspension when the predicted free memory amount is less than a predetermined threshold.
- an electronic device predicts an amount of free memory at a point in time when a predetermined time has elapsed based on memory usage information stored in a memory in response to a foreground execution of a process, and selectively recovers the memory. , it is possible to prevent unnecessary process termination and re-execution, and through this, the user's application usability can be improved in a multitasking environment.
- the electronic device can prevent an unnecessary memory reallocation operation by estimating the amount of free memory, thereby preventing an increase in CPU and swap medium usage in the recovery memory selection and swap-out operation. Thereby, the user's usability of the electronic device can be improved.
- FIG. 1 is a schematic block diagram of an electronic device performing a memory recovery operation according to an embodiment of the present disclosure.
- FIG. 2 illustratively illustrates a case of suspending the performance of a memory recovery operation according to an embodiment of the present disclosure.
- 3 illustratively illustrates a user interface for selecting an application to run the application in the foreground according to an embodiment of the present disclosure.
- 5 illustratively illustrates criteria for selecting a process to reclaim memory according to an embodiment of the present disclosure.
- FIG. 6 illustratively illustrates a memory reclamation operation according to an embodiment of the present disclosure.
- FIG. 1 is a schematic block diagram of an electronic device performing a memory recovery operation according to an embodiment of the present disclosure.
- an electronic device 100 may include a processor 110 , a memory 120 and a display 130 .
- the electronic device 100 may include additional components other than the illustrated components or may omit at least one of the illustrated components.
- the electronic device 100 may include a terminal capable of performing computing and communication functions.
- the electronic device 100 includes a display device including a TV, a desktop computer, a smart phone, a laptop computer, a tablet PC, a mobile phone, a personal digital assistant (PDA), a laptop computer, a media player, a micro server, a global positioning system (GPS) device, It may be an e-book reader, a digital broadcasting terminal, a navigation device, a kiosk, an MP3 player, a digital camera, a home appliance, and other mobile or non-mobile computing devices, but is not limited thereto.
- the electronic device 100 may be a wearable terminal such as a watch, glasses, hair band, and ring capable of performing computing and communication functions.
- the electronic device 100 may be various types of terminals without being limited to the above.
- the memory 120 is a storage medium used by the electronic device 100 and may store data such as at least one command 121 corresponding to at least one program or setting information.
- the program may include an Operating System (OS) program and various application programs.
- the memory 120 may include volatile memory, non-volatile memory, or a combination of volatile and non-volatile memories.
- the memory 120 may provide stored data according to a request of the processor 110 .
- memory 120 may store memory usage information 122 .
- the memory usage information 122 may include a memory usage amount corresponding to each execution state of a process executing the program for each program.
- the execution state of the process may include a foreground execution state in which the process is being executed while outputting the process to the display 130 and a background execution state in which the process is being executed without outputting the process to the display 130 .
- the process may interact with the user through a user interface (not shown).
- the processor 110 may learn the memory usage amount corresponding to each execution state of the process and store memory usage information 122 including the learned memory usage amount in the memory 120. there is.
- the processor 110 may learn the amount of memory usage until the variability of the amount of memory usage becomes stable in each execution state of the process.
- the memory usage information 122 may include, for each program, a memory usage amount corresponding to an execution state of a process executing the program and an execution environment.
- the execution state of the process may include a foreground execution state being executed while being output to the display 130 and a background execution state being executed without being output to the display 130 .
- the process may interact with the user through a user interface (not shown).
- the execution environment may include at least one of an amount of free memory at the time of execution and the number of background processes at the time of execution.
- the processor 110 When the processor 110 executes a program as a process, the processor 110 learns the execution state of the process and the memory usage amount corresponding to the execution environment, and stores the memory usage information 122 including the learned memory usage amount in the memory 120. can be saved
- the processor 110 may learn the amount of memory usage until the variability of the amount of memory usage is stabilized in each of the execution state and the execution environment of the process. Accordingly, according to the present embodiment, the processor 110 may learn and store in the memory 120 the amount of memory usage, which may vary according to an execution environment (Context) at the time of execution as well as an execution state of the processor.
- Context execution environment
- the processor 110 determines when a predetermined time has elapsed (eg, a predetermined time from the current time) based on the memory usage information 122 stored in the memory 120 in response to the foreground execution of the first process. It is possible to estimate the amount of spare memory at the time when this has elapsed or when a predetermined time has elapsed from the foreground execution time).
- the processor 110 may set a time indicating until the variability of the amount of memory usage is stabilized as the predetermined time, or may receive the predetermined time based on an external input, but may obtain the predetermined time in various ways. is obvious to those skilled in the art.
- the processor 110 may estimate the amount of free memory by additionally considering an execution environment at the time of foreground execution corresponding to the foreground execution of the first process.
- the execution environment may include at least one of an amount of free memory at the time of execution and the number of background processes at the time of execution.
- the processor 110 executes the process based on the memory usage information 122 when the first process is switched from background execution to foreground execution or the first process is newly executed in the foreground. It is possible to estimate the required amount of memory required due to a transition or new execution.
- the processor 110 may estimate the required amount of memory by additionally considering an execution environment at the time of foreground execution. In this case, the processor 110 may predict the required amount of memory based on the memory usage information 122 including the memory usage amount learned in correspondence with the execution state and execution environment of the process.
- the processor 110 may switch the second process from foreground execution to background execution in response to the foreground execution of the first process.
- the processor 110 may predict an amount of secured memory representing memory that can be secured by the background execution of the second process based on the memory usage information 122 .
- the processor 110 may estimate the secured memory amount by additionally considering an execution environment at the time of switching to background execution. In this case, the processor 110 may predict the secured memory amount based on the memory usage information 122 including the learned memory usage amount corresponding to the execution state and execution environment of the process.
- the processor 110 may estimate the free memory amount by increasing or subtracting the secured memory amount and the necessary memory amount from the current free memory amount.
- the memory recovery operation may include operations of selecting a process to recover the memory being used based on a predetermined priority, and terminating the selected process.
- the processor 110 predicts the amount of second free memory when moving the memory in use to the swap medium without terminating the selected process, and if the estimated second free memory amount is less than a predetermined threshold, the selected process can be terminated.
- the swap medium may include various types of storage media such as hard disks and solid state drives (SSDs), and it is apparent to those skilled in the art that the swap medium is not limited to a specific type of storage medium.
- the swap medium may use a portion of the memory 120 as a swap medium.
- the processor 110 may determine whether the current amount of free memory is less than a predetermined threshold at a predetermined period, and perform a memory recovery operation when the current amount of free memory is less than a predetermined threshold.
- the memory recovery operation may be performed through memory reallocation (Reclaim) or process termination (Kill).
- Memory recovery operation through process termination terminates a process that is judged to be of low importance by a predetermined priority among running processes when free memory in the system is insufficient (ie, below a predetermined threshold), Memory that is being used can be reclaimed.
- the memory recovery operation through memory reallocation can recover the memory by selecting a memory to be recovered and moving (Swap Out) the contents of the selected memory to a swap medium (or device).
- FIG. 2 illustratively illustrates a case of suspending a memory recovery operation according to an embodiment of the present disclosure.
- the processor 110 may switch the execution process of application B from background execution to foreground execution based on an external input ( 210 ).
- the processor 110 may switch the application A execution process from foreground execution to background execution ( 220 ).
- the processor 110 may estimate a required amount of memory representing memory required by foreground execution of the application B execution process based on the memory usage information 122 .
- the processor 110 may estimate an amount of secured memory representing memory that can be secured by switching the execution process of application A to background execution based on the memory usage information 122 .
- the processor 110 may estimate the amount of free memory when a predetermined time elapses by increasing or subtracting the secured memory amount and the required memory amount from the current free memory amount.
- the processor 110 may set a time indicating until the variability of the amount of memory usage is stabilized as the predetermined time, or may receive the predetermined time based on an external input, but may obtain the predetermined time in various ways. is obvious to those skilled in the art.
- the processor 110 may suspend the execution of the memory recovery operation for the predetermined time period.
- the predetermined threshold is the amount of reference memory that must be maintained in order for the system to operate normally without falling into an unrecoverable state. do.
- the memory recovery operation may include operations of selecting a process to recover the memory being used based on a predetermined priority, and terminating the selected process.
- the required memory amount is predicted by referring to the memory usage information 122 in response to the foreground execution. quantity can be predicted.
- the processor 110 may receive execution of an application B among applications A to E from a user through a user interface.
- the processor 110 changes the execution state of the process corresponding to the application B from the background to the foreground based on the user input. conversion, and the execution screen of application B may be output to the display 130 .
- the processor 110 may newly execute the application B as a foreground process based on the user input and output an execution screen of the application B to the display 130 .
- FIG. 4 illustratively illustrates a case in which a memory recovery operation is performed according to an embodiment of the present disclosure.
- the processor 110 may switch the execution process of application B from background execution to foreground execution based on an external input (410). In response to the foreground execution of the application B execution process, the processor 110 may switch the execution of the foreground process from the foreground to the background.
- the processor 110 may estimate a required amount of memory representing memory required by foreground execution of the application B execution process based on the memory usage information 122 .
- the processor 110 may estimate the amount of secured memory, which represents memory that can be secured by switching a process running in the foreground to background execution, based on the memory usage information 122 .
- the processor 110 may estimate the amount of free memory when a predetermined time elapses by increasing or subtracting the secured memory amount and the required memory amount from the current free memory amount.
- the processor 110 may set a time indicating until the variability of the amount of memory usage is stabilized as the predetermined time, or may receive the predetermined time based on an external input, but may obtain the predetermined time in various ways. is obvious to those skilled in the art.
- the processor 110 may perform a memory reclaim operation.
- the processor 110 may select a process for reclaiming memory in use as the application A running process based on a predetermined priority, and may terminate the application A running process (420).
- the execution process of application A may be the same as or different from the foreground-to-background process described above according to a predetermined priority order. A criterion for selecting a process to reclaim memory will be described later with reference to FIG. 5 .
- 5 illustratively illustrates criteria for selecting a process to reclaim memory according to an embodiment of the present disclosure.
- the processor 110 may select a process to recover the memory being used based on a predetermined priority, and may terminate the selected process.
- 5 illustratively shows a plurality of processes including process A to process E arranged in a predetermined priority order.
- the predetermined priority may be set based on an external input, it is obvious to those skilled in the art that it may be set in various ways.
- the predetermined priority may be set in the order of background application, previous application, home application, service, perceptible application, foreground application, system process, and native process.
- a background application may refer to an application that has previously been executed but is not currently activated.
- the Previous application may refer to a most recently used background running application.
- the Home application may include a launcher application providing a function of decorating a background screen.
- the service may refer to a process of providing services such as cloud synchronization and upload.
- a perceptible application may refer to an application that can be recognized by a user but is not running in the foreground.
- a perceptible application may include a search bar displayed as a small user interface or a music listening application.
- the foreground application may refer to an app that is currently displayed on a display and is being executed.
- a native process may refer to a low-level process that performs basic operations of an electronic device.
- FIG. 6 illustratively illustrates a memory reclamation operation according to an embodiment of the present disclosure.
- the processor 110 selects a process to recover the memory in use based on a predetermined priority, and then moves the memory in use to the swap medium 610 without immediately terminating the selected process.
- the amount of the second spare memory may be estimated.
- the processor 110 selects a process corresponding to application 1 having the lowest priority, and then predicts the amount of second spare memory by adding the memory 620 to be recovered when moving to the swap medium 610. there is.
- the processor 110 may determine whether the predicted second free memory amount is less than a predetermined threshold value after reducing the predicted required memory amount from the predicted second free memory amount. If the value is less than a predetermined threshold, a process corresponding to application 1 may be terminated.
- FIG. 7 is a schematic flowchart of a memory recovery method according to an embodiment of the present disclosure.
- the electronic device 100 may predict the amount of free memory when a predetermined time has elapsed based on the memory usage information corresponding to the foreground execution of the first process.
- the electronic device 100 may set a time indicating until the variability in memory usage is stabilized as the predetermined time or may receive the predetermined time from the outside, but may acquire the predetermined time in various ways. self-evident
- the memory usage information 122 may include, for each program, a memory usage amount corresponding to an execution state of a process executing the program and an execution environment.
- the execution state of the process may include a foreground execution state being executed while being output to the display 130 and a background execution state being executed without being output to the display 130 .
- the execution environment may include at least one of an amount of free memory at the time of execution and the number of background processes at the time of execution.
- the electronic device 100 may learn the execution state of the process and the amount of memory usage corresponding to the execution environment, and store memory usage information 122 including the learned amount of memory usage in the memory 120. there is. The electronic device 100 may learn the amount of memory usage until the variability of the amount of memory usage is stabilized in each of the execution state and execution environment of the process.
- the electronic device 100 may switch the second process from foreground execution to background execution in response to the foreground execution of the first process.
- the electronic device 100 predicts the amount of secured memory representing the memory that can be secured by the background execution of the second process based on the memory usage information, and the required memory representing the memory required by the foreground execution of the first process.
- the free memory amount may be estimated by estimating the amount based on the memory usage information and increasing or subtracting the reserved memory amount and the required memory amount from the current free memory amount, respectively.
- the electronic device 100 may estimate the amount of free memory by additionally considering the execution environment at the time of foreground execution.
- the electronic device 100 may determine whether the predicted amount of free memory exceeds a predetermined threshold. As a result of the determination, if the amount of free memory exceeds the predetermined threshold, operation S730 may be performed, and if the amount of free memory may be less than the predetermined threshold, operation S740 may be performed.
- the electronic device 100 and programs executed by the electronic device 100 described through this disclosure may be implemented as hardware components, software components, and/or a combination of hardware components and software components.
- a program can be executed by any system capable of executing computer readable instructions.
- Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device.
- Software may be implemented as a computer program including instructions stored in computer-readable storage media.
- Computer-readable recording media include, for example, magnetic storage media (e.g., ROM (Read-Only Memory), RAM (Random-Access Memory), floppy disk, hard disk, etc.) and optical reading media (e.g., CD-ROM) (CD-ROM) and DVD (Digital Versatile Disc).
- a computer-readable recording medium may be distributed among computer systems connected through a network, and computer-readable codes may be stored and executed in a distributed manner. The medium may be readable by a computer, stored in a memory, and executed by a processor.
- a computer-readable storage medium may be provided in the form of a non-transitory storage medium.
- 'non-temporary' only means that the storage medium does not contain a signal and is tangible, but does not distinguish whether data is stored semi-permanently or temporarily in the storage medium.
- a computer program product may include a software program and a computer-readable storage medium in which the software program is stored.
- a computer program product is a product in the form of a software program (eg, a downloadable application) that is distributed electronically through a manufacturer of a device or an electronic marketplace (eg, Google Play Store, App Store).
- a software program eg, a downloadable application
- an electronic marketplace eg, Google Play Store, App Store
- the storage medium may be a storage medium of a manufacturer's server, an electronic market server, or a relay server temporarily storing a software program.
- a computer program product may include a storage medium of a server or a storage medium of a device in a system composed of a server and a device.
- the computer program product may include a storage medium of the third device.
- the computer program product may include a software program itself transmitted from the server to the device or the third device or from the third device to the device.
- one of the server, the device and the third device may execute the computer program product to perform the method according to the disclosed embodiments.
- two or more of the server, the device, and the third device may execute the computer program product to implement the method according to the disclosed embodiments in a distributed manner.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
Claims (15)
- 전자 장치에 있어서,디스플레이;적어도 하나의 프로그램에 대응하는 적어도 하나의 명령어를 저장하는 메모리; 및상기 메모리 및 상기 디스플레이와 전기적으로 연결되고, 상기 적어도 하나의 명령어를 프로세스로 실행하는 프로세서를 포함하고;상기 프로세서는제1 프로세스의 포그라운드 실행에 대응하여 상기 메모리에 저장된 메모리 사용 정보에 기초하여 소정 시간이 경과한 시점에서의 여유 메모리 양을 예측하고,상기 예측된 여유 메모리 양이 소정의 임계값을 초과하는 경우 상기 소정 시간 동안 메모리 회수 동작의 수행을 유예하고,상기 예측된 여유 메모리 양이 소정의 임계값 미만인 경우 상기 유예 없이 메모리 회수 동작을 수행하는, 전자 장치.
- 제 1항에 있어서,상기 프로세서는상기 제1 프로세스의 포그라운드 실행에 대응하여 제2 프로세스를 포그라운드 실행에서 백그라운드 실행으로 전환하고,상기 제2 프로세스의 백그라운드 실행에 의해 확보 가능한 메모리를 나타내는 확보 메모리 양을 상기 메모리 사용 정보에 기초하여 예측하고,상기 제1 프로세스의 포그라운드 실행에 의해 필요한 메모리를 나타내는 필요 메모리 양을 상기 메모리 사용 정보에 기초하여 예측하고,현재 여유 메모리 양에서 상기 확보 메모리 양 및 상기 필요 메모리 양을 각각 가감함으로써 상기 여유 메모리 양을 예측하는, 전자 장치.
- 제 1항에 있어서,상기 메모리 사용 정보는상기 적어도 하나의 프로그램 각각에 대해서, 프로세스의 실행 상태에 대응하는 메모리 사용양을 포함하고;상기 프로세스의 실행 상태는 상기 디스플레이에 출력되면서 실행 중인 포그라운드 실행 상태 및 상기 디스플레이에 출력되지 않으면서 실행 중인 백그라운드 실행 상태를 포함하는, 전자 장치.
- 제 1항에 있어서,상기 메모리 사용 정보는상기 적어도 하나의 프로그램 각각에 대해서, 프로세스의 실행 상태 및 실행 환경에 대응하는 메모리 사용양을 포함하고;상기 프로세스의 실행 상태는 상기 디스플레이에 출력되면서 실행 중인 포그라운드 실행 상태 및 상기 디스플레이에 출력되지 않으면서 실행 중인 백그라운드 실행 상태를 포함하고;상기 실행 환경은 실행 시점의 여유 메모리 양 및 실행 시점의 백그라운드 프로세스의 개수 중 적어도 하나를 포함하는, 전자 장치.
- 제 4항에 있어서,상기 프로세서는상기 적어도 하나의 프로그램을 프로세스로 실행할 때 상기 프로세스의 실행 상태 및 상기 실행 환경에 대응하는 상기 메모리 사용양을 학습하고,상기 학습된 메모리 사용양을 포함하는 상기 메모리 사용 정보를 상기 메모리에 저장하는, 전자 장치.
- 제 4항에 있어서,상기 프로세서는상기 제1 프로세스의 포그라운드 실행에 대응하여 포그라운드 실행 시점의 상기 실행 환경을 추가로 고려하여 상기 여유 메모리 양을 예측하는, 전자 장치.
- 제 1항에 있어서,상기 프로세서는메모리 사용양 변동성이 안정화될 때 까지를 나타내는 시간을 상기 소정 시간으로 설정하거나,외부로부터 상기 소정 시간을 입력받는, 전자 장치.
- 제 1항에 있어서,상기 메모리 회수 동작은소정의 우선순위에 기초하여 사용중인 메모리를 회수할 프로세스를 선택하는 동작; 및상기 선택된 프로세스를 종료하는 동작을 포함하는, 전자 장치.
- 제1 프로세스의 포그라운드 실행에 대응하여 메모리 사용 정보에 기초하여 소정 시간이 경과한 시점에서의 여유 메모리 양을 예측하는 동작;상기 예측된 여유 메모리 양이 소정의 임계값을 초과하는 경우 상기 소정 시간 동안 메모리 회수 동작의 수행을 유예하는 동작; 및상기 예측된 여유 메모리 양이 소정의 임계값 미만인 경우 상기 유예 없이 메모리 회수 동작을 수행하는 동작을 포함하는, 메모리 회수 방법.
- 제 9항에 있어서,상기 제1 프로세스의 포그라운드 실행에 대응하여 제2 프로세스를 포그라운드 실행에서 백그라운드 실행으로 전환하는 동작을 더 포함하고;상기 여유 메모리 양을 예측하는 동작은상기 제2 프로세스의 백그라운드 실행에 의해 확보 가능한 메모리를 나타내는 확보 메모리 양을 상기 메모리 사용 정보에 기초하여 예측하는 동작;상기 제1 프로세스의 포그라운드 실행에 의해 필요한 메모리를 나타내는 필요 메모리 양을 상기 메모리 사용 정보에 기초하여 예측하는 동작; 및현재 여유 메모리 양에서 상기 확보 메모리 양 및 상기 필요 메모리 양을 각각 가감함으로써 상기 여유 메모리 양을 예측하는 동작을 포함하는, 메모리 회수 방법.
- 제 9항에 있어서,상기 메모리 사용 정보는상기 적어도 하나의 프로그램 각각에 대해서, 프로세스의 실행 상태에 대응하는 메모리 사용양을 포함하고;상기 프로세스의 실행 상태는 디스플레이에 출력되면서 실행 중인 포그라운드 실행 상태 및 상기 디스플레이에 출력되지 않으면서 실행 중인 백그라운드 실행 상태를 포함하는, 메모리 회수 방법.
- 제 9항에 있어서,상기 메모리 사용 정보는상기 적어도 하나의 프로그램 각각에 대해서, 프로세스의 실행 상태 및 실행 환경에 대응하는 메모리 사용양을 포함하고;상기 프로세스의 실행 상태는 디스플레이에 출력되면서 실행 중인 포그라운드 실행 상태 및 상기 디스플레이에 출력되지 않으면서 실행 중인 백그라운드 실행 상태를 포함하고;상기 실행 환경은 실행 시점의 여유 메모리 양 및 실행 시점의 백그라운드 프로세스의 개수 중 적어도 하나를 포함하는, 메모리 회수 방법.
- 제 12항에 있어서,상기 적어도 하나의 프로그램을 프로세스로 실행할 때 상기 프로세스의 실행 상태 및 상기 실행 환경에 대응하는 상기 메모리 사용양을 학습하는 동작; 및상기 학습된 메모리 사용양을 포함하는 상기 메모리 사용 정보를 메모리에 저장하는 동작을 더 포함하는, 메모리 회수 방법.
- 제 12항에 있어서,상기 여유 메모리 양을 예측하는 동작은상기 제1 프로세스의 포그라운드 실행에 대응하여 포그라운드 실행 시점의 상기 실행 환경을 추가로 고려하여 상기 여유 메모리 양을 예측하는, 메모리 회수 방법.
- 제 9항에 있어서,메모리 사용양 변동성이 안정화될 때 까지를 나타내는 시간을 상기 소정 시간으로 설정하는 동작; 또는외부로부터 상기 소정 시간을 입력받는 동작을 더 포함하는, 메모리 회수 방법.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP22901515.1A EP4343530A4 (en) | 2021-11-30 | 2022-09-01 | METHOD AND DEVICE FOR MEMORY RESTORATION |
| CN202280049903.1A CN117730307A (zh) | 2021-11-30 | 2022-09-01 | 内存恢复方法和设备 |
| US17/943,901 US12159031B2 (en) | 2021-11-30 | 2022-09-13 | Method and apparatus for returning memory |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2021-0167833 | 2021-11-30 | ||
| KR1020210167833A KR20230080535A (ko) | 2021-11-30 | 2021-11-30 | 메모리 회수 방법 및 장치 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/943,901 Continuation US12159031B2 (en) | 2021-11-30 | 2022-09-13 | Method and apparatus for returning memory |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023101155A1 true WO2023101155A1 (ko) | 2023-06-08 |
Family
ID=86612578
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2022/013109 Ceased WO2023101155A1 (ko) | 2021-11-30 | 2022-09-01 | 메모리 회수 방법 및 장치 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR20230080535A (ko) |
| WO (1) | WO2023101155A1 (ko) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010117838A (ja) * | 2008-11-12 | 2010-05-27 | Canon Inc | アプリケーションプラットフォーム、アプリケーションプラットフォームの制御方法、プログラム |
| KR20130127445A (ko) * | 2010-10-25 | 2013-11-22 | 마이크로소프트 코포레이션 | 어플리케이션 수명 관리 |
| KR20160132432A (ko) * | 2014-03-10 | 2016-11-18 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 멀티 프로세스 애플리케이션들을 위한 동적 자원 관리 |
| US20180102981A1 (en) * | 2014-03-10 | 2018-04-12 | Microsoft Technology Licensing, Llc | Resource management based on device-specific or user-specific resource usage profiles |
| KR101908732B1 (ko) * | 2011-12-23 | 2018-10-16 | 엘지전자 주식회사 | 메모리 정리를 실행하는 전자 기기 및 그 방법 |
-
2021
- 2021-11-30 KR KR1020210167833A patent/KR20230080535A/ko active Pending
-
2022
- 2022-09-01 WO PCT/KR2022/013109 patent/WO2023101155A1/ko not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010117838A (ja) * | 2008-11-12 | 2010-05-27 | Canon Inc | アプリケーションプラットフォーム、アプリケーションプラットフォームの制御方法、プログラム |
| KR20130127445A (ko) * | 2010-10-25 | 2013-11-22 | 마이크로소프트 코포레이션 | 어플리케이션 수명 관리 |
| KR101908732B1 (ko) * | 2011-12-23 | 2018-10-16 | 엘지전자 주식회사 | 메모리 정리를 실행하는 전자 기기 및 그 방법 |
| KR20160132432A (ko) * | 2014-03-10 | 2016-11-18 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 멀티 프로세스 애플리케이션들을 위한 동적 자원 관리 |
| US20180102981A1 (en) * | 2014-03-10 | 2018-04-12 | Microsoft Technology Licensing, Llc | Resource management based on device-specific or user-specific resource usage profiles |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20230080535A (ko) | 2023-06-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8966477B2 (en) | Combined virtual graphics device | |
| US10521242B2 (en) | Application containers with updatable application programming interface layers | |
| US11099861B2 (en) | Method for preloading application, storage medium, and terminal | |
| EP3926466B1 (en) | Electronic device which prefetches application and method therefor | |
| WO2012144824A2 (en) | Method for controlling mobile terminal | |
| US11693707B2 (en) | Electronic device for executing multiple operating systems and method of controlling same | |
| WO2017160003A1 (ko) | 태스크 스케줄링 방법 및 이를 구현한 전자 장치 | |
| EP3572935A1 (en) | Method for preloading application, storage medium, and terminal | |
| CN104076903A (zh) | 推迟挂起 | |
| CN106796507A (zh) | 无需内容转换支持计算设备中的多操作系统环境 | |
| CN107810488A (zh) | 一种虚拟机的状态管理方法、装置和智能终端 | |
| WO2018111039A1 (en) | Method for charging electronic device, electronic device, and storage medium | |
| CN111563595A (zh) | 推断处理系统、推断处理装置以及计算机程序产品 | |
| CN105940375A (zh) | 针对多操作系统设备的动态再分配 | |
| CN114417373B (zh) | 一种NVMe-oF用户态客户端的数据访问方法和装置 | |
| US11182311B2 (en) | Virtualization support device, control method of virtualization support device, and calculation system | |
| WO2017183931A1 (en) | Electronic device and method for controlling the electronic device | |
| CN104461745A (zh) | 一种内存优化方法及装置 | |
| US12411772B2 (en) | Electronic apparatus and control method thereof | |
| WO2023101155A1 (ko) | 메모리 회수 방법 및 장치 | |
| CN114385524A (zh) | 嵌入式固件仿真系统及其方法、装置和电子设备 | |
| CN108401453A (zh) | 一种控制显示屏的方法、装置和智能终端 | |
| WO2022196889A1 (ko) | 멀티 프로세서를 포함하는 전자 장치 및 그 운용 방법 | |
| US10102074B2 (en) | Switching allocation of computer bus lanes | |
| WO2017105001A1 (ko) | 전자 장치, 전자 장치의 전력 공급 장치 및 전력 공급 방법 |
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: 22901515 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2022901515 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2022901515 Country of ref document: EP Effective date: 20231219 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202280049903.1 Country of ref document: CN |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |