DE69923658T2 - Dynamische speicherplatzzuordnung - Google Patents
Dynamische speicherplatzzuordnung Download PDFInfo
- Publication number
- DE69923658T2 DE69923658T2 DE69923658T DE69923658T DE69923658T2 DE 69923658 T2 DE69923658 T2 DE 69923658T2 DE 69923658 T DE69923658 T DE 69923658T DE 69923658 T DE69923658 T DE 69923658T DE 69923658 T2 DE69923658 T2 DE 69923658T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- free
- memory space
- blocks
- list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 72
- 238000000034 method Methods 0.000 claims description 35
- 230000006835 compression Effects 0.000 claims description 3
- 238000007906 compression Methods 0.000 claims description 3
- 230000000737 periodic effect Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 2
- 238000012217 deletion Methods 0.000 claims 3
- 230000037430 deletion Effects 0.000 claims 3
- 230000005540 biological transmission Effects 0.000 claims 2
- 238000004140 cleaning Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 238000011084 recovery Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000005056 compaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Anordnung zur Verwaltung gespeicherter Datenobjekte und insbesondere, aber nicht ausschließlich, die Verwaltung von Systembeantragungen zur Zuordnung von Speicherraum, die während der Garbage-Einsammlungsprozeduren auftreten, die in Echtzeit in reellem oder virtuellem Speicherraum einer Datenverarbeitungsanordnung durchgeführt werden.
- Garbage-Einsammlung ist die automatisierte Rückgewinnung von Speicherraum des Systems nach der letzten Verwendung durch ein Programm. Eine Anzahl Beispiele von Garbage-Einsammlungstechniken sind beschrieben worden in; "Garbage Collection: Algorithms for Automatic Dynamic Memory Management" von R. Jones u. a., erschienen bei Wiley & Sons 1996, ISBN 0-471-94148-4, auf Seiten 1 bis 18. Während die Speicheranforderungen vieler Computerprogramme einfach und vorhersagbar sind, wobei die Speicherzuordnung und die Rückgewinnung durch den Programmierer oder einen Compiler durchgeführt werden, gibt es eine Neigung zu funktionellen Sprachen mit komplexeren Durchführungsmuster, so dass die Lebensdauer bestimmter Datenstrukturen nicht länger vor der Laufzeit bestimmt werden kann und folglich eine automatisierte Rückgewinnung dieses Speicherraums, während das Programm läuft, wesentlich ist.
- Eine Anzahl Garbage-Einsammlungstechniken erfordern das Reinigen der Datenobjekte im Massenspeicher, damit diejenigen Objekte identifiziert werden können, die redundant geworden sind. Bei derartigen Garbage-Einsammlungssystemen arbeiten Speicherzuordnungsanträge gleichzeitig mit dem Reinigungsprozess, wobei dieser Prozess tote Objekte zu einer freien Struktur verlagert. Wenn die Systemspeicherverwaltung einen Zuordnungsantrag nicht sofort aus der freien Struktur einwilligen kann, wird der Zuordnungsprozess typischerweise gesperrt, bis der aktuelle Reinigungszyklus komplett ist. Der Zuordnungsantrag kann dann neu versucht werden, und wenn es diesmal wieder nicht klappt, können extremere Aktionen durchgeführt werden. Diese könnten eine Expansion des Massenspeichers oder eine Verdichtung umfassen, oder aber einen Abbruch des Prozesses mit einem Fehler. Es dürfte einleuchten, dass das Sperren von Zuordnungsanträgen das System verlangsamen kann und im Allgemeinen die Effizienz reduziert. Die Veröffentlichung US-A-5 461 786 illustriert eine Anordnung und ein Verfahren, wie in dem Oberbegriff der Hauptansprüche spezifiziert.
- Deswegen ist es u. a. eine Aufgabe der vorliegenden Erfindung eine verbesserte Technik zu schaffen zum Verwalten der Speicherzuordnungsanträge, und eine Anordnung, die dies verkörpert.
- Die vorliegende Erfindung, wie in dem Hauptanspruch 1 definiert, bezieht sich auf ein Verfahren zur Speicherverwaltung zur Anwendung in Datenverarbeitungsanordnungen, wobei ein RAM eine Anzahl Datenobjekte enthält, wobei jedes genannte Datenobjekt sich an einer betreffenden bekannten Stelle innerhalb des RAMs befindet und auf die über betreffende Zeiger, die von Speicherstapeln getragen werden, zugegriffen werden kann, wobei das Verfahren die nachfolgenden Verfahrensschritte umfasst: das periodische Reinigen des Speichers um diejenigen Datenobjekte zu ermitteln, die keine Größenzeiger dazu von einer Quelle haben und die Blöcke Speicherraum dadurch zu einer freien Speicherstruktur mit externen Anträgen übertragen, wobei Speicherraum durch Zuordnung von der genannten freien Speicherstruktur erfüllt wird. Externe Anträge, für die nicht genügend Speicherraum aus der freien Speicherstruktur verfügbar ist, werden in eine Antragsliste eingetragen, wobei befreite Speicherraumblöcke den in die Liste eingetragenen Anträgen zur Verfügung gestellt werden und nur zu der freien Speicherstruktur übertragen werden, wenn nicht einem in die Liste eingetragenen Antrag zugeordnet. Dadurch, dass die befreiten Speicherblöcke denjenigen Programmfäden oder Systemeinrichtungen zugeführt werden, die sie besonders brauchen (da bekundet durch die Tatsache, dass sie sich in der Liste unerfüllter Anträge befinden) wird die allgemeine Effizienz des Systems verbessert und die drastischeren Maßnahmen, wie das Beenden zum Verdichten des Massenspeichers, verzögert und in manchen Fällen alle vermieden.
- Die Übertragung befreiter Blöcke zu der freien Speicherstruktur kann auf geeignete Art und Weise Bildungszeiger dazu enthalten aus eine Adressentabelle für freie Blöcke, und Eintragungen in die Antragslist kann in einer FIFO-Reihenfolge eingehalten werden, wobei die befreiten Blöcke gespeicherten externen Anträgen in der Reihenfolge von den ältesten zu den jüngsten Anträgen zur Verfügung gestellt werden können.
- Obschon die vorliegende Erfindung die Notwendigkeit extremer Maßnahmen vermeidet um Speicherraum zur Verfügung zu stellen, können dennoch eine oder mehrere zusätzliche Speicherrückgewinnungstechniken (wie Verdichtung) auf den Inhalt des RAMs angewandt werden, beim Abschluss einer Reinigung, wobei zurückgewonnener Speicherraum zum Löschen von Antragslisten benutzt werden kann. Unter derartigen Um ständen wird eine Aufzeichnung auf geeignete Art und weise beibehalten, für jeden in die Liste eingetragenen Antrag, der Zeit seit der Eintragung in die Liste, wobei die Anwendung der einen oder von einigen zusätzlichen Techniken zur Rückgewinnung von Speicherraum von einem oder mehreren in die Liste eingetragenen Anträge ausgelöst werden, die länger als eine vorbestimmte Periode auf der Liste stehen. Als Alternative zum Beibehalten eines Echtzeit-Zählwertes kann die Zeit, dass ein Antrag auf der Liste gestanden hat, als eine Anzahl seit der Auflistung durchgeführter Speicherreinigungen gegeben werden.
- Die vorliegende Erfindung, wie in dem Hauptanspruch 8 definiert, bezieht sich auf eine Datenverarbeitungsanordnung mit einem Datenprozessor, der mit einem RAM gekoppelt ist, der eine Anzahl Datenobjekte aufweist, wobei jedes genannte Datenobjekt sich an einer betreffenden bekannten Stelle innerhalb des RAMs befindet und auf das über betreffende Zeiger zugegriffen werden kann, die von Speicherstapeln getragen werden, wobei der Prozessor vorgesehen ist zum periodischen Löschen des Speicherinhalts zum Identifizieren derjenigen gespeicherten Datenobjekte, die keine Größenzeiger von einer Quelle dazu haben und die Blöcke Speicherraum dadurch zu einer freien Speicherstruktur transportieren, wobei der Prozessor vorgesehen ist zum Erfüllen von Programmanträgen für Speicherraum durch Zuordnung aus der freien Speicherstruktur. Ein weiteres Speichermittel ist mit dem Prozessor gekoppelt und der Prozessor ist dazu vorgesehen, diejenigen Programmanträge in die genannten weiteren Speichermittel einzugeben, für die von der freien Struktur aus zu wenig Speicherraum verfügbar ist, und die befreiten Speicherblöcke einem oder mehreren der gespeicherten Programmanträge zuzuordnen, stattdessen, dass sie in die freie Speicherstruktur gesetzt werden.
- Die Anordnung kann dennoch weitere Speichermittel aufweisen, welche die freie Speicherstruktur in Form einer geordneten Liste von Zeigern auf die RAM-Stellen der befreiten Speicherobjekte festhält, und wobei das weitere Speichermittel, das die gespeicherten Programmanträge festhält, auf geeignete Weise für jede Eingabe ein betreffendes Feld aufweist, in dem der Prozessor einen ausgehenden Zählwert der Anzahl Speicherreinigungsvorgänge seit der Speicherung des betreffenden Antrags beibehält.
- Weitere Ausführungsformen der vorliegenden Erfindung sind in den beiliegenden Unteransprüchen definiert.
- Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden im vorliegenden Fall näher beschrieben. Es zeigen:
-
1 ein Blochschaltbild eines Datenverarbeitungssystems, das zum Verkörpern der vorliegenden Erfindung geeignet ist; und -
2 eine schematische Darstellung des funktionellen Verhältnisses zwischen der Reinigungsfunktion und einer Anzahl diskreter Speichergebiete in dem System nach1 . -
1 zeigt ein Datenverarbeitungssystem, wie einen PC, der als Gastgeber für eine Anzahl Softwarefunktionalitäten wirksam ist, die beispielsweise das System als Stöberer für Daten konfigurieren können, die eine virtuelle Umgebung definieren. Das System umfasst eine zentrale Verarbeitungseinheit (CPU)10 , die über einen Adress- und Datenbus12 mit einem RAM- und einem ROM-Speicher14 bzw.16 gekoppelt ist. Diese Speicher können aus einer oder mehreren integrierten Schaltungsanordnungen bestehen und können durch eine System-Festplatte sowie durch Mittel zum Auslesen zusätzlicher (entfernbarer) Speicheranordnungen, wie eine CD-ROM, erweitert werden. Mit der CPU10 ist auch über den Bus12 eine erste und eine zweite Benutzereingabeanordnung18 ,20 gekoppelt, die auf geeignete Art und Weise ein Tastenfeld und eine Cursorsteuerung sowie eine Selektionsanordnung, wie eine Maus oder eine Rollkugel enthalten kann. Audio-Ausgang von dem System erfolgt über einen oder mehrere Lautsprecher22 , die von einer Audio-Verarbeitungsstufe24 betrieben werden. Video-Ausgang von dem System wird an dem Wiedergabeschirm26 , betrieben von der Wiedergabe-Treiberstufe28 , und zwar unter Ansteuerung der CPU10 . Eine weitere Datenquelle für das System ist über eine On-Line-Verbindung mit Fernstellen, beispielsweise übers Internet, wozu das System mit einer mit dem Bus12 gekoppelten Netzwerkschnittstelle30 versehen ist. - Die vorliegende Erfindung ist insbesondere verkörpert in der Speicherverwaltung für einen Arbeitsbereich des RAMs
14 unter Ansteuerung der CPU10 ; wobei ein Steuerprogramm dazu zunächst in einem ROM16 festgehalten wird und beim Einschalten in das Operationssystem geladen wird. Die nachfolgenden Beispiele entsprechen Speicherverwaltungstechniken in der Java (® Sun Microsystems Inc) virtuellen Maschine und die Technologie soll auf entsprechende Weise interpretiert werden: es dürfte aber einleuchten, dass die vorliegende Erfindung sich weder auf Java-entsprechende Systeme, noch auf rein virtuelle Speicherverwaltung begrenzt. -
2 zeigt schematisch eine Anzahl diskreter Speichergebiete von dem System nach1 , und insbesondere einen Massenspeicher HM, der eine Vielzahl Datenob jekte DO enthält zur Verwendung durch mehrere Programmfäden. In der dargestellten Anordnung ist es der Massenspeicher HM, für den eine Garbage-Einsammlung durchgeführt wird, so dass Datenobjekte nach ihrer letzten oder einzigen Bezugnahme durch ein Programm durch den Reiniger100 entfernt werden. Der durch die Objektentfernung frei gewordene Raum wird in einer freien Struktur festgehalten: bei dieser Ausführungsform ist die freie Struktur durch die nicht benutzten oder verfügbaren Blöcke gebildet, die durch Zeiger von oder auf eine freie Liste FL identifiziert sind. Die spezielle Form der freien Struktur ist nicht ein wesentliches Merkmal der vorliegenden Erfindung und der Fachmann wird imstande sein, alternative Konfigurationen zu bedenken, die auf gleiche Weise durchaus verwendet werden können. - Jeder Operationsprogrammfaden hat seine eigene Sammlung mit Stapelframes SF, die sich über eine Handgrifftabelle HAT auf Objekte in dem Massenspeicher HM beziehen. Zwei Klassenstrukturen CL sind rechts in dem Massenspeicher dargestellt: diese können durch Datenobjekte DO in dem Massenspeicher herangezogen werden, sie können aber nicht selber Zeiger auf Datenobjekte setzen. Die spezielle Form und Funktion der Klassenstrukturen haben keinen Einfluss auf die vorliegende Erfindung und werden nicht weiter beschrieben.
- Bei diesem System werden Zuordnungsanträge AREQ an die freie Liste FL, die anfangs nicht erfolgreich waren, führen zu denjenigen Anträgen, die in eine Zuordnungsantragstruktur ALLIST eingefügt werden. Der Prozess zum Beantragen von Zuordnung wird gesperrt, bis dieser Antrag erfüllt wird. Gleichzeitig fügt der Reiniger
100 neu frei gewordene Blöcke in die freie Struktur, und zwar dadurch dass diese zu der freien Liste FL hinzugefügt werden. Bei der Einfügung aber wird der freie Block mit den wartenden Anträgen in der Struktur ALLIST vergleichen, und möglicherweise wird ein Block unmittelbar aus der freien Blockstruktur dem gesperrten Prozess zugeführt, wodurch dieser fortgesetzt werden kann und der Antrag aus der ALLIST entfernt wird. Bei Beendigung eines Reinigungszyklus werden die restlichen wartenden Anträge in ALLIST geprüft. Anträge werden vorzugsweise in FIFO-Reihenfolge verarbeitet, obschon Prioritätskriterien angewandt werden können, so dass dies eine sorgfältige Verwaltung erfordert um zu vermeiden, dass bestimmte Anträge mit einer niedrigen zugeordneten Priorität ständig ignoriert werden. Wenn bestimmte Anträge in ALLIST ein bestimmtes "Alter" erreicht haben, können die oben genannten extremen Vorgänge durchgeführt werden. Das Alter der Anträge in ALLIST kann auf geeignete Art und Weise in Termen von Reinigungszyklen gemessen werden, wobei eine betreffende Zählung mit jeder Eingabe in ALLIST assoziiert wird, und wobei alle Zählwerte bei Beendigung eines Zyklus um Eins inkrementiert werden. - Diese Anordnung hat den Vorteil der Reduktion der mittleren Zeit zum Zuordnen zu behandelnder Anträge. Prozesse werden ehrlicher durchgeführt, da diejenigen, die Daten erwarten, frei gewordene Datenblöcke empfangen, und zwar unmittelbar bevor sie für andere Prozesse durch die Freie Liste FL verfügbar werden. Auch weil unerwünschte Notaktionen, wie Massenspeicherverdichtung oder "Aus-dem-Speicher"-Fehler verschoben und in vielen Fällen vermieden werden, wird die Leistung des Systems verbessert.
- Obschon im Grunde in Termen einer Software-Stöbererimplementierung definiert, dürfte es dem Fachmann einleuchten, dass viele der oben beschriebenen funktionellen Merkmale durchaus in Hardware oder in einer Kombination von Hardware und Software implementiert werden können. Auch dürfte es einleuchten, dass die beschriebene Prozedur auf eine Skala von Speicherverwaltungssystemen angewandt werden kann, ob diese automatisierte Garbage-Einsammlungsprozeduren enthalten oder sonst wie.
- Text in der Zeichnung
-
-
1 -
- 30
- Netzwerkschnittstelle
- 18
- Benutzereingabeanordnung 1
- 24
- Audio-Verarbeitung
- 28
- Wiedergabe-Treiberstufe
- 26
- Wiedergabeanordnung
-
-
2 - Fehlen Zyklus Reinigung
Claims (10)
- Verfahren zur Speicherverwaltung durch Datenverarbeitungsanordnungen, wobei ein RAM (
14 ) eine Anzahl Datenobjekte (DO) enthält, wobei jedes genannte Datenobjekt sich an einer betreffenden bekannten Stelle innerhalb des RAMs befindet und auf die über betreffende Zeiger, die von Speicherstapeln (SF) getragen werden, zugegriffen werden kann, wobei das Verfahren die nachfolgenden Verfahrensschritte umfasst: das periodische Löschen (100 ) des Speichers um diejenigen Datenobjekte zu ermitteln, die keine Größenzeiger dazu von einer Quelle haben und die Blöcke Speicherraum dadurch zu einer freien Speicherstruktur (FL) mit externen Anträgen (AREQ übertragen, wobei Speicherraum durch Zuordnung von der genannten freien Speicherstruktur erfüllt wird; und Eingabe externer Anträge (FAIL) für die nicht genügend Speicherraum von der genannten freien Speicherstruktur aus verfügbar ist, in eine Antragsliste (ALLIST), gekennzeichnet durch Zuordnung der freien Blöcke an Speicherraum zu einem oder mehreren externen Anträgen in der genannten Antragsliste (ALLIST) statt einer Übertragung der genannten freien Blöcke an Speicherraum in die freie Speicherstruktur (FL). - Verfahren nach Anspruch 1, wobei die Übertragung freier Blöcke zu der freien Speicherstruktur Bildungszeiger dazu aufweist von einer Adressentafel für freie Blöcke.
- Verfahren nach Anspruch 1, wobei Eingaben in die Antragsliste in einer FiFo-Reihenfolge gehalten werden und die freien Blöcke verfügbar gemacht werden zum Speichern externer Anträge in der Reihenfolge von dem ältesten zu dem jüngsten Antrag.
- Verfahren nach Anspruch 1, wobei eine oder mehrere zusätzliche Speicherbeanstandungstechniken auf den Inhalt des RAM angewandt werden beim Abschluss einer Löschung, wobei dadurch neu bedeckter Speicherraum benutzt wird zum Löschen aufgelisteter Anträge.
- Verfahren nach Anspruch 4, wobei eine Aufzeichnung beibehalten wird für jeden aufgelisteten Antrag der Zeit seit der Auflistung, wobei die Anwendung der genannten einen oder mehreren zusätzlichen Speicherbeanstandungstechniken von einem oder mehreren der aufgelisteten Anträge getriggert wird, die länger als eine vorbestimmte Periode auf der Liste gestanden haben.
- Verfahren nach Anspruch 5, wobei die Zeit, in der ein Antrag auf der Liste gestanden hat, als die Anzahl Speicherlöschungen, die seit der Auflistung durchgeführt wurden.
- Verfahren nach einem der Ansprüche 4 bis 6, wobei die genannte eine oder mehrere zusätzliche Speicherbeanstandungstechniken Verdichtung des Speicherinhalts umfassen.
- Datenverarbeitungsanordnung mit einem Datenprozessor, der mit einem RAM (
14 ) gekoppelt ist, der eine Anzahl Datenobjekte (DO) aufweist, wobei jedes genannte Datenobjekt sich an einer betreffenden bekannten Stelle innerhalb des RAMs befindet und auf das über betreffende Zeiger zugegriffen werden kann, die von Speicherstapeln (SF) getragen werden, wobei der Prozessor vorgesehen ist zum periodischen Löschen (100 ) des Speicherinhalts zum Identifizieren derjenigen gespeicherten Datenobjekte, die keine Größenzeiger von einer Quelle dazu haben und die Blöcke Speicherraum dadurch zu einer freien Speicherstruktur (FL) transportieren, wobei der Prozessor vorgesehen ist zum Erfüllen von Programmanträgen für Speicherraum durch Zuordnung aus der freien Speicherstruktur; und mit einem weiteren Speichermittel (ALLIST), das mit dem Prozessor gekoppelt ist, wobei der Prozessor vorgesehen ist um diejenigen Programmanträge (FAIL) in die genannten weiteren Speichermittel einzugeben, für die von der freien Struktur aus zu wenig Speicherraum verfügbar ist, dadurch gekennzeichnet, dass der genannte Prozessor vorgesehen ist zum Zuordnen der freien Blöcke an Speicherraum zu einem oder mehreren der gespeicherten Programmanträge stattdessen, dass die genannten freien Blöcke an Speicherraum in die freie Speicherstruktur (FL) gesetzt werden. - Anordnung nach Anspruch 8, mit noch weiteren Speichermitteln, welche die genannte freie Speicherstruktur in Form einer geordneten Liste mit Zeigern zu den RAM-Stellen der freien Speicherobjekte enthält.
- Anordnung nach Anspruch 8, wobei die weiteren Speichermittel, welche die gespeicherten Programmanträge enthält, für jede Eingabe ein betreffendes Feld enthält, in dem der Prozessor einen ausgehenden Zählwert der Anzahl Speicherlöschungen seit dieser Antrag gespeichert wurde, festhält.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9813592 | 1998-06-25 | ||
GBGB9813592.4A GB9813592D0 (en) | 1998-06-25 | 1998-06-25 | Dynamic memory space allocation |
PCT/IB1999/001094 WO1999067699A2 (en) | 1998-06-25 | 1999-06-14 | Dynamic memory space allocation |
Publications (3)
Publication Number | Publication Date |
---|---|
DE69923658D1 DE69923658D1 (de) | 2005-03-17 |
DE69923658T2 true DE69923658T2 (de) | 2006-03-23 |
DE69923658T8 DE69923658T8 (de) | 2006-06-08 |
Family
ID=10834277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69923658T Expired - Fee Related DE69923658T8 (de) | 1998-06-25 | 1999-06-14 | Dynamische speicherplatzzuordnung |
Country Status (8)
Country | Link |
---|---|
US (1) | US6360233B1 (de) |
EP (1) | EP1038211B1 (de) |
JP (1) | JP2002519752A (de) |
CN (1) | CN1114864C (de) |
DE (1) | DE69923658T8 (de) |
GB (1) | GB9813592D0 (de) |
TW (1) | TW442723B (de) |
WO (1) | WO1999067699A2 (de) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111307B1 (en) * | 1999-11-23 | 2006-09-19 | Microsoft Corporation | Method and system for monitoring and verifying software drivers using system resources including memory allocation and access |
JP3832341B2 (ja) * | 2001-12-27 | 2006-10-11 | 日本電気株式会社 | メモリプール管理方式 |
WO2003079196A2 (en) * | 2002-03-20 | 2003-09-25 | Research In Motion Limited | System and method of secure garbage collection on a mobile device |
KR100497722B1 (ko) * | 2002-07-02 | 2005-06-23 | 주식회사 인터와이즈 | 메모리 데이터 저장공간 관리 방법, 그 방법을 기록한기록매체 및 그 방법 을 이용한 응용프로그램 수행장치 |
CN100422932C (zh) * | 2002-12-31 | 2008-10-01 | 上海科泰世纪科技有限公司 | 自描述数据对象的处理方法 |
US7096339B2 (en) * | 2003-03-01 | 2006-08-22 | International Business Machines Corporation | System and method for detecting memory management programming errors |
US20050071595A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Methods and apparatus for allocating memory |
JP4144609B2 (ja) * | 2004-09-29 | 2008-09-03 | ソニー株式会社 | 情報処理装置、メモリ領域管理方法、並びにコンピュータ・プログラム |
WO2008005298A2 (en) * | 2006-06-30 | 2008-01-10 | Wms Gaming Inc. | Systems and methods for managing memory in wagering game machines |
US8202168B2 (en) * | 2006-06-30 | 2012-06-19 | Wms Gaming Inc. | Systems and methods for managing memory in wagering game machines |
US8839225B2 (en) * | 2008-01-23 | 2014-09-16 | International Business Machines Corporation | Generating and applying patches to a computer program code concurrently with its execution |
US8019873B2 (en) * | 2008-09-30 | 2011-09-13 | Microsoft Corporation | Mesh platform utility computing portal |
CN101551764B (zh) * | 2009-02-27 | 2010-11-10 | 北京时代民芯科技有限公司 | 基于同步冗余线程与编码技术的抗单粒子效应系统及方法 |
CN102033804A (zh) * | 2009-09-29 | 2011-04-27 | 国际商业机器公司 | 辅助内存分析的方法和系统 |
JP5614348B2 (ja) | 2011-03-18 | 2014-10-29 | 富士通株式会社 | 命令処理方法、命令処理装置、及び命令処理プログラム |
US10180901B2 (en) | 2012-10-19 | 2019-01-15 | Oracle International Corporation | Apparatus, system and method for managing space in a storage device |
KR102166332B1 (ko) * | 2013-10-25 | 2020-10-16 | 삼성전자주식회사 | 메모리 관리 장치 및 메모리 관리 방법 |
KR102237566B1 (ko) * | 2014-01-23 | 2021-04-07 | 한국전자통신연구원 | 완전 복제된 가상 머신의 디스크 이미지 파일 캐싱 시스템 및 방법 |
GB2546730B (en) * | 2016-01-19 | 2018-03-21 | Arm Ip Ltd | A method for allocating memory |
KR101990201B1 (ko) * | 2017-09-04 | 2019-06-17 | 울산과학기술원 | 뉴메모리 기반 메모리 관리 방법 및 이를 수행하는 장치들 |
CN112965663A (zh) * | 2021-03-05 | 2021-06-15 | 上海寒武纪信息科技有限公司 | 对数据块的存储空间进行复用的方法和相关产品 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2265734A (en) * | 1992-03-27 | 1993-10-06 | Ibm | Free memory cell management system |
JPH06511582A (ja) * | 1992-07-24 | 1994-12-22 | マイクロソフト コーポレイション | メモリを割り当てそして解放するコンピュータ方法及びシステム |
US5560003A (en) * | 1992-12-21 | 1996-09-24 | Iowa State University Research Foundation, Inc. | System and hardware module for incremental real time garbage collection and memory management |
US5784699A (en) * | 1996-05-24 | 1998-07-21 | Oracle Corporation | Dynamic memory allocation in a computer using a bit map index |
US6055612A (en) * | 1997-07-11 | 2000-04-25 | Geodesic Systems, Inc. | Incremental garbage collector with decommit barrier |
US6047295A (en) * | 1998-05-05 | 2000-04-04 | International Business Machines Corporation | Computer system, program product and method of managing weak references with a concurrent mark sweep collector |
-
1998
- 1998-06-25 GB GBGB9813592.4A patent/GB9813592D0/en not_active Ceased
-
1999
- 1999-06-14 JP JP2000556296A patent/JP2002519752A/ja not_active Abandoned
- 1999-06-14 DE DE69923658T patent/DE69923658T8/de not_active Expired - Fee Related
- 1999-06-14 EP EP99923796A patent/EP1038211B1/de not_active Expired - Lifetime
- 1999-06-14 CN CN99801399.4A patent/CN1114864C/zh not_active Expired - Fee Related
- 1999-06-14 WO PCT/IB1999/001094 patent/WO1999067699A2/en active IP Right Grant
- 1999-06-17 US US09/335,019 patent/US6360233B1/en not_active Expired - Lifetime
- 1999-06-21 TW TW088110317A patent/TW442723B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP2002519752A (ja) | 2002-07-02 |
WO1999067699A2 (en) | 1999-12-29 |
DE69923658D1 (de) | 2005-03-17 |
EP1038211B1 (de) | 2005-02-09 |
CN1275221A (zh) | 2000-11-29 |
US6360233B1 (en) | 2002-03-19 |
EP1038211A2 (de) | 2000-09-27 |
DE69923658T8 (de) | 2006-06-08 |
WO1999067699A3 (en) | 2000-04-06 |
GB9813592D0 (en) | 1998-08-19 |
TW442723B (en) | 2001-06-23 |
CN1114864C (zh) | 2003-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69923658T2 (de) | Dynamische speicherplatzzuordnung | |
DE69836796T2 (de) | Datenverarbeiter mit lokalisierter gedächtnisreklamierung | |
DE60032694T2 (de) | Speicherrückforderungsverfahren | |
DE69923657T2 (de) | Markierung von gespeicherten datenobjekten für garbage-kollektoren | |
DE69814170T2 (de) | Inkrementeller freispeichersammler | |
DE60032685T2 (de) | Speicherrückforderungsverfahren | |
DE69930855T2 (de) | Verfahren und vorrichtung zur durchführung einer deterministischen speicherzuordnungsantwort in einem computer-system | |
DE602005004166T2 (de) | Vorrichtung, system und verfahren zur reinitialisierung einer serialisierung von dateisystemen | |
DE69932874T2 (de) | Verfahren und Computersystem zur dynamischen Generationsverwaltung von Rechnerspeicher | |
DE3611223C2 (de) | ||
DE69722979T2 (de) | Betriebsmittelverwaltungsverfahren und -einrichtung eines Multitasking-Datenverarbeitungssystems | |
DE69637020T2 (de) | Überpartitionierungssystem und-verfahren zum Erhöhen der Anzahl von Prüfpunkten in komponentenbasierten Parallelanwendungen | |
DE3911465C2 (de) | Verfahren zur automatischen Konfiguration technischer Systeme aus Komponenten | |
DE69733305T2 (de) | System/Verfahren zur wirkungsvollen Übermittlung von Datenströmen in einem Multimediasystem | |
DE4011745A1 (de) | Taskverfolgungseinrichtung | |
DE1499182B2 (de) | Datenspeichersystem | |
DE2722124A1 (de) | Anordnung zum feststellen des prioritaetsranges in einem dv-system | |
DE19617976A1 (de) | Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen | |
DE2517302A1 (de) | Datenverarbeitungssystem mit mehrprogramm-verarbeitung | |
DE102016007651B4 (de) | Numerische Steuerung mit Funktion zur automatischen Auswahl eines Speicherungsziels für ein Bearbeitungsprogramm | |
DE69912392T2 (de) | Finalisierung in inkrementellen speicherbereinigern | |
DE10063915B4 (de) | Informationsverarbeitungsgerät, das eine Mehrzweckverarbeitung und Transaktionsverarbeitung ausführt | |
DE10148109A1 (de) | Verfahren zum Speichern oder Weiterleiten von Daten | |
DE2932394A1 (de) | Intelligente, programmierbare prozessteueranordnung | |
DE102016222375A1 (de) | Vorrichtung und Verfahren zum Bearbeiten von Aufträgen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |