Claims Analysis
Total Claims: 41
Claim 1
Independent Claim
122 words
A multitasking operating system comprising: means for assigning a multiplicity of program threads to a plurality of classes such that at least one of said classes can be assigned a plurality of program threads; means for assigning priority levels to said program threads; and means for scheduling execution of said program threads such that a program thread from another class can preempt execution of a lower priority program thread from said one class, but a program thread in said one class having a higher priority than said lower priority program thread in said one class cannot preempt or is more restricted than said program thread in said other class in preempting execution of said lower priority program thread in said one class.
Claim 2
Dependent Claim
41 words
A multitasking operating system as set forth in claim 1 wherein the scheduling means prevents said program thread in said one class from preempting said lower priority program thread in said one class while said lower priority program thread is dispatchable.
Claim 3
Dependent Claim
41 words
A multitasking operating system as set forth in claim 2 wherein the scheduling means permits said program thread from said other class to preempt said lower priority program thread from said one class while said lower priority program thread is dispatchable.
Claim 4
Dependent Claim
38 words
A multitasking operating system as set forth in claim 1 wherein the means for assigning program threads into classes and the means for assigning priority levels to the program threads is based on parameters specified by application programs.
Claim 5
Dependent Claim
47 words
A multitasking operating system as set forth in claim 1 further comprising means for selecting an available program thread from each of said classes for current or subsequent execution, said selections being based at least in part on relative priorities of the program threads within each class.
Claim 6
Dependent Claim
37 words
A multitasking operating system as set forth in claim 2 further comprising means for selecting at least two program threads for execution from said one class which can be executed concurrently on a like number of processors.
Claim 7
Dependent Claim
61 words
A multitasking operating system as set forth in claim 1 further comprising means for selecting a program thread from each class for execution by a processor, and means for preventing the selected program thread from each class while executing from being replaced for execution by another program thread from the same class until the selected program thread experiences a non-dispatchable condition.
Claim 8
Dependent Claim
52 words
A multitasking operating system as set forth in claim 5 further comprising means for queueing the selected program thread from each class onto a run list for subsequent execution by one or more processors, and selecting the highest priority program thread on the run list for execution by the next available processor.
Claim 9
Dependent Claim
73 words
A multitasking operating system as set forth in claim 8 further comprising means for comparing priority of a program thread which is currently executing on a processor to a highest priority program thread on the run list that is awaiting execution, and switching execution to the highest priority, waiting thread in the run list if the highest priority thread on the run list has a higher priority than the currently executing program thread.
Claim 10
Dependent Claim
46 words
A multitasking operating system as set forth in claim 6 wherein said one class includes at least three program threads and said at least two selected program threads have the highest priority levels of all program threads in said one class which are available for execution.
Claim 11
Dependent Claim
32 words
A multitasking operating system as set forth in claim 4 further comprising means for designating a maximum number of program threads to be run concurrently from said one class on different processors.
Claim 12
Dependent Claim
30 words
A multitasking operating system as set forth in claim 1 further comprising means, initiated by a currently executing program thread, for blocking said currently executing program thread from further execution.
Claim 13
Dependent Claim
54 words
A multitasking operating system as set forth in claim 12 wherein said currently executing program thread initiates the blocking if a request of said currently executing program thread cannot be satisfied or an operation of said currently executing program cannot be completed, due to a condition beyond control of said currently executing program thread.
Claim 14
Dependent Claim
37 words
A multitasking operating system as set forth in claim 12 further comprising means, responsive to the blocking means, for selecting the highest priority thread from the class containing the blocked program thread for immediate or subsequent execution.
Claim 15
Dependent Claim
41 words
A multitasking operating system as set forth in claim 1 further comprising means, initiated by a currently executing program thread, for suspending another program thread in the same or different class, whereby the suspended program thread is made unavailable for execution.
Claim 16
Dependent Claim
33 words
A multitasking operating system as set forth in claim 15 further comprising means, initiated by a program thread other than said suspended program thread, for terminating the suspension of said suspended program thread.
Claim 17
Dependent Claim
25 words
A multitasking operating system as set forth in claim 1 further comprising means, initiated by one currently executing program thread, for suspending another program thread.
Claim 18
Dependent Claim
41 words
A multitasking operating system as set forth in claim 1 further comprising means for a dispatchable, executing program thread to voluntarily suspend execution of itself to permit another program thread which may be in the same dispatch class to be executed.
Claim 19
Independent Claim
119 words
A method for operating a computer, said method comprising the steps of: assigning a multiplicity of program threads to a plurality of classes, each class being assigned at least one program thread, and at least one class being assigned a plurality of program threads; executing one of the program threads from said one class; preventing another one of the program threads in said one class from preempting execution of said one program thread from said one class while executing said one program thread from said one class; and after executing at least part of said one thread from said one class, preempting execution of said one program thread from said one class with a program thread from another class.
Claim 20
Dependent Claim
37 words
A method as set forth in claim 19 further comprising the step of preventing any program thread in any class from preempting any other program thread in the same class during execution of said other program thread.
Claim 21
Dependent Claim
52 words
A method as set forth in claim 19 further comprising the step of assigning a priority level to each of said program threads to form a basis for preemption, and wherein said program thread from said other class has a higher priority level than the preempted program thread from said one class.
Claim 22
Dependent Claim
40 words
A method as set forth in claim 21 further comprising the step of queueing the highest priority level program thread which is available for execution from each class on a run list for subsequent execution by one or more processors.
Claim 23
Dependent Claim
33 words
A method as set forth in claim 22 further comprising the step of executing the highest priority program thread on the run list before executing the other program threads on the run list.
Claim 24
Dependent Claim
52 words
A method as set forth in claim 23 further comprising the steps of: blocking execution of a currently executing program thread; and after the blocking step, selecting for subsequent execution the highest priority program thread which is not blocked and otherwise available for execution, from the class containing the blocked program thread.
Claim 25
Dependent Claim
33 words
A method as set forth in claim 19 further comprising the step of suspending another program thread in the same or different class, whereby the suspended program thread is not available for execution.
Claim 26
Dependent Claim
27 words
A method as set forth in claim 19 further comprising the step of suspending said one program thread, the suspension being done by another executing program thread.
Claim 27
Dependent Claim
185 words
A computer system comprising: means for assigning a multiplicity of program threads to a plurality of classes such that each of said classes is assigned at least one program thread and at least one of said classes can be assigned a plurality of program threads; at least one processor; means for assigning a priority level to each of said program threads, to affect execution order; means for selecting at least one available program thread from each of said classes for execution by said processor or processors when said processor or processors are available, said selection being based at least in part on the relative priority levels of the program threads within each of said classes; means for preempting execution of a program thread from any of said classes with a higher priority level program thread from another class; and means for preventing a program thread in said one class, which was made available after selection by the selecting means of another, lower priority program thread from said one class for execution, from preempting execution of said other, lower priority program thread in said one class.
Claim 28
Dependent Claim
31 words
A computer system as set forth in claim 27 further comprising means for designating a maximum number of program threads to be run concurrently from said one class on different processors.
Claim 29
Dependent Claim
42 words
A computer system as set forth in claim 27 further comprising means for positioning a representation of the highest priority program thread which is available for execution from each class onto a run list for subsequent execution by one or more processors.
Claim 30
Dependent Claim
29 words
A computer system as set forth in claim 29 further comprising means for selecting the highest priority thread on the run list for execution by the next available processor.
Claim 31
Dependent Claim
33 words
A computer system as set forth in claim 29 wherein the preventing means prevents more than one program thread from any class from being positioned on the run list at any one time.
Claim 32
Dependent Claim
42 words
A computer system as set forth in claim 27 wherein said system comprises a plurality of said processors, and further comprising means for selecting a plurality of program threads from said one class for execution on a like number of said processors.
Claim 33
Dependent Claim
37 words
A computer system as set forth in claim 32 wherein said plurality of program threads from said one class have the highest priority levels of all program threads in said one class that are available for execution.
Claim 34
Dependent Claim
27 words
A computer system as set forth in claim 27 further comprising means for requesting that one of said program threads that is currently executing cease to execute.
Claim 35
Dependent Claim
170 words
A computer program product comprising: a computer readable medium; first program instruction means, recorded on said medium, for instructing a computer processor to receive identifications of program threads and classes in which said program threads reside; second program instruction means, recorded on said medium, for instructing a computer processor to assign said program threads to said classes according to said identifications; third program instruction means, recorded on said medium, for instructing a computer processor to select one of the program threads for execution; fourth program instruction means, recorded on said medium, for instructing a computer processor to prevent another one of the program threads in the same class as the one selected for execution from preempting the execution of the selected program thread; fifth program instruction means, recorded on said medium, for instructing a computer processor to permit a program thread from another class to preempt execution of said selected program thread with a program thread; wherein each of said program instruction means is executable by the associated computer processor.
Claim 36
Dependent Claim
76 words
A computer program product as set forth in claim 35 further comprising sixth program instruction means, recorded on said medium, for instructing a computer processor to permit any program thread to voluntarily relinquish control of the associated processor, whereby another program thread from the same or different class can execute in place of said program thread which voluntarily relinquished control of said processor; and wherein said sixth program instruction means is executable by the associated processor.
Claim 37
Dependent Claim
78 words
A computer program product as set forth in claim 35 further comprising sixth program instruction means, recorded on said medium, for instructing a computer processor to assign a priority level to each of said program threads to form a basis for interclass preemption, and wherein said program thread from said other class has a higher priority level than the preempted program thread from said one class; and said sixth program instruction means is executable by the associated processor.
Claim 38
Dependent Claim
67 words
A computer program product as set forth in claim 37 further comprising seventh program instruction means, recorded on said medium, for instructing a computer processor to represent the highest priority level program thread which is available for execution from each class on a run list for subsequent execution by one or more computer processors, and wherein said seventh program instruction means is executable by the associated processor.
Claim 39
Dependent Claim
59 words
A computer program product as set forth in claim 38 further comprising eighth program instruction means, recorded on said medium, for instructing a computer processor to execute the highest priority program thread on the run list before executing the other program threads on the run list, and wherein said eighth program instruction means is executable by the associated processor.
Claim 40
Dependent Claim
99 words
A computer program product as set forth in claim 39 further comprising ninth program instruction means, recorded on said medium, for instructing a computer processor to halt execution of a currently executing program thread; and tenth program instruction means, recorded on said medium, for instructing a computer processor after execution of the currently executing program thread is halted to select for subsequent execution the highest priority program thread which is available for execution from the class containing the program thread whose execution was halted; and wherein said ninth and tenth program instruction means are executable by the associated processor.
Claim 41
Dependent Claim
75 words
A computer program product as set forth in claim 35 further comprising; sixth program instruction means, recorded on said medium, for instructing a computer processor to request that said one program thread cease execution; seventh program instruction means, recorded on said medium, for instructing a computer processor to cease to execute said one program thread in response to said request; and wherein said sixth and seventh program instruction means are executable by the associated processor.