Information processing apparatus, control method for information processing apparatus, and program

A web browser monitoring process in devices with limited memory manages and restarts memory-intensive processes to maintain stability by preventing other processes from being stopped, ensuring stable operation.

JP2025115065APending Publication Date: 2025-08-06CANON KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024009390
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-25
Publication Date
2025-08-06

AI Technical Summary

Technical Problem

Devices with relatively small memory capacities face instability due to OS forcibly stopping processes, particularly when a memory-intensive process like a web browser is running, which can affect the stability of operation.

Method used

Implement a web browser monitoring process to manage memory usage by identifying restartable processes, calculating total memory usage, determining if it exceeds a threshold, and restarting these processes to prevent other processes from being stopped.

Benefits of technology

Ensures operational stability in devices with limited memory by managing memory usage effectively, preventing other processes from being terminated.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025115065000001_ABST
    Figure 2025115065000001_ABST
Patent Text Reader

Abstract

To ensure operational stability in a more suitable manner even in an apparatus having a relatively small memory capacity.SOLUTION: A web browser monitoring process 203 acquires a first list including information on a series of restartable processes and a second list including information on a series of processes in operation. The web browser monitoring process 203 extracts one or more processes whose information is included in the first list among the series of processes whose information is included in the second list. The web browser monitoring process 203 calculates a total memory usage of the one or more extracted processes. The web browser monitoring process 203 determines whether or not the total memory usage exceeds a threshold. When it is determined that the total memory usage exceeds the threshold, the web browser monitoring process 203 restarts at least part of the one or more extracted processes.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to an information processing device, a control method for an information processing device, and a program. [Background technology]

[0002] In recent years, not only information processing devices such as PCs and servers, but also devices such as image processing devices are increasingly being connected to network services (e.g., cloud services) on networks such as the Internet. Against this background, even the above-mentioned devices may be configured to run software for using network services such as web browsers. As a result, even devices with relatively small memory capacities compared to PCs, servers, etc., such as the above-mentioned devices, are beginning to run a variety of software processes. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2001-331348 Summary of the Invention [Problem to be solved by the invention]

[0004] On the other hand, when a process that uses a relatively large amount of memory, such as a web browser, is running on a device with a relatively small memory capacity, such as the device exemplified above, the OS (Operating System) may forcibly stop other processes. In such a situation, depending on the process that is forcibly stopped, the stability of the device's operation may be impaired.

[0005] In view of the above problems, the present invention aims to ensure operational stability in a more suitable manner even in devices with relatively small memory capacities. [Means for solving the problem]

[0006] The information processing device of the present invention is characterized by having a first acquisition means for acquiring a first list containing information on each of a series of processes that can be restarted; a second acquisition means for acquiring a second list containing information on each of a series of processes that are currently running; an extraction means for extracting one or more processes whose information is included in the first list from the series of processes whose information is included in the second list; a calculation means for calculating the total memory usage of each of the one or more processes extracted by the extraction means; a determination means for determining whether the total memory usage calculated by the calculation means exceeds a threshold; and a restart means for restarting at least some of the one or more processes extracted by the extraction means when the determination means determines that the total memory usage exceeds the threshold. [Effects of the Invention]

[0007] According to the present invention, it is possible to ensure operational stability in a more suitable manner even in a device with a relatively small memory capacity. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 1 illustrates an example of a hardware configuration of an image processing apparatus. [Figure 2] FIG. 2 is a diagram illustrating an example of a software configuration of the image processing apparatus. [Figure 3] FIG. 10 is a diagram illustrating an example of a process information list. [Figure 4] 10 is a flowchart illustrating an example of processing by the image processing device. [Figure 5] FIG. 2 is a diagram illustrating an example of a software configuration of the image processing apparatus. [Figure 6] 10 is a flowchart illustrating an example of processing by the image processing device. DETAILED DESCRIPTION OF THE INVENTION

[0009] Preferred embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. In this specification and drawings, components having substantially the same functional configurations are designated by the same reference numerals, and redundant description will be omitted.

[0010] First Embodiment An example of a hardware configuration of an image processing device 100 according to an embodiment of the present disclosure will be described with reference to Fig. 1. Note that the image processing device 100 corresponds to an example of an information processing device according to an embodiment of the present disclosure. The image processing device 100 includes a CPU (Central Processing Unit) 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, and an external storage device 104. The image processing device 100 also includes a UI (User Interface) 105, a print engine 107, and a network interface control unit 108. The above-described components of the image processing device 100 are connected via a bus 106 so as to be able to send and receive data to and from each other.

[0011] The CPU 101 corresponds to a control device (central processing unit) that controls the entire device, and comprehensively controls the operations of each component connected via a bus 106. The CPU 101 also executes software programs stored in predetermined storage areas (for example, the ROM 102, RAM 103, and external storage device 104), thereby realizing the functions of the image processing device 100 according to this embodiment. The ROM 102 is a storage area in which various software programs are stored. The RAM 103 is a storage area used as a temporary storage area such as a main memory or work area for the CPU 101. The external storage device 104 is a storage area for storing various programs and various data, and may store, for example, a software program for realizing the functions of the image processing device 100 according to this embodiment. The CPU 101 implements the functions of the image processing device 100 according to this embodiment by, for example, loading a program stored in the ROM 102 or the external storage device 104 into the RAM 103 and executing the program.

[0012] The UI 105 corresponds to a user interface for receiving input from a user and presenting information to the user. The UI 105 may be realized, for example, as a liquid crystal touch panel or a combination of a liquid crystal panel and hard keys. In the image processing device 100 according to this embodiment, the UI 105 may be used to display a web browser. The print engine 107 executes various processes related to printing. The network interface control unit 108 serves as an interface for connecting the image processing device 100 to a predetermined network. In the example shown in FIG. 1, the image processing device 100 is connected to a network 109 via the network interface control unit 108. The type of the network 109 is not particularly limited, and may be, for example, the Internet or a LAN (Local Area Network). The network 109 may be a wired network or a wireless network. Depending on the type of the network 109, the device applied as the network interface control unit 108 for connecting to the network 109 may be changed as appropriate. In the example shown in FIG. 1, a web server 110 is connected to a network 109 . The web server 110 transmits web content to a web browser in response to a request from the web browser.

[0013] An example of the software configuration of the image processing device 100 according to this embodiment will be described with reference to FIG. 2, one or more web browser processes 202 that configure a web browser and other processes 204 that implement other functions are running on an OS (Operating System) 201. In addition to these processes, a web browser monitoring process 203 is also running on the OS 201. The web browser process 202 makes a memory request to the OS 201 for allocation of memory required for operation, as indicated by the reference numeral 212. The OS 201 receives the memory request indicated by the reference numeral 212 and allocates memory to the web browser process 202, as indicated by the reference numeral 215. The other process 204 makes a memory request to the OS 201 for allocation of memory necessary for operation, as indicated by the reference numeral 214. The OS 201 receives the memory request indicated by the reference numeral 214 and allocates memory to the other process 204, as indicated by the reference numeral 215.

[0014] As indicated by the reference numeral 208, the web browser monitoring process 203 reads a web browser process name list 205 for identifying web browser processes from the external storage device 104. As indicated by the reference numeral 209, the web browser monitoring process 203 also reads a memory usage threshold 206 that defines the memory capacity available to the web browser process from the external storage device 104. A value equivalent to the memory capacity that has been confirmed in advance to prevent other processes 204 from being forcibly stopped is set for the memory usage threshold 206. In this embodiment, the web browser process name list 205 corresponds to an example of a first list containing information on each of a series of restartable processes, and in this case, the web browser process corresponds to an example of a restartable process.

[0015] When the OS 201 receives a memory request from the web browser process 202 or another process 204, it first allocates memory from the RAM 103 to the requesting process. When RAM 103 runs out of space, the OS 201 creates a swap file on the external storage device 104 and writes unused data from the RAM 103 allocated to the process to the swap file on the external storage device 104. When a process attempts to access data on the swap file, the OS 201 returns the data on the swap file to RAM 103 and makes the data available to the process.

[0016] The web browser monitoring process 203 stores a web browser memory usage total value 207, which is the total value of the memory size used by the web browser processes. As indicated by the reference numeral 210, the web browser monitoring process 203 obtains from the OS 201 an information list of processes running on the image processing apparatus (hereinafter also referred to as a process information list 301). As indicated by the reference numeral 211, the web browser monitoring process 203 obtains from the OS 201 the memory usage of the web browser identified by the web browser process name list 205.

[0017] An example of the process information list 301 will be described with reference to Fig. 3. The process information list 301 is a list of process information 302. The process information 302 includes various information related to the target process. As a specific example, the process information 302 includes information such as a process name 303 indicating the name of the process, a VmRSS value 304 indicating the capacity of the physical memory used, and a VmSwap value 305 indicating the capacity of the swap memory used. The memory of the image processing device 100 is composed of physical memory and swap memory. Therefore, the sum of the VmRSS value 304 and VmSwap value 305 used by the Web browser process is the memory capacity used by the Web browser process out of the entire memory of the image processing device. In this embodiment, the process information list 301 corresponds to an example of a second list that includes information on each of a series of processes that are running.

[0018] An example of processing by the image processing device 100 according to this embodiment will be described with reference to FIG. 4, focusing particularly on the processing by the Web browser monitoring process 203. In S401, the Web browser monitoring process 203 is started in conjunction with the start-up of the image processing device 100, and starts the series of processes shown in Fig. 4. Note that in the example shown in Fig. 4, the CPU 101 of the image processing device 100 actually executes the series of processes, but for convenience, the following description will be given assuming that the Web browser monitoring process 203 executes the processes. In S402, the Web browser monitoring process 203 reads from the external storage device 104 the memory usage threshold 206 that indicates the memory capacity available to the Web browser. In S403, the Web browser monitoring process 203 reads the Web browser process name list 205 for identifying the Web browser process from the external storage device 104. The processing of S403 corresponds to an example of a first acquisition processing for acquiring the first list (Web browser process name list 205).

[0019] In S404, the Web browser monitoring process 203 initializes the value of the Web browser memory usage total value 207 to zero. In S405, the web browser monitoring process 203 acquires the process information list 301 from the OS 201. The processing in S405 corresponds to an example of a second acquisition processing for acquiring the second list (process information list 301). In S406, the Web browser monitoring process 203 acquires one piece of process information 302 from the process information list 301 acquired in S405. In S407, the Web browser monitoring process 203 acquires the process name 303 from the process information 302 acquired in S406.

[0020] In S408, the Web browser monitoring process 203 determines whether the process name 303 acquired in S407 is the same as the process name of the Web browser included in the Web browser process name list 205 loaded in S403. If the Web browser monitoring process 203 determines that the target process name 303 is the same as the process name of the Web browser included in the Web browser process name list 205, the process proceeds to S410, and if it determines that the target process name 303 is not the same, the process proceeds to S409. In other words, if the process name 303 acquired in S407 is included in the Web browser process name list 205 loaded in S403, the process corresponding to the process name 303 is extracted as a target (a monitoring target) for the processing of S410 to S414, which will be described later.

[0021] In S409, the Web browser monitoring process 203 determines whether the process information 302 up to the last process information list 301 has been subject to the determination in S408. If the Web browser monitoring process 203 determines that the process information 302 up to the last process information list 301 has been subject to the determination in S408, the process proceeds to S414, and if it determines that the process information 302 up to the last process information list 301 has not been subject to the determination, the process proceeds to S406. If the Web browser monitoring process 203 proceeds to S406, it obtains one piece of process information 302 from the process information list 301 that has not yet been subject to the determination in S408, and makes it the subject of the processing from S407 onwards.

[0022] In S410, the Web browser monitoring process 203 acquires the VmRSS value 304 from the process information 302 acquired in S406. In S411, the Web browser monitoring process 203 adds the VmRSS value 302 acquired in S410 to the Web browser memory usage total value 207. In S412, the Web browser monitoring process 203 acquires the VmSwap value 305 from the process information 302 acquired in S406. In S413, the Web browser monitoring process 203 adds the VmSwap value 305 acquired in S412 to the Web browser memory usage total value 207. In this way, the capacity of memory (physical memory and swap memory) used by the process (Web browser process 202) extracted as a monitoring target by the processing of S406 to S407 is added to the Web browser memory usage total value 207. Thereafter, the Web browser monitoring process 203 advances the process to S409.

