CA2136154A1 - User Control of Multiple Memory Heaps - Google Patents

User Control of Multiple Memory Heaps

Info

Publication number
CA2136154A1
CA2136154A1 CA2136154A CA2136154A CA2136154A1 CA 2136154 A1 CA2136154 A1 CA 2136154A1 CA 2136154 A CA2136154 A CA 2136154A CA 2136154 A CA2136154 A CA 2136154A CA 2136154 A1 CA2136154 A1 CA 2136154A1
Authority
CA
Canada
Prior art keywords
heap
memory
user
heaps
library
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.)
Granted
Application number
CA2136154A
Other languages
French (fr)
Other versions
CA2136154C (en
Inventor
Jay William Benayon
Brian W. Thomson
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.)
IBM Canada Ltd
Original Assignee
IBM Canada 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 IBM Canada Ltd filed Critical IBM Canada Ltd
Priority to CA002136154A priority Critical patent/CA2136154C/en
Priority to US08/559,904 priority patent/US5809554A/en
Publication of CA2136154A1 publication Critical patent/CA2136154A1/en
Priority to US09/088,747 priority patent/US6816956B1/en
Application granted granted Critical
Publication of CA2136154C publication Critical patent/CA2136154C/en
Anticipated expiration legal-status Critical
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
    • 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/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • 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

Abstract

