A display device and a method of monitoring application software
By obtaining the amount of downloaded data from each process at the controller level and limiting the write operations, the problem of not being able to monitor and control eMMC data writes in existing technologies is solved, thus extending the lifespan of eMMC.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HISENSE VISUAL TECH CO LTD
- Filing Date
- 2021-09-10
- Publication Date
- 2026-07-10
AI Technical Summary
Current technology cannot track the download data volume of individual applications, leading to premature depletion of eMMC and impacting the lifespan of smart devices.
By setting up a data acquisition channel at the controller's underlying layer, the amount of data downloaded by each process within the current detection period is obtained. When the preset amount of downloaded data is reached, the process is prohibited from writing data to the eMMC, and the writing frequency is adjusted to limit the amount of data.
This effectively limits the amount of data written to eMMC, extends its lifespan, and ensures the normal operation of smart devices.
Smart Images

Figure CN115794534B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of smart device technology, and in particular to a display device and a method for monitoring application software. Background Technology
[0002] Smart devices are electronic products with a fully open platform and an operating system. While enjoying regular television content, users can install and uninstall various applications to continuously expand and upgrade the television's functionality, thus providing a more convenient and richer experience. Smart devices support many applications, including those pre-installed on the television platform and third-party applications downloaded and installed by the user.
[0003] During the use of smart devices, each application software has a corresponding process that stores the corresponding downloaded data in the embedded Multi Media Card (eMMC). However, currently, the processes corresponding to each application software cannot individually store their own downloaded data in the eMMC. Instead, the downloaded data from all processes is aggregated into a single total download data and then stored in the eMMC. In other words, there is currently no way to count the amount of downloaded data written by each individual process; only the total download data written by all processes can be counted. Therefore, it is impossible to limit the amount of data downloaded by the eMMC in a single transaction.
[0004] Some applications download large amounts of data to the eMMC at once during runtime, which can lead to premature depletion of the eMMC's lifespan and even affect the lifespan of smart devices. To regulate the downloading behavior of various applications in the eMMC, specialized monitoring and defragmentation are needed for these applications that perform large write operations. However, currently, it is impossible to statistically analyze the amount of data downloaded by each process each time, making it impossible to monitor a specific process individually, thus severely impacting the eMMC's lifespan. Summary of the Invention
[0005] This disclosure provides a display device and a method for monitoring application software, which monitors and limits the amount of downloaded data from the application software written to the eMMC, thereby ensuring the lifespan of the eMMC.
[0006] The specific technical solution provided in this disclosure is as follows:
[0007] In a first aspect, this disclosure provides a display device, comprising: a display, an embedded memory, and a controller, wherein:
[0008] The display is used to show information;
[0009] The embedded memory is used to store computer programs that can be executed by the controller;
[0010] The controller, which is connected to both the display and the embedded memory, is configured to:
[0011] The acquisition unit acquires the amount of data downloaded by each process within the current detection period. The process is the process corresponding to the application software started after the smart device is powered on this time. The acquisition unit is a data acquisition channel set at the bottom layer of the controller.
[0012] For each process, the acquisition unit obtains the amount of sub-data downloaded by each thread of the process within the current detection period;
[0013] If the sum of the data volume of the process and the sub-data volume of each thread corresponding to the process reaches the preset download data volume of the application software corresponding to the process, then the process and the corresponding threads are prohibited from continuing to write the download data and the download sub-data to the eMMC within the current detection period, and the process and the corresponding threads are prohibited from continuing to download within the current detection period.
[0014] In some embodiments, the controller is configured to perform the acquisition of the amount of data downloaded by each process within the current detection period through the acquisition unit, including:
[0015] The acquisition unit acquires the processes corresponding to each application software that has been running and exited during the current detection period, and the amount of data downloaded during the current detection period. The acquisition unit is located in the Linux kernel at the bottom layer of the controller.
[0016] In some embodiments, the processes corresponding to each application software that exits during the current detection period include a first type of process that terminates after the application software exits, and a second type of process that continues to run after the application software exits.
[0017] The controller is configured to execute the process acquisition unit to obtain the data volume of each application software that exited within the current detection period, and the data volume downloaded within the current detection period, including:
[0018] For application software that exits during the current detection period: when the exit indication of the application software is detected, the acquisition unit obtains the amount of download data corresponding to the first type of process, finds the parent process corresponding to the first type of process, and determines the running status of the parent process. The download data corresponding to the parent process includes the download data and configuration parameters corresponding to the process.
[0019] If the parent process is running, then the amount of download data corresponding to the first type of process is subtracted from the amount of download data corresponding to the parent process to obtain the amount of data for the second type of process; or
[0020] If the parent process is in an exited state, then the most recent parent process that is in a started state is determined, and the amount of data downloaded by the first type of process is subtracted from the amount of data downloaded by the determined parent process to obtain the amount of data downloaded by the second type of process.
[0021] The data volume of the second type of process is taken as the data volume downloaded by the process corresponding to the application software that exits after issuing the exit instruction within the current detection period.
[0022] In some embodiments, the controller is configured to execute the prohibition of the process and the corresponding threads from continuing to write the download data and the download sub-data to the eMMC during the current detection period, including:
[0023] Send a write-prohibit signal to the application software to instruct the process and its corresponding threads to cease sending the downloaded data and downloaded sub-data to the eMMC during the current detection period; or
[0024] The connection between the application software and the eMMC is severed so that the process and its corresponding threads cannot continue to write the downloaded data and the downloaded sub-data to the eMMC during the current detection cycle.
[0025] In some embodiments, the controller is configured to, after obtaining the amount of sub-data downloaded by each thread corresponding to the process within the current detection period through the acquisition unit for each process, further configure to perform:
[0026] For each process, monitor the write frequency of the downloaded data written to the eMMC by that process;
[0027] When the write frequency is higher than the preset frequency, the write frequency of the process in the eMMC is adjusted to the preset frequency.
[0028] In some embodiments, the controller is also configured to perform:
[0029] If, during the current detection cycle, an application that exited after issuing an exit instruction is detected to re-enter the startup state;
[0030] Then, within the current detection period, the acquisition unit obtains the amount of newly downloaded data of the process corresponding to the application software that has re-entered the startup state. The newly downloaded data and the data volume are summed to obtain the total data volume of the process within the current detection period.
[0031] In some embodiments, the controller is also configured to perform:
[0032] The application software corresponding to processes that reach the preset download data amount and processes that exceed the preset frequency within the current detection period are all recorded as target application software, and the cache of the target application software is cleared.
[0033] Secondly, this disclosure also provides a method for monitoring application software, including:
[0034] The acquisition unit acquires the amount of data downloaded by each process within the current detection period. The process is the process corresponding to the application software started after the smart device is powered on this time. The acquisition unit is a data acquisition channel set at the bottom layer of the controller.
[0035] For each process, the acquisition unit obtains the amount of sub-data downloaded by each thread of the process within the current detection period;
[0036] If the sum of the data volume of the process and the sub-data volume of each thread corresponding to the process reaches the preset download data volume of the application software corresponding to the process, then the process and the corresponding threads are prohibited from continuing to write the download data and the download sub-data to the eMMC within the current detection period, and the process and the corresponding threads are prohibited from continuing to download within the current detection period.
[0037] In some embodiments, the step of acquiring the amount of data downloaded by each process within the current detection period through the acquisition unit includes:
[0038] The acquisition unit acquires the processes corresponding to each application software that has been running and exited during the current detection period, and the amount of data downloaded during the current detection period. The acquisition unit is located in the Linux kernel at the bottom layer of the controller.
[0039] In some embodiments, the processes corresponding to each application software that exits during the current detection period include a first type of process that terminates after the application software exits, and a second type of process that continues to run after the application software exits.
[0040] The step of acquiring the processes corresponding to each application software that exited during the current detection period through the acquisition unit, and the amount of data downloaded during the current detection period, includes:
[0041] For application software that exits during the current detection period: when the exit indication of the application software is detected, the acquisition unit obtains the amount of download data corresponding to the first type of process, finds the parent process corresponding to the first type of process, and determines the running status of the parent process. The download data corresponding to the parent process includes the download data and configuration parameters corresponding to the process.
[0042] If the parent process is running, then the amount of download data corresponding to the first type of process is subtracted from the amount of download data corresponding to the parent process to obtain the amount of data for the second type of process; or
[0043] If the parent process is in an exited state, then the most recent parent process that is in a started state is determined, and the amount of data downloaded by the first type of process is subtracted from the amount of data downloaded by the determined parent process to obtain the amount of data downloaded by the second type of process.
[0044] The data volume of the second type of process is taken as the data volume downloaded by the process corresponding to the application software that exits after issuing the exit instruction within the current detection period.
[0045] In summary, this disclosure provides a display device and a method for monitoring application software. The display device includes a display, an embedded memory, and a controller. The controller is configured to acquire the amount of data downloaded by each process within the current detection period through an acquisition unit. The acquisition unit is a data acquisition channel set at the controller's underlying layer. For each process, the acquisition unit acquires the amount of sub-data downloaded by each thread corresponding to the process within the current detection period. If the sum of the process's data volume and the sub-data volume of each thread corresponding to the process reaches the preset download data volume of the application software corresponding to the process, the process and its corresponding threads are prohibited from continuing to write download data and download sub-data to the eMMC within the current detection period, and the process and its corresponding threads are also prohibited from continuing to download within the current detection period, thus avoiding the situation of writing a large amount of data to the eMMC. Attached Figure Description
[0046] To more clearly illustrate the technical solutions of the embodiments of this disclosure, the accompanying drawings used in the embodiments of this disclosure will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0047] Figure 1 This illustrates a use case of a display device according to some embodiments;
[0048] Figure 2 A hardware configuration block diagram of a control device 100 according to some embodiments is shown;
[0049] Figure 3 A hardware configuration block diagram of a display device 200 according to some embodiments is shown;
[0050] Figure 4 A flowchart illustrating the monitoring of application software according to some embodiments is shown;
[0051] Figure 5 A flowchart illustrating the monitoring of a first type of process and a second type of process according to some embodiments is shown;
[0052] Figure 6 A flowchart illustrating frequency limiting of a process according to some embodiments is shown. Detailed Implementation
[0053] To make the objectives and implementation methods of this disclosure clearer, the exemplary embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings of the exemplary embodiments of this disclosure. Obviously, the exemplary embodiments described are only some embodiments of this disclosure, and not all embodiments.
[0054] It should be noted that the brief descriptions of terms in this disclosure are only for the convenience of understanding the embodiments described below, and are not intended to limit the embodiments of this disclosure. Unless otherwise stated, these terms should be understood in their ordinary and common meaning.
[0055] In this disclosure, the terms "first," "second," "third," etc., used in the specification, claims, and accompanying drawings are used to distinguish similar or related objects or entities, and do not necessarily imply a specific order or sequence, unless otherwise specified. It should be understood that such terms are interchangeable where appropriate.
[0056] The terms “include” and “have”, and any variations thereof, are intended to cover but not exclusively include, for example, a product or device that includes a range of components is not necessarily limited to all of the components that are clearly listed, but may include other components that are not clearly listed or that are inherent to such product or device.
[0057] The term "module" refers to any known or subsequently developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and / or software code that is capable of performing the functions associated with that element.
[0058] Figure 1 This is a schematic diagram illustrating a usage scenario of the display device according to an embodiment. For example... Figure 1 As shown, the display device 200 also communicates with the server 400, and the user can operate the display device 200 through the smart device 300 or the control device 100.
[0059] In some embodiments, the control device 100 may be a remote control. Communication between the remote control and the display device includes at least one of infrared protocol communication, Bluetooth protocol communication, and other short-range communication methods, controlling the display device 200 wirelessly or via a wired connection. Users can control the display device 200 by inputting user commands through at least one method, such as buttons on the remote control, voice input, or control panel input.
[0060] In some embodiments, the smart device 300 may include any one of a mobile terminal, tablet computer, computer, laptop computer, AR / VR device, etc.
[0061] In some embodiments, a smart device 300 may also be used to control the display device 200. For example, an application running on the smart device may be used to control the display device 200.
[0062] In some embodiments, the smart device 300 and the display device may also be used for data communication.
[0063] In some embodiments, the display device 200 can also be controlled in ways other than the control device 100 and the smart device 300. For example, it can be controlled by directly receiving the user's voice commands through a module configured inside the display device 200 for acquiring voice commands, or it can be controlled by receiving the user's voice commands through a voice control device set outside the display device 200.
[0064] In some embodiments, the display device 200 also communicates with the server 400. The display device 200 may communicate via a local area network (LAN), wireless local area network (WLAN), and other networks. The server 400 may provide various content and interactive features to the display device 200. The server 400 may be a cluster or multiple clusters, and may include one or more types of servers.
[0065] In some embodiments, software steps executed by one execution entity can be migrated to another execution entity with which it communicates data, as needed. For example, software steps executed by a server can be migrated to a display device with which it communicates data, and vice versa.
[0066] Figure 2 An exemplary block diagram of the configuration of the control device 100 according to an exemplary embodiment is shown. Figure 2 As shown, the control device 100 includes a controller 110, a communication interface 130, a user input / output interface 140, a memory, and a power supply. The control device 100 can receive user input operation commands and convert the operation commands into commands that the display device 200 can recognize and respond to, thus acting as an intermediary for interaction between the user and the display device 200.
[0067] In some embodiments, the communication interface 130 is used for external communication and includes at least one of a WIFI chip, a Bluetooth module, an NFC module, or an alternative module.
[0068] In some embodiments, the user input / output interface 140 includes at least one of a microphone, touchpad, sensor, button, or alternative module.
[0069] Figure 3 A hardware configuration block diagram of a display device 200 according to an exemplary embodiment is shown.
[0070] In some embodiments, the display device 200 includes at least one of a tuner 210, a communicator 220, a detector 230, an external device interface 240, a controller 250, a display 260, an audio output interface 270, a memory, a power supply, and a user interface.
[0071] In some embodiments, the controller includes a central processing unit, a video processor, an audio processor, a graphics processor, RAM, ROM, and a first to an nth interface for input / output.
[0072] In some embodiments, the display 260 includes a display screen component for presenting an image, a driving component for driving image display, a component for receiving image signals output from a controller, and a user control UI interface, etc.
[0073] In some embodiments, the display 260 may be at least one of a liquid crystal display, an OLED display, and a projection display, and may also be a projection device and a projection screen.
[0074] In some embodiments, the tuner 210 receives broadcast television signals via wired or wireless reception and demodulates audio and video signals, such as EPG data signals, from a plurality of wireless or wired broadcast television signals.
[0075] In some embodiments, the communicator 220 is a component used to communicate with external devices or servers according to various communication protocol types. For example, the communicator may include at least one of a Wi-Fi module, a Bluetooth module, a wired Ethernet module, other network communication protocol chips or near-field communication protocol chips, and an infrared receiver. The display device 200 can establish the transmission and reception of control signals and data signals with the control device 100 or the server 400 through the communicator 220.
[0076] In some embodiments, detector 230 is used to acquire signals from the external environment or to interact with the outside world. For example, detector 230 includes a light receiver, a sensor for acquiring ambient light intensity; or, detector 230 includes an image acquisition device, such as a camera, which can be used to acquire external environmental scenes, user attributes, or user interaction gestures; or, detector 230 includes a sound acquisition device, such as a microphone, for receiving external sounds.
[0077] In some embodiments, the external device interface 240 may include, but is not limited to, one or more interfaces such as: High Definition Multimedia Interface (HDMI), analog or data high-definition component input interface (component), composite video input interface (CVBS), USB input interface (USB), RGB port, etc. It may also be a composite input / output interface formed by multiple interfaces mentioned above.
[0078] In some embodiments, the controller 250 and the tuner 210 may be located in different separate devices, that is, the tuner 210 may also be located in an external device of the main device where the controller 250 is located, such as an external set-top box.
[0079] In some embodiments, the controller 250, through various software control programs stored in the memory, is configured in this embodiment to acquire the amount of data downloaded by each process in the current detection period through the acquisition unit, wherein the process is the process corresponding to the application software started after the smart device is powered on this time, and the acquisition unit is a data acquisition channel set at the bottom layer of the controller.
[0080] For each process, the amount of sub-data downloaded by each thread of the process within the current detection period is obtained through the acquisition unit;
[0081] If the total amount of data in a process and the total amount of sub-data in each thread of the process reach the preset download data amount of the application software corresponding to the process, then the process and its corresponding threads are prohibited from continuing to write download data and download sub-data to the eMMC within the current detection period, and the process and its corresponding threads are also prohibited from continuing to download within the current detection period.
[0082] In some embodiments, the user can input user commands through a graphical user interface (GUI) displayed on the display 260, and the user input interface receives the user input commands through the GUI. Alternatively, the user can input user commands by inputting specific sounds or gestures, and the user input interface receives the user input commands by recognizing the sounds or gestures through sensors.
[0083] In some embodiments, a "user interface" is the medium through which an application or operating system interacts and exchanges information with a user, converting information between its internal form and a form acceptable to the user. A common form of user interface is the graphical user interface (GUI), which refers to a user interface related to computer operation displayed graphically. It can be an icon, window, control, or other interface element displayed on the screen of an electronic device. Controls can include at least one of the following visual interface elements: icons, buttons, menus, tabs, text boxes, dialog boxes, status bars, navigation bars, and widgets.
[0084] In some embodiments, the user interface 280 is an interface that can be used to receive control input (e.g., physical buttons on the display device body, or others).
[0085] In some embodiments, the display device's system may include a kernel, a command interpreter (shell), a file system, and applications. The kernel, shell, and file system together form the basic operating system structure, allowing users to manage files, run programs, and use the system. Upon power-up, the kernel starts, activates the kernel space, abstracts hardware, initializes hardware parameters, and runs and maintains virtual memory, the scheduler, signals, and inter-process communication (IPC). After the kernel starts, the shell and user applications are loaded. Applications are compiled into machine code after startup, forming a process.
[0086] The display device provided in this disclosure will now be described in detail with reference to the accompanying drawings. First, it should be noted that the display device includes: a display 260, an embedded Multi Media Card (eMMC), and a controller 250, wherein: the display 260 is used to display information; the image acquisition unit is used to acquire images; and the embedded memory is used to store computer programs that can be executed by the controller 250. The embedded memory is connected to the controller 250, and the controller 250 writes download data and download sub-data to the eMMC to achieve the storage of download data. The aforementioned smart device can be any one of a smart TV, mobile terminal, tablet computer, computer, laptop computer, AR / VR device, etc.
[0087] The main functions of controller 250 are described below, i.e., controller 250 is configured to perform:
[0088] The acquisition unit acquires the amount of data downloaded by each process within the current detection period. The process is the application software that starts after the smart device is powered on this time, and the acquisition unit is the data acquisition channel set at the bottom layer of the controller 250.
[0089] It should be noted that a smart device typically has multiple applications installed. One or more of these applications can be launched simultaneously (e.g., XX Music and Game AA). Applications can launch and then exit, or launch and then exit again, and so on. In this embodiment, the process refers to the process corresponding to the application that launches after the smart device is powered on this time. The power-on launch is the starting point for the application to download data.
[0090] However, considering the accuracy of data acquisition, this disclosure has uniformly processed the time period of application software download data, that is, limited to the current detection period. The current detection period can be flexibly set according to different usage scenarios. The starting point of the current detection period is any time after the smart device is powered on this time.
[0091] In some embodiments, the controller 250 is configured to acquire, through the acquisition unit, the amount of data downloaded by each process within the current detection period, specifically including:
[0092] The acquisition unit obtains the processes corresponding to each application software that has been running and exited during the current detection period, and the amount of data downloaded during the current detection period. The acquisition unit is set in the Linux kernel at the bottom layer of the controller 250.
[0093] Because the Linux kernel creates a process descriptor for each process when it is created to store relevant information about the process, including the process name, process ID, and process I / O write volume, etc. The process I / O write volume is the amount of data downloaded by the process as recorded by the Linux kernel.
[0094] In order to comprehensively and accurately obtain the download data volume corresponding to application software in different operating states, in this embodiment of the disclosure, the controller 250 is configured to perform the following two operations:
[0095] The first scenario involves obtaining the processes of each application software that has been running continuously during the current detection period through the acquisition unit, and then calculating the amount of data downloaded during the current detection period.
[0096] During implementation, from the start of the current detection cycle to the end of the current detection cycle, the data volume of each application software process that is always in the running state is directly read by traversing each process (e.g., process descriptor) through the acquisition unit. This data volume is the amount of IO written mentioned above.
[0097] Preferably, a segment of memory can be pre-allocated in the smart device, and a storage structure such as a linked list or array can be established in the memory. When the data volume of the downloaded data corresponding to a process is traversed, that is, after reading an IO write volume, it is stored in the corresponding position of the linked list or array, and so on, until the data volume of the downloaded data of the process corresponding to each application software in the current detection period is obtained through the acquisition unit.
[0098] The second scenario involves obtaining the processes corresponding to each application that exited during the current detection period through the acquisition unit, and then downloading the data volume during the current detection period.
[0099] It should be further clarified here that the processes corresponding to the various application software that exit during the current detection period include the first type of processes that terminate after the application software exits, and the second type of processes that continue to run after the application software exits.
[0100] During implementation, the application software may exit at any time within the current testing period. Before the application software exits, the amount of data downloaded by its corresponding process is the same as the amount of data downloaded by the process corresponding to the exiting application software. That is, after the application software exits, it no longer downloads new data, so the amount of data downloaded by it within the current testing period will no longer increase. Here, this type of process is referred to as the first type of process.
[0101] Meanwhile, after the application software exits, its corresponding configuration parameters will continue to run in the process so that they can be called when the application software is restarted within the current detection cycle. This type of process is referred to as the second type of process.
[0102] For the first and second types of processes mentioned above, the controller 250 is configured to obtain the data volume of each application software process that exited during the current detection period through the acquisition unit, specifically including:
[0103] For application software that exits during the current detection cycle: when an exit indication of the application software is detected, the data volume of the download data corresponding to the first type of process is obtained through the acquisition unit, and the parent process corresponding to the first type of process is found to determine the running status of the parent process. The download data corresponding to the parent process includes the download data and configuration parameters of the process.
[0104] All processes need to call the Linux kernel to release related resources when they exit. Therefore, for application software that exits within the current detection period: before exiting, the application software must first send an exit instruction to the Linux kernel. The application software will officially exit only after the exit instruction takes effect. When the exit instruction of the application software is detected, the amount of downloaded data corresponding to the first type of process is obtained through the acquisition unit. The specific acquisition method is the same as the first case mentioned above.
[0105] Furthermore, the configuration parameters corresponding to this process are stored in its parent process. That is, the download data for the parent process includes both the download data and configuration parameters of the process itself. Therefore, during implementation, it is necessary to locate the parent process corresponding to the first type of process and further determine its running status. This is because when the parent process is running, its download data includes the download data and configuration parameters of its subordinate processes; when the parent process is exited, it transfers the download data and configuration parameters of its subordinate processes to the nearest running parent process for storage.
[0106] If the parent process is running, the amount of data downloaded by the first type of process is subtracted from the amount of data downloaded by the parent process to obtain the amount of data downloaded by the second type of process. Or
[0107] During implementation, when determining that the parent process is in a running state, in order to obtain the data volume of the second type of process mentioned above, the data volume of the first type of process is subtracted from the data volume of the downloaded data corresponding to the parent process. That is, the data volume of the downloaded data corresponding to the parent process is subtracted from the data volume of the process corresponding to the exited application software to obtain the data volume of the process that is still in a running state for parameter configuration corresponding to the exited application software within the current detection period.
[0108] If the parent process is in an exited state, then determine the most recent parent process that is in a running state, and subtract the amount of data downloaded by the first type of process from the amount of data downloaded by the determined parent process to obtain the amount of data downloaded by the second type of process.
[0109] During implementation, when determining that the parent process is in the running state, in order to obtain the data volume of the second type of process mentioned above, it is necessary to first determine the parent process that is in the running state of the currently exiting parent process. The most recent level here is the parent process that is closest to the currently exiting parent process in the previous level parent process.
[0110] After determining the most recent parent process that is currently running, the amount of data downloaded by the first type of process is subtracted from the amount of data downloaded by the parent process. In other words, the amount of data downloaded by the parent process is subtracted from the amount of data downloaded by the process corresponding to the exited application software. This yields the amount of data downloaded by the process that is still running for parameter configuration and is corresponding to the exited application software during the current detection period, which is the amount of data downloaded by the second type of process.
[0111] The data volume of the second type of process is taken as the data volume downloaded by the process corresponding to the application software that exits after issuing the exit instruction within the current detection period.
[0112] Since the process for parameter configuration corresponding to the application software that has exited is still running during the current detection period, in order to track and count it, the data volume of the second type of process mentioned above is taken as the data volume of the process corresponding to the application software that exited after the exit instruction was issued, during the current detection period.
[0113] Furthermore, for application software that restarts after being launched and then exited, as well as application software that restarts multiple times, in this embodiment of the disclosure, the controller 250 is configured to execute:
[0114] During implementation, if an application that exited after issuing an exit instruction is detected to re-enter the startup state within the current detection cycle, it means that the application has new downloaded data after restarting within the current detection cycle.
[0115] Then, within the current detection period, the acquisition unit obtains the newly downloaded data volume of the process corresponding to the application software that has re-entered the startup state. The specific acquisition method is the same as the first case mentioned above. The newly downloaded data volume and the data volume are summarized. The data volume here is the data volume of the first type of process mentioned above, and the total data volume of the process within the current detection period is obtained.
[0116] In this embodiment of the disclosure, the controller 250 is configured to execute, for each process, to obtain the amount of sub-data downloaded by each thread of the process within the current detection period through the acquisition unit.
[0117] Considering that the process's IO write volume does not record the sub-data volume of each thread downloading sub-data within the process, during implementation, for each process, multiple thread traffic monitoring and reading sub-units are set up in the acquisition unit. The number of thread traffic monitoring and reading sub-units is consistent with the number of threads in the process. During the downloading of sub-data by each thread, the thread traffic monitoring and reading sub-units will statistically analyze its data volume in real time, thereby obtaining the sub-data volume of each thread downloading sub-data within the current detection period.
[0118] If the total amount of data in a process and the total amount of sub-data in each thread of the process reach the preset download data amount of the application software corresponding to the process, then the process and its corresponding threads are prohibited from continuing to write download data and download sub-data to the eMMC within the current detection period, and the process and its corresponding threads are also prohibited from continuing to download within the current detection period.
[0119] To effectively ensure the lifespan of the eMMC, the controller sets a preset download data volume for each application. This preset download data volume is the maximum amount of data that the application is allowed to write to the eMMC. The preset download data volumes for each application on the smart device can be set to the same or different values.
[0120] During implementation, the total data volume of the process and the sub-data volume of each thread corresponding to the process are added together to obtain the above sum. If the application software restarts, the total data volume of the process and the sub-data volume of each thread corresponding to the process are added together to obtain the above sum. Within the current detection period, it is determined whether the sum reaches the preset download data volume of the application software corresponding to the process.
[0121] If it is determined that the total amount of data downloaded within the current detection period has not reached the preset download data volume of the application software corresponding to the process, then the process corresponding to the application software is allowed to continue writing download data to the eMMC, and each thread under the process is allowed to continue writing download sub-data to the eMMC.
[0122] When it is determined that the total amount of data downloaded within the current detection period reaches the preset download data volume of the application software corresponding to the process, the process and its corresponding threads are prohibited from continuing to write download data and download sub-data to the eMMC within the current detection period. Specifically, this includes the following methods:
[0123] Method 1: Send a write-prohibit signal to the application software to instruct the process and its corresponding threads not to send download data and download sub-data to the eMMC during the current detection period.
[0124] Send a write-prohibition signal to the application software. This write-prohibition signal can carry duration information, and the duration information is effective within the current detection period. Alternatively, the write-prohibition signal can be pre-set to be effective within the current detection period. This way, it will not affect the process and the corresponding threads in the next detection period from sending download data and download sub-data to the eMMC.
[0125] During implementation, after receiving the write-prohibition signal sent by the controller 250, the application software causes its corresponding process and its corresponding threads to stop sending download data and download sub-data to the eMMC during the current detection cycle, thereby achieving the purpose of limiting the amount of data written to the eMMC.
[0126] Method 2: Disconnect the application software from the eMMC so that the process and its corresponding threads cannot continue to write download data and download sub-data to the eMMC during the current detection cycle.
[0127] This disconnects the application software from the eMMC. The disconnection action is effective within the current detection period, or the disconnection action can be pre-set to be effective within the current detection period. This way, it will not affect the process and the corresponding threads in the next detection period from sending download data and download sub-data to the eMMC.
[0128] During implementation, after the controller 250 disconnects the connection between the application software and the eMMC, the corresponding process and threads of the application software cannot continue to write download data and download sub-data to the eMMC within the current detection cycle, thereby achieving the purpose of limiting the amount of data written to the eMMC.
[0129] By using either method 1 or method 2, you can prevent application software that has reached the preset download data volume from continuing to write download data and download sub-data into the eMMC. This avoids writing a large amount of data into the eMMC, thus ensuring the lifespan of the eMMC.
[0130] For each process, after obtaining the amount of sub-data downloaded by each thread of the process within the current detection period through the acquisition unit, in this embodiment of the disclosure, the controller 250 is configured to execute:
[0131] For each process, monitor the frequency at which the process writes downloaded data to the eMMC.
[0132] Considering that frequent writing of download data and sub-data to the eMMC can also affect its lifespan, during implementation, the write frequency of each process to the eMMC within the current monitoring period is monitored. For example, the number of times a process writes download data to the eMMC per minute is counted.
[0133] When the write frequency is higher than the preset frequency, the write frequency of the process in the eMMC will be adjusted to the preset frequency.
[0134] To effectively ensure the lifespan of the eMMC, a preset frequency is set, which is the maximum number of writes allowed to the eMMC during the current detection cycle or other unit time. During implementation, when the write frequency exceeds the preset frequency, the process's write frequency to the eMMC is adjusted to the preset frequency, thereby limiting the number of times the process writes to the eMMC.
[0135] Correspondingly, defragmentation can also be performed on eMMC. For example, the trim algorithm can be used to clean up eMMC at regular intervals, or the eMMC can be cleaned up at a frequency proportional to the total amount of data mentioned above.
[0136] In addition, to improve the user experience of application software, the controller 250 is also configured to: mark the application software corresponding to processes that reach the preset download data volume and processes that exceed the preset frequency within the current detection period as target application software, that is, mark the application software that has a significant impact on eMMC as abnormal, and clean the cache of the target application software, so that the impact on the normal operation of the target application software after the download data volume and write frequency are limited, thereby ensuring the user experience.
[0137] Of course, during implementation, it is also possible to count the process names of each application software corresponding to processes that reach the preset download data volume and processes that exceed the preset frequency, including processes that are always running during the current detection period, as well as processes corresponding to each application software that exit during the current detection period, so as to monitor each application software.
[0138] Alternatively, the target application software can be sent to the server for big data analysis, which can then be optimized. The target application software can also be sent directly to user terminals (including other smart devices, user mobile phones, etc.) connected to the server to inform users in advance of the application software exhibiting the aforementioned behavior.
[0139] After introducing a display device provided by an embodiment of this disclosure, based on the same inventive concept, see [link to relevant documentation]. Figure 4 As shown, the method for monitoring application software provided in this disclosure embodiment will be described below:
[0140] Step 400: The acquisition unit acquires the amount of data downloaded by each process in the current detection period. The process is the process corresponding to the application software started after the smart device is powered on this time, and the acquisition unit is the data acquisition channel set at the bottom layer of the controller.
[0141] Step 401: For each process, obtain the amount of sub-data downloaded by each thread of the process within the current detection period through the acquisition unit;
[0142] Step 402: If the total amount of data in the process and the total amount of sub-data in each thread of the process reach the preset download data amount of the application software corresponding to the process, then the process and its corresponding threads are prohibited from continuing to write download data and download sub-data to the embedded memory eMMC within the current detection period, and the process and its corresponding threads are also prohibited from continuing to download within the current detection period.
[0143] In some embodiments of this disclosure, the acquisition unit acquires the amount of data downloaded by each process within the current detection period, including:
[0144] The acquisition unit obtains the processes of each application software that has been running and exited during the current detection period, and the amount of data downloaded during the current detection period. The acquisition unit is set in the Linux kernel at the bottom layer of the controller.
[0145] In some embodiments of this disclosure, the processes corresponding to each application software that exits during the current detection period include a first type of process that terminates after the application software exits, and a second type of process that continues to run after the application software exits.
[0146] The acquisition unit obtains the processes corresponding to each application software that exited during the current detection period, and the amount of data downloaded during the current detection period. (See reference...) Figure 5 As shown, it includes:
[0147] Step 4000: For application software that exits during the current detection period: When an exit indication of the application software is detected, the amount of download data corresponding to the first type of process is obtained through the acquisition unit, and the parent process corresponding to the first type of process is found to determine the running status of the parent process. The download data corresponding to the parent process includes the download data and configuration parameters of the process.
[0148] Step 4001: If the parent process is in the running state, subtract the download data volume of the first type of process from the download data volume of the parent process to obtain the data volume of the second type of process; or
[0149] Step 4002: If the parent process is in an exited state, determine the most recent parent process that is in the started state, and subtract the amount of data downloaded by the first type of process from the amount of data downloaded by the determined parent process to obtain the amount of data downloaded by the second type of process;
[0150] Step 4003: Take the data volume of the second type of process as the data volume of the process corresponding to the application software that exited after issuing the exit instruction, and download the data within the current detection period.
[0151] In some embodiments of this disclosure, processes and their corresponding threads are prohibited from continuing to write download data and download sub-data to the eMMC during the current detection period, including:
[0152] Send a write-prohibit signal to the application software to instruct the process and its corresponding threads not to send download data and download sub-data to the eMMC during the current detection period; or
[0153] Disconnect the application software from the eMMC so that the process and its corresponding threads cannot continue to write download data and download sub-data to the eMMC during the current detection cycle.
[0154] In some embodiments of this disclosure, for each process, after the acquisition unit obtains the amount of sub-data downloaded by each thread of the process within the current detection period, refer to... Figure 6 As shown, it also includes:
[0155] Step 4030: For each process, monitor the write frequency of the downloaded data written to the eMMC;
[0156] Step 4031: When the write frequency is higher than the preset frequency, adjust the write frequency of the process in the eMMC to the preset frequency.
[0157] In some embodiments of this disclosure, the method further includes:
[0158] If, during the current detection cycle, an application that exited after issuing an exit instruction is detected to re-enter the startup state;
[0159] The system then acquires the amount of new download data for the process corresponding to the application software that has re-entered the startup state within the current detection period through the acquisition unit. The new data amount is then summed with the total data amount to obtain the total data amount of the process within the current detection period.
[0160] In some embodiments of this disclosure, the method further includes:
[0161] The application software corresponding to processes that reach the preset download data volume and processes that exceed the preset frequency within the current detection period are all recorded as target application software, and the cache of the target application software is cleared.
[0162] In summary, this disclosure provides a display device and a method for monitoring application software. The display device includes a display, an embedded memory, and a controller. The controller is configured to acquire the amount of data downloaded by each process within the current detection period through an acquisition unit. The acquisition unit is a data acquisition channel set at the controller's underlying layer. For each process, the acquisition unit acquires the amount of sub-data downloaded by each thread corresponding to the process within the current detection period. If the sum of the process's data volume and the sub-data volume of each thread corresponding to the process reaches the preset download data volume of the application software corresponding to the process, the process and its corresponding threads are prohibited from continuing to write download data and download sub-data to the eMMC within the current detection period, and the process and its corresponding threads are also prohibited from continuing to download within the current detection period, thus avoiding the situation of writing a large amount of data to the eMMC.
[0163] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this disclosure, and are not intended to limit them. Although this disclosure has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this disclosure.
[0164] For ease of explanation, the above description has been provided in conjunction with specific embodiments. However, the above exemplary discussion is not intended to be exhaustive or to limit the embodiments to the specific forms disclosed above. Various modifications and variations can be obtained based on the above teachings. The selection and description of the above embodiments are for the purpose of better explaining the principles and practical applications, thereby enabling those skilled in the art to better utilize the described embodiments and various different variations of embodiments suitable for specific use considerations.
Claims
1. A display device, characterized in that, include: Display, embedded memory, and controller, wherein: The display is used to show information; The embedded memory eMMC is used to store computer programs that can be executed by the controller; The controller, which is connected to both the display and the embedded memory, is configured to: The acquisition unit acquires the amount of data downloaded by each process within the current detection period. The process is the process corresponding to the application software started after the smart device is powered on this time. The acquisition unit is a data acquisition channel set in the Linux kernel at the bottom layer of the controller. The acquisition unit acquires the processes corresponding to each application software that has been running and exited during the current detection period, and the amount of data downloaded during the current detection period. The processes corresponding to the various application software that exited during the current detection period include a first type of process that terminated after the application software exited, and a second type of process that continued to run after the application software exited. The acquisition unit obtains the amount of data downloaded by the processes corresponding to the various application software that exited during the current detection period, including: for application software that exited during the current detection period: when an exit indication of the application software is detected, the acquisition unit obtains the amount of data downloaded by the first type of process, finds the parent process corresponding to the first type of process, and determines the running status of the parent process, wherein the number of downloads corresponding to the parent process... The data includes the download data and configuration parameters corresponding to the process; if the parent process is in a running state, the download data volume of the first type of process is subtracted from the download data volume of the parent process to obtain the data volume of the second type of process; or if the parent process is in an exited state, the most recent parent process in a running state is determined, and the download data volume of the first type of process is subtracted from the download data volume of the determined parent process to obtain the data volume of the second type of process; the data volume of the second type of process is used as the download data volume of the process corresponding to the application software that exited after issuing the exit instruction within the current detection period; For each process, the acquisition unit obtains the amount of sub-data downloaded by each thread of the process within the current detection period; If the sum of the data volume of the process and the sub-data volume of each thread corresponding to the process reaches the preset download data volume of the application software corresponding to the process, then the process and the corresponding threads are prohibited from continuing to write the download data and the download sub-data to the eMMC within the current detection period, and the process and the corresponding threads are prohibited from continuing to download within the current detection period.
2. The display device as described in claim 1, characterized in that, The controller is configured to prevent the process and its corresponding threads from continuing to write the downloaded data and the downloaded sub-data to the eMMC during the current detection period, including: Send a write-prohibit signal to the application software to instruct the process and its corresponding threads to cease sending the downloaded data and downloaded sub-data to the eMMC during the current detection period; or The connection between the application software and the eMMC is severed so that the process and its corresponding threads cannot continue to write the downloaded data and the downloaded sub-data to the eMMC during the current detection cycle.
3. The display device as described in claim 1, characterized in that, The controller is configured to, for each process, obtain the amount of sub-data downloaded by each thread corresponding to the process within the current detection period through the acquisition unit, and is further configured to execute: For each process, monitor the write frequency of the downloaded data written to the eMMC by that process; When the write frequency is higher than the preset frequency, the write frequency of the process in the eMMC is adjusted to the preset frequency.
4. The display device as claimed in claim 1, characterized in that, The controller is also configured to perform: If, during the current detection cycle, an application that exited after issuing an exit instruction is detected to re-enter the startup state; Then, within the current detection period, the acquisition unit obtains the amount of newly downloaded data of the process corresponding to the application software that has re-entered the startup state. The newly downloaded data and the data volume are summed to obtain the total data volume of the process within the current detection period.
5. The display device as described in claim 3, characterized in that, The controller is also configured to perform: The application software corresponding to processes that reach the preset download data amount and processes that exceed the preset frequency within the current detection period are all recorded as target application software, and the cache of the target application software is cleared.
6. A method for monitoring application software, characterized in that, include: The acquisition unit acquires the amount of data downloaded by each process within the current detection period. The process is the process corresponding to the application software started after the smart device is powered on this time. The acquisition unit is a data acquisition channel set in the Linux kernel at the bottom layer of the controller. The acquisition unit acquires the processes corresponding to each application software that has been running and exited during the current detection period, and the amount of data downloaded during the current detection period. The processes corresponding to the various application software that exited during the current detection period include a first type of process that terminated after the application software exited, and a second type of process that continued to run after the application software exited. The acquisition unit obtains the amount of data downloaded by the processes corresponding to the various application software that exited during the current detection period, including: for application software that exited during the current detection period: when an exit indication of the application software is detected, the acquisition unit obtains the amount of data downloaded by the first type of process, finds the parent process corresponding to the first type of process, and determines the running status of the parent process, wherein the number of downloads corresponding to the parent process... The data includes the download data and configuration parameters corresponding to the process; if the parent process is in a running state, the download data volume of the first type of process is subtracted from the download data volume of the parent process to obtain the data volume of the second type of process; or if the parent process is in an exited state, the most recent parent process in a running state is determined, and the download data volume of the first type of process is subtracted from the download data volume of the determined parent process to obtain the data volume of the second type of process; the data volume of the second type of process is used as the download data volume of the process corresponding to the application software that exited after issuing the exit instruction within the current detection period; For each process, the acquisition unit obtains the amount of sub-data downloaded by each thread of the process within the current detection period; If the sum of the data volume of the process and the sub-data volume of each thread corresponding to the process reaches the preset download data volume of the application software corresponding to the process, then the process and the corresponding threads are prohibited from continuing to write the download data and the download sub-data to the eMMC within the current detection period, and the process and the corresponding threads are prohibited from continuing to download within the current detection period.