[0023] In S414, the Web browser monitoring process 203 determines whether the Web browser memory usage total value 207 is equal to or less than the memory usage threshold value 206. In this case, the Web browser memory usage total value 207 is set to the total value of the memory capacity used by the series of processes sequentially extracted as monitoring targets by the processing of S40 to S407, i.e., the series of active Web browser processes 202. If the Web browser monitoring process 203 determines that the Web browser memory usage total value 207 is equal to or less than the memory usage threshold value 206, the process proceeds to S415, and if it determines that the web browser memory usage total value 207 is not equal to or less than the memory usage threshold value 206, the process proceeds to S416.

[0024] In S416, the Web browser monitoring process 203 restarts the process that constitutes the Web browser (the Web browser process 202). By restarting the Web browser process 202 in this way, the memory that the Web browser process 202 was using is released. In S417, the Web browser monitoring process 203 suspends processing for a certain period of time, and then proceeds to S404. In this way, the Web browser monitoring process 203 sets a monitoring interval by suspending processing for a certain period of time. The Web browser monitoring process 203 advances the process from S417 to S404, thereby restarting monitoring of the restarted Web browser process 202.

[0025] In S415, the Web browser monitoring process 203 suspends the processing for a certain period of time, and then proceeds to S404.

[0026] The series of processes shown in FIG. 4 ends when the power supply of the image processing device 100 is turned off.

[0027] Web browsers tend to use more memory than other applications. On the other hand, the process that constitutes a web browser (web browser process 202) tends not to affect other processes even if it is restarted. In this embodiment, taking into consideration this characteristic, when the memory capacity used by the web browser process 202 exceeds a threshold, the web browser process 202 is restarted and the memory is released by the above-described processing. By applying such control, it is possible to prevent the occurrence of a situation in which other processes 204 are forcibly stopped by the OS 201 due to memory depletion, and ultimately it is possible to operate the image processing device 100 stably. In this embodiment, an example in which the Web browser process 202 is primarily the target of monitoring and restarting has been described, but other processes may also be the target of monitoring and restarting, not just the Web browser process 202. In other words, if a process tends to use more memory than other applications and tends not to affect other processes even if it is restarted, it is possible to obtain substantially the same effect by making it the target of the above-described control.

[0028] <Second embodiment> 4, the Web browser monitoring process 203 is temporarily stopped, thereby setting a monitoring interval for the Web browser monitoring process 203. However, while the Web browser monitoring process 203 is temporarily stopped, there is a possibility that the memory capacity used by the Web browser may exceed the memory usage threshold 206. In view of such circumstances, a second embodiment of the present disclosure describes an example of applying control to shorten the monitoring interval of the web browser monitoring process 203 when the memory capacity used by the web browser approaches the memory usage threshold 206. In this embodiment, applying such control prevents the occurrence of a situation in which the memory capacity used by the web browser exceeds the memory usage threshold 206 while the web browser monitoring process 203 is paused. In addition, in this embodiment, the description will be made focusing on the parts that are particularly different from the first embodiment, and detailed description of the parts that are substantially the same as those in the first embodiment will be omitted.

[0029] An example of the software configuration of the image processing device 100 according to this embodiment will be described with reference to FIG. The web browser monitoring process (203) reads a check interval change coefficient 501 from the external storage device 104, as indicated by the reference numeral 502. The check interval change coefficient 501 is a coefficient used by the web browser monitoring process 203 to determine whether to shorten the check interval (in other words, the monitoring interval), and corresponds to the ratio between the memory capacity used by the web browser and the memory usage threshold 206.

[0030] 6, an example of processing by the image processing device 100 according to this embodiment will be described, focusing particularly on the processing by the Web browser monitoring process 203. Note that in the example shown in Fig. 6, the CPU 101 of the image processing device 100 actually performs the series of processes, but for convenience, the description will be given assuming that the Web browser monitoring process 203 performs the processes.

[0031] The Web browser monitoring process 203 reads the memory usage threshold 206 in S402, and then executes the process in S601. In S601, the Web browser monitoring process 203 reads the check interval change coefficient 501 from the external storage device 104.

[0032] In S414, the Web browser monitoring process 203 determines whether the Web browser memory usage total value 207 is equal to or less than the memory usage threshold 206. If the Web browser monitoring process 203 determines that the Web browser memory usage total value 207 is equal to or less than the memory usage threshold 206, the process proceeds to S602, and if the Web browser monitoring process 203 determines that the Web browser memory usage total value 207 is not equal to or less than the memory usage threshold 206, the process proceeds to S416. Note that the process when proceeding to S416 is substantially the same as the example described with reference to FIG.

[0033] In S602, the Web browser monitoring process 203 determines whether the Web browser memory usage total value 207 is equal to or less than the value obtained by multiplying the memory usage threshold value 206 by the check interval change coefficient 501. If the Web browser monitoring process 203 determines that the Web browser memory usage total value 207 is equal to or less than the value obtained by multiplying the memory usage threshold value 206 by the check interval change coefficient 501, the process proceeds to S603, and if it determines that the value is not equal to or less than the value, the process proceeds to S604. In S603, the Web browser monitoring process 203 suspends the processing for a certain period of time, and then proceeds to S404. In S604, the Web browser monitoring process 203 suspends the processing for a period of time shorter than the suspension time in the processing of S603, and then proceeds to S404.

[0034] The above-described processing makes it possible to control the interval at which the Web browser monitoring process 203 monitors the memory used by the Web browser so that it becomes shorter depending on the capacity of the memory used by the Web browser. That is, when the capacity of the memory used by the Web browser process 202 approaches the memory usage threshold 206, the interval at which the determination process shown as S414 in Fig. 6 is executed is controlled to become shorter. By applying this type of control, it becomes possible to prevent the capacity of the memory used by the Web browser from exceeding the memory usage threshold 206 while the Web browser monitoring process 203 is paused. Note that the method for setting the time for which the Web browser monitoring process 203 temporarily stops processing in S604 is not particularly limited, as long as it is shorter than the time for which processing is temporarily suspended in S603. As a specific example, a fixed value may be applied as the pause time. As another example, the pause time may be dynamically determined according to the Web browser memory usage total value 207. As a specific example, control may be applied such that the pause time becomes shorter as the difference between the Web browser memory usage total value 207 and the value obtained by multiplying the memory usage threshold 206 and the check interval change coefficient 501 becomes smaller. In addition, in this embodiment, an example of a case where the monitoring interval is controlled in two stages has been described, but the monitoring interval may also be controlled in multiple stages so that the closer the total web browser memory usage value 207 approaches the memory usage threshold value 206, the shorter the interval becomes.

[0035] <Other embodiments> The present invention can also be realized by executing the following process. That is, software (programs) that realize the functions of the above-described embodiments are supplied to a system or device via a network or various storage media, and the computer (or CPU, MPU, etc.) of the system or device reads and executes the program code. In this case, the program and the storage media storing the program constitute the present invention.

[0036] Furthermore, although the processing shown in Figures 4 and 6 has been explained as being actually executed by CPU 101, the various controls described above may be performed by a single piece of hardware, or the entire device may be controlled by multiple pieces of hardware (e.g., multiple processors) sharing the processing. Furthermore, although the present invention has been described in detail based on preferred embodiments thereof, the present invention is not limited to these specific embodiments, and various forms within the scope of the gist of the present invention are also included in the present invention. Furthermore, each of the above-described embodiments merely represents one embodiment of the present invention, and each embodiment can be combined as appropriate. Furthermore, in the above-described embodiment, the present invention has been described as being applied to an image processing device, but this is not limited to this example and can be applied to any so-called information processing device that involves memory management (especially devices with a relatively small memory capacity). That is, the present invention can also be applied to personal computers, PDAs, mobile phone terminals, portable image viewers, printer devices with displays, digital photo frames, music players, game consoles, electronic book readers, and the like.

[0037] The disclosure of the present embodiment also includes the following configuration, method, program, and recording medium. (Configuration 1) An information processing device characterized by having: a first acquisition means for acquiring a first list including information on each of a series of processes that can be restarted; a second acquisition means for acquiring a second list including information on each of a series of processes that are currently running; an extraction means for extracting one or more processes whose information is included in the first list from the series of processes whose information is included in the second list; a calculation means for calculating the total memory usage of each of the one or more processes extracted by the extraction means; a determination means for determining whether the total memory usage calculated by the calculation means exceeds a threshold; and a restart means for restarting at least some of the one or more processes extracted by the extraction means when the determination means determines that the total memory usage exceeds the threshold. (Configuration 2) The information processing device according to configuration 1, wherein the first list includes at least information about a web browser process. (Configuration 3) The information processing device according to configuration 1 or 2, wherein the calculation means calculates the total memory usage as the total usage of the physical memory and the swap memory. (Configuration 4) An information processing device according to any one of configurations 1 to 3, characterized in that it has a control means for controlling the interval at which the determination means successively determines whether the total memory usage exceeds a threshold, and the control means controls the interval to become shorter when the total memory usage calculated by the calculation means exceeds a value obtained by multiplying a coefficient related to control of the interval by the threshold. (Method 1) A control method for an information processing device, comprising: a first acquisition step of acquiring a first list containing information on each of a series of processes that can be restarted; a second acquisition step of acquiring a second list containing information on each of a series of processes that are currently running; an extraction step of extracting one or more processes whose information is included in the first list from the series of processes whose information is included in the second list; a calculation step of calculating the total memory usage of each of the one or more processes extracted in the extraction step; a determination step of determining whether the total memory usage calculated in the calculation step exceeds a threshold; and a restart step of restarting at least some of the one or more processes extracted in the extraction step if it is determined in the determination step that the total memory usage exceeds the threshold. (Program 1) A program for causing a computer to function as each of the means of the information processing device described in any one of configurations 1 to 4. (Recording Medium 1) A computer-readable storage medium storing a program for causing a computer to function as each of the means of the information processing device described in any one of configurations 1 to 4. [Explanation of symbols]

[0038] 100 Image processing device 203 Web Browser Monitoring Process

Claims

1. a first obtaining means for obtaining a first list including information on each of a series of restartable processes; a second acquiring means for acquiring a second list including information on each of a series of processes currently running; an extraction means for extracting one or more processes whose information is included in the first list from among a series of processes whose information is included in the second list; a calculation means for calculating a total memory usage of each of the one or more processes extracted by the extraction means; a determination means for determining whether the total memory usage calculated by the calculation means exceeds a threshold; restarting means for restarting at least a part of the one or more processes extracted by the extracting means when the determining means determines that the total memory usage exceeds a threshold; An information processing device comprising:

2. The information processing apparatus according to claim 1 , wherein the first list includes information on at least a Web browser process.

3. 2. The information processing apparatus according to claim 1, wherein said calculation means calculates the total memory usage amount as the total usage amount of physical memory and swap memory.

4. a control unit that controls an interval at which the determination unit sequentially determines whether the total memory usage exceeds a threshold value; The control means controls the interval to be shorter when the total memory usage calculated by the calculation means exceeds a value obtained by multiplying a coefficient related to control of the interval by the threshold value.

2. The information processing device according to claim 1, wherein:

5. A control method for an information processing device, comprising: a first obtaining step of obtaining a first list including information on each of a set of restartable processes; a second obtaining step of obtaining a second list including information on each of a set of running processes; an extraction step of extracting one or more processes whose information is included in the first list from the series of processes whose information is included in the second list; a calculation step of calculating a total memory usage of each of the one or more processes extracted in the extraction step; a determination step of determining whether the total memory usage calculated in the calculation step exceeds a threshold; a restarting step of restarting at least a part of the one or more processes extracted in the extracting step when it is determined in the determining step that the total memory usage exceeds a threshold; 10. A method for controlling an information processing device, comprising:

6. A program for causing a computer to function as each of the means of the information processing device according to any one of claims 1 to 4.

7. 5. A computer-readable storage medium storing a program for causing a computer to function as each of the means of the information processing device according to claim 1.

Citation Information

Patent Citations

  • System for detecting increase tendency in process memory consumption

    JP2001331348A