STORAGE MANAGEMENT SYSTEM, INFORMATION PROCESSING DEVICE AND STORAGE MANAGEMENT METHOD

The memory management system enhances memory management by terminating processes and freeing cache areas to maintain sufficient free space without affecting high-priority processes, addressing inefficiencies in existing systems.

DE112017007318B4Active Publication Date: 2025-07-24MITSUBISHI ELECTRIC CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
DE112017007318
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Filing Date
2017-05-17
Publication Date
2025-07-24
Estimated Expiration
2037-05-17

AI Technical Summary

Technical Problem

Existing memory management systems in operating systems like Android and iOS terminate high-priority processes to free up memory, leading to increased start times and reduced usability when memory space is insufficient, as they fail to efficiently manage free space.

Method used

A memory management system that includes a memory manager to terminate processes and a system cache release unit to free cache memory areas when specific conditions are met, preventing the termination of high-priority processes.

Benefits of technology

Effectively increases memory free space without terminating high-priority processes, ensuring sufficient memory availability and maintaining system usability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Storage management system (12) comprising: a memory manager (121) for monitoring a free space of a memory (2) to be used for executing a plurality of processes, and terminating a running process upon detecting a shortage of the free space of the memory (2) in order to increase the free space of the memory (2); and a system cache freeing unit (122) for freeing an area in the memory (2) reserved as a cache memory of an operating system (10) to further increase the free space of the memory (2) when a type or an operating state of the process terminated by the memory manager (121) satisfies a predetermined condition; wherein the system cache clearing unit (122) clears the cache area when the process terminated by the memory manager (121) is a process whose operation cannot be perceived by a user; or if the process terminated by the memory manager (121) is a process for sharing data with another process or if the process terminated by the memory manager (121) is a process during which no process is executed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical area

[0001] The present invention relates to a memory management system that reserves a free space of a memory. background

[0002] Many high-performance operating systems (OSs) incorporated into information processing devices, such as personal computers and smartphones, employ memory management systems that forcibly terminate a running process to reserve free memory space when the available memory space is insufficient. For example, Android (registered trademark) incorporates a memory management system called Low Memory Killer.

[0003] An information processing device incorporating such a memory management system can prevent memory free space from running out. However, forcibly terminating a process of an application that a user frequently uses increases the startup time when the user next uses the application, causing a problem of decreasing the usability of the information processing device.

[0004] For example, Patent Documents 1 and 2 propose technologies to solve this problem. The memory management system in Patent Document 1 sets a rank representing the priority of a memory area reserved by each process, and releases a low-ranked memory area when the free space of the memory is insufficient. Furthermore, the memory management system in Patent Document 2 can set a high-priority process to a forced termination prevention process. State of the art documentPatent document Patent Document 1: Japanese Unexamined Patent Application No. JP 2012-221217 A Patent Document 2: Japanese Unexamined Patent Application No. JP 2008-186167 A SummaryProblem to be solved by the invention

[0005] Both the technologies of Patent Documents 1 and 2 aim to increase the free space of a memory by terminating a low-priority process. According to the technology of Patent Document 1, if the free space cannot be sufficiently increased even by terminating a low-priority process, a high-priority process must be terminated, thus creating the aforementioned problem. According to the technology of Patent Document 2, if many forced termination prevention processes are being processed, the free space of the memory may not be sufficiently reserved.

[0006] The present invention has been devised to solve the problems and has as its object to provide a memory management system which can sufficiently reserve a free space of a memory while preventing the forced termination of a process with a high priority. Means of solving the problem

[0007] A memory management system according to the present invention includes: a memory manager for monitoring a free space of a memory to be used for executing a plurality of processes, and terminating a running process upon detecting a shortage of the free space of the memory to increase the free space of the memory; and a system cache freeing unit for freeing an area in the memory reserved as a cache memory of an operating system to further increase the free space of the memory when a type or an operation state of the process terminated by the memory manager satisfies a predetermined condition. Effects of the invention

[0008] According to the present invention, when the memory manager terminates a process that satisfies a predetermined condition, the system cache release unit frees an area reserved as a cache area of an operating system to increase the free space of the memory. The free space of the memory can be effectively increased before the memory management system terminates a high-priority process, thus preventing the memory manager from terminating the high-priority process. Thus, the free space of the memory can be sufficiently reserved while preventing the forced termination of the high-priority process.

[0009] The objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description and the accompanying drawings. Short description of the drawings Fig. 1 is a block diagram conceptually illustrating a configuration of main units of an information processing device according to an embodiment of the present invention. Fig. Figure 2 illustrates an example relationship between a type or operating state and a priority of each process and a threshold of a free space. Fig. 3 illustrates an example description of a configuration file. Fig. 4 illustrates operations of a memory management system according to the embodiment of the present invention. Fig. 5 illustrates the operations of the memory management system according to the embodiment of the present invention. Fig. 6 illustrates the operations of the memory management system according to the embodiment of the present invention. Fig. 7 illustrates the operations of the memory management system according to the embodiment of the present invention. Fig. Figure 8 illustrates operations of “Low Memory Killer”. Fig. Figure 9 illustrates the operations of “Low Memory Killer”. Fig. Figure 10 illustrates the operations of “Low Memory Killer”. Fig. Figure 11 illustrates the operations of “Low Memory Killer”. Fig. 12 is a flowchart illustrating the operations of the memory management system according to the embodiment of the present invention. Description of embodiments

[0010] Fig. 1 is a block diagram conceptually illustrating a configuration of main units of an information processing device according to an embodiment of the present invention. As shown in Fig. 1, the information processing device includes a processor 1, a memory 2, and a mass storage 3. Specific examples of the information processing device include personal computers, smartphones, tablet terminals, navigation devices, and audio display systems. For example, when the information processing device is a portable device such as a smartphone or a tablet terminal, the illustration of the constituent elements other than those in Fig. 1, for example, an image display unit, an audio output unit, and an operation input unit are omitted, although these constituent elements are included in the information processing device.

[0011] Processor 1 executes software (a program) to implement various functions. Processor 1 is sometimes referred to as, for example, a central processing unit (CPU), a processing unit, an arithmetic unit, a microprocessor, a microcomputer, or a digital signal processor (DSP).

[0012] Memory 2 is the main memory of processor 1 and includes, for example, random access memory (RAM). When software is executed, processor 1 causes memory 2 to store data or a program necessary for execution.

[0013] The mass storage 3 is an auxiliary memory of the processor 1 and stores, for example, a program of the software to be executed by the processor 1. Here, the mass storage 3 stores system software 31 for constructing an operating system 10, a configuration file 32 describing various settings, and a variety of pieces of application software 33 (hereinafter simply referred to as "applications 33").

[0014] Examples of the mass storage 3 include semiconductor memories such as read-only memory (ROM), flash memory, erasable programmable read-only memory (EPROM), and electrically erasable programmable read-only memory (EEPROM), a hard disk drive (HDD), an optical disk, a magnetic disk, and a flexible disk. The mass storage 3 may be a combination of these storage media. For example, the mass storage 3 may take a form of storing the software 31 and the configuration file 32 in ROM and storing the applications 33 in a memory card that functions as a flash memory.

[0015] The processor 1 executes the system software 31 stored in the mass storage 3 to construct the operating system 10. The operating system 10 includes functional blocks of a process execution unit 11 and a memory management system 12.

[0016] The process execution unit 11 executes applications 33 stored in the mass storage 3 based on a user operation or an instruction from the operating system 10. In other words, the process execution unit 11 executes various processes based on programs of the applications 33. The process execution unit 11 can simultaneously execute processes of a plurality of applications 33. The process execution unit 11 can run a plurality of processes using one of the applications 33.

