System and method for adding new waitable object types to object oriented computer operating system
First Claim
1. For use in a computer system having a central processing unit and memory means for storing data and data structures, an operating system comprising:
- a multiplicity of different types of objects comprising data structures stored in said memory means;
said multiplicity of data structures including a multiplicity of different types of synchronization data structures;
said multiplicity of different types of objects including waitable object types, each of a multiplicity of said objects comprising waitable objects incorporating one of said synchronization data structures;
each synchronization data structure incorporated in one of said waitable objects enabling an operating system handled thread of execution to wait on said waitable object, said synchronization data structure including status means denoting the status of said synchronization data structure as Signalled or Unsignalled;
waitable object generating means, responsive to requests from operating system handled threads of execution, for creating ones of said waitable objects;
wherein, said waitable object generating means stores said synchronization data structure incorporated in each waitable object at a memory location determinable by a uniform rule applicable to all of said types of waitable objects;
wait requesting means for suspending a specified operating system handled thread of execution until the status of a specified one of said waitable objects is Signalled;
wait service means for changing the status of a specified one of said waitable objects to Signalled;
a multiplicity of object type descriptors, each object type descriptor means having means for specifying the format of a distinct one of said different types of said objects;
a multiplicity of object service means, including an object service means for each said object type for performing predefined operations on objects of said object type;
each said object type descriptor means including means for specifying one of said object service means corresponding to one of said object types; and
means for adding to said operating system an additional object type descriptor means corresponding to an additional type of waitable object, including means for specifying one of said object service means for said additional waitable object type and for specifying one of said different types of synchronization data structure to be incorporated in waitable objects of said additional waitable object type;
whereby an additional waitable object type can be added to said operating system by adding a corresponding object type descriptor.
2 Assignments
0 Petitions
Accused Products
Abstract
An object based operating system for a multitasking computer system provides objects which represent the architecture or interrelationships of the system'"'"'s resources. Access to certain objects is required in order to use corresponding resources in the system. All objects have a consistent data structure, and a consistent method of defining the operations which apply to each type of object. As a result, it is relatively easy to add new types of system objects to the operating system. Waitable objects are used to synchronize the operation of one or more processes with one another or with specified events. The system provides routines for generating new types of waitable objects, and thereby generating a modified operating system, without modifying other aspects of the operating system'"'"'s kernel.
101 Citations
24 Claims
-
1. For use in a computer system having a central processing unit and memory means for storing data and data structures, an operating system comprising:
-
a multiplicity of different types of objects comprising data structures stored in said memory means; said multiplicity of data structures including a multiplicity of different types of synchronization data structures; said multiplicity of different types of objects including waitable object types, each of a multiplicity of said objects comprising waitable objects incorporating one of said synchronization data structures;
each synchronization data structure incorporated in one of said waitable objects enabling an operating system handled thread of execution to wait on said waitable object, said synchronization data structure including status means denoting the status of said synchronization data structure as Signalled or Unsignalled;waitable object generating means, responsive to requests from operating system handled threads of execution, for creating ones of said waitable objects;
wherein, said waitable object generating means stores said synchronization data structure incorporated in each waitable object at a memory location determinable by a uniform rule applicable to all of said types of waitable objects;wait requesting means for suspending a specified operating system handled thread of execution until the status of a specified one of said waitable objects is Signalled; wait service means for changing the status of a specified one of said waitable objects to Signalled; a multiplicity of object type descriptors, each object type descriptor means having means for specifying the format of a distinct one of said different types of said objects; a multiplicity of object service means, including an object service means for each said object type for performing predefined operations on objects of said object type;
each said object type descriptor means including means for specifying one of said object service means corresponding to one of said object types; andmeans for adding to said operating system an additional object type descriptor means corresponding to an additional type of waitable object, including means for specifying one of said object service means for said additional waitable object type and for specifying one of said different types of synchronization data structure to be incorporated in waitable objects of said additional waitable object type; whereby an additional waitable object type can be added to said operating system by adding a corresponding object type descriptor. - View Dependent Claims (2)
-
-
3. For use in a computer system having a central processing unit and memory means for storing data and data structures, a method of operating the computer system comprising the steps of:
-
providing a multiplicity of different types of synchronization data structures; providing a multiplicity of objects comprising data structures, each object being of one of a multiplicity of different object types;
said multiplicity of different types of objects including waitable object types, each waitable object incorporating one of said multiplicity of different types of synchronization data structures, enabling operating system handled threads of execution to wait on each said waitable object;denoting the status of each of said waitable object as Signalled or Unsignalled; creating ones of said waitable objects in response to requests from operating system handled threads of execution, including storing said synchronization data structure incorporated in each waitable object at a memory location determinable by a uniform rule applicable to all of said waitable object types; suspending a specified operating system handled thread of execution until the status of a specified one of said waitable objects is Signalled; changing the status of a specified one of said waitable objects to Signalled; specifying the format of a distinct one of said different types of said objects in an object type descriptor specifying an object type service means corresponding to one of said object types; performing predefined operations on objects of each said object type using object service means for said each object type; and generating an additional waitable object type, including specifying object service means for said additional waitable object type, and specifying one of said different types of synchronization data structures to be incorporated in waitable objects of said additional waitable object type; whereby an additional waitable object type can be added to said computer system. - View Dependent Claims (4)
-
-
5. A memory for storing data for access by programs being executed on a data processing system, comprising:
-
a computer operating system, stored in said memory, for managing processes and resources in a computer system, said computer system having waitable resources, non-waitable resources, and processes that request services of said resources, each waitable one of said resources capable of causing said processes to wait when requesting service therefrom, and each non-waitable one of said resources not causing said processes to wait when requesting service therefrom; said computer operating system including; a plurality of resource data structures stored in said memory, one said resource data structure for use in managing each said resource, said plurality of resource data structures including waitable and non-waitable resource data structures for use in managing waitable and non-waitable resources, respectively; said resource data structures being of a plurality of data types, each said data type having a body format distinct from the body format of other said data types; each waitable resource data structure having a corresponding dispatcher datum at a memory location determinable by a uniform rule applicable with respect to said data types; said dispatcher datum corresponding to each said waitable resource data structure indicating a waiting state for those of said processes, if any, waiting for service from the corresponding waitable resource; and wait service means for managing said waitable resources in conjunction with said waitable resource data structures by causing said processes to wait when requesting services from said waitable resources, allowing ones of said processes to utilize said waitable resources when associated wait conditions are met, and updating said wait state for each said waitable resource. - View Dependent Claims (6, 7, 8, 9)
-
-
10. A computer system, comprising:
-
waitable resources and non-waitable resources; threads of execution that request services of said resources; a waitable one of said resources causing said threads of execution to wait when requesting service therefrom, and a non-waitable one of said resources not causing said threads of execution to wait when requesting service therefrom; computer memory means; a plurality of data structures stored in said computer memory means, one said data structure managing each of said resources, said plurality of data structures including waitable and non-waitable data structures for managing waitable and non-waitable resources, respectively; each data structure for use in managing one resource having an associated datum at a computer memory location determinable by a uniform rule with respect to said each data structure; said datum associated with each non-waitable data structure indicating that said each non-waitable data structure does not manage waitable resources; said datum associated with each said waitable data structure indicating a waiting state with respect to specified ones of said threads of execution; and wait service means for accessing said datum associated one of said waitable data structures in accordance with said uniform rule when any thread of execution requests service from the corresponding waitable resource, and for causing said any thread of execution to wait when requesting services from said waitable resource until an associated wait termination condition is met, and updating said wait state for said waitable resource. - View Dependent Claims (11, 12)
-
-
13. A method of modifying an operating system for use in a computer system having a central processing unit and memory means for storing data and data structures, comprising the steps of:
-
(1) installing an initial operating system that includes; (1a) a process manager for managing the execution of a plurality of processes; (1b) a multiplicity of objects, each of said objects comprising an instance of a data structure, wherein said multiplicity of objects are partitioned into a multiplicity of object types, including waitable object types; (1c) for each object type, an object type descriptor and at least one object service means for performing predefined operations on objects of the object type;
each said object type descriptor specifying the format of objects of a corresponding one of said object types and including means for specifying one of said object service means associated with said corresponding object type;(1d) a multiplicity of different types of synchronization data structures, each synchronization data structure having a status of Signalled or Unsignalled; (1e) a multiplicity of said objects comprising waitable objects, each having embedded therein one of said synchronization data structures, thereby enabling ones of said processes to wait on said waitable object; (1f) waitable object generating means, responsive to requests from said processes, for creating new instances of waitable objects;
wherein, said waitable object generating means stores said synchronization data structure embedded in each waitable object at a memory location determinable by a uniform rule applicable to all of said waitable objects types;(1g) wait requesting means for suspending a specified one of said processes until the status of a specified one of said synchronization data structures and its associated waitable object is Signalled; (1h) wait service means for changing the status of a specified one of said synchronization data structures and its associated waitable object to Signalled; (2) adding to said initial operating system an additional waitable object type, said adding step including; (2a) adding to said initial operating system object service means for said additional waitable object type; (2b) specifying one of said different types of synchronization data structures to be associated with waitable objects of said additional waitable object type; and (2c) generating an additional object type descriptor for said additional object type; whereby an additional waitable object type is added to said initial operating system.
-
-
14. An operating system for use in a computer system having a central processing unit and memory means for storing data and data structures, comprising:
-
(1) an initial operating system, stored in said memory means, that includes; (1a) a process manager for managing the execution of a plurality of processes; (1b) a multiplicity of objects, each of said objects comprising an instance of a data structure, wherein said multiplicity of objects are partitioned into a multiplicity of object types, including waitable object types; (1c) for each object type, an object type descriptor and at least one object service means for performing predefined operations on objects of the object type;
each said object type descriptor specifying the format of objects of a corresponding one of said object types and including means for specifying one of said object service means associated with said corresponding object type;(1d) a multiplicity of different types of synchronization data structures, each synchronization data structure having a status of Signalled or Unsignalled; (1e) a multiplicity of said objects comprising waitable objects, each having embedded therein one of said synchronization data structures, thereby enabling ones of said processes to wait on said waitable object; (1f) waitable object generating means, responsive to requests from said processes, for creating new instances of waitable objects;
wherein, said waitable object generating means stores said synchronization data structure embedded in each waitable object at a memory location determinable by a uniform rule applicable to all of said waitable objects types;(1g) wait requesting means for suspending a specified one of said processes until the status of a specified one of said synchronization data structures and its associated waitable object is Signalled; (1h) wait service means for changing the status of a specified one of said synchronization data structures and its associated waitable object to Signalled; (2) means for adding to said initial operating system an additional waitable object type, including means for adding; (2a) object service means for said additional waitable object type; (2b) means for specifying one of said different types of synchronization data structures to be associated with waitable objects of said additional waitable object type; and (2c) an additional object type descriptor for said additional object type; whereby an additional waitable object type is added to said initial operating system.
-
-
15. A method of modifying an operating system for use in a computer system having a central processing unit and memory means for storing data and data structures, comprising the steps of:
-
(1) providing an initial operating system that includes; (1a) thread management means for managing the execution of a plurality of threads of execution; (1b) a multiplicity of objects, each of said objects comprising an instance of a data structure, wherein said multiplicity of objects are partitioned into a multiplicity of object types, including waitable object types; (1c) for each object type, an object type descriptor and at least one object service means for performing predefined operations on objects of the object type;
each said object type descriptor specifying the format of objects of a corresponding one of said object types and including means for specifying one of said object service means associated with said corresponding object type;(1d) a multiplicity of different types of synchronization data structures, each synchronization data structure having a status of Signalled or Unsignalled; (1e) a multiplicity of said objects comprising waitable objects, each having incorporated therein one of said synchronization data structures, thereby enabling ones of said threads of execution to wait on said waitable object; (1f) waitable object generating means, responsive to requests from said threads of execution, for creating new instances of waitable objects;
wherein, said waitable object generating means stores said synchronization data structure incorporated in each waitable object at a memory location determinable by a uniform rule applicable to all of said types of waitable objects;(1g) wait requesting means for suspending a specified one of said threads of execution until the status of a specified one of said synchronization data structures and its associated waitable object is Signalled; (1h) wait service means for changing the status of a specified one of said synchronization data structures and its associated waitable object to Signalled; (2) adding to said initial operating system an additional waitable object type, said adding step including; (2a) adding to said initial operating system object service means for said additional waitable object type; (2b) specifying one of said different types of synchronization data structures to be associated with waitable objects of said additional waitable object type; and (2c) generating an additional object type descriptor for said additional object type; whereby an additional waitable object type is added to said initial operating system.
-
-
16. An operating system for use in a computer system having a central processing unit and memory means for storing data and data structures, comprising:
-
(1) an initial operating system, stored in said memory means, that includes; (1a) thread management means for managing the execution of a plurality of threads of execution; (1b) a multiplicity of objects, each of said objects comprising an instance of a data structure, wherein said multiplicity of objects are partitioned into a multiplicity of object types, including waitable object types; (1c) for each object type, an object type descriptor and at least one object service means for performing predefined operations on objects of the object type;
each said object type descriptor specifying the format of objects of a corresponding one of said object types and including means for specifying one of said object service means associated with said corresponding object type;(1d) a multiplicity of different types of synchronization data structures, each synchronization data structure having a status of Signalled or Unsignalled; (1e) a multiplicity of said objects comprising waitable objects, each having incorporated therein one of said synchronization data structures, thereby enabling ones of said threads of execution to wait on said waitable object; (1f) waitable object generating means, responsive to requests from said threads of execution, for creating new instances of waitable objects;
wherein, said waitable object generating means stores said synchronization data structure incorporated in each waitable object at a memory location determinable by a uniform rule applicable to all of said types of waitable objects;(1g) wait requesting means for suspending a specified one of said threads of execution until the status of a specified one of said synchronization data structures and its associated waitable object is Signalled; (1h) wait service means for changing the status of a specified one of said synchronization data structures and its associated waitable object to Signalled; (2) means adding to said initial operating system an additional waitable object type, including means for adding; (2a) service means for said additional waitable object type; (2b) means for specifying one of said different types of synchronization data structures to be associated with waitable objects of said additional waitable object type; and (2c) an additional object type descriptor for said additional object type; whereby an additional waitable object type is added to said initial operating system.
-
-
17. A method of adding to a pre-existing computer operating system support for managing a resource, the resource imposing a latency on any thread of execution requesting service therefrom, the computer system having a memory means for storing data and data structures, the method comprising the steps of:
-
defining a data structure type corresponding to the resource, said data structure type sharing with pre-existing resource data structure types of said computer operating system a common header format, said defined data structure type having an associated body format; said common header format including a dispatcher datum whose value indicates an address in said memory means of a synchronization data structure for use in managing the waiting said any thread of execution waiting on said resource; and adding to said pre-existing computer operating system said defined data structure, and adding object service routines for manipulating data structures of said defined data structure type to form a modified computer operating system, said object service routines including means for causing any thread of execution to wait when requesting services from said resource until an associated wait termination condition is satisfied and for updating ones of said synchronization data structures accordingly. - View Dependent Claims (18, 19)
-
-
20. A method of adding to a pre-existing computer operating system support for managing resources of a new resource class, the resources of the new resource class imposing a latency on any thread of execution requesting service therefrom, the computer operating system operating in a computer system having a memory means for storing data and data structures, the pre-existing computer operating system managing resources of a plurality of pre-existing resource classes, each said pre-existing resource class having a corresponding pre-existing data structure type, the method comprising the steps of:
-
defining a new data structure type corresponding to the new resource class, said data structure type sharing with said pre-existing resource data structure types a common header format, each said data structure type having a distinct associated body format; said common header format including a dispatcher datum whose value indicates an address in said memory means of a synchronization data structure for use in managing the waiting of said any thread of execution waiting on said resource; and adding to said pre-existing computer operating system said new data structure type, and adding object service routines for manipulating data structures of said new data structure type to form a modified computer operating system, said object service routines including means for causing any thread of execution to wait when requesting services from said resource until an associated wait termination condition is satisfied and for updating ones of said synchronization data structures accordingly. - View Dependent Claims (21)
-
-
22. For use in a computer system, a method of managing resources of the computer system, the resources partitioned into resource classes, the resource classes being divided into waitable and non-waitable classes, the method comprising the steps of:
-
for each resource, allocating storage for a resource data structure for use in managing said each resource, said resource data structures being partitioned into object classes corresponding to said resource classes, said object classes including waitable and non-waitable object classes, each object class comprising a corresponding data structure format and at least one corresponding object service routine for performing predefined operations on resource data structures of said object class, the data structure formats for said object classes sharing a common header format; for each said object class, allocating storage for an object type descriptor corresponding to said object class, each object type descriptor comprising data indicating said data structure format and said at least one object service routine corresponding to said object class; setting a type pointer member in the header of each said resource data structure to point to the corresponding object type descriptor; launching a plurality of processes for execution; incorporating in each said resource data structure corresponding to a waitable one of said resources a synchronization data structure, each synchronization data structure having a status of Signalled or Unsignalled and having a datum for indicating processes waiting on said synchronization data structure;
said incorporating step including storing said synchronization data structure incorporated in each resource data structure at a memory location determinable by a uniform rule applicable to all of said waitable object classes;when one of said processes requests service from one of said waitable resources, setting to Unsignalled the status of the synchronization data structure associated with the resource data structure corresponding to said one waitable resource, and suspending said one process until the status of the associated synchronization data structure is Signalled; and when a wait condition for said waitable resource is satisfied, changing the status of said corresponding synchronization data structure to Signalled. - View Dependent Claims (23)
-
-
24. In an operating system for a computer, a method for processing a request by a process for a service from one of a plurality of resources of said computer, the service having a latency time during which the process must wait pending completion of the service, the steps of the method comprising:
-
locating a resource data structure, corresponding to the one resource from the service requested, from among a plurality of resource data structures each corresponding to one of said plurality of resources and used by said operating system for use in managing the corresponding resource, each of said resource data structures belonging to one of a plurality of object classes, each object class having a data structure format and at least one object service routine for performing predefined operations on resource data structures of said each object class; locating a synchronization data structure for said resource data structure by means of a rule uniformly applicable to said resource data structures of all said object classes, said synchronization data structure specifying a synchronization protocol associated with said service; suspending execution of the process according to said synchronization protocol, and storing in association with said synchronization data structure process control data for resuming execution of the process; and when said synchronization protocol is satisfied, resuming execution of the process according to said process control data.
-
Specification