DE69923658T2 - Dynamische speicherplatzzuordnung - Google Patents

Dynamische speicherplatzzuordnung Download PDF

Info

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
Application number
DE69923658T
Other languages
English (en)
Other versions
DE69923658D1 (de
DE69923658T8 (de
Inventor
J. Richard HOULDSWORTH
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE69923658D1 publication Critical patent/DE69923658D1/de
Publication of DE69923658T2 publication Critical patent/DE69923658T2/de
Application granted granted Critical
Publication of DE69923658T8 publication Critical patent/DE69923658T8/de
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage 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 nach 1.
  • 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 Datenbus 12 mit einem RAM- und einem ROM-Speicher 14 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 CPU 10 ist auch über den Bus 12 eine erste und eine zweite Benutzereingabeanordnung 18, 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 Lautsprecher 22, die von einer Audio-Verarbeitungsstufe 24 betrieben werden. Video-Ausgang von dem System wird an dem Wiedergabeschirm 26, betrieben von der Wiedergabe-Treiberstufe 28, und zwar unter Ansteuerung der CPU 10. 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 Bus 12 gekoppelten Netzwerkschnittstelle 30 versehen ist.
  • Die vorliegende Erfindung ist insbesondere verkörpert in der Speicherverwaltung für einen Arbeitsbereich des RAMs 14 unter Ansteuerung der CPU 10; wobei ein Steuerprogramm dazu zunächst in einem ROM 16 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 nach 1, 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 Reiniger 100 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)

  1. 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).
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. Verfahren nach einem der Ansprüche 4 bis 6, wobei die genannte eine oder mehrere zusätzliche Speicherbeanstandungstechniken Verdichtung des Speicherinhalts umfassen.
  8. 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.
  9. 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.
  10. 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.
DE69923658T 1998-06-25 1999-06-14 Dynamische speicherplatzzuordnung Expired - Fee Related DE69923658T8 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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