-
Technisches Gebiet
-
Die vorliegende Erfindung bezieht sich auf ein Speicherverwaltungssystem, das einen freien Raum eines Speichers reserviert.
-
Hintergrund
-
Viele hochfunktionelle Betriebssysteme (BSe), die in Informations-Verarbeitungseinrichtungen inkorporiert sind, wie etwa persönliche Computer und Smartphones, verwenden Speicherverwaltungssysteme, die zwangsweise einen von ablaufenden Prozessen beenden, um einen freien Raum eines Speichers zu reservieren, wenn der freie Raum des Speichers unzureichend ist. Beispielsweise inkorporiert Android (registrierte Marke) ein Speicherverwaltungssystem, das Low Memory Killer (niedriger Speicherkiller) genannt wird.
-
Die ein solches Speicherverwaltungssystem beinhaltende Informationsverarbeitungseinrichtung kann eine Verknappung des freien Raums des Speichers verhindern. Jedoch verlängert das zwangsweise Beenden eines Prozesses einer Anwendung, die ein Anwender oft nutzt, die Startzeit, wenn der Anwender als Nächstes die Anwendung verwendet, was ein Problem des Sinkens der Verwendbarkeit der Informations-Verarbeitungseinrichtung verursacht.
-
Beispielsweise schlagen Patentdokumente 1 und 2 die Technologien zum Lösen dieses Problems vor. Das Speicherverwaltungssystem im Patentdokument 1 stellt einen Rang, der eine Priorität zu einem durch jeden Prozess reservierten Speicherbereich repräsentiert, ein, und macht einen Speicherbereich frei, der niedrig rangiert, wenn der freie Raum des Speichers unzureichend ist. Darüber hinaus kann das Speicherverwaltungssystem im Patentdokument 2 einen Prozess mit einer hohen Priorität auf einen Zwangs-Beendigungsverhinderungsprozess einstellen.
-
Dokument des Stands der Technik
-
Patentdokument
-
- Patentdokument 1: Japanische ungeprüfte Patentanmeldungs-Nr. JP 2012-221217 A
- Patentdokument 2: Japanische ungeprüfte Patentanmeldungs-Nr. JP 2008-186167 A
-
Zusammenfassung
-
Durch die Erfindung zu lösendes Problem
-
Beide Technologien von Patentdokumenten 1 und 2 zielen ab auf das Vergrößern eines freien Raums eines Speichers durch Beenden eines Prozesses mit einer niedrigen Priorität. Gemäß der Technologie von Patentdokument 1, falls der freie Raum nicht ausreichend vergrößert werden kann, selbst durch Beenden eines Prozesses mit einer niedrigen Priorität, muss ein Prozess mit einer hohen Priorität beendet werden, wodurch das vorgenannte Problem erzeugt wird. Entsprechend der Technologie von Patentdokument 2, falls viele Zwangsbeendigungs-Verhinderungsprozesse bearbeitet werden, mag der freie Raum des Speichers nicht ausreichend reserviert werden.
-
Die vorliegende Erfindung ist erdacht worden, um die Probleme zu lösen und hat als Aufgabe die Bereitstellung eines Speicherverwaltungssystems, welches ausreichend einen freien Raum eines Speichers reservieren kann, während die zwangsweise Beendigung eines Prozesses mit einer hohen Priorität verhindert wird.
-
Mittel zum Lösen des Problems
-
Ein Speicherverwaltungssystem gemäß der vorliegenden Erfindung beinhaltet: einen Speicherverwalter zum Überwachen eines freien Raums eines Speichers, der zum Ausführen einer Vielzahl von Prozessen zu verwenden ist, und Beenden eines laufenden Prozesses beim Detektieren einer Verknappung des freien Raums des Speichers, um den freien Raum des Speichers zu vergrößern; und eine System-Cache-Freimach-Einheit zum Freimachen eines Bereichs im Speicher, der, als ein Cache-Speicher eines Betriebssystems reserviert ist, um den freien Raum des Speichers weiter zu vergrößern, wenn ein Typ oder ein Betriebszustand des Prozesses, der durch dem Speicher-Manager beendet wird, eine vorbestimmte Bedingung erfüllt.
-
Effekte der Erfindung
-
Gemäß der vorliegenden Erfindung, wenn der Speicherverwalter einen Prozess beendet, der eine vorbestimmte Bedingung erfüllt, befreit die System-Cache-Freistelleinheit einen als einen Cache-Bereich eines Betriebssystems reservierten Bereich, um den freien Raum des Speichers zu vergrößern. Der freie Raum des Speichers kann effektiv gesteigert werden, bevor das Speicherverwaltungssystem einen Prozess mit einer hohen Priorität beendet, was folglich verhindert, dass der Speicherverwalter den Prozess mit einer hohen Priorität beendet. Somit kann der freie Raum des Speichers ausreichend reserviert werden, während eine zwangsweise Beendigung des Prozesses mit einer hohen Priorität verhindert wird.
-
Die Aufgaben, Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden aus der nachfolgenden detaillierten Beschreibung und den beigefügten Zeichnungen ersichtlicher werden.
-
Figurenliste
-
- 1 ist ein Blockdiagramm, welches konzeptionell eine Konfiguration von Haupteinheiten einer Informationsverarbeitungseinrichtung gemäß einer Ausführungsform der vorliegenden Erfindung illustriert.
- 2 illustriert eine Beispielbeziehung zwischen einem Typ oder einem Betriebszustand und einer Priorität jeden Prozesses und einen Schwellenwert eines freien Raums.
- 3 illustriert eine Beispielbeschreibung einer Konfigurationsdatei.
- 4 illustriert Operationen eines Speicherverwaltungssystems gemäß der Ausführungsform der vorliegenden Erfindung.
- 5 illustriert die Operationen des Speicherverwaltungssystems gemäß der Ausführungsform der vorliegenden Erfindung.
- 6 illustriert die Operationen des Speicherverwaltungssystems gemäß der Ausführungsform der vorliegenden Erfindung.
- 7 illustriert die Operationen des Speicherverwaltungssystems gemäß der Ausführungsform der vorliegenden Erfindung.
- 8 illustriert Operationen von „Low Memory Killer“.
- 9 illustriert die Operationen von „Low Memory Killer“.
- 10 illustriert die Operationen von „Low Memory Killer“.
- 11 illustriert die Operationen von „Low Memory Killer“.
- 12 ist ein Flussdiagramm, welches die Operationen des Speicherverwaltungssystems gemäß der Ausführungsform der vorliegenden Erfindung illustriert.
-
Beschreibung von Ausführungsformen
-
1 ist ein Blockdiagramm, welches konzeptionell eine Konfiguration von Haupteinheiten einer Informationsverarbeitungseinrichtung gemäß einer Ausführungsform der vorliegenden Erfindung illustriert. Wie in 1 illustriert, beinhaltet die Informationsverarbeitungseinrichtung einen Prozessor 1, einen Speicher 2 und einen Massenspeicher 3. Spezifische Beispiele der Informations-Verarbeitungseinrichtung beinhalten persönliche Computer, Smartphones, Tablet-Endgeräte, Navigationseinrichtungen und Audio-Anzeigesysteme. Wenn beispielsweise die Informationsverarbeitungseinrichtung eine tragbare Vorrichtung wie etwa ein Smartphone oder ein Tablet-Endgerät ist, wird die Illustration der anderen Bestandteilelemente als jener in 1 illustrierten, beispielsweise eine Bildanzeigeeinheit, eine Audioausgabeeinheit und eine Bedieneingabeeinheit weggelassen, obwohl diese Bestandteilelemente in der Informationsverarbeitungseinrichtung enthalten sind.
-
Der Prozessor 1 führt Software (ein Programm) zum Implementieren verschiedener Funktionen aus. Der Prozessor 1 wird manchmal als beispielsweise eine Zentraleinheit (CPU), eine Verarbeitungseinheit, eine Arithmetik-Einheit, ein Mikroprozessor, ein Mikrocomputer oder ein Digitalsignalprozessor (DSP) bezeichnet.
-
Der Speicher 2 ist ein Hauptspeicher des Prozessors 1 und beinhaltet beispielsweise einen Wahlfreizugriffsspeicher (RAM). Wenn Software ausgeführt wird, veranlasst der Prozessor 1 den Speicher 2, Daten oder ein Programm, welche für die Ausführung notwendig sind, zu speichern.
-
Der Massenspeicher 3 ist ein Hilfsspeicher des Prozessors 1 und speichert beispielsweise ein Programm der durch den Prozessor 1 auszuführenden Software. Hier speichert der Massenspeicher 3 System-Software 31 zum Aufbauen eines Betriebssystems 10, eine Konfigurationsdatei 32, die verschiedene Einstellwerte beschreibt und eine Vielzahl von Teilen von Anwendungs-Software 33 (wird nachfolgend einfach als „Anwendungen 33“ bezeichnet).
-
Beispiele des Massenspeichers 3 beinhalten Halbleiterspeicher wie etwa Nurlesespeicher (ROM), einen Flash-Speicher, einen löschbaren programmierbaren Nurlesespeicher (EPROM), und einen elektrisch löschbaren, programmierbaren Nurlesespeicher (EEPROM), ein Festplattenlaufwerk (HDD), eine optische Disk, eine Magnet-Disk und eine flexible Disk. Der Massenspeicher 3 kann eine Kombination dieser Speichermedien sein. Beispielsweise kann der Massenspeicher 3 eine Form des Speichers der Software 31 und der Konfigurationsdatei 32 im ROM und Speichern der Anwendungen 33 in einer Speicherkarte, die als ein Flash-Speicher funktioniert, annehmen.
-
Der Prozessor 1 führt die System-Software 31, die im Massenspeicher 3 gespeichert ist, aus, um das Betriebssystem 10 aufzubauen. Das Betriebssystem 10 beinhaltet Funktionsblöcke einer Prozessausführungseinheit 11 und eines Speicherverwaltungssystems 12.
-
Die Prozessausführungseinheit 11 führt in dem Massenspeicher 3 gespeicherte Anwendungen 33 aus, anhand einer Anwenderbedienung oder einer Anweisung des Betriebssystems 10. Mit anderen Worten führt die Prozessausführungseinheit 11 verschiedene Prozesse anhand von Programmen der Anwendungen 33 aus. Die Prozessausführungseinheit 11 kann simultan Prozesse einer Vielzahl von Anwendungen 33 ausführen. Die Prozessausführungseinheit 11 kann eine Vielzahl von Prozessen unter Verwendung einer der Anwendungen 33 ablaufen lassen.
-
Das Speicherverwaltungssystem 12 führt einen Prozess zum Auflösen einer Verknappung eines freien Raums des Speichers 2 bei ihrem Auftreten aus. Wie in 1 illustriert, beinhaltet das Speicherverwaltungssystem 12 eine Speicherverwaltung 121 und eine System-Cache-Freimacheinheit 122.
-
Der Speicherverwalter 121 speichert einen freien Raum des Speichers 2. Beim Detektieren einer Verknappung des freien Raums des Speichers 2 beendet der Speicherverwalter 121 irgendeinen von laufenden Prozessen, um den freien Raum des Speichers 2 zu vergrößern. Spezifisch, wenn detektiert wird, dass der freie Raum des Speichers 2 kleiner als ein vordefinierter Schwellenwert ist, wählt der Speicherverwalter 121 einen zu beendenden Prozess aus den laufenden Prozessen aus und gibt an die Prozessausführungseinheit 11 ein Signal aus, welches die Beendigung des ausgewählten Prozesses anfordert. Wenn das Betriebssystem 10 beispielsweise Android ist, sollte der Speicherverwalter 121 der bekannte „Low-Memory-Killer“ sein.
-
Die System-Cache-Freimacheinheit 122 überwacht das aus dem Speicherverwalter 121 ausgegebene Signal zum Identifizieren, welcher Prozess durch den Speicherverwalter 121 beendet worden ist, und prüft den Typ und den Betriebszustand (was einen Betriebszustand unmittelbar vor der Beendigung angibt) des Prozesses. Wenn der Typ oder der Betriebszustand des Prozesses, der durch den Speicherverwalter 121 beendet worden ist, eine vorbestimmte Auslösebedingung erfüllt, befreit die System-Cache-Freimacheinheit 122 im Speicher 2 einen Bereich, der als ein Cache-Bereich des Betriebssystems 10 reserviert ist (nachfolgend als „System-Cache-Bereich“ bezeichnet), um weiter den freien Raum des Speichers 2 zu vergrößern.
-
Spezifische Beispiele der Auslösebedingung werden später beschrieben.
-
Es sei angenommen, dass in der Ausführungsform das Betriebssystem 10 Android ist und der Speicherverwalter 121 „Low Memory Killer“. Beim Low Memory Killer werden laufende Prozesse in eine Vielzahl von Genre klassifiziert, basierend auf einem Typ und einem Betriebszustand jedes der Prozesse, wie in 2 illustriert. Weiterhin werden ein adj-Wert, der eine Priorität repräsentiert, und ein Schwellenwert eines freien Raums des Speichers 2, der ein Kriterium zum Bestimmen ist, ob der Prozessor ein Kandidat für zwangsweise Beendigung ist, für jedes der Genres definiert. Mit kleinerem adj-Wert steigt die Priorität. In 2 wird der Schwellenwert des freien Raums des Speichers 2 durch die Anzahl von Seiten repräsentiert. In Android ist eine Seite gleich 4 kB. Beispielsweise bedeuten 2048 Seiten 4 kB × 2048 = 8192 kB.
-
In 2 ist „FOREGROUND_APP“ ein Prozess, der im Vordergrund arbeitet. Der adj-Wert wird auf 0 eingestellt und der Schwellenwert des freien Raums wird auf 2048 eingestellt. „VISIBLE APP“ ist ein Prozess in einem Zustand, bei dem ein Teil oder die Gesamtheit des Laufbildschirms auf einer Anzeigeeinheit angezeigt wird. Der adj-Wert wird auf 1 eingestellt und der Schwellenwert des freien Raums wird auf 4096 eingestellt. „PERCEPTIBLE_APP“ ist ein Prozess, der im Hintergrund arbeitet, dessen Operation vom Anwender wahrgenommen werden kann (beispielsweise ein Zustand des Wiedergebens von Musik). Der adj-Wert wird auf 2 eingestellt und der Schwellenwert des freien Raums wird auf 8192 eingestellt.
-
„HEAVY_WEIGHT_APP“ ist ein Prozess, dessen Belastung am Prozessor 1 oder dem Speicher 2 schwer ist. Der adj-Wert wird auf 3 eingestellt und der Schwellenwert des freien Raums wird auf 8192 eingestellt. „SECONDARY_SERVER“ ist ein Prozess zum Bereitstellen eines anderen Prozesses mit einer Funktion. Der adj-Wert wird auf 4 eingestellt und der Schwellenwert des freien Raums wird auf 16384 eingestellt. „BACKUP_APP“ ist ein Prozess zum Sichern von Daten. Der adj-Wert wird auf 5 eingestellt und der Schwellenwert des freien Raums wird auf 20000 eingestellt.
-
„HOME APP“ ist ein Prozess zum Anzeigen eines Heimbildschirms für den Anwender, so dass eine Anwendung (das heißt ein Prozess eines Schubfachs oder einer Heim-Anwendung). Der adj-Wert wird auf 6 eingestellt und der Schwellenwert des freien Raums wird auf 25000 eingestellt. „HIDDEN_APP“ ist ein Prozess, der im Hintergrund arbeitet, dessen Betrieb nicht vom Anwender wahrgenommen werden kann. Der adj-Wert wird auf 7 eingestellt und der Schwellenwert des freien Raums wird auf 30000 eingestellt. „CONTENT_PROVIDER“ ist ein Prozess zum Teilen von Daten zwischen einer Vielzahl von Prozessen. Der adj-Wert wird auf 14 eingestellt und der Schwellenwert des freien Raums wird auf 35000 eingestellt. „EMPTY_APP“ ist ein Prozess, während welchem keiner ausgeführt wird. Der adj-Wert wird auf 15 eingestellt, und der Schwellenwert des freien Raums wird auf 40000 eingestellt.
-
Die in 2 illustrierten Einstellwerte werden in der Konfigurationsdatei 32 in einem in 3 illustrierten Format beschrieben und werden durch das Speicherverwaltungssystem 12 beim Starten des Betriebssystems 10 eingelesen.
-
Wenn der freie Raum des Speichers 2 unter einen gewissen Wert fällt, wählt Low-Memory-Killer einen Kandidatenprozess, der zu beenden ist, basierend auf dem freien Raum des Speichers 2 aus. Wenn beispielsweise die in 2 illustrierten Einstellwerte auf Low-Memory-Killer eingestellt sind, läuft Low-Memory-Killer, wenn der freie Raum des Speichers 2 kleiner als 40000 Seiten ist (160000 kB). Wenn beispielsweise der freie Raum des Speichers 2 unter 30000 Seiten (120000 kB) fällt, wählt Low-Memory-Killer einen Prozess, dessen adj-Wert 7 oder mehr ist, als den zu beendenden Kandidatenprozess aus. Wenn der freie Raum des Speichers 2 unter 20000 Seiten fällt (80000 kB), wählt Low-Memory-Killer einen Prozess, dessen adj-Wert 5 oder größer ist, als den zu beendenden Kandidatenprozess aus.
-
Wenn eine Vielzahl von zu beendenden Kandidatenprozessen gefunden wird, beendet Low-Memory-Killer einen Prozess mit der niedrigsten Priorität, das heißt einen Prozess mit dem höchsten adj-Wert von den Kandidatenprozessen. Wenn eine Vielzahl von Prozessen mit der niedrigsten Priorität von den zu beendenden Kandidatenprozessen gefunden wird, beendet Low-Memory-Killer einen Prozess mit der größten Speicherverwendung von der Vielzahl von Prozessen. Low-Memory-Killer wiederholt solche Prozesse, bis der freie Raum des Speichers 2 größer als oder gleich einem gewissen Wert ist oder bis es keinen zu beendenden Kandidatenprozess gibt.
-
Die Auslösebedingung wird auf die System-Cache-Freimacheinheit 122 eingestellt, basierend auf den in 2 illustrierten Prozess-Genres. Ein Genre mit einer Priorität niedriger als derjenigen eines Prozesses, der vorzugsweise daran gehindert wird, durch den Speicherverwalter 121 (Low-Memory-Killer) beendet zu werden, wird auf die Auslösebedingung eingestellt.
-
In der Ausführungsform verhindert der Speicherverwalter 121 (Low-Memory-Killer), dass Prozesse mit einer höheren Priorität als oder gleich derjenigen von „HOME_APP“, beendet werden. In diesem Fall werden Prozess-Genres mit niedrigeren Prioritäten als derjenigen von „HOME_APP“ als Prozess-Genres eingestellt, welche die Auslösebedingung erfüllen. Hier werden „HIDDEN_APP“, „CONTENT_PROVIDER“ und „EMPTY_APP“ auf die, die Auslösebedingung erfüllenden Prozess-Genres eingestellt. Der Einstellwert der Auslösebedingung wird in der im Massenspeicher 3 gespeicherten Konfigurationsdatei 32 beschrieben.
-
Nachfolgend werden Operationen des Speicherverwaltungssystems 12 der Informationsverarbeitungseinrichtung mit den spezifischen Beispielen beschrieben. 4 illustriert Beispiel-Speicherbereiche, die im Speicher 2 zu reservieren sind. Zuerst wird ein Speicherbereich 2s für das Betriebssystem 10 (wird nachfolgend als „System-Speicherbereich 2s“ bezeichnet) im Speicher 2 reserviert. Der System-Speicherbereich 2s beinhaltet einen Cache-Bereich 2sc, der vom Betriebssystem 10 zu verwenden ist, um eine Reaktionszeit für eine Anwenderoperation abzukürzen (wird nachfolgend als „System-Cache-Bereich 2sc“ bezeichnet).
-
Hier ist die Größe des als System-Speicherbereich 2s reservierten Bereichs nicht fixiert. Wenn die Daten, die das Betriebssystem 10 im Speicher 2 „cached“ (zwischenspeichert) anwachsen, wächst der System-Cache-Bereich 2sc graduell an und wächst entsprechend der System-Speicherbereich 2s an.
-
Hier führt die Prozessausführungseinheit 11 alles des Nachfolgenden aus: einen Prozess A, der als „FOREGROUND_APP“ klassifiziert ist; einen Prozess B, der als „VISIBLE_APP“ klassifiziert ist; einen Prozess C, der als „PERCEPTIBLE_APP“ klassifiziert ist; einen Prozess D, der als „SECONDARY_SERVER“ klassifiziert ist; einen Prozess E, der als „BACKUP_APP“ klassifiziert ist; einen Prozess F, der als „HOME_APP“ klassifiziert ist; einen Prozess G, der als „HIDDEN_APP“ klassifiziert ist; einen Prozess H, der als „CONTENT_PROVIDER“ klassifiziert ist, und einen Prozess I, der als „EMPTY_APP“ klassifiziert ist. Im Speicher 2 werden jeweils Speicherbereiche 2a bis 2i für die Prozesse A bis I reserviert. Wie in 2 illustriert, werden 40000 Seiten (80000 kB) oder mehr als ein freier Raum 2x im Speicher 2 reserviert.
-
Beispielsweise wird angenommen, dass ein als „HEAVY_WEIGHT_APP“ klassifizierter Prozess J ab dem in 4 illustrierten Zustand abläuft, dass ein Speicherbereich 2j neu für den Prozess J im Speicher 2 reserviert ist und dass der freie Raum 2x folglich unter 16384 Seiten (65536 kB) fällt, wie in 5 illustriert. Unter Bezugnahme auf 2 wählt der Speicherverwalter 121 als Kandidatenprozesse, die zu beenden sind, den Prozess D, der als „SECONDARY_SERVER“ klassifiziert ist, den Prozess E, der als „BACKUP_APP“ klassifiziert ist, den Prozess F, der als „HOME APP“ klassifiziert ist; den Prozess G, der als „HIDDEN_APP“ klassifiziert ist; den Prozess H, der als „CONTENT_PROVIDER“ klassifiziert ist, und den Prozess I, der als „EMPTY_APP“ klassifiziert ist, aus. Dann beendet der Speicherverwalter 121 den Prozess I mit der niedrigsten Priorität (dem höchsten adj-Wert) von den Kandidatenprozessen. Als Ergebnis wird der Speicherbereich 2i für den Prozess I befreit, um den freien Raum 2x durch den freigestellten Bereich zu vergrößern, wie in 6 illustriert.
-
Hier detektiert die System-Cache-Freimacheinheit 122, dass der Speicherverwalter 121 den als „EMPTY_APP“ klassifizierten Prozess I beendet hat. Da „EMPTY_APP“ in das Genre klassifiziert ist, das als Auslösebedingung in der Ausführungsform eingestellt ist, macht die System-Cache-Freimacheinheit 122 den System-Cache-Bereich 2sc beim Detektieren, dass der Speicherverwalter 121 den Prozess I beendet hat, frei. Als Ergebnis wird der freie Raum 2x weiter vergrößert, wie in 7 illustriert.
-
Da der freie Raum 2x in dem in 7 illustrierten Zustand unter 40000 Seiten (160000 kB) fällt, wählt der Speicherverwalter 121 einen als „EMPTY APP“ klassifizierten Prozess als einen Kandidatenprozess aus, der zu terminieren ist, falls der Prozess ausgeführt wird. Jedoch gibt es keinen als „EMPTY_APP“ klassifizierten Prozess von den Prozessen A bis H in dem in 7 illustrierten Zustand. Somit beendet der Speicherverwalter 121 keinen der Prozesse.
-
Folglich kann der als „HOME_APP“ klassifizierte Prozess F seinen Betrieb fortsetzen. Da der Anwender häufig den als „HOME_APP“ klassifizierten Prozess F ablaufen lässt, hindert der fortgesetzte Betrieb des Prozesses F die Verwendbarkeit der Informationsverarbeitungseinrichtung am Sinken. Obwohl das Freimachen des System-Cache-Bereichs 2sc zeitweilig die Reaktionsrate des Betriebssystems 10 reduzieren kann, beeinträchtigt es wahrscheinlich den Verwendungssinn des Anwenders weniger als diejenige, wenn die Startzeit von beispielsweise einem als „HOME_APP“ klassifizierten Prozess, den der Anwender häufig ablaufen lässt, verlängert wird.
-
Es ist oben als ein Beispiel beschrieben, dass alle von „HIDDEN_APP“, „CONTENT_PROVIDER“ und „EMPTY_APP“ mit niedrigeren Prioritäten als derjenigen von „HOME_APP“ vorzugsweise von ihrer zwangsweisen Beendigung vermieden werden, auf die Prozess-Genres eingestellt werden, die der Auslösebedingung genügen. Jedoch sollten ein oder mehrere von diesen auf die Prozess-Genres eingestellt werden, welche die Auslösebedingung erfüllen. Falls beispielsweise die „EMPTY_APP“ aus dem, die Auslösebedingung erfüllenden Prozess-Genres ausgeschlossen wird, wird der System-Cache-Bereich 2sc nicht durch lediglich Beenden der „EMPTY_APP“ durch den Speicherverwalter 121 freigemacht. Somit kann die Häufigkeit des Freimachens des System-Cache-Bereichs 2sc mehr reduziert werden als die des vorgenannten Beispiels.
-
Folglich ist es in der Ausführungsform möglich, zu verhindern, dass der Speicherverwalter 121 den als „HOME APP“ klassifizierten Prozess F beendet. Um diesen Vorteil klarzustellen, werden nachfolgend Operationen von Low-Memory-Killer, der ein konventionelles Speicherverwaltungssystem ist, beschrieben.
-
Ähnlich zum Beispiel oben sei angenommen, dass der als „HEAVY_WEIGHT_APP“ klassifizierte Prozess J aus dem in 4 illustrierten Zustand ablaufen gelassen wird, um den in 5 illustrierten Zustand zu ergeben, und dass der freie Raum 2x unter 16384 Seiten (65536 kB) fällt. Hier wählt Low-Memory-Killer als Kandidatenprozesse, die zu beenden sind, den als „SECONDARY_SERVER“ klassifizierten Prozess D, den als „BACKUP_APP“ klassifizierten Prozess E, den als „HOME_APP“ klassifizierten Prozess F, den als „HIDDEN_APP“ klassifizierten Prozess G, den als „CONTENT_PROVIDER“ klassifizierten Prozess H und den als „EMPTY_APP“ klassifizierten Prozess I aus. Dann beendet Low-Memory-Killer den Prozess I mit der niedrigsten Priorität von den Kandidatenprozessen. Als Ergebnis wird der Speicherbereich 2i für den Prozess I freigeräumt, um den freien Raum 2x um den frei geräumten Bereich zu vergrößern, wie in 8 illustriert.
-
Da der freie Raum 2x unter 20000 Seiten (80000 kB) im in 8 illustrierten Zustand fällt, wählt Low-Memory-Killer als zu beendende Kandidatenprozesse den den als „BACKUP_APP“ klassifizierten Prozess E, den als „HOME APP“ klassifizierten Prozess F, den als „HIDDEN APP“ klassifizierten Prozess G, den als „CONTENT_PROVIDER“ klassifizierten Prozess H aus. Dann beendet Low-Memory-Killer den Prozess H mit der niedrigsten Priorität von den Kandidatenprozessen. Als Ergebnis wird der Speicherbereich 2h für den Prozess H frei gemacht, um den freien Raum 2x um den befreiten Bereich, wie in 9 illustriert, zu vergrößern.
-
Da der freie Raum 2x unter 25000 Seiten (100000 kB) im in 9 illustrierten Zustand fällt, wählt Low-Memory-Killer als zu beendenden Kandidatenprozess den als „HOME_APP“ klassifizierten Prozess F, und den als „HIDDEN_APP“ klassifizierten Prozess G aus. Dann beendet Low-Memory-Killer den Prozess G mit der niedrigsten Priorität von den Kandidatenprozessen. Als Ergebnis wird der Speicherbereich 2g für den Prozess G bis zum Anstieg des freien Raums 2x um den freigemachten Bereich zu vergrößern, wie in 10 illustriert.
-
Da der freie Raum 2x unter 25000 Seiten (100000 kB) im in 10 illustrierten Zustand fällt, wählt Low-Memory-Killer als einen zu beendenden Kandidatenprozess einen als „HOME_APP“ klassifizierten Prozess F aus und beendet den Prozess F. Als Ergebnis wird der Speicherbereich 2f für den Prozess F frei gemacht, um den freien Raum 2x um den frei gemachten Bereich zu vergrößern, wie in 11 illustriert. Jedoch senkt die Beendigung des als „HOME APP“ klassifizierten Prozesses F die Verwendbarkeit der Informationsverarbeitungseinrichtung.
-
Im Gegensatz zum Speicherverwaltungssystem 12 dieser Ausführungsform, wenn der Speicherverwalter 121 einen Prozess, der die Auslösebedingung erfüllt, beendet, befreit die System-Cache-Freimacheinheit 122 den System-Cache-Bereich 2sc, um den freien Raum 2x zu vergrößern. Somit kann der freie Raum 2x des Speichers 2 effektiv gesteigert werden, bevor das Speicherverwaltungssystem 12 einen Prozess mit einer hohen Priorität, wie etwa „HOME_APP“ beendet, was konsequent verhindert, dass der Speicherverwalter 121 den Prozess mit einer hohen Priorität beendet. Somit kann das Speicherverwaltungssystem 12 ausreichend einen freien Raum eines Speichers reservieren, während die zwangsweise Beendigung eines Prozesses mit einer hohen Priorität verhindert wird.
-
12 ist ein Flussdiagramm, welches die Operationen des Speicherverwaltungssystems 12 illustriert. Das Speicherverwaltungssystem 12 führt die Prozedur in 12 zum Implementieren der Operationen zur Speicherverwaltung, die unter Bezugnahme auf 4 bis 7 beschrieben sind, aus.
-
Beim Starten des Betriebssystems 10 der Informationsverarbeitungseinrichtung liest das Speicherverwaltungssystem 12 zuerst die Konfigurationsdatei 32 aus dem Massenspeicher 3 aus und initialisiert den Speicherverwalter 121 und die System-Cache-Freimacheinheit 122, basierend auf der Beschreibung der Konfigurationsdatei 32 (Schritt S1). Spezifisch führt das Speicherverwaltungssystem 12 Prozesse des Speicherns, in dem Speicherverwalter 121, einer Tabelle, die eine Beziehung zwischen den Prozess-Genres repräsentiert, der adj-Werte und der Schwellenwerte des freien Raums des Speichers 2, wie in 2 illustriert, und Einstellen der Auslösebedingungen auf die System-Cache-Freimacheinheit 122 ein.
-
Als Nächstes identifiziert der Speicherverwalter 121 die Größe des freien Raums des Speichers 2 (Schritt S2) und bestimmt, ob der freie Raum des Speichers 2 unzureichend ist (Schritt S3). Beispielsweise wenn die in 2 illustrierte Tabelle auf den Speicherverwalter 121 eingestellt wird und der freie Raum des Speichers 2 kleiner als 40000 Seiten (160000 kB) ist, bestimmt der Speicherverwalter 121, dass der freie Raum unzureichend ist. Wenn der freie Raum des Speichers 2 nicht unzureichend ist (NEIN in Schritt S3), werden Schritte S2 und S3 wiederholt.
-
Wenn der freie Raum des Speichers 2 unzureichend ist (JA im Schritt S3), wählt der Speicherverwalter 121 zu beendende Kandidatenprozesse aus, basierend auf der Größe des freien Raums des Speichers 2 (Schritt S4). Wenn die in 2 illustrierte Tabelle auf den Speicherverwalter 121 eingestellt wird und beispielsweise der freie Raum des Speichers 2 unter 30000 Seiten (120000 kB) fällt, wählt der Speicherverwalter 121 Prozesse, deren adj-Wert 7 oder größer ist, als die zu beendenden Kandidatenprozesse aus. Wenn der freie Raum des Speichers 2 unter 20000 Seiten (80000 kB) fällt, wählt der Speicherverwalter 121 Prozesse, deren adj-Wert 5 oder mehr beträgt, als die zu beendenden Kandidatenprozesse aus. Wenn der Speicherverwalter 121 keinen zu beendenden Kandidatenprozess findet (NEIN im Schritt S5), kehren die Prozesse zu Schritt S2 zurück.
-
Wenn er die zu beendenden Kandidatenprozesse findet (JA im Schritt S5), beendet der Speicherverwalter 121 einen Prozess mit der größten Speicherverwendung im Speicher 2 von den Kandidatenprozessen mit der niedrigsten Priorität (dem höchsten adj-Wert), um den freien Raum des Speichers 2 zu vergrößern (Schritt S6). Mit anderen Worten wählt der Speicherverwalter 121 einen Prozess mit der niedrigsten Priorität aus den zu beendenden Kandidatenprozessen aus. Wenn eine Vielzahl der Prozesse mit der niedrigsten Priorität gefunden werden, wählt der Speicherverwalter 121 einen Prozess mit der größten Speicherverwendung im Speicher 2 aus den Prozessen aus und beendet den schließlich ausgewählten Prozess.
-
Nachdem der Speicherverwalter 121 den Prozess beendet, prüft die System-Cache-Freimacheinheit 122, ob der beendete Prozess ein Prozess ist, der die Auslösebedingung erfüllt (Schritt S7). Wenn der beendete Prozess der die Auslösebedingung erfüllende Prozess ist (JA im Schritt S7), befreit die System-Cache-Freimacheinheit 122 den Systemspeicherbereich, um weiter den freien Raum des Speichers 2 zu vergrößern (Schritt S8) und dann kehren die Prozesse zu Schritt S2 zurück.
-
Wenn der durch den Speicherverwalter 121 beendete Prozess nicht der Prozess ist, der die Auslösebedingung erfüllt (NEIN im Schritt S7), kehren die Prozesse zu Schritt S2 zurück, ohne dass die System-Cache-Freimacheinheit 122 den Systemspeicherbereich frei gibt.
-
Das Speicherverwaltungssystem 12 wiederholt diese Prozesse.
-
[Modifikation]
-
Allgemein gesagt, beinhaltet der Cache-Bereich für das Betriebssystem 10 (System-Cache-Bereich) einen Seiten-Cache-Bereich und einen Platten-Cache-Bereich. Obwohl die System-Cache-Freimacheinheit 122 die Gesamtheit des System-Cache-Bereich im vorgenannten Beispiel frei macht, kann es sein, dass der Speicherverwalter 121 nur entweder den Seiten-Cache-Bereich oder den Platten-Cache-Bereich frei macht. Dies kann eine Reduktion bei der Reaktionsrate des Betriebssystems 10 aufgrund der Operationen der System-Cache-Freimacheinheit 122 mehr verhindern als wenn die System-Cache-Freimacheinheit 122 die Gesamtheit des System-Cache-Bereichs frei macht.
-
Ob beispielsweise die System-Cache-Freimacheinheit 122 nur den Seiten-Cache-Bereich, nur den Platten-Cache-Bereich oder sowohl den Seiten-Cache-Bereich als auch den Platten-Cache-Bereich frei macht, kann an jeder Informationsverarbeitungseinrichtung eingestellt werden. In einem solchen Fall sollte ein Einstellwert, der angibt, welcher Bereich die System-Cache-Freimacheinheit 122 frei macht, in der Konfigurationsdatei 32 beschrieben sein. Beim Starten des Betriebssystems 10 (beispielsweise Schritt S1 in 12), sollte die System-Cache-Freimacheinheit 122 den Einstellwert aus der Konfigurationsdatei 32 lesen.
-
Obwohl Android als das Beispiel des Betriebssystems 10 in der Beschreibung oben verwendet wird, ist die vorliegende Erfindung auf das Betriebssystem 10 anwendbar, welches den Speicherverwalter 121 beinhaltet, der einen laufenden Prozess beendet, wenn der freie Raum des Speichers 2 unzureichend ist, um den freien Raum des Speichers zu reservieren, beispielsweise iOS (registrierte Marke), Windows (registrierte Marke) oder Linux (registrierte Marke). Da der Speicherverwalter 121, der mit der System-Cache-Freimacheinheit 122 zu kombinieren ist, eine gemeinsame Einheit wie etwa Low-Memory-Killer sein kann, hat die vorliegende Erfindung die größere Vielseitigkeit.
-
Wenn innerhalb des Schutzumfangs der vorliegenden Erfindung, kann die Ausführungsform angemessen modifiziert oder weggelassen werden.
-
Obwohl diese Erfindung im Detail beschrieben worden ist, ist die Beschreibung in allen Aspekten illustrativ und beschränkt die Erfindung nicht. Daher werden zahlreiche Modifikationen, die noch nicht exemplifiziert worden sind, erdacht werden, ohne vom Schutzumfang dieser Erfindung abzuweichen.
-
Bezugszeichenliste
-
1 Prozessor, 2 Speicher, 3 Massenspeicher, 10 Betriebssystem, 11 Prozessausführungseinheit, 12 Speicherverwaltungssystem, 121 Speicherverwalter, 122 System-Cache-Freimacheinheit, 31 System-Software, 32 Konfigurationsdatei, 33 Anwendungen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 2012221217 A [0004]
- JP 2008186167 A [0004]