DE69729262T2 - Speicherverwaltungssystem und Verfahren hierfür - Google Patents

Speicherverwaltungssystem und Verfahren hierfür Download PDF

Info

Publication number
DE69729262T2
DE69729262T2 DE69729262T DE69729262T DE69729262T2 DE 69729262 T2 DE69729262 T2 DE 69729262T2 DE 69729262 T DE69729262 T DE 69729262T DE 69729262 T DE69729262 T DE 69729262T DE 69729262 T2 DE69729262 T2 DE 69729262T2
Authority
DE
Germany
Prior art keywords
memory
management
blocks
pointer
stack
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
DE69729262T
Other languages
English (en)
Other versions
DE69729262D1 (de
Inventor
John Sawbridgeworth Herts Nichol
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.)
Nortel Networks Ltd
Original Assignee
Nortel Networks Ltd
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 Nortel Networks Ltd filed Critical Nortel Networks Ltd
Application granted granted Critical
Publication of DE69729262D1 publication Critical patent/DE69729262D1/de
Publication of DE69729262T2 publication Critical patent/DE69729262T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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

Description

  • Diese Erfindung bezieht sich auf eine Anordnung und ein Verfahren für die Verwaltung eines Speichers in einem Datenverarbeitungssystem.
  • Hintergrund der Erfindung
  • In Datenverarbeitungssystemen besteht eine allgemeine Notwendigkeit einer Speicherverwaltung, weil der verfügbare Speicherraum fragmentiert werden kann, während neue Daten gespeichert und alte Daten aus einem Speicher gelöscht werden. Über eine Zeitperiode kann dies zu einer Fragmentierung von neu gespeicherten Daten mit einer entsprechenden Vergrößerung der Zeit führen, die erforderlich ist, um diese Daten aus dem Speicher zurückzugewinnen. Die übliche Lösung dieses Problems besteht darin, den Speicher über die Funktionsaufrufe brk, sbrk, malloc, calloc, realloc, usw. zu verwalten. Die Funktionen brk und sbrk sind Grundelemente der niedrigen Ebene, die zur dynamischen Änderung des Speicherplatzes verwendet werden, der dem Datensegment oder dem Speicher eines aufrufenden Prozesses zugeteilt wird. Diese letzteren zwei Funktionen werden allgemein für heutige Systeme als zu primitiv angesehen.
  • Heutige Anwendungen können die „Malloc"-Familie von Funktionsaufrufen verwenden, um Speicherblöcke zur Laufzeit zuzuteilen. Malloc verwendet sbrk oder brk zur Änderung der Größe des verfügbaren Prozess-Speichers und verwaltet den Speicher als eine Liste von zugeteilten und freien Blöcken von bestimmten Größen. Malloc kann einer Anwendung bei Bedarf einen Speicherblock mit irgendeiner Größe liefern. Dies erfolgt durch Führen einer Liste von freien Speicherblöcken und ihrer jeweiligen Größen, um einen Block zurückzuliefern, der zumindest so groß ist, wie der von dem Benutzer angeforderte Block. Daher muss Malloc aus den verfügbaren Blöcken diejenigen Blöcke auswählen, die für die Zuteilung an die Anwendung am besten geeignet sind. Die Realisierung der malloc-Familie von Funktionen ist systemabhängig und ändert sich wahrscheinlich von Maschine zu Maschine.
  • Dieser Prozess leidet an dem Nachteil, dass die Verwendung des Speichers wenig effizient sein kann, weil es allgemein erforderlich ist, einen Speicherblock zuzuteilen, der größer ist als erforderlich, um eine ausreichende Kapazität sicherzustellen, weil irgendein kleinerer verfügbarer Block zu klein sein kann. Es ist weiterhin erforderlich, Prozessorzeit bei der Suche und Identifikation von Blöcken mit passender Größe aufzuwenden, bevor diese Blöcke zugeteilt werden können.
  • Die US-A-5 493 652 beschreibt eine Speicherverwaltungs-Anordnung zur Verwendung in einem Speicher, wobei die Anordnung eine Speicherverwaltungsstruktur und einen Satz von Speicherblöcken einschließt, in denen Daten unter der Steuerung der Verwaltungsstruktur gespeichert werden können, wobei die Speicherverwaltungs-Struktur einen ersten Verwaltungszeiger und einen zweiten Verwaltungszeiger beinhaltet.
  • Die EP-A-0 439 920 offenbart ein System und Verfahren zur Verwaltung von Speicher in einem Mikrocomputer, das eine Zeigertabelle von sich ändernder Länge an einem Ende eines Datenspeicherbereiches zuteilt und in ähnlicher Weise ein Datenfeld, das Datenblöcke umfaßt, an dem anderen Ende des Datenspeicherbereichs zuteilt, wobei Datenzeiger in der Zeigertabelle auf die Speicherplätze der Datenblöcke zeigen, und wenn die Datenblöcke hinzugefügt werden, so wachsen das Datenfeld und die Zeigertabelle in Richtung aufeinander.
  • Zusammenfassung der Erfindung
  • Ein Ziel der Erfindung besteht in der weitgehenden Verringerung oder Beseitigung der Nachteile, die in dem dritten vorhergehenden Absatz erläutert wurden.
  • Ein weiteres Ziel der Erfindung besteht in der Schaffung einer verbesserten Anordnung und eines Verfahrens für die Speicherverwaltung und Zuteilung der Speicherkapazität.
  • Gemäß einem Gesichtspunkt der Erfindung wird eine Speicherverwaltungsanordnung zur Verwendung in einem Speicher geschaffen, wobei die Anordnung eine Speicherver waltungsstruktur und einen Satz von Speicherblöcken mit der gleichen Größe einschließt, in denen Daten unter der Steuerung der Verwaltungsstruktur gespeichert werden können, wobei die Speicherverwaltungsstruktur einen ersten Verwaltungszeiger und einen zweiten Verwaltungszeiger beinhaltet, dadurch gekennzeichnet, dass die Speicherverwaltungsanordnung einen Stapel von Zeigern auf freie Speicherblöcke innerhalb des Satzes von Speicherblöcken einschließt, und wobei der erste Verwaltungszeiger auf den Stapel von Zeigern zeigt, und der zweite Verwaltungszeiger auf einen ersten Speicherblock in dem Stapel zeigt, so dass sich eine automatische Zuteilung von Speicherblöcken ergibt.
  • Gemäß einem weiteren Gesichtspunkt der Erfindung wird ein Verfahren zur Datenspeicherung in einer Speicherverwaltungsanordnung zur Verwendung in einem Speicher geschaffen, wobei das Verfahren eine Speicherverwaltungsstrukur und einen Satz von Speicherblöcken der gleichen Größe einschließt, in denen Daten unter der Steuerung der Verwaltungsstruktur gespeichert werden können, wobei das Verfahren die Bereitstellung eines ersten Verwaltungszeigers und eines zweiten Verwaltungszeigers durch die Verwaltungsstruktur einschließt, wobei das Verfahren dadurch gekennzeichnet ist, dass der Speicherverwaltungsanordnung ein Stapel von Zeigern auf freie Speicherblöcke in dem Satz von Speicherblöcken bereitgestellt wird, und die Speicherverwaltungsstruktur so angeordnet ist, dass der erste Verwaltungszeiger auf den Stapel von Zeigern zeigt und der zweite Verwaltungszeiger auf einen ersten Speicherblock in dem Stapel von Zeigern zeigt, wodurch ein Verfahren zur automatischen Zuteilung von Speicherblöcken geschaffen wird.
  • Gemäß einem weiteren Gesichtspunkt der Erfindung wird ein Verfahren zur Zuteilung von Sätzen von Speicherblöcken zur Verwendung durch eine Anwendung während der Ausführung dieser Anwendung geschaffen, wobei das Verfahren die Schaffung, über die Anwendung, einer Speicherverwaltungsanordnung umfasst, die eine Speicherverwaltungsstruktur und einen Satz von Speicherblöcken mit der gleichen Größe umfasst, in denen Daten unter der Steuerung der Verwaltungsstruktur gespeichert werden können, wobei die Speicherverwaltungsstruktur einen ersten Verwaltungszeiger und einen zweiten Verwaltungszeiger beinhaltet, wobei das Verfahren dadurch gekennzeichnet ist, dass die Speicherverwaltungsanordnung so geschaffen wird, dass sie einen Stapel von Zeigern auf freie Speicherblöcke in dem Satz von Speicherblöcken hat und so angeordnet ist, dass der erste Verwaltungszeiger auf den Stapel von Zeigern zeigt und der zweite Verwaltungszeiger auf einen ersten Speicherblock in dem Stapel von Zeigern zeigt, so dass ein Verfahren zur automatischen Zuteilung von Speicherblöcken geschaffen wird, wobei das Verfahren weiterhin dadurch gekennzeichnet ist, dass die Anwendung eine Anzahl von Speicherverwaltungsanordnungen schafft, wobei die Speicherverwaltungsanordnungen vor dem Ablauf der Anwendung geschaffen werden und wobei jede dieser Speicherverwaltungsanordnungen mit einer Speicherkapazität versehen wird, die durch die Anwendung zum Zeitpunkt der Schaffung der Verwaltungsanordnung bestimmt wird.
  • Die Speicherverwaltungsanordnung verwaltet Speicherblöcke lediglich der gleichen Größe. Daher ist es nicht erforderlich, nach verfügbaren Blöcken zu suchen, um einen Block mit der richtigen Größe zu finden. Insbesondere ermöglicht es die Anordnung einer Anwendung, eine Serie von vollständig getrennten Listen von Speichern mit der gleichen Größe zu führen und einen schnellen Zugriff auf diese Blöcke auszuführen. Zusätzlich ermöglicht es die Anordnung der Anwendung, den Speicher, den sie benötigt, zuzuteilen, bevor sie diesen Speicher verwendet, statt die Zuteilung so lange zu verzögern, bis der Speicher tatsächlich benötigt wird. Die Anwendung bestimmt daher den Speicherbedarf vor der Laufzeit, so dass eine passende Speicherkapazität für diese Anwendung zur Verwendung während der Ausführung der Anwendung verfügbar gemacht wird.
  • Die Speicherverwaltungsanordnung hat den Nutzen einer verbesserten Betriebsleistung aufgrund der Einfachheit ihres Algorithmus, der verringerten Speicherfragmentierung (das heißt Verwaltung des Speichers als eine Sammlung von kleineren und kleineren Blöcken) und der Fähigkeit, die Speicherblöcke der Anwendung zuzuteilen, bevor sie benötigt werden, wodurch die Notwendigkeit eines dynamischen Zuteilung von Speicher während der Ausführung der Anwendung verringert wird.
  • Kurze Beschreibung der Zeichnungen
  • Ein Ausführungsbeispiel der Erfindung wird nunmehr unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
  • 1 ein schematisches Funktionsdiagramm der Speicherverwaltungsanordnung ist, und
  • 2 die Datenstruktur in der Speicherverwaltungsanordnung nach 1 zeigt.
  • Beschreibung einer bevorzugten Ausführungsform
  • Gemäß den Zeichnungen beinhaltet die Speicherverwaltungsanordnung einen Speicher, der ausreichend groß ist, um die verwalteten Datenblöcke 11 aufzunehmen. In dem Speicher sind diese Datenblöcke entweder belegt oder frei, und freie Blöcke sind entweder ungefüllt oder mit Daten gefüllt, die nicht mehr länger erforderlich sind, so dass Raum zum Überschreiben mit neuen Daten geschaffen wird. Ein Stapel von Zeigern 12 auf diese freien Blöcke wird geführt und die Blöcke, und die Blöcke werden über Auflege- und Abhebe- (push- und pop-) Operationen zugeteilt. Eine Speicherverwaltungsstruktur 13 steuert den Zugang an die Datenblöcke 11 über den Zeigerstapel 12. Die Speicherverwaltungsstruktur nach 1 ist in dem Speicher als kontinuierlicher Speicherblock dargestellt, wie dies in 2 gezeigt ist, wobei auf die Speicherverwaltungsstruktur 13 Datenblöcke 11 und der Zeigerstapel 12 am Ende der Datenblöcke folgen.
  • Zweckmäßigerweise wird die Speicherverwaltung in der C-Programmiersprache durch den Typ ON_Mm dargestellt. Dies ist ein Zeiger auf die Struktur. ON_Mms werden von einer ON_mm_create (Erzeugungs-) Funktion zurückgeliefert, die von der Sprache bereitgestellt wird.
  • Die S_ON_Mm-Struktur ist wie folgt:
  • Figure 00050001
  • Figure 00060001
  • Das size- (Größen-) Feld ist die Anzahl von Blöcken in der Speicherverwaltungsstruktur, das blocksize-(Blockgrößen-)Feld gibt die Größe jedes einzelnen Blocks an. Das mm_grow-Feld wird zur Festlegung der Aktion verwendet, die vorgenommen werden sollte, wenn die Speicherverwaltungsstruktur keine verfügbaren Blöcke auf dem Stapel hat. Das mm stack-Feld der Struktur ist ein void ** und zeigt auf einen Teil des Speichers, der Zeiger auf derzeit nicht zugeteilte Datenblöcke enthält. Das mm_stack_index-Feld ist der Offsetwert in den Stapelbereich des nächsten freien Blocks. mm_base ist der Zeiger auf den Speicherblock, von dem die Datenblöcke zugeteilt werden.
  • Die Reihenfolge der Felder in der S_ON_Mm-Struktur ist kritisch. Das Speicherverwaltungsstruktur-Modul nimmt an, dass das mm base-Feld das letzte Feld in der Struktur ist. Auf diese Weise ist das mm-base-Feld die Adresse des ersten Datenblocks in der Speicherverwaltungsstruktur. Die Hinzufügung von Feldern nach dem mm base-Feld führt wahrscheinlich zu Segmentierungsverletzungen und einem Fehlschlag einer korrekte Funktionsweise der Speicherverwaltungsstruktur-Algorithmen.
  • Die Konstruktion der Speicherverwaltungsstruktur beruht auf den Betriebsleistungs-Vorteilen, die erzielt werden können,
    durch Zuteilen des zur Laufzeit verwendeten Speichers während der Initialisierung, und
    durch Verringern der Speicherfragmentierung durch Verwalten großer Speicherblöcke.
  • Jede Speicherverwaltungsanordnung, die geschaffen wird, hat eine feste Blockgröße. Die Blockgröße und die Anzahl von Blöcken werden bei der Speicherverwaltungsstruktur-Schaffung (ON_mm_create) festgelegt, zusammen mit dem Bool'schen Wert grow, der das Verhalten der Speicherverwaltungsstruktur bestimmt, wenn diese ihren Vorrat an verfügbaren Blöcken verbraucht hat. Ein abschließendes Feld für den ON_mm_create-Aufruf ist der Namensparameter (name parameter), wobei dies lediglich dann verwendet wird, wenn das Speicherverwaltungsstruktur-Modul unter Definition der ON_MM_REPORT-Compiler-Flagge kompiliert wird.
  • Die bedingte ON_MM_REPORTS-Kompilations-Flagge wird dazu verwendet, um es zu ermöglichen, dass zusätzliche Informationen während der RNI-Entwicklung zusammengestellt und berichtet werden. Zusätzliche Felder werden zu der S_ON_Mm-Struktur hinzugefügt, um es zu ermöglichen, dass Informationen über einen Speicherverwaltungsstruktur-Namen die maximale zu erreichende Größe und die derzeitige Größe gespeichert werden können, um von der ON_mm_report-Funktion berichtet zu werden, die die gesamte Statusinformation für vorhandene Speicherverwaltungsstrukturen ausgibt, wenn sie aufgerufen wird.
  • Zusätzlich werden, wenn die ON_MM_REPORT-Kompilierungs-Flagge verwendet wird, ON_mm_pop und ON_mm_push als Funktionen und nicht als Makros realisiert, um auf diese Weise die Fehlersuche und das Warten des Codes zu unterstützen. Es ist jedoch wichtig festzustellen, dass dies bedeutet, dass zwei Versionen der push- (Auflege-) und pop- (Abhebe-) Funktionalität aufrechterhalten werden.
  • Wenn die Speicherverwaltungsanordnung geschaffen wird, wird ein Speicherblock mit der Größe
    Figure 00080001
    zugeteilt, beispielsweise unter Verwendung von malloc. Dies gibt Raum für die S-ON-Mm-Datenstruktur, den Speicher für die Datenblöcke und Raum für den Stapel von freien Zeigern, der geführt wird. Dies ist in 2 gezeigt. Die Summe no_of_nodes-1 wird anstelle von no-of-nodes benötigt, weil der Zeiger mm_base auf den ersten Knoten zeigt.
  • Eine Speicherverwaltungsstruktur wird von ON_mm_pop und ON_mm_push manipuliert. Diese Funktionalität wird aus Effizienzgründen als Makros realisiert. Die verwendeten Algorithmen sind relativ einfach.
  • ON_mm_pop – wird aufgerufen, wenn Speicher zugeteilt wird (malloc)
    • 1. Prüfe den Stapel-Index, um festzustellen, ob es irgendwelche freien Blöcke gibt.
    • 2. Wenn ein freier Block vorhanden ist, so bewege den Stapel-Zeiger und liefere einen Zeiger auf den freien Block zurück.
    • 3. Andernfalls prüfe, ob die Speicherverwaltungsstruktur wachsen kann.
    • 4. Wenn sie wachsen kann, so malloc einen neuen Block und liefere dessen Adresse zurück oder liefere NULL zurück, wenn malloc fehlschlug.
    • 5. Andernfalls liefere einen NULL-Zeiger zurück.
  • Es ist verständlich, dass die vorstehende Beschreibung lediglich als Beispiel angegeben ist, und dass insbesondere die Technik in keiner Weise auf die C-Programmiersprache beschränkt ist. Die Anwender anderer Programmiersprachen kennen irgendwelche Modifikationen, die erforderlich sind, um die Technik an diese Sprachen anzupassen.
  • Die Speicherverwaltung ergibt eine Maßnahme zur schnellen Zuteilung und Freigabe von Speicher in einem System. Eine Anwendung ist in der Lage, viele Speicherverwaltungen zu schaffen, die jeweils Speicherblöcke mit einer festen Größe schaffen und führen. Die Anzahl und Größe der Speicherblöcke in einer Speicherverwaltung wird durch die Anwendung konfiguriert. Die Speicherverwaltung teilt alle die Speicherblöcke in einem aneinandergrenzenden Teil von Speicher zu, wenn die Speicherverwaltung geschaffen wird, und die Speicherverwaltung verwaltet dann diesen Teil des Speichers. Die Speicherverwaltung führt einen Stapel von Zeigern auf ihre freien Speicherblöcke. Diese Blöcke können dann sehr schnell aufgelegt und von dem Stapel von freien Blöcken abgehoben werden.
  • Die Vorteile, die die Speicherverwaltung bietet, sind eine verringerte Systemspeicher-Fragmentierung, eine schnelle Speicherzuteilung und die Zuteilung von Speicher zur System-Initialisierungszeit, bevor die Anwendung diesen verwendet.
  • Die Speicherverwaltung kann in irgendwelchen Systemen verwendet werden, die die dynamische Zuteilung von Speicherblöcken mit fester Größe erfordern. Insbesondere kann die Speicherverwaltung bei der Bereitstellung einer Echtzeit-CORBA -(Gemeinsame Objektanforderungs-Vermittlungsarchitektur-) Realisierung verwendet werden.

