DE69800909T2 - Verfahren und Vorrichtung zur Optimierung der präzisen Speicherbereinigung, bei der Programmschleifen mit Zeiger-Feldern verwendet werden - Google Patents

Verfahren und Vorrichtung zur Optimierung der präzisen Speicherbereinigung, bei der Programmschleifen mit Zeiger-Feldern verwendet werden

Info

Publication number
DE69800909T2
DE69800909T2 DE69800909T DE69800909T DE69800909T2 DE 69800909 T2 DE69800909 T2 DE 69800909T2 DE 69800909 T DE69800909 T DE 69800909T DE 69800909 T DE69800909 T DE 69800909T DE 69800909 T2 DE69800909 T2 DE 69800909T2
Authority
DE
Germany
Prior art keywords
pointer
node
variable
modified
map
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
DE69800909T
Other languages
German (de)
English (en)
Other versions
DE69800909D1 (de
Inventor
Boris Beylin
Ross C. Knippel
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69800909D1 publication Critical patent/DE69800909D1/de
Application granted granted Critical
Publication of DE69800909T2 publication Critical patent/DE69800909T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • G06F12/0276Generational garbage collection
    • 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)
  • Memory System (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
DE69800909T 1997-04-23 1998-04-20 Verfahren und Vorrichtung zur Optimierung der präzisen Speicherbereinigung, bei der Programmschleifen mit Zeiger-Feldern verwendet werden Expired - Fee Related DE69800909T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/842,139 US5903900A (en) 1997-04-23 1997-04-23 Method and apparatus for optimizing exact garbage collection of array nodes in a carded heap

Publications (2)

Publication Number Publication Date
DE69800909D1 DE69800909D1 (de) 2001-07-19
DE69800909T2 true DE69800909T2 (de) 2002-03-28

Family

ID=25286618

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69800909T Expired - Fee Related DE69800909T2 (de) 1997-04-23 1998-04-20 Verfahren und Vorrichtung zur Optimierung der präzisen Speicherbereinigung, bei der Programmschleifen mit Zeiger-Feldern verwendet werden

Country Status (4)

Country Link
US (1) US5903900A (enExample)
EP (1) EP0874317B1 (enExample)
JP (1) JPH10301837A (enExample)
DE (1) DE69800909T2 (enExample)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10329680A1 (de) * 2003-07-01 2005-02-10 Universität Stuttgart Prozessorarchitektur für exakte Zeigeridentifizierung

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115782A (en) * 1997-04-23 2000-09-05 Sun Micosystems, Inc. Method and apparatus for locating nodes in a carded heap using a card marking structure and a node advance value
US6105040A (en) * 1997-06-30 2000-08-15 Sun Microsystems, Inc. Method and apparatus for managing stored objects
US6308185B1 (en) * 1998-03-06 2001-10-23 Sun Microsystems, Inc. Methods and apparatus for generational dynamic management of computer memory
US6141738A (en) * 1998-07-08 2000-10-31 Nortel Networks Corporation Address translation method and system having a forwarding table data structure
US6148309A (en) * 1998-08-25 2000-11-14 International Business Machines Corporation Method for handling overflow of counters in comparison based actions
US6148310A (en) * 1998-08-25 2000-11-14 International Business Machines Corporation Method for combining card marking with remembered sets for old area of a memory heap
US6173294B1 (en) * 1998-08-25 2001-01-09 International Business Machines Corporation Method for combining card marking with remembered set for generational garbage collection with more than two generations
US6327701B2 (en) * 1998-09-15 2001-12-04 Sun Microsystems, Inc. Method and apparatus for finding bugs related to garbage collection in a virtual machine
US6317756B1 (en) * 1998-10-07 2001-11-13 International Business Machines Corporation On-the-fly garbage collector
US6279148B1 (en) * 1998-10-13 2001-08-21 Sun Microsystems, Inc. Method and apparatus for supporting efficient programming in dynamic pointer-safe languages
US6275985B1 (en) 1998-12-17 2001-08-14 Sun Microsystems, Inc Method and apparatus for developing an application that implements garbage collection efficiently by combining proxy objects with compiler support
GB2345355A (en) * 1998-12-30 2000-07-05 Ibm Garbage collection in a Java virtual machine
US6401182B1 (en) * 1999-02-10 2002-06-04 International Business Machines Corporation Method and apparatus for memory management
US6457019B1 (en) * 1999-02-11 2002-09-24 Oracle Corp. Memory management within a run-time environment
US6249793B1 (en) 1999-06-10 2001-06-19 Sun Microsystems, Inc. Mostly concurrent compaction in a garbage collection system
US6381738B1 (en) * 1999-07-16 2002-04-30 International Business Machines Corporation Method for optimizing creation and destruction of objects in computer programs
US6434576B1 (en) 1999-08-19 2002-08-13 Sun Microsystems, Inc. Popular-object handling in a train-algorithm-based garbage collector
US6415302B1 (en) 1999-08-19 2002-07-02 Sun Microsystems, Inc. Train-algorithm-based garbage collector employing farthest-forward-car indicator
US6424977B1 (en) 1999-08-19 2002-07-23 Sun Microsystems, Inc. Train-algorithm-based garbage collector employing reduced oversized-object threshold
US6449626B1 (en) 1999-08-19 2002-09-10 Sun Microsystems, Inc. Reduced-cost remembered-set processing in a train-algorithm-based garbage collector
US6185581B1 (en) * 1999-08-19 2001-02-06 Sun Microsystems, Inc. Train-algorithm-based garbage collector employing fixed-size remembered sets
US7096238B2 (en) 1999-08-19 2006-08-22 Sun Microsystems, Inc. Dynamic feedback for determining collection-set size
US6434577B1 (en) 1999-08-19 2002-08-13 Sun Microsystems, Inc. Scalable-remembered-set garbage collection
WO2001057656A2 (en) * 2000-02-07 2001-08-09 Insignia Solutions Plc Reduced size object headers
US6529919B1 (en) 2000-02-15 2003-03-04 Sun Microsystems, Inc. Incremental class unloading in a train-algorithm-based garbage collector
US6738875B1 (en) 2000-07-31 2004-05-18 Microsoft Corporation Efficient write-watch mechanism useful for garbage collection in a computer system
US6598141B1 (en) 2001-03-08 2003-07-22 Microsoft Corporation Manipulating interior pointers on a stack during garbage collection
US7203756B2 (en) * 2001-04-27 2007-04-10 International Business Machines Corporation Mechanism to cache references to Java RMI remote objects implementing the unreferenced interface
US6928460B2 (en) * 2002-07-01 2005-08-09 Sun Microsystems, Inc. Method and apparatus for performing generational garbage collection in a segmented heap
US6999979B2 (en) * 2002-11-05 2006-02-14 Sun Microsystems, Inc. Efficient encoding of references into a collection set
US7035884B2 (en) * 2002-11-05 2006-04-25 Sun Microsystems, Inc. Placement of allocation trains in the train algorithm
US7539713B2 (en) 2002-11-05 2009-05-26 Sun Microsystems, Inc. Allocation of likely popular objects in the train algorithm
US7188129B2 (en) 2002-11-15 2007-03-06 Sun Microsystems, Inc. Merging trains in a collector based on the train algorithm
US7209935B2 (en) * 2002-11-27 2007-04-24 Sun Microsystems, Inc. Avoiding remembered-set maintenance overhead for memory segments known to be in a collection set
US20040111718A1 (en) * 2002-12-04 2004-06-10 Detlefs David L. Block-offset table employing gaps in value set
US7143124B2 (en) * 2002-12-06 2006-11-28 Sun Microsystems, Inc. Detection of dead regions during incremental collection
US7031990B2 (en) 2002-12-06 2006-04-18 Sun Microsystems, Inc. Combining external and intragenerational reference-processing in a garbage collector based on the train algorithm
US7085790B2 (en) * 2002-12-06 2006-08-01 Sun Microsystems, Inc. Advancing cars in trains managed by a collector based on the train algorithm
US7069280B2 (en) 2002-12-06 2006-06-27 Sun Microsystems, Inc. Collection-tick mechanism for a collector based on the train algorithm
US7024437B2 (en) * 2002-12-06 2006-04-04 Sun Microsystems, Inc. Better placement of objects reachable from special objects during collection based on the train algorithm
US7058781B2 (en) * 2003-02-14 2006-06-06 Sun Microsystems, Inc. Parallel card table scanning and updating
US7043509B2 (en) * 2003-02-19 2006-05-09 Sun Microsystems, Inc. Parallel non-contiguous allocation and card parsing
US7069281B2 (en) 2003-02-24 2006-06-27 Sun Microsystems, Inc. Efficient collocation of evacuated objects in a copying garbage collector using variably filled local allocation buffers
US7146390B2 (en) 2003-02-24 2006-12-05 Sun Microsystems, Inc. Staging the processing of remembered-set entries as part of collection based on the train algorithm
US7062519B2 (en) * 2003-02-27 2006-06-13 Sun Microsystems, Inc. Incremental scanning of enormous objects to improve scheduling and pause-time behavior of garbage collection
US7096329B2 (en) * 2003-02-27 2006-08-22 Sun Microsystems, Inc. Better placement of objects promoted into a generation managed by the train algorithm
US7730449B2 (en) * 2003-03-19 2010-06-01 Toshiba Corporation Auto reference counting pointer for C++ objects with ability to re-cast and lookup from a free pointer
US20040186863A1 (en) * 2003-03-21 2004-09-23 Garthwaite Alexander T. Elision of write barriers for stores whose values are in close proximity
US7089272B1 (en) 2003-06-18 2006-08-08 Sun Microsystems, Inc. Specializing write-barriers for objects in a garbage collected heap
US7149762B1 (en) 2003-08-20 2006-12-12 Sun Microsystems, Inc. Handling futile collections in the train algorithm through selective extension of the collection set
US7404182B1 (en) 2003-10-03 2008-07-22 Sun Microsystems, Inc. Deferring and combining write barriers for a garbage-collected heap
US7624137B2 (en) * 2004-01-05 2009-11-24 International Business Machines Corporation Method and apparatus for scheduling and performing garbage collection in a real-time system with guaranteed space bounds
US7792880B2 (en) * 2004-01-05 2010-09-07 International Business Machines Corporation Method and apparatus for efficient implementation of discontiguous objects
US7636745B1 (en) 2004-03-12 2009-12-22 Sun Microsystems, Inc. Concurrent-marking-initiation heuristic
US8131955B2 (en) * 2004-04-15 2012-03-06 Microsoft Corporation Ephemeral garbage collection using a tracking mechanism on a card table to determine marked bundles
US7620943B1 (en) 2004-06-30 2009-11-17 Sun Microsystems, Inc. Using class properties to segregate objects in a generation managed by the train algorithm
US7676801B1 (en) 2004-08-31 2010-03-09 Sun Microsystems, Inc. Scanning of evacuated objects in a generation managed by the train algorithm
US7321909B1 (en) 2004-12-23 2008-01-22 Sun Microsystems, Inc. Method and apparatus for forwarding references to objects concurrently with space-incremental garbage collection
US7774741B2 (en) * 2006-05-22 2010-08-10 Microsoft Corporation Automatically resource leak diagnosis and detecting process within the operating system
US7627621B2 (en) * 2007-02-12 2009-12-01 Sun Microsystems, Inc. Method and system for minor garbage collection
US7870171B2 (en) * 2007-02-12 2011-01-11 Oracle America, Inc. Method and system for garbage collection in a multitasking environment
KR101634118B1 (ko) * 2010-03-22 2016-06-29 삼성전자주식회사 메모리 관리 장치 및 방법
US9417935B2 (en) 2012-05-01 2016-08-16 Microsoft Technology Licensing, Llc Many-core process scheduling to maximize cache usage
US8595743B2 (en) 2012-05-01 2013-11-26 Concurix Corporation Network aware process scheduling
US8726255B2 (en) 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
US8650538B2 (en) 2012-05-01 2014-02-11 Concurix Corporation Meta garbage collection for functional code
US8700838B2 (en) 2012-06-19 2014-04-15 Concurix Corporation Allocating heaps in NUMA systems
US9047196B2 (en) 2012-06-19 2015-06-02 Concurix Corporation Usage aware NUMA process scheduling
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
US8707326B2 (en) 2012-07-17 2014-04-22 Concurix Corporation Pattern matching process scheduler in message passing environment
US8793669B2 (en) 2012-07-17 2014-07-29 Concurix Corporation Pattern extraction from executable code in message passing environments
US9043788B2 (en) 2012-08-10 2015-05-26 Concurix Corporation Experiment manager for manycore systems
US8656134B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed on executing code
US8607018B2 (en) 2012-11-08 2013-12-10 Concurix Corporation Memory usage configuration based on observations
US8656135B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed prior to execution
US20130227529A1 (en) 2013-03-15 2013-08-29 Concurix Corporation Runtime Memory Settings Derived from Trace Data

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4922414A (en) * 1982-12-17 1990-05-01 Symbolics Inc. Symbolic language data processing system
US4757438A (en) * 1984-07-12 1988-07-12 Texas Instruments Incorporated Computer system enabling automatic memory management operations
US4775932A (en) * 1984-07-31 1988-10-04 Texas Instruments Incorporated Computer memory system with parallel garbage collection independent from an associated user processor
US4920483A (en) * 1985-11-15 1990-04-24 Data General Corporation A computer memory for accessing any word-sized group of contiguous bits
US5222221A (en) * 1986-06-17 1993-06-22 Yeda Research And Development Co., Ltd. Method and apparatus for implementing a concurrent logic program
US4989134A (en) * 1987-03-20 1991-01-29 Hewlett-Packard Company Method and apparatus for enhancing data storage efficiency
US5136706A (en) * 1987-04-30 1992-08-04 Texas Instruments Incorporated Adaptive memory management system for collection of garbage in a digital computer
US4907151A (en) * 1988-09-30 1990-03-06 Digital Equipment Corporation System and method for garbage collection with ambiguous roots
US5088036A (en) * 1989-01-17 1992-02-11 Digital Equipment Corporation Real time, concurrent garbage collection system and method
US5321834A (en) * 1989-11-28 1994-06-14 Xerox Corporation Method and system for reclaiming unreferenced computer memory space
JPH04506720A (ja) * 1990-03-23 1992-11-19 イーストマン・コダック・カンパニー ディジタル・データ処理システムのための仮想メモリ管理及び割付け装置
NL9001262A (nl) * 1990-06-05 1992-01-02 Oce Nederland Bv Werkwijze voor het in een logisch georganiseerd systeem, van door digrafen te representeren groepen van met elkaar in relatie staande entiteiten, distribueren van status-informatie betreffende een digraaf en een inrichting voor het toepassen van een dergelijke werkwijze.
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
US5355483A (en) * 1991-07-18 1994-10-11 Next Computers Asynchronous garbage collection
US5218698A (en) * 1991-11-22 1993-06-08 Aerojet-General Corporation Garbage collection system for a symbolic digital processor
JP3628032B2 (ja) * 1992-06-15 2005-03-09 マイクロソフト コーポレーション コンサーバティブ・スタックとジェネレイショナル・ヒープガーベージ・コレクション用コンピュータシステム及び方法
DE69327089T2 (de) * 1992-07-24 2000-04-13 Microsoft Corp., Redmond Rechnerverfahren und system zur zuordnung und zur freigabe von speichern.
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
US5367685A (en) * 1992-12-22 1994-11-22 Firstperson, Inc. Method and apparatus for resolving data references in generated code
US5408650A (en) * 1993-06-29 1995-04-18 Digital Equipment Corporation Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program
US5566321A (en) * 1993-12-13 1996-10-15 Cray Research, Inc. Method of managing distributed memory within a massively parallel processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10329680A1 (de) * 2003-07-01 2005-02-10 Universität Stuttgart Prozessorarchitektur für exakte Zeigeridentifizierung

Also Published As

Publication number Publication date
EP0874317A3 (en) 1999-04-21
US5903900A (en) 1999-05-11
DE69800909D1 (de) 2001-07-19
JPH10301837A (ja) 1998-11-13
EP0874317B1 (en) 2001-06-13
EP0874317A2 (en) 1998-10-28

Similar Documents

Publication Publication Date Title
DE69800909T2 (de) Verfahren und Vorrichtung zur Optimierung der präzisen Speicherbereinigung, bei der Programmschleifen mit Zeiger-Feldern verwendet werden
DE69801186T2 (de) Verfahren und Vorrichtung zum Auffinden von Objekt-Zeigern, für die Erkennung/Sammlung von nicht-referenzierten Daten-Objekten
US5920876A (en) Performing exact garbage collection using bitmaps that identify pointer values within objects
US6038572A (en) Method and apparatus for localizing nodes in a garbage collected carded heap
US6115782A (en) Method and apparatus for locating nodes in a carded heap using a card marking structure and a node advance value
US6049810A (en) Method and apparatus for implementing a write barrier of a garbage collected heap
US5915255A (en) Method and apparatus for referencing nodes using links
DE69427174T2 (de) Dynamische Hochleistungsprogrammverknüpfung durch Cachespeicherung
DE69800686T2 (de) Verfahren und Gerät für effizienten Operationen auf primären Typwerten ohne statisches Überladen
DE69617509T2 (de) Vorrichtung und Verfahren zur Feststellung von Objekttypen in einem verteilten Objektsystem
US5911144A (en) Method and apparatus for optimizing the assignment of hash values to nodes residing in a garbage collected heap
DE69803624T2 (de) Verfahren und Vorrichtung zur generationellen Freispeichersammlung in einem gemeinsam verwendeten Heapspeicher mittels mehrerer Prozessoreinheiten
DE69414387T2 (de) Objektorientiertes dynamisches "link"-system, welches auf katalogisierte funktionen und klassen zugreift
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE69404439T2 (de) Programmodellierungssystem.
DE69902908T2 (de) Verfahren und system zum implementieren von parametrisierten typen für kompatibilität mit bestehenden nicht-parametrisierten bibliotheken
DE69503065T2 (de) Objektorientierte vorrichtung für konfigurationsverlaufsverwaltung
DE69232761T2 (de) Verfahren und vorrichtung zur aenderung von dynamische zuweisbaren objektcodedateien
US7308466B2 (en) Memory reclamation method
DE60032694T2 (de) Speicherrückforderungsverfahren
DE69231743T2 (de) Prozessintervalabhängige Adressraumverwaltung
DE69615637T2 (de) Verfahren zur objektorientierten Programmierung mit dynamischer Schnittstelle
DE69918334T2 (de) Erzeugung von kompilierten programmen für interpretative laufzeitumgebungen
DE60002559T2 (de) Speicherverwaltung in einer laufzeitumgebung
US20050102670A1 (en) Shared object memory with object management for multiple virtual machines

Legal Events

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