Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

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...

InventorsChristopher P. Moeller, Eugenie L. Bolton, Daniel F. Chernikoff, Russell T. Nakano
Original AssigneeTaligent, Inc.
Primary Examiner: John Q. Chavis
Current U.S. Classification718/107; 710/200; 714/2; 718/103; 719/328; 719/332
International Classification: G06F 940

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US4821220Jul 25, 1986Apr 11, 1989Tektronix, Inc.System for animating program operation and displaying time-based relationships
US4885717Sep 25, 1986Dec 5, 1989Tektronix, Inc.System for graphically representing operation of object-oriented programs
US4891630Apr 22, 1988Jan 2, 1990Computer vision system with improved object orientation technique
US4953080Apr 25, 1988Aug 28, 1990Hewlett-Packard CompanyObject management facility for maintaining data in a computer system
US5041992Oct 24, 1988Aug 20, 1991University of PittsburghInteractive method of developing software interfaces
US5050090Mar 30, 1989Sep 17, 1991R. J. Reynolds Tobacco CompanyObject placement method and apparatus
US5060276May 31, 1989Oct 22, 1991AT&T Bell LaboratoriesTechnique for object orientation detection using a feed-forward neural network
US5075848Dec 22, 1989Dec 24, 1991Intel CorporationObject lifetime control in an object-oriented memory protection mechanism
US5093914Dec 15, 1989Mar 3, 1992AT&T Bell LaboratoriesMethod of controlling the execution of object-oriented programs
US5119475Aug 29, 1991Jun 2, 1992Schlumberger Technology CorporationObject-oriented framework for menu definition
US5125091Jun 8, 1989Jun 23, 1992Hazox CorporationObject oriented control of real-time processing
US5133075Dec 19, 1988Jul 21, 1992Hewlett-Packard CompanyMethod of monitoring changes in attribute values of object in an object-oriented database
US5136705Jun 10, 1991Aug 4, 1992Tektronix, Inc.Method of generating instruction sequences for controlling data flow processes
US5151987Oct 23, 1990Sep 29, 1992International Business Machines CorporationRecovery objects in an object oriented computing environment
US5181162Dec 6, 1989Jan 19, 1993Eastman Kodak CompanyDocument management and production system
US5379432Jul 19, 1993Jan 3, 1995Taligent, Inc.Object-oriented interface for a procedural operating system
US5404529Jul 19, 1993Apr 4, 1995Taligent, Inc.Object-oriented interprocess communication system interface for a procedural operating system

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US5712980Jun 6, 1995Jan 27, 1998Landis & Gyr Technology Innovation AGData arrangement for an apparatus connectable to a communication network, and process for generating the data arrangement
US5737736Jan 16, 1996Apr 7, 1998Oracle CorporationMethod and apparatus for storing objects using a c-structure and a bind descriptor
US5745768Jun 7, 1995Apr 28, 1998International Business Machines CorporationComputer program product and program storage device for supporting native and non-native signals transferred between processing entities of a computer program
US5752038Jul 17, 1997May 12, 1998Microsoft CorporationMethod and system for determining an optimal placement order for code portions within a module
US5758184Apr 24, 1995May 26, 1998Microsoft CorporationSystem for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads
US5799182Jan 21, 1997Aug 25, 1998Ford Motor CompanyMultiple thread micro-sequencer apparatus and method with a single processor
US5848246Jul 1, 1996Dec 8, 1998Sun Microsystems, Inc.Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US5862372Nov 16, 1994Jan 19, 1999Visually oriented computer implemented application development system utilizing standardized objects and multiple views
US5867708Nov 20, 1995Feb 2, 1999International Business Machines CorporationSystem, method, and article of manufacture for adding concurrency to a binary class in an object oriented system
US5893912Aug 13, 1997Apr 13, 1999International Business Machines CorporationThread context manager for relational databases, method and computer program product for implementing thread context management for relational databases
US5905892Apr 1, 1996May 18, 1999Sun Microsystems, Inc.Error correcting compiler
US5961582Oct 25, 1994Oct 5, 1999Acorn Technologies, Inc.Distributed and portable execution environment
US5987245Jul 1, 1996Nov 16, 1999Sun Microsystems, Inc.Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US5999972Jul 1, 1996Dec 7, 1999Sun Microsystems, Inc.System, method and article of manufacture for a distributed computer system framework
US6012149Sep 30, 1997Jan 4, 2000Bull HN Information Systems Inc.Computer system with polymorphic fault processing
US6023749Jan 25, 1999Feb 8, 2000Citrix Systems, Inc.Object and method for providing efficient multi-user access to shared operating system kernal code using instancing
US6032172May 29, 1997Feb 29, 2000Sun Microsystems, Inc.Distributed computer process scheduling mechanism
US6035419Dec 27, 1995Mar 7, 2000International Business Machines CorporationLogical execution sequence error recovery method and system
US6038590Jul 1, 1996Mar 14, 2000Sun Microsystems, Inc.Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US6047390Dec 22, 1997Apr 4, 2000Motorola, Inc.Multiple context software analysis
US6125442Dec 12, 1997Sep 26, 2000Maves International Software, Inc.Method, system and data structures for computer software application development and execution
US6131109Feb 24, 1998Oct 10, 2000Kabushiki Kaisha ToshibaMultitask processor, a multitask processing method, a multitask processing display method and a storage medium for processing by correlating task and object
US6148324Jan 5, 1998Nov 14, 2000Lucent Technologies, Inc.Prioritized load balancing among non-communicating processes in a time-sharing system
US6167423Apr 3, 1997Dec 26, 2000Microsoft CorporationConcurrency control of state machines in a computer system using cliques
US6182107Jun 3, 1997Jan 30, 2001Object Technology Licensing CorporationManagement of reference object lifetimes in object oriented programs
US6182146Jun 27, 1997Jan 30, 2001Compuware CorporationAutomatic identification of application protocols through dynamic mapping of application-port associations
US6223207Jan 13, 1998Apr 24, 2001Microsoft CorporationInput/output completion port queue data structures and methods for using same
US6223214Sep 6, 1996Apr 24, 2001Sensiview CorporationComputer implemented virtual sensor object and tangible medium utilizing same
US6230182Jul 8, 1998May 8, 2001Hewlett-Packard CompanyComputer language interpreter which can perform time-consuming operations with minimal impact on interactive programs
US6253251Jan 3, 1996Jun 26, 2001International Business Machines Corp.Information handling system, method, and article of manufacture including integration of object security service authorization with a distributed computing environment
US6266709Jul 1, 1996Jul 24, 2001Sun Microsystems, Inc.Object-oriented system, method and article of manufacture for a client-server failure reporting process
US6272555Jul 1, 1996Aug 7, 2001Sun Microsystems, Inc.Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US6304893Jul 1, 1996Oct 16, 2001Sun Microsystems, Inc.Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US6370681Oct 28, 1997Apr 9, 2002Massachusetts Institute of TechnologyCOMPUTER SYSTEM AND COMPUTER IMPLEMENTED PROCESS FOR REPRESENTING SOFTWARE SYSTEM DESCRIPTIONS AND FOR GENERATING EXECUTABLE COMPUTER PROGRAMS AND COMPUTER SYSTEM CONFIGURATIONS FROM SOFTWARE SYSTEM DESCRIPTIONS
US6385724Nov 30, 1998May 7, 2002Microsoft CorporationAutomatic object caller chain with declarative impersonation and transitive trust
US6388765Mar 17, 1998May 14, 2002Fujitsu LimitedPage alignment indication method, page control method, printer system and printer device
US6415334May 14, 1997Jul 2, 2002Microsoft CorporationMethod and system for accessing objects of different thread types
US6424991Jul 1, 1996Jul 23, 2002Sun Microsystems, Inc.Object-oriented system, method and article of manufacture for a client-server communication framework
US6425017Aug 17, 1998Jul 23, 2002Microsoft CorporationQueued method invocations on distributed component applications
US6434598Jul 1, 1996Aug 13, 2002Sun Microsystems, Inc.Object-oriented system, method and article of manufacture for a client-server graphical user interface (
US6442620Aug 17, 1998Aug 27, 2002Microsoft CorporationEnvironment extensibility and automatic services for component applications using contexts, policies and activators
US6446078Feb 9, 1999Sep 3, 2002AlcatelMethods of storing and depackaging attributes of an object
US6487665Nov 30, 1998Nov 26, 2002Microsoft CorporationObject security boundaries
US6490611Jan 28, 1999Dec 3, 2002Mitsubishi Electric Research Laboratories, Inc.User level scheduling of inter-communicating real-time tasks
US6519623Oct 31, 1996Feb 11, 2003International Business Machines CorporationGeneric semaphore for concurrent access by multiple operating systems
US6526457Oct 24, 1997Feb 25, 2003Computer Associates Think, Inc.Systems utility object interface for facilitating software portability
US6574736Nov 30, 1998Jun 3, 2003Microsoft CorporationComposable roles
US6604198May 3, 2002Aug 5, 2003Microsoft CorporationAutomatic object caller chain with declarative impersonation and transitive trust
US6606711Oct 29, 2002Aug 12, 2003Microsoft CorporationObject security boundaries
US6606742Aug 20, 1999Aug 12, 2003Taligent, Inc.Object-oriented interface for portability to diverse operating systems or hardware platforms
US6631425Oct 28, 1997Oct 7, 2003Microsoft CorporationJust-in-time activation and as-soon-as-possible deactivation or server application components
US6681384Dec 23, 1999Jan 20, 2004International Business Machines CorporationMulti-threaded break-point
US6684261Aug 29, 1995Jan 27, 2004Object Technology Licensing CorporationObject-oriented operating system
US6697879Aug 3, 1999Feb 24, 2004J. Bryan BlundellComputer implemented virtual sensor object and tangible medium utilizing same
US6714962Mar 16, 2000Mar 30, 2004Microsoft CorporationMulti-user server application architecture with single-user object tier
US6725456Nov 29, 1999Apr 20, 2004Lucent Technologies Inc.Methods and apparatus for ensuring quality of service in an operating system
US6748455Feb 23, 1999Jun 8, 2004Microsoft CorporationObject connectivity through loosely coupled publish and subscribe events with filtering
US6748555Sep 9, 1999Jun 8, 2004Microsoft CorporationObject-based software management
US6813769Oct 28, 1997Nov 2, 2004Microsoft CorporationServer application components with control over state duration
US6829770Feb 23, 1999Dec 7, 2004Microsoft CorporationObject connectivity through loosely coupled publish and subscribe events
US6862735Feb 11, 1999Mar 1, 2005Sun Microsystems, Inc.Mechanism by which platform independent software may bind to and access platform dependent software
US6874144Apr 5, 1999Mar 29, 2005International Business Machines CorporationSystem, method, and program for implementing priority inheritance in an operating system
US6981255Dec 26, 2001Dec 27, 2005Microsoft CorporationMethod and system for accessing objects of different thread types
US6996826Dec 26, 2001Feb 7, 2006Microsoft CorporationMethod and system for accessing objects of different thread types
US7003557Jan 15, 1999Feb 21, 2006Fujitsu LimitedMethod and system for racing control of operations in system management
US7043733Jun 14, 2004May 9, 2006Microsoft CorporationServer application components with control over state duration
US7043734Feb 15, 2005May 9, 2006Microsoft CorporationComponent self-deactivation while client holds a returned reference
US7062770Feb 15, 2005Jun 13, 2006Microsoft CorporationRecycling components after self-deactivation
US7072970Oct 5, 2001Jul 4, 2006International Business Machines CorporationProgrammable network protocol handler architecture
US7076784Oct 22, 1999Jul 11, 2006Microsoft CorporationSoftware component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US7194743May 1, 2001Mar 20, 2007Citrix Systems, Inc.Methods and apparatus for communicating changes between a user interface and an executing application using property paths
US7237245Nov 18, 2004Jun 26, 2007Microsoft CorporationObject connectivity through loosely coupled publish and subscribe events
US7240244Jun 8, 2004Jul 3, 2007Microsoft CorporationObject-based software management
US7243271Jun 8, 2004Jul 10, 2007Microsoft CorporationWrapped object for observing object events
US7346842Nov 2, 2000Mar 18, 2008Citrix Systems, Inc.Methods and apparatus for incorporating a partial page on a client
US7389514May 26, 2004Jun 17, 2008Microsoft CorporationSoftware component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US7478405Sep 29, 2004Jan 13, 2009Microsoft CorporationObject connectivity through loosely coupled publish and subscribe events
US7523293Sep 9, 2002Apr 21, 2009Spawn-join instruction set architecture for providing explicit multithreading
US7558774Oct 29, 2007Jul 7, 2009Nahava Inc.Method and apparatus for fundamental operations on token sequences: computing similarity, extracting term values, and searching efficiently
US7596593Jul 18, 2005Sep 29, 2009Citrix Systems, LLCMethods and apparatus for efficiently transmitting interactive application data between a client and server using markup language
US7634777Jan 6, 2005Dec 15, 2009Microsoft CorporationQueued component interface passing for results outflow from queued method invocations
US7676588Mar 24, 2006Mar 9, 2010International Business Machines CorporationProgrammable network protocol handler architecture
US7685298Dec 1, 2006Mar 23, 2010Citrix Systems, Inc.Systems and methods for providing authentication credentials across application environments
US7752621Sep 15, 2004Jul 6, 2010International Business Machines CorporationSystem, method and program for implementing priority inheritance in an operating system
US7793299Aug 30, 2005Sep 7, 2010International Business Machines CorporationSystem and method for scheduling tasks for execution
US7797647Apr 2, 2004Sep 14, 2010Tufts UniversityCircuit having hardware threading
US7873965Dec 1, 2006Jan 18, 2011Citrix Systems, Inc.Methods and apparatus for communicating changes between a user-interface and an executing application, using property paths
US8161472Feb 27, 2008Apr 17, 2012Citrix Systems, Inc.Methods and apparatus for incorporating a partial page on a client
US8174503May 17, 2008May 8, 2012David H. CainTouch-based authentication of a mobile device through user generated pattern creation

Claims

1. 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.