[0017] The memory management system 12 executes a process for resolving a shortage of free space of the memory 2 when it occurs. As shown in Fig. 1, the memory management system 12 includes a memory manager 121 and a system cache freeing unit 122.

[0018] The memory manager 121 maintains a free space of the memory 2. Upon detecting a shortage of the free space of the memory 2, the memory manager 121 terminates any of the running processes to increase the free space of the memory 2. Specifically, when the free space of the memory 2 is detected to be less than a predefined threshold, the memory manager 121 selects a process to be terminated from the running processes and sends a signal to the process execution unit 11 requesting the termination of the selected process. For example, if the operating system 10 is Android, the memory manager 121 should be the well-known "low memory killer."

[0019] The system cache freeing unit 122 monitors the signal output from the memory manager 121 to identify which process has been terminated by the memory manager 121, and checks the type and operating state (indicating an operating state immediately before termination) of the process. When the type or operating state of the process terminated by the memory manager 121 meets a predetermined trigger condition, the system cache freeing unit 122 frees an area in the memory 2 reserved as a cache area of the operating system 10 (hereinafter referred to as the "system cache area") to further increase the free space of the memory 2.

[0020] Specific examples of the trigger condition are described later.

[0021] Assume that in the embodiment, the operating system 10 is Android and the memory manager 121 is "Low Memory Killer." In the Low Memory Killer, running processes are classified into a variety of genres based on a type and operating state of each of the processes, as shown in Fig. 2. Furthermore, an adj value representing a priority and a threshold of memory 2 free space, which is a criterion for determining whether the processor is a candidate for forced termination, are defined for each of the genres. With a smaller adj value, the priority increases. Fig. 2, the free space threshold of memory 2 is represented by the number of pages. In Android, one page is equal to 4 kB. For example, 2048 pages are 4 kB × 2048 = 8192 kB.

[0022] In Fig. 2, "FOREGROUND_APP" is a process running in the foreground. The adj value is set to 0 and the free space threshold is set to 2048. "VISIBLE_APP" is a process in a state where part or all of the scrolling screen is displayed on a display unit. The adj value is set to 1 and the free space threshold is set to 4096. "PERCEPTIBLE_APP" is a process running in the background whose operation can be perceived by the user (for example, a state of playing music). The adj value is set to 2 and the free space threshold is set to 8192.

[0023] "HEAVY_WEIGHT_APP" is a process whose load on processor 1 or memory 2 is heavy. The adj value is set to 3 and the free space threshold is set to 8192. "SECONDARY_SERVER" is a process for providing another process with a function. The adj value is set to 4 and the free space threshold is set to 16384. "BACKUP_APP" is a process for backing up data. The adj value is set to 5 and the free space threshold is set to 20000.

[0024] "HOME_APP" is a process for displaying a home screen for the user, such as an application (i.e., a drawer or home application process). The adj value is set to 6, and the free space threshold is set to 25,000. "HIDDEN_APP" is a process running in the background, whose operation cannot be perceived by the user. The adj value is set to 7, and the free space threshold is set to 30,000. "CONTENT_PROVIDER" is a process for sharing data between multiple processes. The adj value is set to 14, and the free space threshold is set to 35,000. "EMPTY_APP" is a process during which no process is running. The adj value is set to 15, and the free space threshold is set to 40,000.

[0025] The Fig. 2 illustrated setting values are stored in the configuration file 32 in a Fig. 3 and are read by the memory management system 12 when the operating system 10 starts.

[0026] When the free space of memory 2 falls below a certain value, Low-Memory-Killer selects a candidate process to terminate based on the free space of memory 2. For example, if the Fig. If the settings illustrated in Figure 2 are set to Low-Memory-Killer, Low-Memory-Killer will run when the free space of Memory 2 is less than 40,000 pages (160,000 kB). For example, if the free space of Memory 2 falls below 30,000 pages (120,000 kB), Low-Memory-Killer will select a process whose adj value is 7 or more as the candidate process to kill. If the free space of Memory 2 falls below 20,000 pages (80,000 kB), Low-Memory-Killer will select a process whose adj value is 5 or more as the candidate process to kill.