The present invention provides the user with the ability to control and administer the supply of memory managed in multiple heaps by a library heap management facility. The control data used by the heap management facility is located in the user-supplied memory. Heaps are created dynamically through calls from the application to the runtime library. Allocation within a heap is performed through calls to the runtime library that canvass the available heap memory for each allocation request. If no suitable block of heap memory is located, additional user supplied memory is requested for the application through a callback function. A
second callback function notifies the user when a supplied unit of memory is no longer required by the heap and may he disposed of. The callback functions are specified separately for each heap. The invention also provides the user with means for setting the default heap in the runtime library for use by allocation requests from a vendor library that do not specify a heap. This can be done on a per thread basis in multithreaded applications so that different executing threads can use different default heaps in a non-interfering manner.
CA002136154A 1994-11-18 1994-11-18 User control of multiple memory heaps Expired - Fee Related CA2136154C (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CA002136154A CA2136154C (en) 1994-11-18 1994-11-18 User control of multiple memory heaps
US08/559,904 US5809554A (en) 1994-11-18 1996-02-26 User control of multiple memory heaps
US09/088,747 US6816956B1 (en) 1994-11-18 1998-06-02 User control of multiple memory heaps

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002136154A CA2136154C (en) 1994-11-18 1994-11-18 User control of multiple memory heaps
US08/559,904 US5809554A (en) 1994-11-18 1996-02-26 User control of multiple memory heaps

Publications (2)

Publication Number Publication Date
CA2136154A1 true CA2136154A1 (en) 1996-05-19
CA2136154C CA2136154C (en) 1999-08-24

Family

ID=25677624

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002136154A Expired - Fee Related CA2136154C (en) 1994-11-18 1994-11-18 User control of multiple memory heaps

Country Status (2)

Country Link
US (2) US5809554A (en)
CA (1) CA2136154C (en)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023712A (en) * 1997-07-30 2000-02-08 Quarterdeck Corporation Method and apparatus for brokering memory resources
EP1015974B1 (en) * 1997-09-25 2001-08-08 BRITISH TELECOMMUNICATIONS public limited company Memory allocation
US6065019A (en) * 1997-10-20 2000-05-16 International Business Machines Corporation Method and apparatus for allocating and freeing storage utilizing multiple tiers of storage organization
JP4562910B2 (en) * 1998-03-23 2010-10-13 マイクロソフト コーポレーション Operating system application program interface
US6490670B1 (en) * 1998-04-24 2002-12-03 International Business Machines Corporation Method and apparatus for efficiently allocating objects in object oriented systems
US6510504B2 (en) * 1998-06-29 2003-01-21 Oracle Corporation Methods and apparatus for memory allocation for object instances in an object-oriented software environment
US6412053B2 (en) * 1998-08-26 2002-06-25 Compaq Computer Corporation System method and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system
US6782537B1 (en) 1999-09-23 2004-08-24 International Business Machines Corporation Establishing a communicator across multiple processes in a multithreaded computing environment
US6629236B1 (en) * 1999-11-12 2003-09-30 International Business Machines Corporation Master-slave latch circuit for multithreaded processing
US6633405B1 (en) 1999-12-17 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for interfacing generic and device-specific control codes
US6539464B1 (en) * 2000-04-08 2003-03-25 Radoslav Nenkov Getov Memory allocator for multithread environment
US6629227B1 (en) * 2000-05-04 2003-09-30 Scientific-Atlanta, Inc. System and method for a communication terminal to manage memory and maintain a current application version for multiple applications
US6711595B1 (en) * 2000-05-09 2004-03-23 Openwave Systems Inc. Method and apparatus for sharing standard template library objects among processes
JP4662657B2 (en) 2000-07-10 2011-03-30 マイクロソフト コーポレーション Unified data type system and method
US20020016878A1 (en) * 2000-07-26 2002-02-07 Flores Jose L. Technique for guaranteeing the availability of per thread storage in a distributed computing environment
US6643753B2 (en) * 2000-10-04 2003-11-04 Microsoft Corporation Methods and systems for managing heap creation and allocation
US7111141B2 (en) * 2000-10-17 2006-09-19 Igt Dynamic NV-RAM
US6804763B1 (en) 2000-10-17 2004-10-12 Igt High performance battery backed ram interface
US8550922B2 (en) 2006-03-03 2013-10-08 Igt Game removal with game history
US7111294B2 (en) * 2001-01-16 2006-09-19 Microsoft Corporation Thread-specific heaps
US7334228B2 (en) * 2001-07-27 2008-02-19 International Business Machines Corporation Runtime-resource management
US6499094B1 (en) * 2001-09-14 2002-12-24 Unisys Corporation Management of memory heap space for data files accessible to programs operating in different addressing modes
CA2382718C (en) * 2002-04-12 2007-02-13 Ibm Canada Limited-Ibm Canada Limitee Memory balancing and optimization services
US7243342B2 (en) * 2002-06-11 2007-07-10 Intel Corporation Methods and apparatus for determining if a user-defined software function is a memory allocation function during compile-time
US7069396B2 (en) * 2002-06-27 2006-06-27 Hewlett-Packard Development Company, L.P. Deferred memory allocation for application threads
US7406699B2 (en) * 2003-04-02 2008-07-29 Microsoft Corporation Enhanced runtime hosting
CA2426619A1 (en) * 2003-04-25 2004-10-25 Ibm Canada Limited - Ibm Canada Limitee Defensive heap memory management
US7827375B2 (en) * 2003-04-30 2010-11-02 International Business Machines Corporation Defensive heap memory management
US7185167B2 (en) * 2003-06-06 2007-02-27 Microsoft Corporation Heap allocation
US7290110B2 (en) * 2003-09-11 2007-10-30 International Business Machines Corporation System and method of squeezing memory slabs empty
US7434020B2 (en) * 2003-12-31 2008-10-07 Microsoft Corporation Overwrite detection diagnostic for memory heap
US7296139B1 (en) 2004-01-30 2007-11-13 Nvidia Corporation In-memory table structure for virtual address translation system with translation units of variable range size
KR20050088853A (en) * 2004-03-03 2005-09-07 엘지전자 주식회사 A method and a apparatus of managing dynamic memory for mobile phone
US7284107B2 (en) * 2004-04-30 2007-10-16 Microsoft Corporation Special-use heaps
US7197619B2 (en) * 2004-06-09 2007-03-27 Sony Ericsson Mobile Communications Ab Methods, systems, and computer program products for managing a memory by storing external objects in a dynamic heap
JP4144609B2 (en) * 2004-09-29 2008-09-03 ソニー株式会社 Information processing apparatus, memory area management method, and computer program
US7519867B2 (en) * 2004-12-21 2009-04-14 National Instruments Corporation Test executive which provides heap validity checking and memory leak detection for user code modules
US20060253503A1 (en) * 2005-05-05 2006-11-09 International Business Machines Corporation Method and apparatus for aging a versioned heap system
US7962707B2 (en) * 2005-07-06 2011-06-14 Honeywell International Inc. Apparatus and method for deterministic garbage collection of a heap memory
US8078636B2 (en) * 2005-08-24 2011-12-13 Temporal Dynamics, Inc. Database heap management system with variable page size and fixed instruction set address resolution
US20070088908A1 (en) * 2005-10-17 2007-04-19 Phison Electronics Corp. Method for arranging heap memory
US7552305B2 (en) * 2005-10-25 2009-06-23 International Business Machines Corporation Dynamic and real-time management of memory
US7827373B2 (en) * 2005-10-31 2010-11-02 Honeywell International Inc. System and method for managing a short-term heap memory
US7500077B2 (en) * 2005-12-09 2009-03-03 International Business Machines Corporation Use of region-oriented memory profiling to detect heap fragmentation and sparse memory utilization
US7951008B2 (en) * 2006-03-03 2011-05-31 Igt Non-volatile memory management technique implemented in a gaming machine
US7545382B1 (en) * 2006-03-29 2009-06-09 Nvidia Corporation Apparatus, system, and method for using page table entries in a graphics system to provide storage format information for address translation
US8181177B1 (en) * 2006-10-16 2012-05-15 Oracle America, Inc. Reducing the number of heap handles in a program
US20080148102A1 (en) * 2006-12-15 2008-06-19 International Business Machines Corporation Method for enhancing debugging of runtime memory access errors by using an integrated visualization tool and a runtime memory error detection tool
US8099577B2 (en) * 2007-03-20 2012-01-17 Oracle International Corporation Managing memory in a system that includes a shared memory area and a private memory area
US8996834B2 (en) * 2007-05-21 2015-03-31 International Business Machines Corporation Memory class based heap partitioning
US8566481B2 (en) * 2009-06-10 2013-10-22 Cisco Technology, Inc. Managing configuration data
JP2011003072A (en) * 2009-06-19 2011-01-06 Toshiba Corp Multi-core processor system
US8495107B2 (en) 2011-06-23 2013-07-23 Oracle International Corporation System and method for use with garbage collected languages for enabling the allocated heap memory to be updated at runtime
US9141510B2 (en) 2011-08-24 2015-09-22 Microsoft Technology Licensing, Llc Memory allocation tracking
US8918616B2 (en) 2011-08-24 2014-12-23 Microsoft Corporation Memory allocation analysis
US9804962B2 (en) 2015-02-13 2017-10-31 Microsoft Technology Licensing, Llc Garbage collection control in managed code
KR20180052466A (en) * 2016-11-10 2018-05-18 (주) 글루시스 Imdb extracting method by using memory forensic

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994002898A1 (en) * 1992-07-24 1994-02-03 Microsoft Corporation Computer method and system for allocating and freeing memory
US5437006A (en) * 1993-01-27 1995-07-25 Microsoft Corporation Spreadsheet command/function capability from a dynamic-link library
US5559980A (en) * 1993-03-18 1996-09-24 Lucent Technologies Inc. Method and apparatus for detecting references to deallocated memory in a dynamic memory allocation system

Also Published As

Publication number Publication date
US6816956B1 (en) 2004-11-09
CA2136154C (en) 1999-08-24
US5809554A (en) 1998-09-15

Similar Documents

Publication Publication Date Title
CA2136154A1 (en) User Control of Multiple Memory Heaps
US8141091B2 (en) Resource allocation in a NUMA architecture based on application specified resource and strength preferences for processor and memory resources
Liedtke Toward real microkernels
EP0590645B1 (en) Method and system for reducing memory allocation requests
US5421011A (en) Method and system for access and accounting control in a data processing system by using a single resource account for a user or a group of users
Liang et al. Dynamic class loading in the Java virtual machine
US5826082A (en) Method for reserving resources
Chase et al. Lightweight shared objects in a 64-bit operating system
US6457008B1 (en) Pluggable resource scheduling policies
US6205528B1 (en) User specifiable allocation of memory for processes in a multiprocessor computer having a non-uniform memory architecture
US5842226A (en) Virtual memory management for a microkernel system with multiple operating systems
TW362192B (en) Method and system for providing device driver configurations on demand
EP1023661A1 (en) Application programming interface enabling application programs to control allocation of physical memory in a virtual memory system
US5655126A (en) Method & apparatus for a power management pseudo-device driver
US20060004959A1 (en) System and method for heterogeneous caching
Aron et al. The SawMill framework for virtual memory diversity
JPH03257644A (en) Main memory control method
Sechrest et al. User-Level Physical Memory Management for Mach.
KR101085763B1 (en) Memory allocation in a multi-processor system
WO2001061471A3 (en) An implementation for nonblocking memory allocation
Sullivan et al. Tickets and currencies revisited: Extensions to multi-resource lottery scheduling
JP2833813B2 (en) Assignment method of different magnetic disk files
CHAPMAN et al. Programming in Vienna Fortran(Final Report)
CHAPMAN et al. Vienna FORTRAN: A FORTRAN language extension for distributed memory multiprocessors(Final Report)
JP3248293B2 (en) Schedule management device and schedule management method

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed