Method of determining termination of a process under a...

Data processing: structural design – modeling – simulation – and em – Emulation – Compatibility emulation

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C703S022000, C703S020000, C709S241000

Reexamination Certificate

active

06173249

ABSTRACT:

BACKGROUND OF THE INVENTION
The present invention relates generally to computing systems and in particular to a method of determining whether a process has terminated in a environment in which a one operating system is being simulated and runs on top of a second operating system, and the possibly terminated process runs in conjunction principally with the simulated operating system.
Application programs or processes are normally written to run on specific systems, i.e., in conjunction with a specific operating system that performs supervisory control of system resource allocation (e.g., allocation and usage of such system resources as memory, processing time, disk space, peripheral devices, and the like). Use of these processes over time verifies their credibility and operability. The more useful processes become the objects of “porting,” transference to other operating systems different from that for which they were originally designed. This will typically require that the process be rewritten for the new operating system, and if the new operating system is substantially different, or the program language in which the process was originally developed is particularly difficult for the new operating system, the porting process can become a tedious task. The porting procedure can, therefore, be time consuming and expensive, depending upon the process, the structure of the old and new operating systems, and other reasons not necessarily relevant here. For this reason, it may be desirable to simulate the old operating system in the new operating system environment so that the process being ported does not need to be substantially revised—if at all.
However, simulating an operating system in order to allow porting of a process or processors may carry with it additional problems. One such problem arises when the simulated operating system has not yet been informed that a ported process (i.e., one that thinks it is running under the simulated operating system) has terminated, and another ported process requests communication with the terminated ported process, and receives back an error. This problem arises, in part, from the fact that among the normal tasks of an operating system is the responsibility of keeping track of the current state of processes running under it, i.e., whether the process is running, is suspended, is stopped, or has terminated. Generally, when a process requests communication access to a terminated process and receives back an error, that the process relays to the operating system, the operating system can check to see if in fact the error resulted from termination of the target process or a fault. Conventional techniques for such monitoring involves keeping global data structures that contain information that reflect the current state of each process called into existence. The data structures can keep an identification (ID) of each ported process when the process is instantiated. However, this ID is often reused so that checking the data structure to determine if a process is terminated can provide misleading results. Simulating an operating system results in a delay between termination of a ported process and notification of that termination to the simulated operating system. It is during this delay that the problem referred to above arises.
Thus, it can be seen that there is needed a way to provide notification of termination of a ported process in an environment in which the ported process is running (or thinks it is running) under a simulated operating system that, in turn, is running under an actual or native operating system different from that simulated.
SUMMARY OF THE INVENTION
The present invention provide a method of uniquely identifying each process instantiated to run in an environment having a simulated operating system, and associated library, used to route routine calls for operating system services and system resources, including interprocessor communication as is typical. Broadly, according to the invention, when a ported process is instantiated to run on the system under the simulated operating system (that, in turn, runs under a native operating system), a data structure is created for that process. The data structure will include data describing and identifying the process by a process identification number (PID) together with a time stamp that identifies the time of creation of the process. The PID and associated time stamp value are written to any other data structures corresponding to earlier-instantiated processes. Other processes created later (or created earlier but since terminated) may have the same process identification number, but the associated time of creation value will be different to thereby differentiate one process from another.
According to the invention, therefore, when one ported process (the “calling” process) attempts to communicate with or call a second ported process (the “target” process) it will make a call to the interprocess communication service (a library function) of the simulated operating system. The interprocessor communication service is structured to, in turn, use the interprocess communication facility of the native operating system. Should the interprocess communication service (“simulated service”) of the simulated operating system receive back an error, indicating an inability to use native system resource for that communication, the simulated service will check to determine the status of the called process. According to that check, the simulated service will first utilize a call to the native operating system, using the PID of the target process. This will produce one of two responses: an indication that the target process no longer exists, or an indication that is does exist by a handle with a PID of the target process. In the former case, the simulated service knows that the associated process has terminated. In the latter case, the simulated service knows that a process exists corresponding to the PID that was used, but not that it necessarily is the desired target process. Accordingly, the simulated service will obtain the time of creation value for the PID received with the handle, and compare that to the time of creation value pertaining to the called process as contained in the data structure of the calling process. If there is not a match, the simulated service knows that the target process has terminated, and the process identification number has been re-used. The simulated service will return this information to the calling process. If the time of creation compare does match, the simulated service knows that the attempted call produced a true system error, and will issue a error message to halt the system or produce some other system response to the error.
A significant feature of the present invention is the ability to uniquely identify each process by the time of creation value. This feature, in turn, leads to the ability to differentiate between processes, while allowing process identification numbers to be re-used (thereby permitting smaller process numbers to be used), while at the same time providing a way to determine whether a process has terminated or not.
There are other features and advantages of the present invention that will become apparent to those skilled in this art upon a reading of the following description of the preferred embodiment of the invention which should be taken in conjunction with the accompanying drawings.


REFERENCES:
patent: 4819234 (1989-04-01), Huber
patent: 5613098 (1997-03-01), Landau et al.
patent: 5680584 (1997-10-01), Herdeg et al.
patent: 5724590 (1998-03-01), Goettelmann et al.
patent: 5790829 (1998-08-01), Flynn
patent: 5819063 (1998-10-01), Dahl et al.
patent: 5963731 (1999-10-01), Sagawa et al.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method of determining termination of a process under a... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method of determining termination of a process under a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method of determining termination of a process under a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2530231

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.