[0027] If a plurality of candidate processes to be terminated are found, Low-Memory-Killer terminates a process with the lowest priority, that is, a process with the highest adj value among the candidate processes. If a plurality of processes with the lowest priority are found among the candidate processes to be terminated, Low-Memory-Killer terminates a process with the largest memory usage among the plurality of processes. Low-Memory-Killer repeats such processes until the free space of memory 2 is greater than or equal to a certain value, or until there is no candidate process to be terminated.

[0028] The trigger condition is set to the system cache clearing unit 122 based on the Fig. 2. A genre with a priority lower than that of a process that is preferentially prevented from being terminated by the memory manager 121 (low-memory killer) is set to the trigger condition.

[0029] In the embodiment, the memory manager 121 (low-memory killer) prevents processes with a priority higher than or equal to "HOME_APP" from being terminated. In this case, process genres with lower priorities than "HOME_APP" are set as process genres that satisfy the trigger condition. Here, "HIDDEN APP", "CONTENT_PROVIDER", and "EMPTY_APP" are set to the process genres that satisfy the trigger condition. The setting value of the trigger condition is described in the configuration file 32 stored in the mass storage 3.

[0030] Next, operations of the memory management system 12 of the information processing device will be described with the specific examples. Fig. 4 illustrates example memory areas to be reserved in memory 2. First, a memory area 2s for the operating system 10 (hereinafter referred to as "system memory area 2s") is reserved in memory 2. The system memory area 2s includes a cache area 2sc to be used by the operating system 10 to shorten a response time for a user operation (hereinafter referred to as "system cache area 2sc").

[0031] Here, the size of the area reserved as system memory area 2s is not fixed. As the data cached by the operating system 10 in memory 2 grows, the system cache area 2sc gradually grows, and the system memory area 2s grows accordingly.

[0032] Here, the process execution unit 11 executes all of the following: a process A classified as "FOREGROUND_APP"; a process B classified as "VISIBLE_APP"; a process C classified as "PERCEPTIBLE_APP"; a process D classified as "SECONDARY_SERVER"; a process E classified as "BACKUP_APP"; a process F classified as "HOME_APP"; a process G classified as "HIDDEN_APP"; a process H classified as "CONTENT_PROVIDER"; and a process I classified as "EMPTY_APP". In the memory 2, memory areas 2a to 2i are reserved for the processes A to I, respectively. As shown in Fig. 2, 40000 pages (80000 kB) or more than one free space 2x are reserved in memory 2.

[0033] For example, it is assumed that a process J classified as “HEAVY_WEIGHT_APP” is running from the Fig. 4 illustrated state that a memory area 2j is newly reserved for the process J in memory 2 and that the free space 2x consequently falls below 16384 pages (65536 kB), as in Fig. 5. With reference to Fig. 2, the memory manager 121 selects, as candidate processes to be terminated, process D classified as "SECONDARY_SERVER", process E classified as "BACKUP_APP", process F classified as "HOME_APP", process G classified as "HIDDEN_APP", process H classified as "CONTENT_PROVIDER", and process I classified as "EMPTY_APP". Then, the memory manager 121 terminates process I with the lowest priority (highest adj value) among the candidate processes. As a result, the memory area 2i for process I is freed to increase the free space 2x by the freed area, as shown in Fig. 6 illustrated.

[0034] Here, the system cache freeing unit 122 detects that the memory manager 121 has terminated the process I classified as "EMPTY_APP." Since "EMPTY_APP" is classified in the genre set as the trigger condition in the embodiment, the system cache freeing unit 122 frees the system cache area 2sc upon detecting that the memory manager 121 has terminated the process I. As a result, the free space is further increased by 2x, as shown in Fig. 7 illustrated.

