Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing
Reexamination Certificate
1998-02-25
2003-12-02
Follansbee, John (Department: 2126)
Electrical computers and digital processing systems: multicomput
Computer-to-computer data routing
Least weight routing
Reexamination Certificate
active
06658486
ABSTRACT:
FIELD OF THE INVENTION
The present invention generally relates to computer systems and, in particular, to a system and method for efficiently blocking event signals associated with an operating system.
BACKGROUND OF THE INVENTION
Operating systems control the allocation and usage of hardware resources associated with a computer system. Typically, an operating system has a list of events that might occur while a software program associated with the operating system is executing. When one of the listed events occurs, the operating system sends a signal to the program indicating the occurrence of the event. For example, the functionality of a software program may depend on an expiration of a certain amount of time such as in the situation where a program allows a certain amount of time for a user to enter an input. If the user fails to enter the input within the certain amount of time, then the operating system detects a timer alarm indicating that the time period has expired. In response, the operating system transmits an event signal indicating that the time for entering the input has expired. By processing the event signal, the program becomes aware that the user has failed to enter the input.
Usually, the operating system will only transmit an event signal when the program has a corresponding signal handler capable of handling the event signal. A signal handler is a portion of a software program that processes event signals from the operating system. The operating system typically has knowledge of which signal handlers are contained in a program and, hence, which event signals can be processed by the program. Therefore, upon detecting an occurrence of a timer alarm event, for example, the operating system will first determine whether the computer program has a signal handler designed to process an event signal corresponding to the timer alarm. If such a signal handler exists, the operating system will transmit a timer alarm event signal to the program.
Upon receiving an event signal, the program will invoke the signal handler capable of handling the event signal. The signal handler then takes the necessary steps so that the program may continue executing in an appropriate manner in view of the occurrence of the associated event. If no signal handler exists to handle the event signal, then the operating system refrains from transmitting the event signal.
There are times during the execution of the program that it is desirable for the program not to receive certain event signals from the operating system. For example, a portion of the program may enter a critical region where the processing of certain event signals causes errors to occur. In this regard, the program may enter into a region where certain data is accessed and manipulated. In processing a particular event, the signal handler may also access and manipulate certain data. As can be appreciated by one skilled in the art, if the signal handler interrupts the execution of the critical region of the program and manipulates data that is currently being accessed and manipulated by the program, an error can occur. Therefore, it is desirable to block certain event signals from occurring when the program enters a critical region where, for example, certain data would be manipulated by both the program and the signal handler if certain events occur.
In order to block certain event signals from occurring, the program sends a system call to the operating system requesting the operating system to block a particular event signal from occurring. In response, the operating system typically indicates that the particular event signal is blocked by setting a particular flag corresponding to the event signal. When an event occurs, the operating system checks the appropriate flag to determine if the corresponding event signal has been blocked. If the flag is not set, then the event signal is not blocked, and the operating system delivers the event signal to the program. However, if the flag is set, indicating that the event signal is blocked, then the operating system refrains from sending the event signal. Instead, the operating system simply notes that the event occurred and that the corresponding event signal was blocked.
After blocking an event signal by the foregoing procedures, it may be desirable for the program to unblock the event signal. For example, the program may leave the critical portion of the program and, therefore, no longer need the event signal to be blocked. In order to unblock the blocked event signal, the program sends another system call to the operating system requesting the operating system to unblock the blocked event signal. At this point, the operating system clears the flag corresponding to the blocked event signal so that any future occurrences of the corresponding event will result in the delivery of an event signal to the program. Furthermore, after unblocking the event signal, the operating system also determines if the event signal was previously attempted but blocked during the blocking period. If so, the operating system transmits a signal to the program indicating the occurrence of the corresponding event, and the program processes the signal accordingly.
Although the blocking and unblocking process outlined hereinabove successfully prevents the occurrence of an event signal during the execution of particular portions of the program, the blocking and unblocking process is very costly to the efficient operation of many applications. Each system call usually requires the machine state of the operating system to be saved and usually requires the operating system to transition from a lower to higher privileged mode of operation. Therefore, the performance of programs having a high frequency of blocking and unblocking system calls is significantly degraded.
Thus, a heretofore unaddressed need exists in the industry for providing a system and method of efficiently blocking and unblocking event signals associated with an operating system.
SUMMARY OF THE INVENTION
The present invention overcomes the inadequacies and deficiencies of the prior art as discussed herein. The present invention provides a system and method for efficiently blocking and unblocking event signals associated with an operating system.
The present invention utilizes a computer software program, an operating system, a process data structure and a translation device. The process data structure maintains data values indicating which event signals are blocked and which are unblocked. The software program transmits a system call indicating that a particular event signal is to be blocked or unblocked. The translation device receives and interprets the system call and then updates the process data structure.
The operating system is configured to generate an event signal upon the occurrence of an event. The translation device receives the event signal and analyzes the process data structure to determine if the event signal is blocked. If the event signal is blocked, then the translation device records that the detection of the event signal and discards the event signal. However, if the event signal is not blocked, the translation device delivers the event signal to the program.
In accordance with another feature of the present invention, the translation device is configured to update a pending data structure indicating which blocked event signals have been previously received by the translation device. After unblocking an event signal, the translation device is designed to analyze the pending data structure to determine whether the event signal was previously received but not delivered to the program. If so, the translation device is configured to transmit a signal to the program indicating that an event corresponding to the event signal has occurred.
The present invention has many advantages, a few of which are delineated hereafter, as mere examples.
An advantage of the present invention is that blocking and unblocking of event signals associated with an operating system may occur without requiring the operating system to process system calls.
Buzbee William B.
Mattson James S.
Shah Lacky V.
Bullock, Jr. Lewis A.
Follansbee John
Hewlett--Packard Development Company, L.P.
LandOfFree
System and method for efficiently blocking event signals... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with System and method for efficiently blocking event signals..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for efficiently blocking event signals... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3174508