WO2002027468A2 - An efficient timer management system - Google Patents

An efficient timer management system Download PDF

Info

Publication number
WO2002027468A2
WO2002027468A2 PCT/GB2001/004322 GB0104322W WO0227468A2 WO 2002027468 A2 WO2002027468 A2 WO 2002027468A2 GB 0104322 W GB0104322 W GB 0104322W WO 0227468 A2 WO0227468 A2 WO 0227468A2
Authority
WO
WIPO (PCT)
Prior art keywords
timer
application
state
time
state machine
Prior art date
Application number
PCT/GB2001/004322
Other languages
French (fr)
Other versions
WO2002027468A3 (en
Inventor
Philipe Damon
Marco Heddes
Original Assignee
International Business Machines Corporation
Ibm United Kingdom Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corporation, Ibm United Kingdom Limited filed Critical International Business Machines Corporation
Priority to AU2001290129A priority Critical patent/AU2001290129A1/en
Priority to JP2002530979A priority patent/JP4009192B2/en
Priority to AT01970009T priority patent/ATE290236T1/en
Priority to DE60109215T priority patent/DE60109215T2/en
Priority to EP01970009A priority patent/EP1410168B1/en
Priority to KR1020037004568A priority patent/KR100553144B1/en
Publication of WO2002027468A2 publication Critical patent/WO2002027468A2/en
Publication of WO2002027468A3 publication Critical patent/WO2002027468A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock

Definitions

  • the present invention relates to the field of managing timers in data processing systems, and more particularly to a timer management system that is used in both a synchronous and asynchronous system.
  • a timer is a device which can be set to furnish an interrupt or a timeout indication at a specific time instant or after a selected time interval .
  • Timers are required in data processing systems in which typical protocols require that a very large number of simultaneously occurring tasks or events be supervised to detect whether they occurred within predetermined delays.
  • a start operation may be sent by the application to start the timer in order to supervise a corresponding event.
  • a stop operation may be generated by the corresponding application.
  • the supervision of the corresponding event may be requested to start again, in which case a start operation may be generated by the application.
  • the application may request a restart operation in order to delay the timing of the corresponding event.
  • a real-time operating system within a data processing system is basic software for the tool management of the hardware and the software of the system and provides hardware resource management functions, e.g., memory management, task management, data input/output management, and a user interface for handling a screen display and the manipulation of a mouse.
  • An operating system may further include a module such as a timer management program, i.e., timer management system, for managing a plurality of timers that are started, stopped, idled, etc. by an application program in a data processing system.
  • Application programs e.g., word processing software, database software, software for calculation for tables, reside on top of the OS in the topmost layer of a hierarchical software arrangement .
  • Prior art timer management systems are used in either synchronous, i.e., single task, or asynchronous, i.e., multi-task, data processing systems.
  • a synchronous system when the timer expires, the application, i.e., user of the timer, is notified by a message commonly referred to as a timer message.
  • the timer message may be stored on queue before being sent to the application, i.e., user of the timer. If the application stops the timer prior to receiving a timer message, the timer moves back to the idle state.
  • timer messages are not allowed to be removed from the queue when the application performs an operation on the expired timer prior to receiving the timer message. Subsequently, a special state-variable in the timer message denotes the fact that it is an illegal time-out message. In a synchronous system, this problem does not occur.
  • timer management system that is used in both a synchronous and asynchronous system where an asynchronous application is synchronously acting on the timer in an asynchronous system. It would be desirable to develop a function to filter these illegal time-out messages that are transparent to the application. It would further be desirable to allow a timer to be reinitialized without allocating new system memory.
  • a handle function that allows an asynchronous application in a multi-task system, i.e., asynchronous system, to synchronously act on the timer. That is, when a timer in an asynchronous system times-out, the handle function filters the illegal time-out messages by allowing the asynchronous application to synchronously act on the timer.
  • the timer management system further comprises a timer database for storing timer-related information.
  • the timer management system comprises a timer services for detecting the expiring of the timer.
  • a handle function of the timer services allows the asynchronous application, i.e., application in an asynchronous system, to synchronously act on the timer.
  • the handle function of the timer services allows the asynchronous application to act on the expired timer without incurring illegal time-out messages.
  • the invention provides a method for managing timers in both a synchronous and asynchronous system comprising the steps of: creating a timer from an allocated block of system memory by an application via an application program interface (API) ; activating said timer; expiring of said timer; and sending a time-out message to a particular queue when said timer expires, wherein said timer is transferred to an expired state in an asynchronous state machine, wherein a handle function allows said application to act on said expired timer without incurring an illegal time-out message.
  • API application program interface
  • a timer may be reinitialized from the same allocated block of memory used to create the timer.
  • a time-out message may be sent using the same allocated block of memory used to create the timer.
  • FIG. 1 illustrates a data processing system configured in accordance with the present invention
  • Figure 2 illustrates an embodiment of a timer management system
  • Figure 3 is a state machine which illustrates a timer management system of the present invention where an asynchronous application is synchronously acting on the timer in an asynchronous system;
  • Figure 4 illustrates an embodiment of a data structure of a time-out message.
  • the present invention comprises a timer management system and method for managing timers in both a synchronous and asynchronous system.
  • a timer management system comprises an application program interface (API) for providing a set of synchronous functions allowing an application to functionally operate on the timer.
  • the timer management system further comprises a timer database for storing timer-related information.
  • the timer management system comprises timer services for detecting the expiring of the timer.
  • a handle function of the timer services allows an asynchronous application, i.e., application in a multi-task system, to synchronously act on the timer.
  • a timer may be reinitialized from the same allocated block of memory used to create the timer.
  • a time-out message may be sent using the same allocated block of memory used to create the timer.
  • FIG. 1 illustrates a typical hardware configuration of data processing system 13 which is representative of a hardware environment for practicing the present invention.
  • Data processing system 13 has a central processing unit (CPU) 10, such as a conventional microprocessor, coupled to various other components by system bus 12.
  • CPU central processing unit
  • a real-time operating system 40 e.g., VxWorksTM, OSE, Lynx, runs on CPU 10 and provides control and coordinates the function of the various components of Figure 1.
  • a timer management program i.e., timer management system, may reside in a module within the operating system 40.
  • an application 42 may run in conjunction with operating system 40 and provide output calls to operating system 40 which implements the various functions to be performed by application 42.
  • Read only memory (ROM) 16 is coupled to system bus 12 and includes a basic input/output system ("BIOS") that controls certain basic functions of data processing system 13.
  • BIOS basic input/output system
  • RAM random access memory
  • I/O adapter 18, and communications adapter 34 are also coupled to system bus 12. It is noted that software components including operating system 40 and application 42 are loaded into RAM 14 which is the computer system's main memory.
  • I/O adapter 18 may be a small computer system interface (“SCSI”) adapter that communicates with disk units 20 and tape drives 40.
  • SCSI small computer system interface
  • Communications adapter 34 interconnects bus 12 with an outside network enabling data processing system 13 to communication with other such systems.
  • Input/Output devices are also connected to system bus 12 via a user interface adapter 22 and a display adapter 36.
  • a display monitor 38 is connected to system bus 12 by display adapter 36.
  • a user is capable of inputting to system 13 through a keyboard 24 or a mouse 26 and receiving output from system 13 via display 38.
  • Preferred implementations of the invention include implementations as a computer system programmed to execute the method or methods described herein, and as a computer program product comprising program code recorded on a machine-readable recording medium. According to the computer system implementations, sets of instructions for executing the method or methods are resident in the random access memory 14 of one or more computer systems configured generally as described above.
  • the set of instructions may be stored as a computer program product in another computer memory, for example, in disk drive 20 (which may include a removable memory such as an optical disk or floppy disk for eventual use in disk drive 20) .
  • the computer program product can also be stored at another computer and transmitted when desired to the user's work station by a network or by an external network such as the Internet.
  • the physical storage of the sets of instructions physically changes the medium upon which it is stored so that the medium carries computer readable information. The change may be electrical, magnetic, chemical or some other physical change.
  • FIG. 2 illustrates an embodiment of a timer management system 200.
  • an operating system may include a module that comprises timer management system 200.
  • the operating system typically resides within the kernal of data processing system 13.
  • timer management system 200 may be an application program residing in the topmost layer of a typical hierarchical software arrangement independent of the operating system.
  • Timer management system 200 comprises an application program interface (API) 220, a timer database 230 and a timer services component 240.
  • API 220 allows software application (s) 210 to functionally operate timers, e.g., start, stop, restart, delete, in data processing system 13. It is noted that for simplicity, software applications 210 that use timer management system services may be referred to as "users.”
  • API 220 provides a set of synchronous functions for creating, starting, stopping and deleting a timer.
  • API 220 may be a dynamic-link library (DLL) file.
  • DLL file is one that contains one or more functions that are compiled, linked and stored separately from application processes that use them, and exports code that may be shared among applications.
  • Timer database 230 may be a repository for timer-related information, e.g., timer records for created timers. It is noted that timer database 230 may be structured in any form, e.g., link list, interval list.
  • Timer services 240 an OS task, detects the expiration of timers corresponding to each application 210 that has initiated a timer via API 220.
  • Timer services 240 maintains timer database 230 as well as scans timer database 230 for expired timers. The scan of timer database 230 may be performed at regular time intervals. If the timer has expired, timer services 240 takes appropriate action depending on whether the timer management system is implemented in a single-task system or a multi-task system. In a single-task system, i.e., synchronous system, as will be described in further detail below, timer services 240 calls a time-out function to send a time-out message to user application 210.
  • timer services 240 sends a time-out message to the application's task if the timer has expired.
  • the time-out message sent is the same block of memory as the block of memory allocated when the timer was created as will be further described in conjunction with Figure 3.
  • the timer message may be stored on queue before being sent to application 210 in a multi-task system. If application 210 stops the timer prior to receiving a timer message, the timer moves back to the idle state. However, some operating systems do not allow timer messages to be removed from the queue when application 210 performs an operation on the expired timer prior to receiving the timer message.
  • timer management system 200 avoiding illegal time-out messages by allowing an asynchronous application 210 to synchronously act on the timer in an asynchronous system is provided below. Furthermore, a detailed explanation of timer management system 200 allowing a timer to be reinitialized without allocating new system memory is provided below.
  • FIG. 3 illustrates an embodiment of the present invention of a state machine 300 which may be used in the operation of timer management system 200.
  • State machine 300 depicts a timer management system 200 that manages timers for both a single task system, i.e., synchronous system, and a multi-task system, i.e., asynchronous system, concurrently.
  • State machine 300 includes a single-task state machine 301 and a multi-task state machine 302.
  • the states of the single-task state machine 301 comprise states 303, 304 and 305.
  • the states of the multi-task state machine 302 comprise states 306, 307, 308 and 309.
  • state machine 300 remains in state 303, non-existent ("NE"), until a timer is created. That is, state 303 represents a state in which a timer is non-existent.
  • state machine 300 transitions from state 303 to state 304.
  • State 304 represents a state in which a timer is created and ready to be initialized. That is, the timer is idle (“I") .
  • timer services 240 creates a timer out of a block of memory. The block of memory allocated for creating the timer may then be stored in timer database 230. A description of the block of memory allocated for creating the timer is provided below in connection with the data structure of the time-out message.
  • state machine 300 transitions from state 304 to state 303. If the timer is activated (“A") while at state 304, then state machine 300 transitions from state 304 to state 305. State 305 represents a state in which the timer that was previously created is running (“R") . If the timer is deleted while at state 305, then state machine transitions from state 305 to state 303. If the timer that is running is stopped (“O"), then state machine 300 transitions from state 305 to state 304.
  • timer is not deleted at state 304 but instead is activated, the timer will be reinitialized, i.e., restarted, without allocating new system memory, i.e., using the same system memory. If the timer at state 305 expires, then a time-out message ("Ts") is notified synchronously to application 210 and state machine 300 transitions from state 305 to state 303.
  • Ts time-out message
  • a time-out message sent is the same block of memory as the block of memory allocated when the timer was created. The reason is that the procedure that creates the timer creates extra memory space for use by timer services 240 which is not seen by application 210.
  • a drawing of an embodiment of a data structure 400 of the time-out message is illustrated in Figure 4.
  • a time-out message may comprise at least two distinct parts.
  • An application part 410 may comprise information related to application 210. In a single-task system, the application part 410 may comprise the time-out function and a context field which are owned by application 210. In a multi-task system, the application part 410 may comprise the same context field as well as information necessary to identify application 210, e.g., queue to send the message, application task identification.
  • a timer services part 420 may comprise some additional fields, e.g., pointers to memory addresses of timers stored in timer database 230. The timer services part 420 is not seen by application 210.
  • application 210 may erroneously believe that the timer is operating at a state in which it is not. For example, application 210 may mistakenly believe that the timer is running when the timer is in actuality idle at state 304. Application 210 may then stop the timer at the idle state which is represented by the arched line at state 304. Furthermore, application 210 may mistakenly believe that the timer is idle when the timer is in actuality running at state 305. Application 210 may then activate the timer at the running state which is represented by the arched line at state 305.
  • the timer message when the timer expires in an asynchronous system, the timer message may be stored on queue before being sent to application 210. If application 210 stops the timer prior to receiving a timer message, the timer moves back to the idle state. However, some operating systems do not allow timer messages to be removed from the queue when application 210 performs an operation on the expired timer prior to receiving the timer message. Subsequently, a special state-variable in the timer message denotes the fact that it is an illegal time-out message. A description of a process that filters these illegal time-out messages that are transparent to user application 210 is provided below.
  • a time-out message (Tm) is queued.
  • Tm time-out message
  • the time-out messages, Tm may be stored in a system queue attached to application 210. It is noted that the queue storing the time-out messages, Tm, may be located anywhere in system memory.
  • state machine 300 transitions from state 305 to state 306.
  • State 306 is the expired state (“E") where the timer is not running and the time-out message, Tm, is queued.
  • a handle function of timer services 240 transparent to application 210 allows application 210 in an asynchronous system to synchronously act on the timer. That is, the handle function transfers state machine 300 from a state in the multi-task state machine 302 to a state in the single-task state machine 301. For example, if application 210 receives the time-out message, Tm, when state machine is at state 306, then the handle function transfers state machine 300 from state 306 in the multi-task state machine 302 to the idle state 304 in the single-task state machine 301.
  • asynchronous application 210 i.e., application of an asynchronous system
  • asynchronous application 210 may not know that the timer has expired.
  • Asynchronous application 210 may stop the timer erroneously believing that the timer is running.
  • Asynchronous application 210 may then believe the timer is in the idle state as represented by a transition from state 306 to state 307.
  • State 307 is the state ("IQ") in which the timer is in the idle state and the time-out message, Tm, is still queued.
  • the handle function transparent to asynchronous application 210 transfers state machine 300 from state 307 in the multi-task state machine 302 to the idle state 304 in the single-task state machine 301. If while at state 306, asynchronous application 210' deletes the timer, then state machine 300 transitions from state 306 to state 308. State 308 is the state ("DQ") in which the timer is deleted and the time-out message, Tm, is still queued.
  • the handle function transparent to asynchronous application 210 transfers state machine 300 from state 308 in the multi-task state machine 302 to the non-existent state 303 in the single-task state machine 301. If while at state 306, asynchronous application 210 activates the timer, then state machine 300 transitions from state 306 to state 309.
  • State 309 is the state ("RQ") in which the timer is in the running state and the time-out message, Tm, is still queued.
  • the handle function transparent to asynchronous application 210 transfers state machine 300 from state 309 in the multi-task state machine 302 to the running state 305 in the single-task state machine 301.
  • state machine 300 transitions from state 307 to state 308.
  • the handle function transfers state machine 300 from state 308 in the multi-task state machine 302 to the non-existent state 303 in the single-task state machine 301.
  • asynchronous application 210 activates the timer, then state machine 300 transitions from state 307 to state 309.
  • the handle function transparent to asynchronous application 210 transfers state machine 300 from state 309 in the multi-task state machine 302 to the running state 305 in the single-task state machine 301. It is noted that when the timer is reinitialized, i.e., restarted, in state 309 the timer uses the same allocated system memory as the system memory allocated when the timer was created in state 304.
  • asynchronous application 210 stops the timer, then state machine 300 transitions from state 309 to state 307.
  • the handle function transparent to asynchronous application 210 transfers state machine 300 from state 307 in the multi-task state machine 302 to the idle state 304 in the single-task state machine 301.
  • asynchronous application 210 deletes the timer, then state machine 300 transitions from state 309 to state 308.
  • the handle function transparent to asynchronous application 210 transfers state machine 300 from state 308 in the multi-task state machine 302 to the non-existent state 303 in the single-task state machine 201.
  • asynchronous application 210 may erroneously believe that the timer is operating at a state in which it is not. For example, asynchronous application 210 may mistakenly believe that the timer is running when the timer is in actuality idle at state 307. Asynchronous application 210 may then stop the timer at state 307 which is represented by the arched line at state 307. Furthermore, asynchronous application 210 may mistakenly believe that the timer is idle when the timer is in actuality running at state 309. Asynchronous application 210 may then activate the timer at the running state which is represented by the arched line at state 309.

Abstract

A timer management system and method for managing timers in both a synchronous and asynchronous system. In one embodiment of the present invention, a timer management system comprises an application program interface (API) for providing a set of synchronous functions allowing an application to functionally operate on the timer. The timer management system further comprises a timer database for storing timer-related information. Furthermore, the timer management system comprises a timer services for detecting the expiring of the timer. A handle function of the timer services allows an asynchronous application, i.e., application in a multi-task system, to synchronously act on the timer. That is, when a timer in a asynchronous system times-out, the handle function allows the asynchronous application to act on the expired timer without incurring an illegal time-out message. In another embodiment of the present invention, a timer may be reinitialized from the same allocated block of memory used to create the timer. In another embodiment of the present invention, a time-out message may be sent using the same allocated block of memory used to create the timer.

Description

AN EFFICIENT TIMER MANAGEMENT SYSTEM
TECHNICAL FIELD
The present invention relates to the field of managing timers in data processing systems, and more particularly to a timer management system that is used in both a synchronous and asynchronous system.
BACKGROUND INFORMATION
A timer is a device which can be set to furnish an interrupt or a timeout indication at a specific time instant or after a selected time interval . Timers are required in data processing systems in which typical protocols require that a very large number of simultaneously occurring tasks or events be supervised to detect whether they occurred within predetermined delays. For example, a start operation may be sent by the application to start the timer in order to supervise a corresponding event. When the supervision of an event has to be interrupted for different reasons, a stop operation may be generated by the corresponding application. After a while, the supervision of the corresponding event may be requested to start again, in which case a start operation may be generated by the application. While the timer associated with an event is still running, the application may request a restart operation in order to delay the timing of the corresponding event.
A real-time operating system (RTOS) , e.g., VxWorks™, OSE, Lynx, within a data processing system is basic software for the tool management of the hardware and the software of the system and provides hardware resource management functions, e.g., memory management, task management, data input/output management, and a user interface for handling a screen display and the manipulation of a mouse. An operating system may further include a module such as a timer management program, i.e., timer management system, for managing a plurality of timers that are started, stopped, idled, etc. by an application program in a data processing system. Application programs, e.g., word processing software, database software, software for calculation for tables, reside on top of the OS in the topmost layer of a hierarchical software arrangement .
Prior art timer management systems are used in either synchronous, i.e., single task, or asynchronous, i.e., multi-task, data processing systems. In a synchronous system, when the timer expires, the application, i.e., user of the timer, is notified by a message commonly referred to as a timer message. In an asynchronous system, when the timer expires, the timer message may be stored on queue before being sent to the application, i.e., user of the timer. If the application stops the timer prior to receiving a timer message, the timer moves back to the idle state. However, some operating systems do not allow timer messages to be removed from the queue when the application performs an operation on the expired timer prior to receiving the timer message. Subsequently, a special state-variable in the timer message denotes the fact that it is an illegal time-out message. In a synchronous system, this problem does not occur.
It would therefore be desirable to develop a timer management system that is used in both a synchronous and asynchronous system where an asynchronous application is synchronously acting on the timer in an asynchronous system. It would be desirable to develop a function to filter these illegal time-out messages that are transparent to the application. It would further be desirable to allow a timer to be reinitialized without allocating new system memory.
SUMMARY
The problems outlined above may at least in part be solved in some embodiments by a handle function that allows an asynchronous application in a multi-task system, i.e., asynchronous system, to synchronously act on the timer. That is, when a timer in an asynchronous system times-out, the handle function filters the illegal time-out messages by allowing the asynchronous application to synchronously act on the timer.
In one aspect, the invention provides a timer management system for managing timers in both a synchronous and asynchronous system comprises an application program interface (API) for providing a set of synchronous functions allowing an application to functionally operate on the timer. The timer management system further comprises a timer database for storing timer-related information. Furthermore, the timer management system comprises a timer services for detecting the expiring of the timer. A handle function of the timer services allows the asynchronous application, i.e., application in an asynchronous system, to synchronously act on the timer. When the timer expires, the handle function of the timer services allows the asynchronous application to act on the expired timer without incurring illegal time-out messages. In a second aspect, the invention provides a method for managing timers in both a synchronous and asynchronous system comprising the steps of: creating a timer from an allocated block of system memory by an application via an application program interface (API) ; activating said timer; expiring of said timer; and sending a time-out message to a particular queue when said timer expires, wherein said timer is transferred to an expired state in an asynchronous state machine, wherein a handle function allows said application to act on said expired timer without incurring an illegal time-out message.
In one embodiment of the present invention, a timer may be reinitialized from the same allocated block of memory used to create the timer. In another embodiment of the present invention, a time-out message may be sent using the same allocated block of memory used to create the timer.
BRIEF DESCRIPTION OF THE DRAWINGS
Preferred embodiments of the invention will now be described in more detail, by way of example, with reference to the accompanying drawings in which:
Figure 1 illustrates a data processing system configured in accordance with the present invention;
Figure 2 illustrates an embodiment of a timer management system;
Figure 3 is a state machine which illustrates a timer management system of the present invention where an asynchronous application is synchronously acting on the timer in an asynchronous system; and
Figure 4 illustrates an embodiment of a data structure of a time-out message.
DETAILED DESCRIPTION
The present invention comprises a timer management system and method for managing timers in both a synchronous and asynchronous system. In one embodiment of the present invention, a timer management system comprises an application program interface (API) for providing a set of synchronous functions allowing an application to functionally operate on the timer. The timer management system further comprises a timer database for storing timer-related information. Furthermore, the timer management system comprises timer services for detecting the expiring of the timer. A handle function of the timer services allows an asynchronous application, i.e., application in a multi-task system, to synchronously act on the timer. That is, when a timer in an asynchronous system times-out, the handle function allows the asynchronous application to act on the expired timer without incurring an illegal time-out message. In another embodiment of the present invention, a timer may be reinitialized from the same allocated block of memory used to create the timer. In another embodiment of the present invention, a time-out message may be sent using the same allocated block of memory used to create the timer.
Figure 1 - Computer System
Figure 1 illustrates a typical hardware configuration of data processing system 13 which is representative of a hardware environment for practicing the present invention. Data processing system 13 has a central processing unit (CPU) 10, such as a conventional microprocessor, coupled to various other components by system bus 12. A real-time operating system 40, e.g., VxWorks™, OSE, Lynx, runs on CPU 10 and provides control and coordinates the function of the various components of Figure 1. As stated in the Background Information section, a timer management program, i.e., timer management system, may reside in a module within the operating system 40. In another embodiment, an application 42, e.g., timer management system, may run in conjunction with operating system 40 and provide output calls to operating system 40 which implements the various functions to be performed by application 42. Read only memory (ROM) 16 is coupled to system bus 12 and includes a basic input/output system ("BIOS") that controls certain basic functions of data processing system 13. Random access memory (RAM) 14, I/O adapter 18, and communications adapter 34 are also coupled to system bus 12. It is noted that software components including operating system 40 and application 42 are loaded into RAM 14 which is the computer system's main memory. I/O adapter 18 may be a small computer system interface ("SCSI") adapter that communicates with disk units 20 and tape drives 40. Communications adapter 34 interconnects bus 12 with an outside network enabling data processing system 13 to communication with other such systems. Input/Output devices are also connected to system bus 12 via a user interface adapter 22 and a display adapter 36. A display monitor 38 is connected to system bus 12 by display adapter 36. In this manner, a user is capable of inputting to system 13 through a keyboard 24 or a mouse 26 and receiving output from system 13 via display 38. Preferred implementations of the invention include implementations as a computer system programmed to execute the method or methods described herein, and as a computer program product comprising program code recorded on a machine-readable recording medium. According to the computer system implementations, sets of instructions for executing the method or methods are resident in the random access memory 14 of one or more computer systems configured generally as described above. Until required by the computer system, the set of instructions may be stored as a computer program product in another computer memory, for example, in disk drive 20 (which may include a removable memory such as an optical disk or floppy disk for eventual use in disk drive 20) . Furthermore, the computer program product can also be stored at another computer and transmitted when desired to the user's work station by a network or by an external network such as the Internet. One skilled in the art would appreciate that the physical storage of the sets of instructions physically changes the medium upon which it is stored so that the medium carries computer readable information. The change may be electrical, magnetic, chemical or some other physical change.
Figure 2 - Timer Management System
Figure 2 illustrates an embodiment of a timer management system 200. As stated in the Background Information section, an operating system may include a module that comprises timer management system 200. The operating system typically resides within the kernal of data processing system 13. In another embodiment, timer management system 200 may be an application program residing in the topmost layer of a typical hierarchical software arrangement independent of the operating system.
Timer management system 200 comprises an application program interface (API) 220, a timer database 230 and a timer services component 240. API 220 allows software application (s) 210 to functionally operate timers, e.g., start, stop, restart, delete, in data processing system 13. It is noted that for simplicity, software applications 210 that use timer management system services may be referred to as "users." API 220 provides a set of synchronous functions for creating, starting, stopping and deleting a timer. In one embodiment, API 220 may be a dynamic-link library (DLL) file. A DLL file is one that contains one or more functions that are compiled, linked and stored separately from application processes that use them, and exports code that may be shared among applications.
Furthermore, the set of synchronous functions provided by API 220 allows user application (s) 210 to access timer database 230. Timer database 230 may be a repository for timer-related information, e.g., timer records for created timers. It is noted that timer database 230 may be structured in any form, e.g., link list, interval list.
Timer services 240, an OS task, detects the expiration of timers corresponding to each application 210 that has initiated a timer via API 220. Timer services 240 maintains timer database 230 as well as scans timer database 230 for expired timers. The scan of timer database 230 may be performed at regular time intervals. If the timer has expired, timer services 240 takes appropriate action depending on whether the timer management system is implemented in a single-task system or a multi-task system. In a single-task system, i.e., synchronous system, as will be described in further detail below, timer services 240 calls a time-out function to send a time-out message to user application 210. In a multi-task system, i.e., asynchronous system, as will be described in further detail below, timer services 240 sends a time-out message to the application's task if the timer has expired. The time-out message sent is the same block of memory as the block of memory allocated when the timer was created as will be further described in conjunction with Figure 3. As stated in the Background Information section, the timer message may be stored on queue before being sent to application 210 in a multi-task system. If application 210 stops the timer prior to receiving a timer message, the timer moves back to the idle state. However, some operating systems do not allow timer messages to be removed from the queue when application 210 performs an operation on the expired timer prior to receiving the timer message. Subsequently, a special state-variable in the timer message denotes the fact that it is an illegal time-out message. A detailed explanation of timer management system 200 avoiding illegal time-out messages by allowing an asynchronous application 210 to synchronously act on the timer in an asynchronous system is provided below. Furthermore, a detailed explanation of timer management system 200 allowing a timer to be reinitialized without allocating new system memory is provided below.
Figure 3 - State Machine Illustration of Timer management system
Figure 3 illustrates an embodiment of the present invention of a state machine 300 which may be used in the operation of timer management system 200. State machine 300 depicts a timer management system 200 that manages timers for both a single task system, i.e., synchronous system, and a multi-task system, i.e., asynchronous system, concurrently. State machine 300 includes a single-task state machine 301 and a multi-task state machine 302. The states of the single-task state machine 301 comprise states 303, 304 and 305. The states of the multi-task state machine 302 comprise states 306, 307, 308 and 309.
Referring to Figure 3, state machine 300 remains in state 303, non-existent ("NE"), until a timer is created. That is, state 303 represents a state in which a timer is non-existent. When a timer is created ("C"), state machine 300 transitions from state 303 to state 304. State 304 represents a state in which a timer is created and ready to be initialized. That is, the timer is idle ("I") . In one embodiment, timer services 240 creates a timer out of a block of memory. The block of memory allocated for creating the timer may then be stored in timer database 230. A description of the block of memory allocated for creating the timer is provided below in connection with the data structure of the time-out message.
If the timer is deleted ("D") while in state 304, then state machine 300 transitions from state 304 to state 303. If the timer is activated ("A") while at state 304, then state machine 300 transitions from state 304 to state 305. State 305 represents a state in which the timer that was previously created is running ("R") . If the timer is deleted while at state 305, then state machine transitions from state 305 to state 303. If the timer that is running is stopped ("O"), then state machine 300 transitions from state 305 to state 304. If the timer is not deleted at state 304 but instead is activated, the timer will be reinitialized, i.e., restarted, without allocating new system memory, i.e., using the same system memory. If the timer at state 305 expires, then a time-out message ("Ts") is notified synchronously to application 210 and state machine 300 transitions from state 305 to state 303.
As stated above, a time-out message sent is the same block of memory as the block of memory allocated when the timer was created. The reason is that the procedure that creates the timer creates extra memory space for use by timer services 240 which is not seen by application 210. A drawing of an embodiment of a data structure 400 of the time-out message is illustrated in Figure 4. A time-out message may comprise at least two distinct parts. An application part 410 may comprise information related to application 210. In a single-task system, the application part 410 may comprise the time-out function and a context field which are owned by application 210. In a multi-task system, the application part 410 may comprise the same context field as well as information necessary to identify application 210, e.g., queue to send the message, application task identification. A timer services part 420 may comprise some additional fields, e.g., pointers to memory addresses of timers stored in timer database 230. The timer services part 420 is not seen by application 210.
Referring to Figure 3, application 210 may erroneously believe that the timer is operating at a state in which it is not. For example, application 210 may mistakenly believe that the timer is running when the timer is in actuality idle at state 304. Application 210 may then stop the timer at the idle state which is represented by the arched line at state 304. Furthermore, application 210 may mistakenly believe that the timer is idle when the timer is in actuality running at state 305. Application 210 may then activate the timer at the running state which is represented by the arched line at state 305.
In multi-task system, i.e., asynchronous system, a time-out message is sent to the application's task. As stated in the Background ''
Information section, when the timer expires in an asynchronous system, the timer message may be stored on queue before being sent to application 210. If application 210 stops the timer prior to receiving a timer message, the timer moves back to the idle state. However, some operating systems do not allow timer messages to be removed from the queue when application 210 performs an operation on the expired timer prior to receiving the timer message. Subsequently, a special state-variable in the timer message denotes the fact that it is an illegal time-out message. A description of a process that filters these illegal time-out messages that are transparent to user application 210 is provided below.
In an asynchronous system, when the timer at state 305 expires, a time-out message ("Tm") is queued. In one embodiment, the time-out messages, Tm, may be stored in a system queue attached to application 210. It is noted that the queue storing the time-out messages, Tm, may be located anywhere in system memory. When the timer at state 305 expires in an asynchronous system, state machine 300 transitions from state 305 to state 306. State 306 is the expired state ("E") where the timer is not running and the time-out message, Tm, is queued. As soon as application 210 receives the time-out message, Tm, a handle function ("H") of timer services 240 transparent to application 210 allows application 210 in an asynchronous system to synchronously act on the timer. That is, the handle function transfers state machine 300 from a state in the multi-task state machine 302 to a state in the single-task state machine 301. For example, if application 210 receives the time-out message, Tm, when state machine is at state 306, then the handle function transfers state machine 300 from state 306 in the multi-task state machine 302 to the idle state 304 in the single-task state machine 301.
If the asynchronous application 210, i.e., application of an asynchronous system, has not received the time-out message, Tm, stored in a queue, e.g., a system queue attached to application 210, then asynchronous application 210 may not know that the timer has expired. Asynchronous application 210 may stop the timer erroneously believing that the timer is running. Asynchronous application 210 may then believe the timer is in the idle state as represented by a transition from state 306 to state 307. State 307 is the state ("IQ") in which the timer is in the idle state and the time-out message, Tm, is still queued. When the time-out message is dequeued, the handle function transparent to asynchronous application 210 transfers state machine 300 from state 307 in the multi-task state machine 302 to the idle state 304 in the single-task state machine 301. If while at state 306, asynchronous application 210' deletes the timer, then state machine 300 transitions from state 306 to state 308. State 308 is the state ("DQ") in which the timer is deleted and the time-out message, Tm, is still queued. When the time-out message is dequeued, the handle function transparent to asynchronous application 210 transfers state machine 300 from state 308 in the multi-task state machine 302 to the non-existent state 303 in the single-task state machine 301. If while at state 306, asynchronous application 210 activates the timer, then state machine 300 transitions from state 306 to state 309.
State 309 is the state ("RQ") in which the timer is in the running state and the time-out message, Tm, is still queued. When the time-out message is dequeued, the handle function transparent to asynchronous application 210 transfers state machine 300 from state 309 in the multi-task state machine 302 to the running state 305 in the single-task state machine 301.
If while at state 307, asynchronous application 210 deletes the timer, then state machine 300 transitions from state 307 to state 308. When the time-out message is dequeued, the handle function transfers state machine 300 from state 308 in the multi-task state machine 302 to the non-existent state 303 in the single-task state machine 301. If while at state 307, asynchronous application 210 activates the timer, then state machine 300 transitions from state 307 to state 309. When the time-out message is dequeued, the handle function transparent to asynchronous application 210 transfers state machine 300 from state 309 in the multi-task state machine 302 to the running state 305 in the single-task state machine 301. It is noted that when the timer is reinitialized, i.e., restarted, in state 309 the timer uses the same allocated system memory as the system memory allocated when the timer was created in state 304.
If while at state 309, asynchronous application 210 stops the timer, then state machine 300 transitions from state 309 to state 307. When the time-out message is dequeued, the handle function transparent to asynchronous application 210 transfers state machine 300 from state 307 in the multi-task state machine 302 to the idle state 304 in the single-task state machine 301. If while at state 309, asynchronous application 210 deletes the timer, then state machine 300 transitions from state 309 to state 308. When the time-out message is dequeued, the handle function transparent to asynchronous application 210 transfers state machine 300 from state 308 in the multi-task state machine 302 to the non-existent state 303 in the single-task state machine 201.
As in the single-task state machine 301, asynchronous application 210 may erroneously believe that the timer is operating at a state in which it is not. For example, asynchronous application 210 may mistakenly believe that the timer is running when the timer is in actuality idle at state 307. Asynchronous application 210 may then stop the timer at state 307 which is represented by the arched line at state 307. Furthermore, asynchronous application 210 may mistakenly believe that the timer is idle when the timer is in actuality running at state 309. Asynchronous application 210 may then activate the timer at the running state which is represented by the arched line at state 309.
Although the timer management system and method of the present invention are described in connection with several embodiments, it is not intended to be limited to the specific forms set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents, as can be reasonably included within the spirit and scope of the invention as defined by the appended claims. It is noted that the headings are used only for organizational purposes and not meant to limit the scope of the description or claims.

Claims

1. A timer management system for managing timers in both a synchronous and asynchronous system comprising:
an application program interface (API) providing a set of synchronous functions allowing an application to functionally operate a timer;
a timer database for storing timer-related information; and
a timer services component for detecting the expiring of said timer, wherein a handle function of said timer services component allows said application to act on an expired timer without incurring an illegal time-out message.
2. The timer management system as recited in claim 1, wherein said' application performs the following operations on said timer via said API:
creating said timer from an allocated block of system memory;
activating said timer; and
reinitializing said timer using said allocated block of system memory.
3. The timer management system as recited in claim 1, wherein said application performs the following operation on said timer via said API:
creating said timer from an allocated block of system memory; and
activating said timer;
wherein said timer expires and said timer services component sends synchronously a time-out message to said application, wherein said time-out message is sent using said allocated block of system memory.
4. The timer management system as recited in claim 1, wherein said application performs the following operation on said timer via said API:
creating said timer from an allocated block of system memory; and activating said timer;
wherein said timer expires and said timer services component sends a time-out message to a particular queue, and said timer is transferred to an expired state in an asynchronous state machine .
5. The timer management system as recited in claim 4, wherein said particular queue is a system queue attached to said application.
6. The timer management system as recited in claim 4 or claim 5, wherein, in response to said application receiving said time-out message, said handle function transfers said timer from said expired state in said asynchronous state machine to an idle state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
7. The timer management system as recited in any one of claims 4 to 6, wherein, in response to said application stopping said timer, said timer is transferred to an idle state in said asynchronous state machine with said time-out message being queued.
8. The timer management system as recited in claim 7, wherein, in response to said time-out message being dequeued, said handle function transfers said timer from said idle state in said asynchronous state machine to an idle state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
9. The timer management system as recited in claim 7 or claim 8 , wherein, in response to said timer being deleted by said application, said timer is transferred to a state in said asynchronous state machine in which said timer is deleted and said time-out message is queued, and in response to said time-out message being dequeued, said handle function transfers said timer from said state in said asynchronous state machine in which said timer is deleted and said time-out message is queued to a non-existent state in a synchronous state machine, wherein said handle function allows said application to synchronously act on said timer.
10. The timer management system as recited in claim 7, wherein, in response to said timer being activated by said application, said timer is transferred to a running state in said asynchronous state machine with said time-out message being queued.
11. The timer management system as recited in claim 10, wherein, in response to said timer being deleted by said application, said timer is transferred to a state in said asynchronous state machine in which said timer is deleted and said time-out message is queued, and when said time-out message is dequeued, said handle function transfers said timer from said state in said asynchronous state machine in which said timer is deleted and said time-out message is queued to a non-existent state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
12. The timer management system as recited in claim 10, wherein, in response to said timer being stopped by said application, said timer is transferred to said idle state in said asynchronous state machine with said time-out message being queued, and, in response to said time-out message being dequeued, said handle function transfers said timer from said idle state in said asynchronous state machine to an idle state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
13. The timer management system as recited in claim 10, wherein, in response to said time-out message being dequeued, said handle function transfers said timer from said running state in said asynchronous state machine to a running state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
14. The timer management system as recited in claim 4, wherein, in response to said application deleting said timer, said timer is transferred to a state in said asynchronous state machine in which said timer is deleted and said time-out message is queued, and, in response to said time-out message being dequeued, said handle function transfers said timer from said state in said asynchronous state machine in which said timer is deleted and said time-out message is queued to a "non-existent" state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
15. The timer management system as recited in claim 4, wherein, in response to said application activating said timer, said timer is transferred to a running state in said asynchronous state machine with said time-out message being queued.
16. The timer management system as recited in claim 15, wherein, in response to said timer being deleted by said application, said timer is transferred to a state in said asynchronous state machine in which said timer is deleted and said time-out message is queued, and, in response to said time-out message being dequeued, said handle function transfers said timer from said state in said asynchronous state machine in which said timer is deleted and said time-out message is queued to a "non-existent" state in a synchronous state machine, wherein said handle function allows said application to synchronously act on said timer.
17. The timer management system as recited in claim 15, wherein, in response to said timer being stopped by said application, said timer is transferred to an idle state in said asynchronous state machine with said time-out message being queued, and, in response to said time-out message being dequeued, said handle function transfers said timer from said idle state in said asynchronous state machine to an idle state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
18. The timer management system as recited in claim 15, wherein, in response to said time-out message being dequeued, said handle function transfers said timer from said running state in said asynchronous state machine to a running state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
19. The timer management system as recited in any preceding claim, wherein said API is a DLL file.
20. A method for managing timers in both a synchronous and asynchronous system comprising the steps of:
creating a timer from an allocated block of system memory by an application via an application program interface (API) ;
activating said timer;
expiring of said timer; and
sending a time-out message to a particular queue when said timer expires, wherein said timer is transferred to an expired state in an asynchronous state machine, wherein a handle function allows said application to act on said expired timer without incurring an illegal time-out message.
21. The method as recited in claim 20, wherein said particular queue is a system queue attached to said application.
22. The method as recited in claim 20 or claim 21, further comprising the step of :
responsive to said time-out message being received by said application, said handle function transfers said timer from said expired state in said asynchronous state machine to an idle state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
23. The method as recited in any one of claims 20 to 22, further comprising the step of:
responsive to said application stopping said timer, said timer is transferred to an idle state in said asynchronous state machine with said time-out message being queued.
24. The method as recited in claim 23, wherein in response to said time-out message, being dequeued, said handle function transfers said timer from said idle state in said asynchronous state machine to an idle state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
25. The method as recited in claim 23 or claim 24, further comprising the step of :
deleting said timer by said application, wherein said timer is transferred to a state in said asynchronous state machine in which said timer is deleted and said time-out message is queued, and when said time-out message is dequeued, said handle function transfers said timer from said state in said asynchronous state machine in which said timer is deleted and said time-out message is queued to a non-existent state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer,
26. The method as recited in any one of claims 23 to 25, further comprising the step of: activating said timer by said application, wherein said timer is transferred to a running state in said asynchronous state machine with said time-out message being queued.
27. The method as recited in claim 26, further comprising the step of:
deleting said timer by said application, wherein said timer is transferred to a state in said asynchronous state machine in which said timer is deleted and said time-out message is queued, and when said time-out message is dequeued, said handle function transfers said timer from said state in said asynchronous state machine in which said timer is deleted and said time-out message is queued to a non-existent state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
28. The method as recited in claim 26 further comprising the step of:
stopping said timer by said application, wherein said timer is transferred to said idle state in said asynchronous state machine with said time-out message being queued, and when said time-out message is dequeued, said handle function transfers said timer from said idle state in said asynchronous state machine to an idle state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
29. The method as recited in claim 26, wherein, in response to said time-out message being dequeued, said handle function transfers said timer from said running state in said asynchronous state machine to a running state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
30. The method as recited in claim 20 further comprising the step of:
deleting said timer by said application, wherein said timer is transferred to a state in said asynchronous state machine in which said timer is deleted and said time-out message is queued, and wherein, when said time-out message is dequeued, said handle function transfers said timer from said state in said asynchronous state machine in which said timer is deleted and said time-out message is queued to a non-existent state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
31. The method as recited in claim 20, further comprising the step of:
activating said timer by said application, wherein said timer is transferred to a running state in said asynchronous state machine with said time-out message being queued.
32. The method as recited in claim 31 further comprising the step of:
deleting said timer by said application, wherein said timer is transferred to a state in said asynchronous state machine in which said timer is deleted and said time-out message is queued, and wherein, when said time-out message is dequeued, wherein said handle function transfers said timer from said state in said asynchronous state machine in which said timer is deleted and said time-out message is queued to a "non-existent" state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
33. The method as recited in claim 31, further comprising the step of:
stopping said timer by said application, wherein said timer is transferred to an idle state in said asynchronous state machine with said time-out message being queued, and wherein, when said time-out message is dequeued, said handle function transfers said timer from said idle state in said asynchronous state machine to an idle state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
34. The method as recited in claim 31, wherein, in response to said time-out message being dequeued, said handle function transfers said timer from said running state in said asynchronous state machine to a running state in a synchronous state machine, said handle function allowing said application to synchronously act on said timer.
35. A computer program for controlling the operation of a data processing system on which it runs to perform a method for managing timers in both a synchronous and asynchronous system comprising the steps of:
creating a timer from an allocated block of system memory by an application via an application program interface (API) ;
activating said timer; expiring of said timer; and
sending a time-out message to a particular queue when said timer expires, wherein said timer is transferred to an expired state in an asynchronous state machine, wherein a handle function allows said application to act on said expired timer without incurring an illegal time-out message.
PCT/GB2001/004322 2000-09-28 2001-09-27 An efficient timer management system WO2002027468A2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
AU2001290129A AU2001290129A1 (en) 2000-09-28 2001-09-27 An efficient timer management system
JP2002530979A JP4009192B2 (en) 2000-09-28 2001-09-27 Efficient timer management system
AT01970009T ATE290236T1 (en) 2000-09-28 2001-09-27 EFFICIENT MANAGEMENT SYSTEM OF A TIMER
DE60109215T DE60109215T2 (en) 2000-09-28 2001-09-27 EFFICIENT ADMINISTRATIVE SYSTEM OF A TIMER
EP01970009A EP1410168B1 (en) 2000-09-28 2001-09-27 An efficient timer management system
KR1020037004568A KR100553144B1 (en) 2000-09-28 2001-09-27 An efficient timer management system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/675,545 US6826761B1 (en) 2000-09-28 2000-09-28 Efficient timer management system
US09/675,545 2000-09-28

Publications (2)

Publication Number Publication Date
WO2002027468A2 true WO2002027468A2 (en) 2002-04-04
WO2002027468A3 WO2002027468A3 (en) 2004-02-26

Family

ID=24710963

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2001/004322 WO2002027468A2 (en) 2000-09-28 2001-09-27 An efficient timer management system

Country Status (9)

Country Link
US (1) US6826761B1 (en)
EP (1) EP1410168B1 (en)
JP (1) JP4009192B2 (en)
KR (1) KR100553144B1 (en)
AT (1) ATE290236T1 (en)
AU (1) AU2001290129A1 (en)
DE (1) DE60109215T2 (en)
TW (1) TW525050B (en)
WO (1) WO2002027468A2 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7100167B2 (en) 2001-05-01 2006-08-29 Microsoft Corporation Method and apparatus for creating templates
US7275250B1 (en) * 2001-05-01 2007-09-25 Microsoft Corporation Method and apparatus for correlating events
US7080376B2 (en) * 2001-09-21 2006-07-18 Intel Corporation High performance synchronization of accesses by threads to shared resources
US20050081216A1 (en) * 2003-10-08 2005-04-14 Sun Microsystems,Inc. Method, system, and program for calling a target object from a caller object
US7941688B2 (en) * 2008-04-09 2011-05-10 Microsoft Corporation Managing timers in a multiprocessor environment
US9733664B1 (en) * 2013-03-14 2017-08-15 Gamesys Ltd. Method for expiring fault-tolerant timers using distributed locks
US8976035B2 (en) 2013-03-14 2015-03-10 Freescale Semiconductor, Inc. Methods and apparatus for sensing motion of a portable container and providing human perceptible indicia based on the sensed motion
US9678531B2 (en) 2014-02-14 2017-06-13 Nxp Usa, Inc. Methods and apparatus for adaptive time keeping for multiple timers
US9841780B2 (en) 2014-07-07 2017-12-12 Nxp Usa, Inc. Apparatus and method for producing a report including a subset of a plurality of active timers based on a query to accurate quality of service based on the report
US10798146B2 (en) * 2015-07-01 2020-10-06 Oracle International Corporation System and method for universal timeout in a distributed computing environment
CN109032687B (en) * 2018-06-11 2021-09-03 北京奇艺世纪科技有限公司 Method and device for shielding dangerous call of SDK (software development kit)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5621892A (en) * 1995-10-10 1997-04-15 Intel Corporation Method and apparatus for managing alerts and events in a networked computer system
US5768572A (en) * 1996-02-05 1998-06-16 International Business Machines Corporation Timer state control optimized for frequent cancel and reset operations
US6078747A (en) * 1998-01-05 2000-06-20 Jewitt; James W. Application program interface to physical devices

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012081A (en) * 1996-07-03 2000-01-04 Siemens Aktiengesellschaft Service and event synchronous/asynchronous manager
US6349388B1 (en) * 1999-05-07 2002-02-19 Advanced Micro Devices, Inc. Timer processing engine for supporting multiple virtual minimum time timers
US6618805B1 (en) * 2000-06-30 2003-09-09 Sun Microsystems, Inc. System and method for simplifying and managing complex transactions in a distributed high-availability computer system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5621892A (en) * 1995-10-10 1997-04-15 Intel Corporation Method and apparatus for managing alerts and events in a networked computer system
US5768572A (en) * 1996-02-05 1998-06-16 International Business Machines Corporation Timer state control optimized for frequent cancel and reset operations
US6078747A (en) * 1998-01-05 2000-06-20 Jewitt; James W. Application program interface to physical devices

Also Published As

Publication number Publication date
US6826761B1 (en) 2004-11-30
TW525050B (en) 2003-03-21
JP2004523812A (en) 2004-08-05
KR20030040509A (en) 2003-05-22
DE60109215D1 (en) 2005-04-07
EP1410168A2 (en) 2004-04-21
JP4009192B2 (en) 2007-11-14
KR100553144B1 (en) 2006-02-22
DE60109215T2 (en) 2006-01-12
ATE290236T1 (en) 2005-03-15
EP1410168B1 (en) 2005-03-02
WO2002027468A3 (en) 2004-02-26
AU2001290129A1 (en) 2002-04-08

Similar Documents

Publication Publication Date Title
US5902352A (en) Method and apparatus for task scheduling across multiple execution sessions
US5146561A (en) Communication network data manager system
US5095421A (en) Transaction processing facility within an operating system environment
US8341125B2 (en) Transaction log management
CA2315446C (en) External job scheduling with a distributed processing system having a local job control system
US7328213B2 (en) Transaction processing method, transaction control apparatus and program thereof
EP1222529B1 (en) Method and device for monitoring the creation and destruction of child processes within an application executing in a computer system
US8271448B2 (en) Method for strategizing protocol presumptions in two phase commit coordinator
WO1996027827A1 (en) A computer system with unattended on-demand availability
EP1410168B1 (en) An efficient timer management system
CN101790721A (en) Execution order decision device, execution order decision program, execution order decision circuit, and information processing device
JPH1063523A (en) Method and device for controlling activation of server in multithread environment
US7100162B2 (en) System and method for process management
JP2002324155A (en) Workflow system and program
US6330686B1 (en) Handling protected conversation messages across IMS restart in shared queues environment
JP2755437B2 (en) Continuous operation guarantee processing method of communication control program
KR20050035301A (en) A data processing system adapted to integrating non-homogeneous processes
WO2002003212A2 (en) Method and apparatus for a scheduling driver to implement a protocol utilizing time estimates for use with a device that does not generate interrupts
KR100403659B1 (en) An apparatus, method and computer program product for client/server computing with intelligent location of transaction objects
US20040040024A1 (en) System and method for a process shutdown interface
JPH06274354A (en) Method and system for control of operation of destructive hardware
US7240043B2 (en) Method of controlling storage control apparatus, storage control apparatus, and computer readable program for controlling the same
JP2001134476A (en) Method for updating data base in a batch
JP2002268899A (en) Information processor, dynamic change method for operation environment of program and program
JP2848172B2 (en) I / O controller

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2002530979

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 1020037004568

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2001970009

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020037004568

Country of ref document: KR

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 2001970009

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 2001970009

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1020037004568

Country of ref document: KR