[0035] Since the free space is 2x in the Fig. 7, the memory manager 121 selects a process classified as "EMPTY_APP" as a candidate process to be terminated if the process is running. However, there is no process classified as "EMPTY_APP" among the processes A to H in the state shown in Fig. 7. Thus, the memory manager 121 does not terminate any of the processes.

[0036] Consequently, the process F classified as "HOME_APP" can continue to operate. Since the user frequently runs the process F classified as "HOME_APP," the continued operation of the process F prevents the usability of the information processing device from declining. Although freeing the system cache area 2sc may temporarily reduce the response rate of the operating system 10, it is likely to affect the user's usability less than extending the startup time of, for example, a process classified as "HOME_APP" that the user frequently runs.

[0037] As described above, as an example, all of "HIDDEN_APP", "CONTENT_PROVIDER", and "EMPTY_APP" with lower priorities than "HOME_APP" are preferably set to the process genres that satisfy the trigger condition, while avoiding their forced termination. However, one or more of them should be set to the process genres that satisfy the trigger condition. For example, if "EMPTY_APP" is excluded from the process genres that satisfy the trigger condition, the system cache area 2sc will not be freed by simply terminating "EMPTY_APP" by the memory manager 121. Thus, the frequency of freeing the system cache area 2sc can be reduced more than that of the above example.

[0038] Consequently, in the embodiment, it is possible to prevent the memory manager 121 from terminating the process F classified as "HOME_APP." To clarify this advantage, operations of Low-Memory-Killer, which is a conventional memory management system, will be described below.

[0039] Similar to the example above, assume that the process J classified as “HEAVY_WEIGHT_APP” originates from the Fig. 4 illustrated state is allowed to run to the Fig. 5, and that the free space falls 2x below 16384 pages (65536 kB). Here, Low-Memory-Killer selects process D classified as "SECONDARY_SERVER", process E classified as "BACKUP_APP", process F classified as "HOME_APP", process G classified as "HIDDEN_APP", process H classified as "CONTENT_PROVIDER", and process I classified as "EMPTY_APP" as candidate processes to be terminated. Then, Low-Memory-Killer terminates process I with the lowest priority among the candidate processes. As a result, the memory area 2i for process I is freed to increase the free space 2x by the freed area, as shown in Fig. 8 illustrated.

[0040] Since the free space 2x under 20000 pages (80000 kB) in Fig. 8, Low-Memory-Killer selects the process E classified as "BACKUP_APP", the process F classified as "HOME_APP", the process G classified as "HIDDEN_APP", and the process H classified as "CONTENT_PROVIDER" as candidate processes to be terminated. Then, Low-Memory-Killer terminates the process H with the lowest priority among the candidate processes. As a result, the memory area 2h is freed for the process H to increase the free space 2x around the freed area, as shown in Fig. 9 illustrated, to enlarge.

[0041] Since the free space 2x under 25000 pages (100000 kB) in Fig. 9, Low-Memory-Killer selects the process F classified as "HOME_APP" and the process G classified as "HIDDEN_APP" as candidate processes to be terminated. Then, Low-Memory-Killer terminates the process G with the lowest priority among the candidate processes. As a result, the memory area 2g for the process G is increased by 2x to increase the free space, as shown in Fig. 10 illustrated.

[0042] Since the free space 2x under 25000 pages (100000 kB) in Fig. 10 illustrated state, Low-Memory-Killer selects a process F classified as “HOME_APP” as a candidate process to be terminated and terminates the process F. As a result, the memory area 2f is freed for the process F to increase the free space 2x by the freed area, as shown in Fig. 11. However, the termination of the process F classified as "HOME_APP" reduces the usability of the information processing device.

[0043] Unlike the memory management system 12 of this embodiment, when the memory manager 121 terminates a process that meets the trigger condition, the system cache freeing unit 122 frees the system cache area 2sc to increase the free space 2x. Thus, the free space 2x of the memory 2 can be effectively increased before the memory management system 12 terminates a high-priority process such as "HOME_APP," which consequently prevents the memory manager 121 from terminating the high-priority process. Thus, the memory management system 12 can sufficiently reserve a free space of memory while preventing the forced termination of a high-priority process.

[0044] Fig. 12 is a flowchart illustrating the operations of the memory management system 12. The memory management system 12 executes the procedure in Fig. 12 for implementing the memory management operations described with reference to Fig. 4 to 7.

[0045] When starting the operating system 10 of the information processing device, the memory management system 12 first reads the configuration file 32 from the mass storage 3 and initializes the memory manager 121 and the system cache freeing unit 122 based on the description of the configuration file 32 (step S1). Specifically, the memory management system 12 performs processes of storing, in the memory manager 121, a table representing a relationship between the process genres, the adj values, and the threshold values of the free space of the memory 2, as shown in Fig. 2, and setting the trigger conditions to the system cache clearing unit 122.

[0046] Next, the memory manager 121 identifies the size of the free space of the memory 2 (step S2) and determines whether the free space of the memory 2 is insufficient (step S3). For example, if the Fig. 2 is set to the memory manager 121 and the free space of the memory 2 is less than 40,000 pages (160,000 kB), the memory manager 121 determines that the free space is insufficient. If the free space of the memory 2 is not insufficient (NO in step S3), steps S2 and S3 are repeated.

[0047] If the free space of memory 2 is insufficient (YES in step S3), the memory manager 121 selects candidate processes to be terminated based on the size of the free space of memory 2 (step S4). Fig. 2 is set to the memory manager 121, for example, when the free space of the memory 2 falls below 30,000 pages (120,000 kB), the memory manager 121 selects processes whose adj value is 7 or greater as candidate processes to be terminated. When the free space of the memory 2 falls below 20,000 pages (80,000 kB), the memory manager 121 selects processes whose adj value is 5 or more as candidate processes to be terminated. If the memory manager 121 does not find a candidate process to be terminated (NO in step S5), the processes return to step S2.

[0048] If it finds the candidate processes to be terminated (YES in step S5), the memory manager 121 terminates a process with the largest memory usage in memory 2 from among the candidate processes with the lowest priority (the highest adj value) to increase the free space of memory 2 (step S6). In other words, the memory manager 121 selects a process with the lowest priority from among the candidate processes to be terminated. If a plurality of the lowest priority processes are found, the memory manager 121 selects a process with the largest memory usage in memory 2 from among the processes and terminates the finally selected process.

[0049] After the memory manager 121 terminates the process, the system cache freeing unit 122 checks whether the terminated process is a process that satisfies the trigger condition (step S7). If the terminated process is the process that satisfies the trigger condition (YES in step S7), the system cache freeing unit 122 frees the system memory area to further increase the free space of the memory 2 (step S8), and then the process returns to step S2.

[0050] If the process terminated by the memory manager 121 is not the process that satisfies the trigger condition (NO in step S7), the processes return to step S2 without the system cache release unit 122 releasing the system memory area.

[0051] The memory management system 12 repeats these processes. [Modification]

[0052] Generally speaking, the cache area for the operating system 10 (system cache area) includes a page cache area and a disk cache area. Although the system cache freeing unit 122 frees the entire system cache area in the above example, the memory manager 121 may only free either the page cache area or the disk cache area. This may prevent a reduction in the response rate of the operating system 10 due to the operations of the system cache freeing unit 122 more than if the system cache freeing unit 122 frees the entire system cache area.

[0053] For example, whether the system cache clearing unit 122 clears only the page cache area, only the disk cache area, or both the page cache area and the disk cache area can be set on each information processing device. In such a case, a setting value indicating which area the system cache clearing unit 122 clears should be described in the configuration file 32. When starting the operating system 10 (for example, step S1 in Fig. 12), the system cache clearing unit 122 should read the setting value from the configuration file 32.

