Portable operating environment for information devices
First Claim
1. A computer readable medium for providing instructions to one or more processors to execute processes on an embedded computing device configured for establishing a network connection with at least one other computing device, comprising:
- (a) an operating system layer;
(b) an application framework;
(c) a programming environment including a contention locking scheme for setting light object locks, which are handled in user space, and heavy object locks, which are handled at the system level, wherein the contention locking scheme is configured to set a light object lock on an initially unlocked object when a first thread attempts to lock the object, and to maintain a light lock on the object when a nested intra-thread lock is attempted by the first thread;
(d) a stack-based local lock slot structure for addressing stack variables to identify threads; and
(e) a first stack corresponding to a data area of the first thread and a second stack corresponding to a data area of the second thread, the first stack and the second stack being separated by at least a reserved area.
2 Assignments
0 Petitions
Accused Products
Abstract
A software program for use on an embedded computing device includes an operating system layer, an application framework, and a programming environment. the programming environment includes a contention locking scheme for setting light object locks, which are handled in user space, and heavy object locks, which are handled at the system level. The contention locking scheme is configured to set a light object lock on an initially unlocked object when a first thread attempts to lock the object, and to maintain a light lock on the object when a nested intra-thread lock is attempted by the first thread.
43 Citations
14 Claims
-
1. A computer readable medium for providing instructions to one or more processors to execute processes on an embedded computing device configured for establishing a network connection with at least one other computing device, comprising:
-
(a) an operating system layer;
(b) an application framework;
(c) a programming environment including a contention locking scheme for setting light object locks, which are handled in user space, and heavy object locks, which are handled at the system level, wherein the contention locking scheme is configured to set a light object lock on an initially unlocked object when a first thread attempts to lock the object, and to maintain a light lock on the object when a nested intra-thread lock is attempted by the first thread;
(d) a stack-based local lock slot structure for addressing stack variables to identify threads; and
(e) a first stack corresponding to a data area of the first thread and a second stack corresponding to a data area of the second thread, the first stack and the second stack being separated by at least a reserved area. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer readable medium for providing instructions to one or more processors to execute processes on an embedded computing device configured for establishing a network connection with at least one other computing device, comprising:
-
(a) an operating system layer;
(b) an application framework;
(c) a programming environment; and
(d) a contention locking scheme for setting light object locks, which are handled in user space, and heavy object locks, which are handled at the system level, the contention locking scheme is configured to set a light object lock on an initially unlocked object when a first thread attempts to lock the object, to maintain a light lock on the object when a nested intra-thread lock is attempted by the first thread, and to compare an address difference between a current lock slot of the first thread for the lightly locked object and that of the nested intra-thread locking attempt with a size of a reserved area at an end of a stack, the contention locking scheme includes;
(e) a stack-based local lock slot structure for addressing stack variables to identify threads, and (f) a lock structure and a lock structure reference in an object header of the object, the lock structure including a lock holder and wait queues.
-
-
8. A method for executing processes with contention-locking which uses light locks, which are handled at the user level, and heavy locks, which are handled at the system level, on an embedded computing device configured for establishing a network connection with at least one other computing device, comprising the steps of:
-
(a) setting a light object lock, for handling at the user level, on an initially unlocked object when a first thread attempts to lock the object;
(b) determining to maintain the light object lock when a nested intra-thread lock is attempted by the first thread; and
(c) addressing stack variables to identify threads using a stack-based local lock slot structure, the addressing stack variables to identify threads comprises;
addressing the first thread at a first stack; and
addressing a second thread at a second stack, the second stack being separated from the first stack by at least a reserved area. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification