Protocol for coordinating the distribution of shared memory
AssigneeSun Microsystems, Inc.
InventorShaun Dennie
Life of this patent
Estimating the term…
Abstract
Methods, systems, and articles of manufacture consistent with the present invention coordinate distribution of shared memory to threads of control executing in a program by using a cooperative synchronization protocol. The protocol serializes access to memory by competing threads requesting assignment of memory space, while allowing competing threads that have already been assigned memory space, to share access to the memory. A designated area of memory assigns the memory to requesting threads. The protocol is an application level entity and therefore does access the operating system to serialize the memory allocation process.
Claims16
A method for allocating blocks of a shared memory in a data processing system, the method comprising:
- receiving a memory allocation request;
- determining whether access to the shared memory is permitted for purposes of the memory allocation request;
- identifying a next available memory block in response to the memory allocation request based on a determination that access to the shared memory is permitted for purposes of the memory allocation request;
- and
- designating the next available memory block in response to the request.
A memory allocating system, comprising;
- a shared memory;
- a protocol specifying a method for allocating blocks of the shared memory;
- and
- a processor performing the method for allocating blocks of the shared memory by receiving a memory allocation request;
- determining whether access to the shared memory is permitted for purposes of the memory allocation request;
- identifying a next available memory block in response to the memory allocation request and based on a determination that access to the shared memory is permitted for purposes of the memory allocation request;
- and
- designating the next available memory block in response to the request.
A computer-readable medium containing computer-readable instructions for performing a method on a data processing system for allocating blocks of a shared memory, the method comprising:
- receiving a memory allocation request;
- determining whether access to the shared memory is permitted for purposes of the memory allocation request;
- identifying a next available memory block in response to the memory allocation request and based on a determination that access to the shared memory is permitted for purposes of the memory allocation request;
- and
- designating the next available memory block in response to the request.
A method for allocating a memory by assigning blocks of a designated size in a data processing system, the method comprising:
- determining whether a request to secure access to a block of memory from an executing thread is permitted;
- accessing a memory allocation table to determine an address for a next available memory block;
- designating the next available memory block for the executing thread in response to the request;
- updating the memory allocation table to reflect the designation of the next available memory block for the executing thread in response to the request;
- and
- coordinating shared access for all executing threads to the memory.
A computer-readable medium containing instructions for performing a method for allocating shared memory among threads of control in a data processing system, the method comprising:
- determining whether a request to secure for access to a block of memory from an executing thread is permitted;
- accessing a memory allocation table to determine an address for a next available memory block;
- designating the next available memory block for the executing thread in response to the request;
- updating the memory allocation table to reflect the designation of the next available memory block for the executing thread in response to the request;
- and
- coordinating shared access for all executing threads to the memory.
A system for coordinating allocation of a memory by assigning blocks of memory in a data processing system, the system comprising;
- an area of the memory designated to coordinate assignment of the memory to a thread requiring access to memory;
- and
- a protocol for serializing a thread accessing memory based on information reflecting usage of the memory.
Dependencies are inferred from the claim text.