[0054] Although Android is used as the example of the operating system 10 in the above description, the present invention is applicable to the operating system 10 including the memory manager 121 that terminates a running process when the free space of the memory 2 is insufficient to reserve the free space of the memory, for example, iOS (registered trademark), Windows (registered trademark), or Linux (registered trademark). Since the memory manager 121 to be combined with the system cache release unit 122 can be a common unit such as a low-memory killer, the present invention has greater versatility.

[0055] If within the scope of the present invention, the embodiment may be appropriately modified or omitted.

[0056] Although this invention has been described in detail, the description is illustrative in all aspects and not limiting. Therefore, numerous modifications not yet exemplified may be devised without departing from the scope of this invention. Explanation of reference symbols

[0057] 1 processor, 2 memory, 3 mass storage, 10 operating system, 11 process execution unit, 12 memory management system, 121 memory manager, 122 system cache freeing unit, 31 system software, 32 configuration file, 33 applications.

Claims

[1] A memory management system (12) comprising: a memory manager (121) for monitoring a free space of a memory (2) to be used for executing a plurality of processes, and terminating a running process upon detecting a shortage of the free space of the memory (2) in order to increase the free space of the memory (2); and a system cache freeing unit (122) for freeing an area in the memory (2) reserved as a cache memory of an operating system (10) to further increase the free space of the memory (2) when a type or an operating state of the process terminated by the memory manager (121) satisfies a predetermined condition; wherein the system cache clearing unit (122) clears the cache area when the process terminated by the memory manager (121) is a process whose operation cannot be perceived by a user; or if the process terminated by the memory manager (121) is a process for sharing data with another process or if the process terminated by the memory manager (121) is a process during which no process is executed. [2] The memory management system (12) of claim 1, wherein the memory management system (12) is capable of setting the cache area to be freed by the system cache freeing unit (122) to a page cache area, a disk cache area, or both the page cache area and the disk cache area. [3] The memory management system (12) according to claim 1, wherein, upon detecting the shortage of free space of the memory (2), the memory manager (121) selects which of a plurality of processes is to be terminated based on one or more of free space of the memory, the type and operating state of each of the processes, and a memory usage in the memory (2) by the process. [4] Memory management system (12) according to claim 1, wherein a priority of each of the plurality of processes is defined based on the type or operating state of the process, upon detecting the shortage of free space in the memory (2), the memory manager selects a candidate process to be terminated based on the free space in the memory (2), in the presence of a plurality of candidate processes to be terminated, the memory manager (121) terminates a process having a lowest priority from the plurality of candidate processes, and in the presence of a plurality of processes having the lowest priority among the plurality of candidate processes to be terminated, the memory manager (121) terminates a process having a largest memory usage in the memory (2) among the plurality of processes having the lowest priority. [5] Information processing device, comprising: a memory management system (12) according to claim 1; a process execution unit for executing the plurality of processes; and the memory (2). [6] A method for managing a memory (2) to be used for executing a plurality of processes, the method comprising: Monitoring a free space of the memory (2) and terminating a running process upon detecting a shortage of the free space of the memory to increase the free space of the memory (2), wherein the monitoring and terminating is performed by a memory manager (121) of a memory management system (12); and Freeing, in the memory (2), an area reserved as a cache area of an operating system (10) to further increase the free space of the memory (2) when a type or an operating state of the process terminated by the memory manager (121) satisfies a predetermined condition, wherein the freeing is performed by a system cache freeing unit (122) of the memory management system (12); wherein the system cache clearing unit (122) clears the cache area when the process terminated by the memory manager (121) is a process whose operation cannot be perceived by a user; or if the process terminated by the memory manager (122) is a process for sharing data with another process or if the process terminated by the memory manager (121) is a process during which no process is executed.

Citation Information

Patent Citations

  • Java application manager for embedded device

    US6430570B1