Claims (6)

  1. Speicherverwaltungsanordnung zur Verwendung in einem Speicher, wobei die Anordnung eine Speicherverwaltungsstruktur (13) und einen Satz von Speicherblöcken (11) mit der gleichen Größe einschließt, in denen Daten unter der Steuerung der Verwaltungsstruktur gespeichert werden können, wobei die Speicherverwaltungsstruktur (13) einen ersten Verwaltungszeiger und einen zweiten Verwaltungszeiger beinhaltet, dadurch gekennzeichnet, dass die Speicherverwaltungsanordnung einen Stapel von Zeigern (12) auf freie Speicherblöcke innerhalb des Satzes von Speicherblöcken (11) einschließt, und wobei der erste Verwaltungszeiger auf den Stapel von Zeigern (12) zeigt, und der zweite Verwaltungszeiger auf einen ersten Speicherblock in dem Stapel (12) zeigt, so dass sich eine automatische Zuteilung von Speicherblöcken ergibt.
  2. Speicherverwaltungsanordnung nach Anspruch 1, die Einrichtungen zur Definition der Kapazität der Speicherblöcke beinhaltet.
  3. Verfahren zur Datenspeicherung in einer Speicherverwaltungsanordnung zur Verwendung in einem Speicher, wobei das Verfahren eine Speicherverwaltungsstrukur (13) und einen Satz von Speicherblöcken (11) der gleichen Größe einschließt, in denen Daten unter der Steuerung der Verwaltungsstruktur gespeichert werden können, wobei das Verfahren die Bereitstellung eines ersten Verwaltungszeigers und eines zweiten Verwaltungszeigers durch die Verwaltungsstruktur einschließt, wobei das Verfahren dadurch gekennzeichnet ist, dass der Speicherverwaltungsanordnung ein Stapel von Zeigern (12) auf freie Speicherblöcke in dem Satz von Speicherblöcken (11) bereitgestellt wird, und die Speicherverwaltungsstruktur so angeordnet ist, dass der erste Verwaltungszeiger auf den Stapel von Zeigern (12) zeigt und der zweite Verwaltungszeiger auf einen ersten Speicherblock in dem Stapel von Zeigern (12) zeigt, wodurch ein Verfahren zur automatischen Zuteilung von Speicherblöcken bereitgestellt wird.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die Speicherverwaltungsstruktur (13) einer Anwendung zugeordnet ist, und dass die Anzahl und Kapazität der Speicherblöcke durch diese Anwendung konfiguriert wird.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die erforderliche Speicherkapazität durch die Anwendung bestimmt wird und ein entsprechender Satz von Speicherblöcken vor dem Ablaufen der Anwendung konfiguriert wird.
  6. Verfahren zur Zuteilung von Sätzen von Speicherblöcken (11) zur Verwendung durch eine Anwendung, wobei das Verfahren die Schaffung, über die Anwendung, einer Speicherverwaltungsanordnung umfasst, die eine Speicherverwaltungsstruktur (13) und einen Satz von Speicherblöcken (11) der gleichen Größe umfasst, in denen Daten unter der Steuerung der Verwaltungsstruktur (13) gespeichert werden können, wobei die Speicherverwaltungsstruktur einen ersten Verwaltungszeiger und einen zweiten Verwaltungszeiger beinhaltet, wobei das Verfahren dadurch gekennzeichnet ist, dass die Speicherverwaltungsanordnung so geschaffen wird, dass sie einen Stapel von Zeigern (12) auf freie Speicherblöcke in dem Satz von Speicherblöcken hat und so angeordnet ist, dass der erste Verwaltungszeiger auf den Stapel von Zeigern (12) zeigt und der zweite Verwaltungszeiger auf einen ersten Speicherblock in dem Stapel (12) zeigt, wodurch ein Verfahren zur automatischen Zuteilung von Speicherblöcken bereitgestellt wird, wobei das Verfahren weiterhin dadurch gekennzeichnet ist, dass die Anwendung eine Anzahl von Speicherverwaltungsanordnungen schafft, wobei die Speicherverwaltungsanordnungen vor dem Ablauf der Anwendung geschaffen werden, und wobei jede dieser Speicherverwaltungsanordnungen mit einer Speicherkapazität versehen wird, die durch die Anwendung zum Zeitpunkt der Schaffung der Verwaltungsanordnung bestimmt wird.
