WO2015156615A1 - Procédé et appareil d'exécution d'application - Google Patents

Procédé et appareil d'exécution d'application Download PDF

Info

Publication number
WO2015156615A1
WO2015156615A1 PCT/KR2015/003565 KR2015003565W WO2015156615A1 WO 2015156615 A1 WO2015156615 A1 WO 2015156615A1 KR 2015003565 W KR2015003565 W KR 2015003565W WO 2015156615 A1 WO2015156615 A1 WO 2015156615A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
application
terminal
profile data
requested
Prior art date
Application number
PCT/KR2015/003565
Other languages
English (en)
Inventor
Kwonsik Kim
Hyojeong Lee
Seyoun Lim
Sangbok HAN
Myungsun Kim
Jongchul Park
Original Assignee
Samsung Electronics Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020140103866A external-priority patent/KR102262102B1/ko
Application filed by Samsung Electronics Co., Ltd. filed Critical Samsung Electronics Co., Ltd.
Priority to EP15776620.5A priority Critical patent/EP3129872A4/fr
Publication of WO2015156615A1 publication Critical patent/WO2015156615A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • the present disclosure relates to an application execution method and apparatus of a terminal. More particularly, the present disclosure relates to a technology of improving the operation speed of the application in executing or in the middle of running the application.
  • the Central Processing Unit (CPU) of the terminal loads the requested input/output (I/O) data on the main memory device, such as a Random Access Memory (RAM), from an auxiliary memory device, such as Hard Disk Drive (HDD) until the application execution screen is displayed. Since there is no I/O data preloaded at the initial launch of the application, it takes a relatively long time to launch the application. In the case of re-launching the application, it is possible to load the I/O data necessary for launching the application using the I/O lists used in the previous launching process, resulting in a reduction of loading time. Even in this case, however, the total length of the loading time may vary depending on the method of updating the I/O lists that have been loaded in the previous launching process.
  • the main memory device such as a Random Access Memory (RAM)
  • HDD Hard Disk Drive
  • an aspect of the present disclosure is to provide a method and apparatus for improving the running speed of an application on a terminal in the launching stage and post-launching stage.
  • an application execution method of a terminal includes detecting a launch of an application, preloading Input/Outputs (I/Os) requested at the launch based on profile data with I/Os requested at a previous launch of the application, and updating the profile data based on at least one of the I/Os requested at current and previous launches of the application.
  • I/Os Input/Outputs
  • a terminal for executing an application includes a storage unit configured to store profile data including a list of I/Os requested at a previous launch of the application and a control unit configured to detect a launch of an application, preload I/Os requested at the launch based on profile data with I/Os requested at the previous launch of the application, and update the profile data based on at least one of the I/Os requested at current and previous launches of the application.
  • an application execution method of a terminal includes detecting a memory return request of a process executed by the application, storing memory mapping information of the process in response to the memory return request, determining whether a total amount of the memory mapping information stored in the memory mapping storage is greater than a predetermined capacity, and releasing, when the total amount of the memory mapping information is greater than the predetermined capacity, a connection between a virtual memory and a physical memory which is associated with at least one memory mapping information in units of page.
  • a terminal for executing an application includes a physical memory unit configured to store data, an input unit configured to receive an input to generate a request signal of the application, a virtual memory unit configured to map the data stored in the physical memory unit, a memory mapping storage configured to detect a memory return request of a process executed by the application and stores the memory mapping information of the process in response to the memory return request, and a control unit configured to determine whether a total amount of the memory mapping information stored in the memory mapping storage is greater than a predetermined capacity and release, when the total amount of the memory mapping information is greater than the predetermined capacity, a connection between the virtual memory unit and the physical memory which is associated with at least one memory mapping information in units of page.
  • FIG. 1 is a diagram illustrating an application launching mechanism according to an embodiment of the present disclosure
  • FIG. 2 is a diagram illustrating a profiling process on a block input/output (I/O) layer according to an embodiment of the present disclosure
  • FIG. 3 is a flowchart illustrating an application launching speed enhancement method according to an embodiment of the present disclosure
  • FIG. 4 is a diagram illustrating an application launching procedure to which an application launching speed enhancement method is applied according to an embodiment of the present disclosure
  • FIG. 5 is a flowchart illustrating a profile data update method according to an embodiment of the present disclosure
  • FIG. 7 is a diagram for explaining an I/O merging process of a profile data update method according to an embodiment of the present disclosure
  • FIG. 13 is a block diagram illustrating a configuration of an application execution apparatus according to an embodiment of the present disclosure
  • FIG. 14 is a diagram for explaining an adaptive loading method according to an embodiment of the present disclosure.
  • FIG. 15 is a flowchart illustrating an adaptive loading operation according to an embodiment of the present disclosure.
  • the application launching speed enhancement method may include a scheme of discerning the I/O lists regardless of the launch of the application as well as the scheme of data profiling at the VFS layer. In the case that there is an I/O which does not exist in the profile data but is requested in preloading the I/Os, the UE may determine whether to merge the I/Os.
  • the scheme of discerning the I/O lists that are not related to the application launch is described with reference to FIGS. 5 to 7.
  • the terminal determines whether the requested I/O exists in the previously stored profile list at operation S501. Although the I/O does not exist in the previous profile list, the VFS layer performs profiling to add the I/O to the profile list. Accordingly, the I/Os profiled in the application launching procedure include all requested I/Os including the I/Os of the previous profile data and thus there is a need of criteria for determining whether all of the I/Os are entitled to be stored in the profile list.
  • the IPC is a mechanism that allows exchange of messages between applications running on a system and, if IPC occurs between the requested I/Os occurring at the application launch start time (App Launch start), this means that the corresponding I/Os are related to the application lunching. Accordingly, the terminal discerns the I/O related to the application launching depending on whether IPC occurs between the I/Os at operation S502.
  • the terminal merges the corresponding I/Os into one to update the final profile data at operation S506.
  • Whether the I/Os can be merged may be determined based on the following criteria.
  • the I/Os to be merged are associated with the same file and have to be overlapped in length with the offset of the file of the I/Os. It is not necessary for offset required for the merging I/Os to be continuous completely. In the case that the I/Os to be merged are distant, merging may cause performance degradation.
  • FIG. 8 is a block diagram illustrating an application launching speed enhancement apparatus according to an embodiment of the present disclosure.
  • the application launching speed enhancement apparatus includes a control unit 810 and the storage unit 820.
  • Whether the I/O requested at the launch of the application is related to the launch of the application is determined based on whether IPC occurs between the I/O requested at the launch of the application and the I/Os stored in the profile data.
  • the control unit 810 may determine the I/Os to be included in the profile data and merge the I/Os that can be merged among the I/Os to be included in the profile data.
  • the application may read and/or write a plurality of data and performs operations using the physical and virtual memories.
  • FIG. 9 is a diagram illustrating a memory mapping storage unit for managing memory mapping information of an application according to an embodiment of the present disclosure.
  • Each process can access the memory to read and write data in the Virtual Memory Access mode in which the data stored in the physical memory are mapped to the virtual memory.
  • the process After use of a specific virtual memory, the process returns the virtual memory back to the system (unmap) such that the connection between the virtual memory and the physical memory is released.
  • the system has to repeat the same operation (connection between virtual and physical memories) when same process requests for new virtual memory, resulting in reduction of efficiency.
  • a terminal may regard the un-mapping request of the application as a memory return request so as not to release the connection between the physical memory and virtual memory of the pre-mapped pages mapped previously but preserve the corresponding information in the reuse pool and provide, when the mapping request reoccurs, the application with the corresponding memory information retrieved from the reuse pool.
  • the reuse pool of pre-mapped pages may be interchangeably referred to as memory mapping storage 900.
  • FIG. 10 is a flowchart illustrating a memory mapping storage management method according to an embodiment of the present disclosure.
  • the terminal stores the memory mapping information of the process corresponding to the memory return request in the memory mapping storage at operation S1002.
  • FIG. 11 is a diagram illustrating a memory mapping storage according to an embodiment of the present disclosure.
  • the memory mapping storage 1100 may be restricted in size. In the example of FIG. 11, the memory mapping storage 1100 is restricted to 30MB. In this case, a part of the memory mapping information 1105 which exceeds 30MB may be deleted from the memory mapping storage 1100. For the deleted memory mapping information 1105, the connection between the physical and virtual memories may be released.
  • FIG. 12 is a diagram for explaining an operation of a memory mapping storage according to an embodiment of the present disclosure.
  • VMA Allocation denotes a process of providing, when a remapping request (mmap()) is generated by an application for the mapping information stored in the memory mapping storage, the application with the memory mapping information on the request message as much as the requested size.
  • FIG. 13 is a block diagram illustrating a configuration of an application execution apparatus according to an embodiment of the present disclosure.
  • the physical memory unit 1304 may be a real memory for storing data but is not limited thereto.
  • the input unit 1301 may generate a request signal such as the mapping and un-mapping request in response to an input made to an application.
  • the virtual memory unit 1303 may map the data stored in the physical memory unit 1304.
  • the application may access the virtual memory unit 1303 to read data from the physical memory unit 1304.
  • control unit 1302 may include a memory mapping storage for storing the memory mapping information of the process corresponding to the memory return request input through the input unit 1301.
  • the control unit 1302 determines whether the total memory mapping information stored in the memory mapping storage exceeds a predetermined capacity and, if so, deletes at least one memory mapping information by page to release the connection between the virtual and physical memory units.
  • the control unit 1302 also may delete at least one memory mapping information from the memory mapping storage and release the connection between the virtual and physical memories in units of page.
  • control unit 1302 may send the memory mapping information as much as requested to the application.
  • the predetermined capacity may be equal to or less than the size of the physical memory.
  • an embodiment of the present disclosure proposes an adaptive loading method that is capable of pre-loading the profile data in adaptation to the current status of the memory. That is, the terminal loads all the profile data when the extra memory is large enough (high free memory) and reduces the data amount to be loaded as the memory headroom level decreases.
  • the data to be loaded may be selected by the process generating the data, the related service (process) having large amount of profile data is excluded as the memory headroom decreases, and only the profile data generated by the target application are loaded at a low memory level (low free memory).
  • the memory level is determined by threshold values which may vary depending on the system memory size.
  • FIG. 14 is a diagram for explaining an adaptive loading method according to an embodiment of the present disclosure.
  • reference number 1400 denotes a list of the requested I/Os contained in the profile data.
  • a plurality of processes may generate the I/Os for the target application.
  • the Process Identification is a value that changes whenever the profile data are generated or the terminal reboots and thus it is difficult to know the process generating the corresponding I/O process only based on the PID value.
  • Reference number 1401 denotes a table of PIDs mapped to the names of the processes generating the I/Os. By referencing the table, it is possible to know the name of process which has generated the I/O using the PID.
  • reference number 1402 denotes a table mapping the system memory levels and operation modes of the adaptive loading method according to an embodiment of the present disclosure.
  • FIG. 14 is directed to the case where the memory level is determined depending on the amount of the free memory, the memory level may be determined based on the memory amount in use.
  • the threshold values may change depending on the system memory size.
  • threshold values There are two threshold values, i.e. low threshold value and high threshold value, in the table 1402.
  • the terminal may preload only the I/Os generated by target application selectively (Target App Only Mode.
  • the terminal may operate in the full-loading mode in which all of the I/Os contained in the profile data can be preloaded.
  • the description is directed to the case where the three memory levels are defined with two threshold values for the different pre-loading modes, it is also possible to preload only the I/Os corresponding to the profile data as much as the ratio of the free memory amount to the entire profile data according to the free memory amount without threshold values.
  • the terminal checks the free memory size at operation 1500. Although not shown in the drawing, the terminal determines the memory level to acquire the free memory size whenever the application is launched.
  • the terminal determines whether the free memory size is greater than the low threshold at operation 1501. If the free memory size is equal to or less than the low threshold value, the terminal determines that the memory state is low free memory level and preloads only the I/Os generated by the target application at operation 1502.
  • the terminal determines whether the free memory size is greater than the high threshold value at operation 1503. If the free memory size is greater than the high threshold value, this means that the free memory is large enough and thus the terminal determines that the memory state is high free memory level so as to preload all of the I/Os included in the profile data at operation 1504.
  • the terminal determines that the memory state is the normal state level and calculates the radio of the free memory to the entire memory at operation 1505.
  • the terminal preloads the I/Os included in the profile data according to the ratio calculated at operation 1505.
  • the application execution method and apparatus of the present disclosure is advantageous in terms of improving the launching speed in the case of re-launching the application by updating all I/O data requested at the application launching stage of the terminal to profile data.
  • the application execution method and apparatus of the present disclosure is advantageous in terms of reducing the I/O pre-loading time on the profile data by merging the I/O, if possible, in updating the profile data.
  • the application execution method and apparatus of the present disclosure is advantageous in terms of mitigating memory performance degradation by determining whether to pre-load the I/O depending on the virtual memory status and the number of I/Os to be loaded.
  • the application execution method and apparatus of the present disclosure is advantageous in terms of securing enough free memory space by using a predetermined capacity of reuse storage when a memory return request occurs while the application is running.
  • Any such software may be stored in a non-transitory computer readable storage medium.
  • the non-transitory computer readable storage medium stores one or more programs (software modules), the one or more programs comprising instructions, which when executed by one or more processors in an electronic device, cause the electronic device to perform a method of the present disclosure.
  • Any such software may be stored in the form of volatile or non-volatile storage such as, for example, a storage device like a Read Only Memory (ROM), whether erasable or rewritable or not, or in the form of memory such as, for example, Random Access Memory (RAM), memory chips, device or integrated circuits or on an optically or magnetically readable medium such as, for example, a Compact Disk (CD), Digital Versatile Disc (DVD), magnetic disk or magnetic tape or the like.
  • ROM Read Only Memory
  • RAM Random Access Memory
  • CD Compact Disk
  • DVD Digital Versatile Disc
  • the storage devices and storage media are various embodiments of non-transitory machine-readable storage that are suitable for storing a program or programs comprising instructions that, when executed, implement various embodiments of the present disclosure. Accordingly, various embodiments provide a program comprising code for implementing apparatus or a method as claimed in any one of the claims of this specification and a non-transitory machine-readable storage storing such a program.

Abstract

L'invention concerne un procédé d'exécution d'application pour améliorer la vitesse de fonctionnement de l'application lors de l'exécution ou au milieu de l'exécution de l'application. Le procédé d'exécution d'application consiste à détecter un lancement d'une application, à précharger des entrées/sorties (E/S) demandées au lancement sur la base de données de profil avec des E/S demandées à un lancement précédent de l'application, et à mettre à jour les données de profil sur la base d'au moins l'une des E/S demandées à des lancements courants et précédents de l'application.
PCT/KR2015/003565 2014-04-09 2015-04-09 Procédé et appareil d'exécution d'application WO2015156615A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP15776620.5A EP3129872A4 (fr) 2014-04-09 2015-04-09 Procédé et appareil d'exécution d'application

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2014-0042567 2014-04-09
KR20140042567 2014-04-09
KR1020140103866A KR102262102B1 (ko) 2014-04-09 2014-08-11 애플리케이션 실행 방법 및 장치
KR10-2014-0103866 2014-08-11

Publications (1)

Publication Number Publication Date
WO2015156615A1 true WO2015156615A1 (fr) 2015-10-15

Family

ID=54288117

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/003565 WO2015156615A1 (fr) 2014-04-09 2015-04-09 Procédé et appareil d'exécution d'application

Country Status (1)

Country Link
WO (1) WO2015156615A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817648A (zh) * 2019-10-31 2021-05-18 深圳市万普拉斯科技有限公司 应用程序文件预加载方法、装置和移动终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003115A (en) 1997-07-29 1999-12-14 Quarterdeck Corporation Method and apparatus for predictive loading of a cache
US20050108496A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Hardware support for superpage coalescing
US20070043939A1 (en) 2000-02-03 2007-02-22 Realtime Data Llc Systems and methods for accelerated loading of operating systems and application programs
US20130332811A1 (en) * 2012-06-07 2013-12-12 Microsoft Corporation Progressive loading for web-based spreadsheet applications
US20140040563A1 (en) * 2012-01-03 2014-02-06 Seoul National University R&Db Foundation Shared virtual memory management apparatus for providing cache-coherence

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003115A (en) 1997-07-29 1999-12-14 Quarterdeck Corporation Method and apparatus for predictive loading of a cache
US20070043939A1 (en) 2000-02-03 2007-02-22 Realtime Data Llc Systems and methods for accelerated loading of operating systems and application programs
US20050108496A1 (en) * 2003-11-13 2005-05-19 International Business Machines Corporation Hardware support for superpage coalescing
US20140040563A1 (en) * 2012-01-03 2014-02-06 Seoul National University R&Db Foundation Shared virtual memory management apparatus for providing cache-coherence
US20130332811A1 (en) * 2012-06-07 2013-12-12 Microsoft Corporation Progressive loading for web-based spreadsheet applications

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KAZUKI OHTA, OPTIMIZATION TECHNIQUES AT THE I/O FORWARDING LAYER
See also references of EP3129872A4 *
YONGSOO JOO, IMPROVING APPLICATION LAUNCH PERFORMANCE ON SOLID STATE DRIVES

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817648A (zh) * 2019-10-31 2021-05-18 深圳市万普拉斯科技有限公司 应用程序文件预加载方法、装置和移动终端

Similar Documents

Publication Publication Date Title
EP3129872A1 (fr) Procédé et appareil d'exécution d'application
WO2011105860A2 (fr) Procédé et appareil permettant de générer une image de démarrage minimale
WO2017135586A1 (fr) Procédé de gestion de mémoire et dispositif électronique associé
WO2014107006A1 (fr) Appareil d'affichage et son procédé de commande
WO2016204529A1 (fr) Dispositif et procédé de stockage en mémoire destinés à la prévention de perte de données après une perte d'alimentation électrique
WO2017209508A1 (fr) Dispositif électronique et procédé de journalisation de données de fichier de dispositif électronique
WO2018021862A1 (fr) Procédé d'affichage de contenu et dispositif électronique adapté à ce dernier
WO2016195422A1 (fr) Procédé et appareil pour gérer une mémoire
WO2018139752A1 (fr) Procédé et dispositif électronique pour commander une pluralité de caméras
US10606666B2 (en) High performance locks
WO2020171427A1 (fr) Dispositif électronique à préchargement d'application et procédé associé
WO2015060690A1 (fr) Procédé et appareil de mise à niveau de système d'exploitation de dispositif électronique
WO2015063845A1 (fr) Dispositif de mémoire de données, procédé de mémoire de données et programme de mémoire de données
WO2018117589A1 (fr) Dispositif électronique et procédé d'affichage de page web au moyen dudit dispositif
EP3224698A1 (fr) Dispositif électronique permettant d'exécuter une pluralité d'applications et procédé de commande du dispositif électronique
EP3234746A1 (fr) Dispositif électronique et procédé de commande d'affichage
WO2019194394A1 (fr) Dispositif électronique et procédé de commande associé
WO2018124331A1 (fr) Système de traitement graphique et procédé de fonctionnement d'un système de traitement graphique
WO2015156615A1 (fr) Procédé et appareil d'exécution d'application
WO2015152648A1 (fr) Appareil et procédé de gestion de fichiers en utilisant une mémoire tampon dans un espace de stockage d'un enregistreur d'événements vidéo
US9223806B2 (en) Restarting a batch process from an execution point
US20120017030A1 (en) Optimizing a file system interface in a virtualized computing environment
WO2017026740A1 (fr) Dispositif electronique et procédé de compression de données s'y rapportant
WO2020197071A1 (fr) Dispositif électronique et son procédé de commande
WO2016182255A1 (fr) Dispositif électronique et procédé de fusion de pages associé

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: 15776620

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2015776620

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015776620

Country of ref document: EP