Claims Analysis
Total Claims: 6
Claim 1
Independent Claim
404 words
A computer implemented method for using a shared memory space comprising the steps of: executing an operation call on an original object which has a shared memory subcontract, said operation call being made by a client application, and said operation call requiring arguments which may be complex arguments such as other objects; recognizing said operation call by a client-side portion of said shared memory subcontract; determining whether a shared memory region exists for use by said client-side portion of said shared memory subcontract for servicing said original object, said determination being made by non-kernel routines; if said shared memory region does exist, marshalling arguments of said operation call inside said shared memory region, said marshalling performed by said client-side portion of said shared memory subcontract; invoking said operation call on an existing channel object by said client-side portion of said shared memory subcontract; establishing a shared memory region if said shared memory region does not exist by performing the steps of: obtaining from nucleus a server domain id for a server domain of said original object, said server domain containing an implementation of said original object: and determining whether a channel object exists which provides a communication path from said client-side portion of said shared memory subcontract to said server domain containing said implementation of said original object, said determination of whether a channel object exists being done by comparing said server domain id obtained from nucleus to server domain id values located in a field of each of one or more second data structures in said client-side portion of said shared memory subcontract; and determining that a channel object does not exist if said server domain id obtained from nucleus does not match any server domain id value located in a field of any of said one or more second data structures in said client-side portion of said shared memory subcontract; if said channel object does not exist, establishing a shared memory region and creating a new channel object by obtaining a new memory object from a virtual memory manager and mapping the new memory object in said client's address space, said obtaining and mapping being done by said client-side portion of said shared memory subcontract; and initiating a call to a server identified by said server domain id to create a channel object by invoking a create channel operation on said original object and passing said new memory object to said server.
Claim 2
Dependent Claim
404 words
A computer implemented method for using a shared memory space comprising the steps of: executing an operation call on an original object which has a shared memory subcontract, said operation call being made by a client application, and said operation call requiring arguments which may be complex arguments such as other objects; recognizing said operation call by a client-side portion of said shared memory subcontract; determining whether a shared memory region exists for use by said client-side portion of said shared memory subcontract for servicing said original object, said determination being made by non-kernel routines; if said shared memory region does exist, marshalling arguments of said operation call inside said shared memory region, said marshalling performed by said client-side portion of said shared memory subcontract; invoking said operation call on an existing channel object by said client-side portion of said shared memory subcontract; establishing a shared memory region if said shared memory region does not exist by performing the steps of: obtaining from nucleus a server domain id for a server domain of said original object, said server domain containing an implementation of said original object: and determining whether a channel object exists which provides a communication path from said client-side portion of said shared memory subcontract to said server domain containing said implementation of said original object, said determination of whether a channel object exists being done by comparing said server domain id obtained from nucleus to server domain id values located in a field of each of one or more second data structures in said client-side portion of said shared memory subcontract; and determining that a channel object does not exist if said server domain id obtained from nucleus does not match any server domain id value located in a field of any of said one or more second data structures in said client-side portion of said shared memory subcontract; if said channel object does not exist, establishing a shared memory region and creating a new channel object by obtaining a new memory object from a virtual memory manager and mapping the new memory object in said client's address space, said obtaining and mapping being done by said client-side portion of said shared memory subcontract; and initiating a call to a server identified by said server domain id to create a channel object by invoking a create channel operation on said original object and passing said new memory object to said server.
Claim 3
Dependent Claim
62 words
The computer implemented method of claim 1 comprising the additional steps of: upon receiving said invocation of said create -- channel operation call by said server-side portion of said shared memory subcontract, mapping said new memory object into said server's address space; creating a new channel object; and returning said new channel object to said client-side portion of said shared memory subcontract.
Claim 4
Dependent Claim
109 words
The computer implemented method of claim 2 comprising the additional steps of: upon receiving said return of said new channel object by said client-side portion of said shared memory subcontract, creating a new second data structure that contains said new channel object, said new memory object and location information indicating where said new memory object is mapped; establishing a pointer to said new second data structure in said client-side portion of said shared memory subcontract; and inserting said pointer to said new second data structure into a field in a first data structure in said client-side portion of said shared memory subcontract that is associated with said original object.
Claim 5
Dependent Claim
49 words
The computer implemented method of claim 3 comprising the additional steps of: invoking a get -- index operation on said new channel object by said client-side portion of said shared memory subcontract; and passing as an argument of said get -- index operation, a handle of said original object.
Claim 6
Dependent Claim
160 words
The computer implemented method of claim 4 comprising the additional steps of: receiving said get -- index operation invocation by said server-side portion of said shared memory subcontract; deriving an index from said handle of said original object which was received as an argument and from said new channel object; associating a pointer to said implementation of said original object with said derived index in a data structure in said server-side portion of said shared memory subcontract; linking said data structure in said server-side portion of said shared memory subcontract to said channel object; returning said derived index to said client-side portion of said shared memory subcontract in response to said get -- index operation invocation; and said client-side portion of said shared memory subcontract storing said returned index into a field of said first data structure, whereby said initialization of a shared memory region and related data structures are completed under the condition that no related channel object existed.