An apparatus for enabling an object-oriented application to access in an object-oriented manner a procedural operating system having a native procedural interface is disclosed. The apparatus includes a computer and a memory component in the computer. A code library is stored in the memory component. The code library includes computer program logic implementing an object-oriented class library. The object-oriented class library comprises related object-oriented classes for enabling the application to access in an object-oriented manner services provided by the operating system. The object-oriented classes include methods for accessing the operating system services using procedural function calls compatible with the native procedural interface of the operating system. The computer processes object-oriented statements contained in the application and defined by the class library by executing methods from the class library corresponding to the object-oriented statements. The object-orie... |
Citations|
| US4821220 | Jul 25, 1986 | Apr 11, 1989 | Tektronix, Inc. | System for animating program operation and displaying time-based relationships | | US4885717 | Sep 25, 1986 | Dec 5, 1989 | Tektronix, Inc. | System for graphically representing operation of object-oriented programs | | US4891630 | Apr 22, 1988 | Jan 2, 1990 | | Computer vision system with improved object orientation technique | | US4953080 | Apr 25, 1988 | Aug 28, 1990 | Hewlett-Packard Company | Object management facility for maintaining data in a computer system | | US5041992 | Oct 24, 1988 | Aug 20, 1991 | University of Pittsburgh | Interactive method of developing software interfaces | | US5050090 | Mar 30, 1989 | Sep 17, 1991 | R. J. Reynolds Tobacco Company | Object placement method and apparatus | | US5060276 | May 31, 1989 | Oct 22, 1991 | AT&T Bell Laboratories | Technique for object orientation detection using a feed-forward neural network | | US5075848 | Dec 22, 1989 | Dec 24, 1991 | Intel Corporation | Object lifetime control in an object-oriented memory protection mechanism | | US5093914 | Dec 15, 1989 | Mar 3, 1992 | AT&T Bell Laboratories | Method of controlling the execution of object-oriented programs | | US5119475 | Aug 29, 1991 | Jun 2, 1992 | Schlumberger Technology Corporation | Object-oriented framework for menu definition | | US5125091 | Jun 8, 1989 | Jun 23, 1992 | Hazox Corporation | Object oriented control of real-time processing | | US5133075 | Dec 19, 1988 | Jul 21, 1992 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database | | US5136705 | Jun 10, 1991 | Aug 4, 1992 | Tektronix, Inc. | Method of generating instruction sequences for controlling data flow processes | | US5151987 | Oct 23, 1990 | Sep 29, 1992 | International Business Machines Corporation | Recovery objects in an object oriented computing environment | | US5181162 | Dec 6, 1989 | Jan 19, 1993 | Eastman Kodak Company | Document management and production system | | US5379432 | Jul 19, 1993 | Jan 3, 1995 | Taligent, Inc. | Object-oriented interface for a procedural operating system | | US5404529 | Jul 19, 1993 | Apr 4, 1995 | Taligent, Inc. | Object-oriented interprocess communication system interface for a procedural operating system |
Referenced by|
| US5712980 | Jun 6, 1995 | Jan 27, 1998 | Landis & Gyr Technology Innovation AG | Data arrangement for an apparatus connectable to a communication network, and process for generating the data arrangement | | US5737736 | Jan 16, 1996 | Apr 7, 1998 | Oracle Corporation | Method and apparatus for storing objects using a c-structure and a bind descriptor | | US5745768 | Jun 7, 1995 | Apr 28, 1998 | International Business Machines Corporation | Computer program product and program storage device for supporting native and non-native signals transferred between processing entities of a computer program | | US5752038 | Jul 17, 1997 | May 12, 1998 | Microsoft Corporation | Method and system for determining an optimal placement order for code portions within a module | | US5758184 | Apr 24, 1995 | May 26, 1998 | Microsoft Corporation | System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads | | US5799182 | Jan 21, 1997 | Aug 25, 1998 | Ford Motor Company | Multiple thread micro-sequencer apparatus and method with a single processor | | US5848246 | Jul 1, 1996 | Dec 8, 1998 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system | | US5862372 | Nov 16, 1994 | Jan 19, 1999 | | Visually oriented computer implemented application development system utilizing standardized objects and multiple views | | US5867708 | Nov 20, 1995 | Feb 2, 1999 | International Business Machines Corporation | System, method, and article of manufacture for adding concurrency to a binary class in an object oriented system | | US5893912 | Aug 13, 1997 | Apr 13, 1999 | International Business Machines Corporation | Thread context manager for relational databases, method and computer program product for implementing thread context management for relational databases | | US5905892 | Apr 1, 1996 | May 18, 1999 | Sun Microsystems, Inc. | Error correcting compiler | | US5961582 | Oct 25, 1994 | Oct 5, 1999 | Acorn Technologies, Inc. | Distributed and portable execution environment | | US5987245 | Jul 1, 1996 | Nov 16, 1999 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework | | US5999972 | Jul 1, 1996 | Dec 7, 1999 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework | | US6012149 | Sep 30, 1997 | Jan 4, 2000 | Bull HN Information Systems Inc. | Computer system with polymorphic fault processing | | US6023749 | Jan 25, 1999 | Feb 8, 2000 | Citrix Systems, Inc. | Object and method for providing efficient multi-user access to shared operating system kernal code using instancing | | US6032172 | May 29, 1997 | Feb 29, 2000 | Sun Microsystems, Inc. | Distributed computer process scheduling mechanism | | US6035419 | Dec 27, 1995 | Mar 7, 2000 | International Business Machines Corporation | Logical execution sequence error recovery method and system | | US6038590 | Jul 1, 1996 | Mar 14, 2000 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system | | US6047390 | Dec 22, 1997 | Apr 4, 2000 | Motorola, Inc. | Multiple context software analysis | | US6125442 | Dec 12, 1997 | Sep 26, 2000 | Maves International Software, Inc. | Method, system and data structures for computer software application development and execution | | US6131109 | Feb 24, 1998 | Oct 10, 2000 | Kabushiki Kaisha Toshiba | Multitask processor, a multitask processing method, a multitask processing display method and a storage medium for processing by correlating task and object | | US6148324 | Jan 5, 1998 | Nov 14, 2000 | Lucent Technologies, Inc. | Prioritized load balancing among non-communicating processes in a time-sharing system | | US6167423 | Apr 3, 1997 | Dec 26, 2000 | Microsoft Corporation | Concurrency control of state machines in a computer system using cliques | | US6182107 | Jun 3, 1997 | Jan 30, 2001 | Object Technology Licensing Corporation | Management of reference object lifetimes in object oriented programs | | US6182146 | Jun 27, 1997 | Jan 30, 2001 | Compuware Corporation | Automatic identification of application protocols through dynamic mapping of application-port associations | | US6223207 | Jan 13, 1998 | Apr 24, 2001 | Microsoft Corporation | Input/output completion port queue data structures and methods for using same | | US6223214 | Sep 6, 1996 | Apr 24, 2001 | Sensiview Corporation | Computer implemented virtual sensor object and tangible medium utilizing same | | US6230182 | Jul 8, 1998 | May 8, 2001 | Hewlett-Packard Company | Computer language interpreter which can perform time-consuming operations with minimal impact on interactive programs | | US6253251 | Jan 3, 1996 | Jun 26, 2001 | International Business Machines Corp. | Information handling system, method, and article of manufacture including integration of object security service authorization with a distributed computing environment | | US6266709 | Jul 1, 1996 | Jul 24, 2001 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process | | US6272555 | Jul 1, 1996 | Aug 7, 2001 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system | | US6304893 | Jul 1, 1996 | Oct 16, 2001 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system | | US6370681 | Oct 28, 1997 | Apr 9, 2002 | Massachusetts Institute of Technology | COMPUTER SYSTEM AND COMPUTER IMPLEMENTED PROCESS FOR REPRESENTING SOFTWARE SYSTEM DESCRIPTIONS AND FOR GENERATING EXECUTABLE COMPUTER PROGRAMS AND COMPUTER SYSTEM CONFIGURATIONS FROM SOFTWARE SYSTEM DESCRIPTIONS | | US6385724 | Nov 30, 1998 | May 7, 2002 | Microsoft Corporation | Automatic object caller chain with declarative impersonation and transitive trust | | US6388765 | Mar 17, 1998 | May 14, 2002 | Fujitsu Limited | Page alignment indication method, page control method, printer system and printer device | | US6415334 | May 14, 1997 | Jul 2, 2002 | Microsoft Corporation | Method and system for accessing objects of different thread types | | US6424991 | Jul 1, 1996 | Jul 23, 2002 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework | | US6425017 | Aug 17, 1998 | Jul 23, 2002 | Microsoft Corporation | Queued method invocations on distributed component applications | | US6434598 | Jul 1, 1996 | Aug 13, 2002 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface ( | | US6442620 | Aug 17, 1998 | Aug 27, 2002 | Microsoft Corporation | Environment extensibility and automatic services for component applications using contexts, policies and activators | | US6446078 | Feb 9, 1999 | Sep 3, 2002 | Alcatel | Methods of storing and depackaging attributes of an object | | US6487665 | Nov 30, 1998 | Nov 26, 2002 | Microsoft Corporation | Object security boundaries | | US6490611 | Jan 28, 1999 | Dec 3, 2002 | Mitsubishi Electric Research Laboratories, Inc. | User level scheduling of inter-communicating real-time tasks | | US6519623 | Oct 31, 1996 | Feb 11, 2003 | International Business Machines Corporation | Generic semaphore for concurrent access by multiple operating systems | | US6526457 | Oct 24, 1997 | Feb 25, 2003 | Computer Associates Think, Inc. | Systems utility object interface for facilitating software portability | | US6574736 | Nov 30, 1998 | Jun 3, 2003 | Microsoft Corporation | Composable roles | | US6604198 | May 3, 2002 | Aug 5, 2003 | Microsoft Corporation | Automatic object caller chain with declarative impersonation and transitive trust | | US6606711 | Oct 29, 2002 | Aug 12, 2003 | Microsoft Corporation | Object security boundaries | | US6606742 | Aug 20, 1999 | Aug 12, 2003 | Taligent, Inc. | Object-oriented interface for portability to diverse operating systems or hardware platforms | | US6631425 | Oct 28, 1997 | Oct 7, 2003 | Microsoft Corporation | Just-in-time activation and as-soon-as-possible deactivation or server application components | | US6681384 | Dec 23, 1999 | Jan 20, 2004 | International Business Machines Corporation | Multi-threaded break-point | | US6684261 | Aug 29, 1995 | Jan 27, 2004 | Object Technology Licensing Corporation | Object-oriented operating system | | US6697879 | Aug 3, 1999 | Feb 24, 2004 | J. Bryan Blundell | Computer implemented virtual sensor object and tangible medium utilizing same | | US6714962 | Mar 16, 2000 | Mar 30, 2004 | Microsoft Corporation | Multi-user server application architecture with single-user object tier | | US6725456 | Nov 29, 1999 | Apr 20, 2004 | Lucent Technologies Inc. | Methods and apparatus for ensuring quality of service in an operating system | | US6748455 | Feb 23, 1999 | Jun 8, 2004 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events with filtering | | US6748555 | Sep 9, 1999 | Jun 8, 2004 | Microsoft Corporation | Object-based software management | | US6813769 | Oct 28, 1997 | Nov 2, 2004 | Microsoft Corporation | Server application components with control over state duration | | US6829770 | Feb 23, 1999 | Dec 7, 2004 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events | | US6862735 | Feb 11, 1999 | Mar 1, 2005 | Sun Microsystems, Inc. | Mechanism by which platform independent software may bind to and access platform dependent software | | US6874144 | Apr 5, 1999 | Mar 29, 2005 | International Business Machines Corporation | System, method, and program for implementing priority inheritance in an operating system | | US6981255 | Dec 26, 2001 | Dec 27, 2005 | Microsoft Corporation | Method and system for accessing objects of different thread types | | US6996826 | Dec 26, 2001 | Feb 7, 2006 | Microsoft Corporation | Method and system for accessing objects of different thread types | | US7003557 | Jan 15, 1999 | Feb 21, 2006 | Fujitsu Limited | Method and system for racing control of operations in system management | | US7043733 | Jun 14, 2004 | May 9, 2006 | Microsoft Corporation | Server application components with control over state duration | | US7043734 | Feb 15, 2005 | May 9, 2006 | Microsoft Corporation | Component self-deactivation while client holds a returned reference | | US7062770 | Feb 15, 2005 | Jun 13, 2006 | Microsoft Corporation | Recycling components after self-deactivation | | US7072970 | Oct 5, 2001 | Jul 4, 2006 | International Business Machines Corporation | Programmable network protocol handler architecture | | US7076784 | Oct 22, 1999 | Jul 11, 2006 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment | | US7194743 | May 1, 2001 | Mar 20, 2007 | Citrix Systems, Inc. | Methods and apparatus for communicating changes between a user interface and an executing application using property paths | | US7237245 | Nov 18, 2004 | Jun 26, 2007 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events | | US7240244 | Jun 8, 2004 | Jul 3, 2007 | Microsoft Corporation | Object-based software management | | US7243271 | Jun 8, 2004 | Jul 10, 2007 | Microsoft Corporation | Wrapped object for observing object events | | US7346842 | Nov 2, 2000 | Mar 18, 2008 | Citrix Systems, Inc. | Methods and apparatus for incorporating a partial page on a client | | US7389514 | May 26, 2004 | Jun 17, 2008 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment | | US7478405 | Sep 29, 2004 | Jan 13, 2009 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events | | US7523293 | Sep 9, 2002 | Apr 21, 2009 | | Spawn-join instruction set architecture for providing explicit multithreading | | US7558774 | Oct 29, 2007 | Jul 7, 2009 | Nahava Inc. | Method and apparatus for fundamental operations on token sequences: computing similarity, extracting term values, and searching efficiently | | US7596593 | Jul 18, 2005 | Sep 29, 2009 | Citrix Systems, LLC | Methods and apparatus for efficiently transmitting interactive application data between a client and server using markup language | | US7634777 | Jan 6, 2005 | Dec 15, 2009 | Microsoft Corporation | Queued component interface passing for results outflow from queued method invocations | | US7676588 | Mar 24, 2006 | Mar 9, 2010 | International Business Machines Corporation | Programmable network protocol handler architecture | | US7685298 | Dec 1, 2006 | Mar 23, 2010 | Citrix Systems, Inc. | Systems and methods for providing authentication credentials across application environments | | US7752621 | Sep 15, 2004 | Jul 6, 2010 | International Business Machines Corporation | System, method and program for implementing priority inheritance in an operating system | | US7793299 | Aug 30, 2005 | Sep 7, 2010 | International Business Machines Corporation | System and method for scheduling tasks for execution | | US7797647 | Apr 2, 2004 | Sep 14, 2010 | Tufts University | Circuit having hardware threading | | US7873965 | Dec 1, 2006 | Jan 18, 2011 | Citrix Systems, Inc. | Methods and apparatus for communicating changes between a user-interface and an executing application, using property paths | | US8161472 | Feb 27, 2008 | Apr 17, 2012 | Citrix Systems, Inc. | Methods and apparatus for incorporating a partial page on a client | | US8174503 | May 17, 2008 | May 8, 2012 | David H. Cain | Touch-based authentication of a mobile device through user generated pattern creation |
Claims1. An apparatus for enabling an object-oriented application, said application including object-oriented statements, to access in an object-oriented manner a procedural operating system by use of said object-oriented statements, said system providing services, including procedural functions saved as executable program logic that are called to access said services, said apparatus comprising: - (a) a computer;
- (b) a memory component in said computer;
- (c) a code library, stored in said memory component, comprising means for storing said executable program logic in an object-oriented class library; and means for interfacing said object-oriented application to said procedural operating system utilizing said executable program logic;
- (d) means, in said computer, for processing said object-oriented statements by executing methods from said object-oriented class library corresponding to said object-oriented statements; and
- (e) means, in said object-oriented class library, including object-oriented thread classes, for enabling said object-oriented application to access said services to spawn, control, and obtain information relating to a thread of execution.
2. The apparatus of claim 1, wherein said thread classes comprise a first object-oriented class encapsulating information necessary to create a new thread of execution, said first class being an abstract base class, and a second object-oriented class for enabling said application to spawn a new thread of execution on a task by passing a subclass of said first class to an instance of said second class, and for enabling said application to terminate, suspend, resume, and schedule an existing thread of execution, said second class having instances, said instances representing run-time processing entities in said computer. 3. The apparatus of claim 1, wherein said object-oriented class library comprises object-oriented task classes for enabling said application to access in an object-oriented manner said services to reference and control a task, said task representing an execution environment for at least one thread of execution associated with said task. 4. The apparatus of claim 3, wherein said task classes comprise a first task object-oriented class encapsulating attributes and operations of an existing task, said first task class including protected methods to enable run-time specific subclasses of said first task class to spawn new tasks. 5. The apparatus of claim 4, wherein said first task class comprises methods for enabling said application to determine whether a possible task exists, to suspend and resume said existing task, to terminate said existing task, to receive predetermined information relating to said existing task, to identify a thread of execution contained in said existing task, and to perform predetermined virtual memory operations in an address space associated with said existing task. 6. The apparatus of claim 5, wherein said object-oriented class library comprises an object-oriented thread class for enabling said application to create a new thread of execution, said task classes further comprising a second object-oriented task class, derived from said first task class, for enabling said application to spawn a new run-time specific task having a single thread of execution by passing an instance of said thread class to an instance of said second task class. 7. The apparatus of claim 1, wherein said object-oriented class library comprises object-oriented synchronization classes for enabling said application to access in an object-oriented manner said services to synchronize execution of said thread of execution. 8. The apparatus of claim 7, wherein said synchronization classes define counting semaphores for use in synchronizing the execution of said thread of execution, said synchronization classes comprising methods for enabling said application to acquire one or more of said counting semaphores in an exclusive mode or in a shared mode, and to release said counting semaphores after said counting semaphores are acquired. 9. The apparatus of claim 8, wherein said counting semaphores are recoverable. 10. The apparatus of claim 7, wherein said synchronization classes define a monitor lock for use in synchronizing said thread of execution, said synchronization classes comprising methods for enabling said application to acquire and release said monitor lock, and to block on a specified condition once said monitor lock is acquired, said application releasing said monitor lock when said application blocks on said specified condition, and after said application is unblocked, due to satisfaction of said specified condition, said application reacquiring said monitor lock before resuming execution. 11. The apparatus of claim 10, wherein said synchronization classes further comprise methods for enabling said application to perform a broadcast operation on a specified blocking condition when said application has acquired said monitor lock, said broadcast operation unblocking all of said threads of execution that are blocked on said specified blocking condition. 12. The apparatus of claim 7, wherein said object-oriented class library comprises object-oriented scheduling classes for enabling said application to access in an object-oriented manner said services to schedule execution of said thread of execution. 13. The apparatus of claim 12 in which an actual scheduling priority, a default scheduling priority, and a maximum scheduling priority are associated with said application, said scheduling classes defining one or more scheduling priorities, said object-oriented class library including methods for setting each of said actual, default, and maximum scheduling priorities of said application to one of said scheduling priorities. 14. The apparatus of claim 13, wherein said scheduling classes comprise an object-oriented class defining an idle scheduling priority adapted for use with said threads of execution that execute when said computer is substantially idle. 15. The apparatus of claim 13, wherein said scheduling classes comprise an object-oriented class defining a responsive scheduling priority adapted for use with highly responsive threads of execution that execute for short time periods, and that block following said short time periods. 16. The apparatus of claim 13, wherein said scheduling classes comprise an object-oriented class defining an interaction scheduling priority adapted for use with highly responsive threads of execution implementing an interface between a human operator and said computer. 17. The apparatus of claim 13, wherein said scheduling classes comprise an object-oriented class defining a long-term scheduling priority adapted for use with threads of execution that execute for long periods of time. 18. The apparatus of claim 13, wherein said scheduling classes comprise methods for enabling a task to specify a relative scheduling urgency of said task. 19. The apparatus of claim 1, wherein said object-oriented class library comprises object-oriented fault classes for enabling said application to access in an object-oriented manner said services to process system and user-defined processor faults. 20. The apparatus of claim 19, wherein said fault classes comprise a first object-oriented class defining a generic fault, said first class having virtual methods for setting a processor computer program logic and a fault computer program logic to thereby identify said generic fault, said first class representing an abstract base class. 21. The apparatus of claim 20, wherein said fault classes comprise a second object-oriented class, derived from said first object-oriented class, comprising non-virtual methods for setting said processor computer program logic and said fault computer program logic in accordance with information specific to a particular fault of a particular processor such that said second class represents a processor-specific fault, said non-virtual methods of said second class overriding said virtual methods of said first class. 22. The apparatus of claim 21, wherein said fault classes comprise an object-oriented class encapsulating information identifying a destination port, a fault message format, and fault types, said object-oriented class comprising methods for enabling said application to specify said destination port, said fault message format, and said fault types, and for enabling said application to instruct said operating system to send messages in said specified fault message format to said specified destination port when said specified fault types occur. 23. The apparatus of claim 19, wherein said fault classes comprise a first object-oriented class comprising methods for obtaining and returning a processing state of said thread of execution. 24. The apparatus of claim 23, wherein said fault classes comprise a second object-oriented class having methods for enabling said application to receive fault messages and to respond to received fault messages, said fault messages comprising information identifying a faulting task and said faulting task's faulting thread of execution, and/or information of a faulting thread of execution's state, said faulting thread of execution's state being obtained by calling said methods of said first class. 25. An apparatus for providing an object-oriented interface to a procedural operating system, said system providing services including procedural functions saved as executable program logic that are called to access said services, said apparatus comprising: - (a) a computer;
- a memory component in said computer;
- (c) a code library, stored in said memory component, comprising means for storing said executable program logic in an object-oriented class library; means for interfacing to an object-oriented application; and said object-oriented class library defining object-oriented statements, said statements insertable into said application to enable said application to access said services during run-time execution of said application in said computer; and
- (d) means, in said object-oriented class library, including object-oriented, thread classes for enabling said application to access in an object-oriented manner operating system services to spawn, control, and obtain information relating to a thread of execution.
26. The apparatus of claim 25, wherein said object-oriented class library comprises object-oriented task classes for enabling said application to access in an object-oriented manner said services to reference and control a task, said task representing an execution environment for at least one thread of execution associated with said task. 27. The apparatus of claim 26, wherein said object-oriented class library comprises object-oriented synchronization classes for enabling said application to access in an object-oriented manner said services to synchronize execution of threads of execution. 28. The apparatus of claim 27, wherein said object-oriented class library comprises object-oriented, scheduling classes for enabling said application to access in an object-oriented manner said services to schedule execution of said thread of execution. 29. The apparatus of claim 28, wherein said object-oriented class library comprises object-oriented, fault classes for enabling said application to access in an object-oriented manner said services to process system and user-defined processor faults. 30. An apparatus for providing an object-oriented interface to a procedural operating system, said system providing services including procedural functions saved as executable program logic that are called to access said services, said apparatus comprising: - (a) a computer;
- (b) a memory component in said computer; and
- (c) a code library, stored in said memory component, comprising means for storing said executable program logic in an object-oriented class library; means for interfacing to an object-oriented application; and said object-oriented class library comprising object-oriented thread classes, said thread classes comprising methods for accessing said services during run-time execution of said application in said computer, said thread classes having statements, said statements insertable into said application to enable said application to access said services to spawn, control, and obtain information relating to threads of execution.
31. The apparatus of claim 30, wherein said thread classes comprise a first object-oriented class encapsulating information necessary to create a new thread of execution said first class being an abstract base class, and a second object-oriented class for enabling said application to spawn a new thread of execution on a task by passing a subclass of said first class to an instance of said second class, and for enabling said application to terminate, suspend, resume, and schedule an existing thread of execution, said second class having instances, said instances representing run-time processing entities in said computer. 32. An apparatus for providing an object-oriented interface to a procedural operating system, said system providing services including procedural functions saved as executable program logic that are called to access said services, said apparatus comprising: - (a) a computer;
- (b) a memory component in said computer; and
- (c) a code library, stored in said memory component, comprising means for storing said executable program logic in an object-oriented class library; means for interfacing to an object-oriented application; and said object-oriented class library comprising object-oriented task classes, said task classes comprising methods for accessing said services during run-time execution of said application in said computer, said task classes having statements, said statements insertable into said application to enable said application to access said services to reference and control a task, said task representing an execution environment for at least one thread of execution associated with said task.
33. The apparatus of claim 32, wherein said task classes comprise a first object-oriented class encapsulating attributes and operations of an existing task, said first class including protected method to enable run-time specific subclasses of said first class to spawn new tasks. 34. The apparatus of claim 33, wherein said first class comprises methods for enabling said application to determine whether a possible task exists, to suspend and resume said existing task, to terminate said existing task, to receive predetermined information relating to said existing task, to identify a thread of execution contained in said existing task, and to perform predetermined virtual memory operations in an address space associated with said existing task. 35. The apparatus of claim 34, wherein the object-oriented class library comprises an object-oriented thread class for enabling said application to create a new thread of execution, and said task classes further comprising a second object-oriented task class, derived from said first class, for enabling said application to spawn a new run-time specific task having a single thread of execution by passing an instance of said thread class to an instance of said second task class. 36. An apparatus for providing an object-oriented interface to a procedural operating system, said system providing services including procedural functions saved as executable program logic that are called to access said services, said apparatus comprising: - (a) a computer;
- (b) a memory component in said computer; and
- (c) a code library, stored in said memory component, comprising means for storing said executable program logic in an object-oriented class library; means for interfacing to an object-oriented application; and said object-oriented class library comprising object-oriented synchronization classes, said synchronization classes comprising methods for accessing said services during run-time execution of said application in said computer, said synchronization classes having statements, said statements insertable into said application to enable said application to access said services to synchronize execution of threads of execution.
37. The apparatus of claim 36, wherein said synchronization classes define counting semaphores for use in synchronizing the execution of said thread of execution, said synchronization classes comprising methods for enabling said application to acquire one or more of said counting semaphores in an exclusive mode or in a shared mode, and to release said counting semaphores after said counting semaphores are acquired. 38. The apparatus of claim 37, wherein said counting semaphores are recoverable. 39. The apparatus of claim 37, wherein said synchronization classes define a monitor lock for use in synchronizing said thread of execution, said synchronization classes comprising methods for enabling said application to acquire and release said monitor lock, and to block on a specified condition once said monitor lock is acquired, said application releasing said monitor lock when said application blocks on said specified condition, and after said application is unblocked, due to satisfaction of said specified condition, said application reacquiring said monitor lock before resuming execution. 40. The apparatus of claim 39, wherein said synchronization classes further comprise methods for enabling said application to perform a broadcast operation on a specified blocking condition when said application has acquired said monitor lock, said broadcast operation unblocking all of said threads of execution that are blocked on said specified blocking condition. 41. An apparatus for providing an object-oriented interface to a procedural operating system, said system providing services including procedural functions saved as executable program logic that are called to access said services, said apparatus comprising: - (a) a computer;
- (b) a memory component in said computer; and
- (c) a code library, stored in said memory component, comprising means for storing said executable program logic in an object-oriented class library; means for interfacing to an object-oriented application; and said object-oriented class library comprising object-oriented, scheduling classes, said scheduling classes comprising methods for accessing said services during run-time execution of said application in said computer, said scheduling classes having statements, said statements insertable into said application to enable said application to access said services.
42. The apparatus of claim 41 in which an actual scheduling priority, a default scheduling priority, and a maximum scheduling priority are associated with said application, said scheduling classes defining one or more scheduling priorities, said object-oriented class library including methods for setting each of said actual, default, and maximum scheduling priorities of said application to one of said scheduling priorities. 43. The apparatus of claim 42, wherein said scheduling classes comprise an object-oriented class defining an idle scheduling priority adapted for use with said threads of execution that execute when said computer is substantially idle. 44. The apparatus of claim 43, wherein said scheduling classes comprise an object-oriented class defining a responsive scheduling priority adapted for use with highly responsive threads of execution that execute for short time periods, and that block following said short time periods. 45. The apparatus of claim 44, wherein said scheduling classes comprise an object-oriented class defining an interaction scheduling priority adapted for use with highly responsive threads of execution implementing an interface between a human operator and said computer. 46. The apparatus of claim 44, wherein said scheduling classes comprise an object-oriented class defining a long-term scheduling priority adapted for use with threads of execution that execute for long periods of time. 47. (Amended) The apparatus of claim 44, wherein said scheduling classes comprise methods for enabling a task to specify a relative scheduling urgency of said task. 48. An apparatus for providing an object-oriented interface to a procedural operating system, said system providing services including procedural functions saved as executable program logic that are called to access said services, said apparatus comprising: - (a) a computer;
- (b) a memory component in said computer; and
- (c) a code library, stored in said memory component, comprising means for storing said executable program logic in an object-oriented class library; means for interfacing to an object-oriented application; and said object-oriented class library comprising object-oriented fault classes, said fault classes comprising methods for accessing said services during run-time execution of said application in said computer, said fault classes having statements, said statements insertable into said application to enable said application to access said services to process system and user-defined processor faults.
49. The apparatus of claim 48, wherein said fault classes comprise a first object-oriented class defining a generic fault, said first class having virtual methods for setting a processor computer program logic and a fault computer program logic to thereby identify said generic fault, said first class representing an abstract base class. 50. The apparatus of claim 49, wherein said fault classes comprise a second object-oriented class, derived from said first object-oriented class, comprising non-virtual methods for setting said processor computer program logic and said fault computer program logic in accordance with information specific to a particular fault of a particular processor such that said second class represents a processor-specific fault, said non-virtual methods of said second class override said virtual methods of said first class. 51. The apparatus of claim 49, wherein said fault classes comprise an object-oriented class encapsulating information identifying a destination port, a fault message format, and fault types, said object-oriented class comprising methods for enabling said application to specify said destination port, said fault message format, and said fault types, and for enabling said application to instruct said operating system to send messages in said specified fault message format to the specified destination port when said specified fault types occur. 52. The apparatus of claim 49, wherein said fault classes comprise a first object-oriented class comprising methods for obtaining and returning a processing state of said thread of execution. 53. The apparatus of claim 52, wherein said fault classes comprise a second object-oriented class having methods for enabling said application to receive fault messages and to respond to received fault messages, said fault messages comprising information identifying a faulting task and said faulting task's faulting thread of execution, and/or information of a faulting thread of execution's state, said faulting thread of execution'state being obtained by calling said methods of said first class. |