← Back to Patent Explorer
US6128640A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for user-level support for multiple event synchronization

Assignee: Oracle America Inc
•
Filing: 1996-10-03
•
Granted: 2000-10-03
•
Expires: 2016-10-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method for emulating complete operating system support for synchronization of the execution of a process on multiple independent events. The emulation includes creating a thread and control; collecting representations of the different events into one container event, the occurrence of any one of the different events effecting the occurrence of the container event; waiting on the container event; suspending the execution of the thread; and after the occurrence of the container event, resuming the execution of the thread of control.

Inventors

  • 👤 Ronald J. Kleinman

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 17:28
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4812

Claims Analysis

Total Claims: 35
Claim 1
Independent Claim 96 words
In a multithreading computer system, a method comprising: creating, at a user level, a collection data structure for a first thread; collecting representations of a first plurality of events in said collection data structure; initiating blocking, at said user level, said first thread based on said first plurality of events; receiving notification of occurrence of one or more events; checking whether said collection data structure includes at least one of said occurred event(s); and initiating unblocking, at said user level, said first thread upon occurrence of at least one event represented in said collection data structure.
Claim 2
Dependent Claim 96 words
In a multithreading computer system, a method comprising: creating, at a user level, a collection data structure for a first thread; collecting representations of a first plurality of events in said collection data structure; initiating blocking, at said user level, said first thread based on said first plurality of events; receiving notification of occurrence of one or more events; checking whether said collection data structure includes at least one of said occurred event(s); and initiating unblocking, at said user level, said first thread upon occurrence of at least one event represented in said collection data structure.
Claim 3
Dependent Claim 24 words
The method of claim 1, wherein said first thread is unblocked upon occurrence of at least two events represented in said collection data structure.
Claim 4
Dependent Claim 29 words
The method of claim 1 wherein: said initiating blocking comprises waiting on said collection data structure; and said checking comprises identifying said collection data structure, thereby identifying said threads.
Claim 5
Dependent Claim 44 words
The method of claim 1 wherein a first event in said M events is one of a completion of a data I/O operation, an unlocking of a mutex, a freeing of a resource, an exit of a thread, and an exit of a subprocess.
Claim 6
Dependent Claim 131 words
A computer system comprising: a computer-readable storage medium storing: code for creating, at a user level, a collection data structure for a first thread, code for collecting representations of a first plurality of events in said collection data structure, code for initiating blocking, at said user level, said first thread based on said first plurality of events, code for receiving notification of occurrence of one or more events, code for checking whether said collection data structure includes at least one of said occurred event(s), and code for initiating unblocking, at said user level, said first thread upon occurrence of at least one event represented in said collection data structure; and a cpu coupled to said computer-readable storage medium, said cpu being configured to execute said codes in said computer-readable storage medium.
Claim 7
Dependent Claim 131 words
A computer system comprising: a computer-readable storage medium storing: code for creating, at a user level, a collection data structure for a first thread, code for collecting representations of a first plurality of events in said collection data structure, code for initiating blocking, at said user level, said first thread based on said first plurality of events, code for receiving notification of occurrence of one or more events, code for checking whether said collection data structure includes at least one of said occurred event(s), and code for initiating unblocking, at said user level, said first thread upon occurrence of at least one event represented in said collection data structure; and a cpu coupled to said computer-readable storage medium, said cpu being configured to execute said codes in said computer-readable storage medium.
Claim 8
Dependent Claim 25 words
The computer system of claim 5, wherein said first thread is unblocked upon occurrence of at least two events represented in said collection data structure.
Claim 9
Dependent Claim 38 words
The computer system of claim 5 wherein: said code for initiating blocking comprises code for waiting on said collection data structure; and said code for checking comprises code for identifying said collection data structure, thereby identifying said threads.
Claim 10
Dependent Claim 45 words
The computer system of claim 1 wherein a first event in said M events is one of a completion of a data I/O operation, an unlocking of a mutex, a freeing of a resource, an exit of a thread, and an exit of a subprocess.
Claim 11
Dependent Claim 128 words
A computer program product for causing a computer system to operate in a multithreaded manner, said product comprising: code for creating, at a user level, a collection data structure for a first thread; code for collecting representations of a first plurality of events in said collection data structure; code for initiating blocking at, at said user level, said first thread based on said first plurality of events; code for receiving notification of occurrence of one or more events; code for checking whether said collection data structure includes at least one of said occurred event(s); code for initiating unblocking, at said user level, said first thread upon occurrence of at least one event represented in said collection data structure; and a computer-readable storage medium configured to store said codes.
Claim 12
Dependent Claim 128 words
A computer program product for causing a computer system to operate in a multithreaded manner, said product comprising: code for creating, at a user level, a collection data structure for a first thread; code for collecting representations of a first plurality of events in said collection data structure; code for initiating blocking at, at said user level, said first thread based on said first plurality of events; code for receiving notification of occurrence of one or more events; code for checking whether said collection data structure includes at least one of said occurred event(s); code for initiating unblocking, at said user level, said first thread upon occurrence of at least one event represented in said collection data structure; and a computer-readable storage medium configured to store said codes.
Claim 13
Dependent Claim 26 words
The computer program product of claim 9, wherein said first thread is unblocked upon occurrence of at least two events represented in said collection data structure.
Claim 14
Dependent Claim 39 words
The computer program product of claim 9 wherein: said code for initiating blocking comprises code for waiting on said collection data structure; and said code for checking comprises code for identifying said collection data structure, thereby identifying said threads.
Claim 15
Dependent Claim 48 words
The computer program product of claim 9 wherein a first event in said first plurality of events is one of a completion of a data I/O operation, an unlocking of a mutex, a freeing of a resource, an exit of a thread, and an exit of a subprocess.
Claim 16
Dependent Claim 120 words
In a computer system wherein an operating system does not provide for synchronizing thread execution to events, a computer-implemented method for emulating synchronizing execution of threads, comprising: creating, at said user-level, an M:N relationship between M events and N threads, where M and N are greater than one; creating, at said user level, a collection data structure for said N threads; collecting representations of said M events in said collection data structure; suspending execution of said N threads, using said M:N relationship; receiving notification of occurrence of one or more events; checking whether said collection data structure includes at least one of said occurred event(s); and resuming execution of at least one of said N threads, using said M:N relationship.
Claim 17
Dependent Claim 120 words
In a computer system wherein an operating system does not provide for synchronizing thread execution to events, a computer-implemented method for emulating synchronizing execution of threads, comprising: creating, at said user-level, an M:N relationship between M events and N threads, where M and N are greater than one; creating, at said user level, a collection data structure for said N threads; collecting representations of said M events in said collection data structure; suspending execution of said N threads, using said M:N relationship; receiving notification of occurrence of one or more events; checking whether said collection data structure includes at least one of said occurred event(s); and resuming execution of at least one of said N threads, using said M:N relationship.
Claim 18
Dependent Claim 29 words
The method of claim 13, wherein said at least one of said N threads is resumed upon occurrence of at least two events represented in said collection data structure.
Claim 19
Dependent Claim 31 words
The method of claim 13 wherein: said suspending comprises waiting on said collection data structure; and said checking comprises identifying said collection data structure, thereby identifying said N threads of control.
Claim 20
Dependent Claim 44 words
The method of claim 13 wherein a first event in said M events is one of a completion of a data I/O operation, an unlocking of a mutex, a freeing of a resource, an exit of a thread, and an exit of a subprocess.
Claim 21
Dependent Claim 7 words
The method of claim 13 wherein N=1.
Claim 22
Dependent Claim 150 words
A computer system comprising: a computer-readable storage medium storing: code for causing, at a user level, said computer system to simultaneously synchronize execution of N thread(s) of control on a plurality of M events by creating, at said user level, an M:N relationship between said plurality of events and said N thread(s), creating, at said user level, a collection data structure for said N threads, collecting representations of said M events in said collection data structure, suspending execution of at least one of said N thread(s), using said M:N relationship, receiving notification of occurrence of one or more events, checking whether said collection data structure includes at least one of said occurred event(s), and resuming execution of at least one of said N thread(s), using said M:N relationship; and a cpu coupled to said computer-readable storage medium, said cpu being configured to execute said code in said computer-readable storage medium.
Claim 23
Dependent Claim 150 words
A computer system comprising: a computer-readable storage medium storing: code for causing, at a user level, said computer system to simultaneously synchronize execution of N thread(s) of control on a plurality of M events by creating, at said user level, an M:N relationship between said plurality of events and said N thread(s), creating, at said user level, a collection data structure for said N threads, collecting representations of said M events in said collection data structure, suspending execution of at least one of said N thread(s), using said M:N relationship, receiving notification of occurrence of one or more events, checking whether said collection data structure includes at least one of said occurred event(s), and resuming execution of at least one of said N thread(s), using said M:N relationship; and a cpu coupled to said computer-readable storage medium, said cpu being configured to execute said code in said computer-readable storage medium.
Claim 24
Dependent Claim 8 words
The computer system of claim 18 wherein N=1.
Claim 25
Dependent Claim 158 words
A computer program product for causing a computer system to simultaneously synchronize execution of thread(s), wherein an operating system does not provide for synchronizing thread execution to events, said product being executed at an operating system level and a user level and comprising: code for creating, at said user level, an M:N relationship between a plurality of M events and N thread(s); code for creating, at said user level, a collection data structure for said N thread(s); code for collecting representations of said M events in said collection data structure; code for suspending execution of at least one of said N thread(s), using said M:N relationship; code for receiving notification of occurrence of one or more events; code for checking whether said collection data structure includes at least one of said occurred event(s); code for resuming execution of at least one of said N thread(s), using said M:N relationship; and a computer-readable storage medium for storing said codes.
Claim 26
Dependent Claim 158 words
A computer program product for causing a computer system to simultaneously synchronize execution of thread(s), wherein an operating system does not provide for synchronizing thread execution to events, said product being executed at an operating system level and a user level and comprising: code for creating, at said user level, an M:N relationship between a plurality of M events and N thread(s); code for creating, at said user level, a collection data structure for said N thread(s); code for collecting representations of said M events in said collection data structure; code for suspending execution of at least one of said N thread(s), using said M:N relationship; code for receiving notification of occurrence of one or more events; code for checking whether said collection data structure includes at least one of said occurred event(s); code for resuming execution of at least one of said N thread(s), using said M:N relationship; and a computer-readable storage medium for storing said codes.
Claim 27
Dependent Claim 7 words
The product of claim 20 wherein N=1.
Claim 28
Dependent Claim 17 words
The system of claim 14 wherein said collection data structure includes contained lists of said N threads.
Claim 29
Dependent Claim 80 words
In a multithreading computer system, a method comprising: creating, at a user level, a collection data structure for a first thread; collecting representation of at least one event in said collection data structure; initiating blocking, at said user level, said first thread based on said at least one event; receiving notification of occurrence of one or more events; initiating unblocking, at said user level, said first thread upon occurrence of at least one event represented in said collection data structure.
Claim 30
Dependent Claim 80 words
In a multithreading computer system, a method comprising: creating, at a user level, a collection data structure for a first thread; collecting representation of at least one event in said collection data structure; initiating blocking, at said user level, said first thread based on said at least one event; receiving notification of occurrence of one or more events; initiating unblocking, at said user level, said first thread upon occurrence of at least one event represented in said collection data structure.
Claim 31
Dependent Claim 37 words
The method of claim 23 further comprising: waiting on said collection data structure until a notification is received; and upon receiving said notification, checking whether said collection data structure includes at least one of said occurred event(s).
Claim 32
Dependent Claim 24 words
The method of claim 23, wherein said first thread is unblocked upon occurrence of at least two events represented in said collection data structure.
Claim 33
Dependent Claim 120 words
In a multithreading computer system wherein an operating system does not provide for synchronizing thread execution to events, a method for emulating operating system synchronization at a user level, comprising: creating, at a user level, a container alert object; creating a plurality of M contained alert objects within said container alert object, each contained alert object representing a single event; upon notification of a corresponding event by one of said contained alert objects, notifying all other contained alert objects within said container alert object; blocking each of N threads on one of said contained alert objects; initiating unblocking, at said user level, of said N threads upon notification to an alert object which each corresponding N thread is blocked on.
Claim 34
Dependent Claim 120 words
In a multithreading computer system wherein an operating system does not provide for synchronizing thread execution to events, a method for emulating operating system synchronization at a user level, comprising: creating, at a user level, a container alert object; creating a plurality of M contained alert objects within said container alert object, each contained alert object representing a single event; upon notification of a corresponding event by one of said contained alert objects, notifying all other contained alert objects within said container alert object; blocking each of N threads on one of said contained alert objects; initiating unblocking, at said user level, of said N threads upon notification to an alert object which each corresponding N thread is blocked on.
Claim 35
Dependent Claim 14 words
The method of claim 26 wherein said operating system is a Posix operating system.

References Cited (Backward Citations)

US5430875A Cited
US5509123A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-10-03 2004-04-03 2004-10-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-10-03 2008-04-03 2008-10-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-10-03 2012-04-03 2012-10-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag