CA2136154A1 - User Control of Multiple Memory Heaps - Google Patents
User Control of Multiple Memory HeapsInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
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.
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.
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)
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)
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 |
-
1994
- 1994-11-18 CA CA002136154A patent/CA2136154C/en not_active Expired - Fee Related
-
1996
- 1996-02-26 US US08/559,904 patent/US5809554A/en not_active Expired - Lifetime
-
1998
- 1998-06-02 US US09/088,747 patent/US6816956B1/en not_active Expired - Lifetime
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 |