US2005086661A1PendingUtilityA1
Object synchronization in shared object space
Priority: Oct 21, 2003Filed: Oct 21, 2003Published: Apr 21, 2005
Est. expiryOct 21, 2023(expired)· nominal 20-yr term from priority
G06F 9/526G06F 9/544G06F 9/45533
44
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A system for synchronizing shared objects among multiple applications each running inside its own virtual machine.
Claims
exact text as granted — not AI-modified1 . A system for the concurrent operation of plural computer applications, said system comprising:
(a) a shared object space capable of simultaneous connection with plural said applications and capable of storing at least one object accessible to at least two said applications when said plural applications are connected with said shared object space; (b) a lock table for storing lock nodes, each said lock node being uniquely associated with a one of said plurality of applications; (c) said at least one object having an object header capable of storing any selective one of:
(1) a selective said lock node;
(2) a reference to a selective one of said lock nodes stored in said lock table; and
(3) a default value other than one of said lock nodes or a reference to one of said lock nodes stored in said lock table.
2 . The system of claim 1 where said default value is zero.
3 . The system of claim 1 where said lock table is located in said shared object space.
4 . The system of claim 1 where said selective one of said lock nodes operates as a cheap lock when stored in said object header.
5 . The system of claim 4 where said reference to a selective one of said lock nodes stored in said lock table operate as an expensive lock when stored in said object header.
6 . The system of claim 1 where said reference to a selective one of said lock nodes stored in said lock table operates as an expensive lock when stored in said object header.
7 . The system of claim 6 where a said application that has a said expensive lock to a said at least one object grants said lock to another said application by swapping one of said selective one of said lock nodes, said reference, and said default value for another one of said selective one of said lock nodes, said reference, and said default value.
8 . The system of claim 1 including a lock manager that controls access to at least one object by selectively swapping one of said selective one of said lock nodes, said reference, and said default value for another one of said selective one of said lock nodes, said reference, and said default value.
9 . The system of claim 8 where said swap is atomic.
10 . The system of claim 1 where said at least one object comprises a plurality of sub-objects, each said sub-object having a said object header.
11 . The system of claim 1 where each said plural application runs in its own virtual machine.
12 . The system of claim 11 where each said virtual machine is a Java virtual machine.
13 . The system of claim 12 where said shared object space is connected to each said Java virtual machine by a Java native method interface.
14 . The system of claim 1 where at least one of said plural applications is not an object oriented application.
15 . The system of claim 14 where said at least one of said plural applications is a C application.
16 . A method for synchronizing access to a shared object stored in a shared object space by plural computer applications, said method comprising:
(a) storing at least one object in a shared object space so that said object is accessible to at least two of said plural applications when said plural applications are connected to said shared object space, said at least one object having an object header; (b) selectively storing at least one lock node in a lock table, each said lock node being uniquely associated with a one of said plurality of applications; and (c) storing in said object header any selective one of:
(1) a selective said lock node;
(2) a reference to a selective one of said lock node stored in said lock table; and
(3) a default value other than one of said lock nodes or a reference to one of said lock nodes stored in said lock table.
17 . The system of claim 16 where said default value is zero.
18 . The system of claim 16 where said lock table is located in said shared object space.
19 . The system of claim 16 where said selective one of said lock nodes operates as a cheap lock when stored in said object header.
20 . The system of claim 19 where said reference to a selective one of said lock nodes stored in said lock table operate as an expensive lock when stored in said object header.
21 . The system of claim 16 where said reference to a selective one of said lock nodes stored in said lock table operates as an expensive lock when stored in said object header.
22 . The system of claim 21 where a said application that has a said expensive lock to a said at least one object grants said lock to another said application by swapping one of said selective one of said lock nodes, said reference, and said default value for another one of said selective one of said lock nodes, said reference, and said default value.
23 . The system of claim 16 including a lock manager that controls access to at least one object by selectively swapping one of said selective one of said lock nodes, said reference, and said default value for another one of said selective one of said lock nodes, said reference, and said default value.
24 . The system of claim 23 where said swap is atomic.
25 . The system of claim 16 where said at least one object comprises a plurality of sub-objects, each said sub-object having a said object header.
26 . The system of claim 16 where each said plural application runs in its own virtual machine.
27 . The system of claim 26 where each said virtual machine is a Java virtual machine.
28 . The system of claim 27 where said shared object space is connected to each said Java virtual machine by a Java native method interface.
29 . The system of claim 16 where at least one of said plural applications is not an object oriented application.
30 . The system of claim 29 where said at least one of said plural applications is a C application.
31 . A system for the concurrent operation of plural computer applications, said system comprising:
(a) a shared object space capable of simultaneous connection with plural said applications and capable of storing at least one object accessible to at least two said applications when said plural applications are connected with said shared object space; (b) said at least one object having a header capable of storing a lock that indicates that one of said plural applications is using the object associated with said header; and (c) said lock being either a cheap lock or an expensive lock, said cheap lock defined as a lock that may be inserted into or removed from said header in a relatively short time with respect to said expensive lock.
32 . The system of claim 31 where said header stores an expensive lock when one said application is waiting for said object associated with said header while another said application is using said object associated with said header, and said lock is a cheap lock otherwise.
33 . The system of claim 31 including a lock table capable of storing a plurality of lock nodes, each said lock node being uniquely associated with a one of said plurality of applications.
34 . The system of claim 33 where each said application is capable of using said at least one object through a plurality of threads and said lock table stores information as to which threads are waiting for an object being used.
35 . The system of claim 34 where said threads waiting for said object being used are prioritized to determine which of said threads next gets access to said object being used.
36 . The system of claim 34 where said threads waiting for said object being used are not prioritized to determine which of said threads next gets access to said object being used.
37 . The system of claim 31 where said header contains a default value when said header does not contain a lock.
38 . The system of claim 37 where said default value is zero.
39 . The system of claim 33 where said lock table is located in said shared object space.
40 . The system of claim 33 where a said application that has a said expensive lock to a said at least one object grants said lock to another said application.
41 . The system of claim 33 including a lock manager that controls access to at least one object.
42 . The system of claim 31 where said at least one object comprises a plurality of sub-objects, each said sub-object having a said object header.
43 . The system of claim 31 where each said plural application runs in its own virtual machine.
44 . The system of claim 43 where each said virtual machine is a Java virtual machine.
45 . The system of claim 44 where said shared object space is connected to each said Java virtual machine by a Java native method interface.
46 . The system of claim 31 where at least one of said plural applications is not an object oriented application.
47 . The system of claim 46 where said at least one of said one said plural applications is a C application.Join the waitlist — get patent alerts
Track US2005086661A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.