DE69729262T 1996-11-25 1997-11-25 Speicherverwaltungssystem und Verfahren hierfür Expired - Fee Related DE69729262T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/756,200 US5950231A (en) 1996-11-25 1996-11-25 Memory manager system
US756200 1996-11-25

Publications (2)

Publication Number Publication Date
DE69729262D1 DE69729262D1 (de) 2004-07-01
DE69729262T2 true DE69729262T2 (de) 2004-09-16

Family

ID=25042440

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69729262T Expired - Fee Related DE69729262T2 (de) 1996-11-25 1997-11-25 Speicherverwaltungssystem und Verfahren hierfür

Country Status (3)

Country Link
US (1) US5950231A (de)
EP (1) EP0844564B1 (de)
DE (1) DE69729262T2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430665B1 (en) * 1999-06-25 2002-08-06 Sun Microsystems, Inc. System and method for heuristically allocating memory
US7093263B1 (en) * 1999-10-21 2006-08-15 Oracle International Corporation System and methodology for supporting a platform independent object format for a run-time environment
DE19951716A1 (de) * 1999-10-27 2001-05-03 Heidenhain Gmbh Dr Johannes Verfahren zur dynamischen Speicherverwaltung
US6539464B1 (en) * 2000-04-08 2003-03-25 Radoslav Nenkov Getov Memory allocator for multithread environment
US20020163913A1 (en) * 2001-05-07 2002-11-07 Jintae Oh Pointer management and content matching packet classification
US7000087B2 (en) * 2001-11-07 2006-02-14 International Business Machines Corporation Programmatically pre-selecting specific physical memory blocks to allocate to an executing application
US8060680B2 (en) * 2002-09-16 2011-11-15 Hewlett-Packard Development Company, L.P. Method of allocating memory
WO2004066571A1 (ja) * 2003-01-20 2004-08-05 Fujitsu Limited ネットワークスイッチ装置およびネットワークスイッチ方法
EP1489507A1 (de) 2003-06-19 2004-12-22 Texas Instruments Incorporated Vorverteilung von Speicherplatz
AU2004316014B2 (en) 2004-02-19 2010-06-17 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for state memory management
TWI499909B (zh) * 2007-01-26 2015-09-11 Cheriton David 階層式不可改變的內容可定址的記憶體處理器
US9601199B2 (en) 2007-01-26 2017-03-21 Intel Corporation Iterator register for structured memory
DE102007026690A1 (de) * 2007-06-08 2008-12-11 Robert Bosch Gmbh Verfahren und Steuergerät zum Betreiben eines nichtflüchtigen Speichers, insbesondere zum Einsatz in Kraftfahrzeugen
WO2009085253A1 (en) * 2007-12-21 2009-07-09 Hicamp Systems Hierarchical block-identified data communication for unified handling of structured data and data compression
US7995596B2 (en) * 2008-05-13 2011-08-09 Netlogic Microsystems, Inc. System and method for offloading packet protocol encapsulation from software

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414826A (en) * 1990-01-31 1995-05-09 Hewlett-Packard Company System and method for memory management in microcomputer
US5247634A (en) * 1990-03-20 1993-09-21 Hewlett-Packard Company Method of managing memory allocation by association of memory blocks with a tree structure
US5577243A (en) * 1994-03-31 1996-11-19 Lexmark International, Inc. Reallocation of returned memory blocks sorted in predetermined sizes and addressed by pointer addresses in a free memory list
US5493652A (en) * 1994-04-29 1996-02-20 International Business Machines Corporation Management system for a buffer memory having buffers of uniform size in which the buffers are divided into a portion of contiguous unused buffers and a portion of contiguous buffers in which at least some are used
US5579452A (en) * 1994-09-29 1996-11-26 Xerox Corporation Method of managing memory allocation in a printing system
US5625819A (en) * 1995-04-26 1997-04-29 Honeywell, Inc. Methods and apparatus for performing heap management and protecting data structure integrity in non-volatile memory
US5835959A (en) * 1995-12-01 1998-11-10 Sand Technology Systems International, Inc. Memory management system and method using dual indexing structures
US5721858A (en) * 1995-12-12 1998-02-24 International Business Machines Corporation Virtual memory mapping method and system for memory management of pools of logical partitions for bat and TLB entries in a data processing system
US5835958A (en) * 1996-10-29 1998-11-10 Sun Microsystems, Inc. Method and apparatus for dynamically sizing non-contiguous runtime stacks

Also Published As

Publication number Publication date
DE69729262D1 (de) 2004-07-01
US5950231A (en) 1999-09-07
EP0844564B1 (de) 2004-05-26
EP0844564A2 (de) 1998-05-27
EP0844564A3 (de) 1999-12-01

Similar Documents

Publication Publication Date Title
DE69729262T2 (de) Speicherverwaltungssystem und Verfahren hierfür
DE69930855T2 (de) Verfahren und vorrichtung zur durchführung einer deterministischen speicherzuordnungsantwort in einem computer-system
DE69938218T2 (de) Vorrichtung und Verfahren zum Laden eines Java Anwendungsprogramms
DE112010003554B4 (de) Symmetrische Direktmigration von Virtuellen Maschinen
DE60224432T2 (de) Dynamische und automatische speicherverwaltung
EP1228432B1 (de) Verfahren zur dynamischen speicherverwaltung
EP0703534B1 (de) Speicherverwaltungssystem eines Rechnersystems
DE19681256C2 (de) Ausführung von Anwendungen am Platz vom Speicher
DE102005019842B4 (de) System und Verfahren zum sequentiellen Schreiben von Daten in einen Flash-Speicher
DE4218025A1 (de) Datenspeicherverwaltungssystem und verfahren mit speicherzuordnung auf der basis nachgefragter dienstklassen
DE102009060746A1 (de) Speichersicherung
DE69936257T2 (de) Erzeugen und uberprüfen von referenz-adresszeigern
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE112019001821T5 (de) Verfahren und vorrichtung zur wiedergabe eines aktivierungsrahmens für unterbrechungsfreie speicherbereinigung (pause-less garbage collection)
WO2001040931A2 (de) Verfahren zum synchronisieren von programmabschnitten eines computerprogramms
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
DE60019364T2 (de) Speicherdefragmentierung in Chipkarten
DE3327465C2 (de)
EP1182560A2 (de) Prozessor-Speicher-System
DE102014015855B3 (de) Verfahren zur effizienten Verwaltung des flüchtigen Speichers auf ressourcenbeschränkten Datenverarbeitungsmaschinen
DE19819205A1 (de) Datenhaltungssystem für persistente Daten
DE102021108295A1 (de) Objektfreigabe durch entitäten unter verwendung einer datenstruktur
DE102008036479A1 (de) Speicherverwaltung in einem portablen Datenträger
DE69637329T2 (de) Speichermanagementsystem und verfahren
EP0651897B1 (de) Verfahren zur dynamischen verwaltung eines freien speichers einer rechenanlage, des freispeichers, für den eine unterteilung in wenigstens zwei logische speicherbereiche, die sich in ihren zugriffseigenschaften unterscheiden, vorgesehen ist

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee