Interprocess communication apparatus interposed between application processes and the operating systems of hosting computers in a system of networked computers
Method and system for providing secure access to computer resources
Apparatus and method for managing shared resources
Method of and apparatus for managing call resources in switching system
Method and system for invoking remote procedure calls
Multithreaded client application storing a separate context for each transaction thus allowing threads to resume transactions started by other client threads
Process executing method and resource accessing method in computer system Patent #: 6253225
ApplicationNo. 09365784 filed on 08/03/1999
US Classes:718/104, Resource allocation718/100, TASK MANAGEMENT OR CONTROL718/102, Process scheduling718/106, Dependency based cooperative processing of multiple programs working together to accomplish a larger task709/223, COMPUTER NETWORK MANAGING709/213, MULTICOMPUTER DATA TRANSFERRING VIA SHARED MEMORY379/203.01, Operator control709/203Client/server
ExaminersPrimary: An, Meng-Ai T.
Assistant: Ali, Syed J
Attorney, Agent or Firm
Foreign Patent References
BACKGROUND OF THE INVENTION
The invention concerns a process for identifying processes, preferably telecommunications processes, as well as their resources, each of which is provided with a (first) identifier unambiguously identifying this process, and further concerns a suitable computer, program or software module for implementing this process, as well as a switching centre having such a module.
Such a process has been disclosed by U.S. Pat. No. 5,644,719, for example.
With quasi-simultaneous processing of several processes with a computer (multitasking) the processing of processes in a computer is nested or interleaved chronologically by an appropriate process controlled by an operating system, so that the processing is effected in a quasi-simultaneous manner. To do this, each process receives a so-called process identifier (PID), that is assigned only once in the system and therefore unambiguously identifies the process. Resources such as, for example, stacks or memory location, that are made available to a process by the operating system, or even data, are provided with the respective process identifier in order to identify their allocation to the respective process. If a process is terminated, the memory location, for example, in which data of the terminated process are stored, is freed by using the identifier.
If a process is aborted prematurely, that is to say not terminated normally, because an error has occurred, for example, a new process is started that is intended to replace this abnormally terminated process. Of course, the new process which receives a new process identifier cannot access the data of the aborted process, since these are identified by the process identifier of the terminated process. If one of several mutually coupled processes is prematurely terminated, the new process continuing this process must be synchronised to the remaining processes in a complicated manner. And if a process does not run for a prolonged period of time it cannot be terminated since, otherwise, access to its data is no longer possible at a later time. This leads to a high requirement for storage space and consequently for the resources to be provided.
In the case of the nested computers described in U.S. Pat. No. 5,644,719, the operating system also allocates process identifiers (PID) to application processes that are handled by the computer, these process identifiers being used by the operating system during the transmission of messages between the processes.
SUMMARY OF THE INVENTION
The object of the invention is therefore to develop a method of the type stated above in such a way that a new process that is continuing a terminated process is able to access the data and resources of the terminated process, and to create suitable modules and a switching centre for this purpose.
This object is achieved according to the invention, in that a process and its resources are provided with a further (second) identifier unambiguously identifying the process and, particularly after premature termination of the process, a process which continues the functions of the terminated process is started, which retains the second identifier of the terminated process as the second identifier.
According to the invention, in addition to the first process identifier that is dependent on the life of its process, resources, for example, data, are identified by a second identifier-described in the following text as the reference identifier (RID)-that is independent of the life of the process. The continuing new process can thus access resources of the terminated process. The reference identifier facilitates rapid and secure access to data of a terminated process. If one of several chronologically coupled processes is prematurely terminated, the continuing process takes the place of the terminated one without any time delay, so that synchronisation with the remaining processes is not necessary.
Equipped with the newly assigned reference identifier of the terminated process, the new process assumes the functions of the terminated process. Consequently, the reference identifier enables communication on the basis of the function and not on the basis of the process, as is the case when only the first process identifier is used. The system gains flexibility.
In preferred developments of the invention, the reference identifiers (RID) are protected against restarting and/or reloading of a control element, and particularly those processes, data and resources that are dependent on the restarting and reloading of their control unit, are identified by them. The process synchronisation that is otherwise required after restarting or reloading of the control unit can be eliminated.
By enabling the reference identifier only when the functions of the first process provided with this reference identifier have been executed, this ensures that the functions are also successfully carried out.
The reference identifiers are preferably managed by the operating system, and also assigned or requested by said operating system. The process continuing the functions of the terminated process is also requested by the operating system.
In a further advantageous development of the process, provision is made for the reference identifier to be transmitted jointly with other data in a (process-specific) data word. This enables messages to be transmitted simultaneously with the reference identifiers. If the reference identifier, composed for example, of 32 bits, that identifies a process in a destination computer, is present, then with the 48-bit data structure which is usual for such processes the remaining 16 bits can be used for specifying the virtual path to this destination computer. The communications software can then encrypt this two-part data word accordingly.
The reference identifiers can be stored in tables, preferably in a common table, and allocated according to their chronological order of rank (priority). A reference identifier is then only enabled from this table if its functions have been carried out, if necessary by subsequent processes.
In a particularly preferred development of the process, if a process that is not required is terminated ("put to bed"), in particular by the operating system, it is "brought back to life" on request in a new process that continues this put-to-bed process with the aid of the reference identifier. As a result, resources are kept free, so that with a constant number of operating system resources (process control blocks) considerably more processes (e.g. a factor of 15) can be managed.
In a further aspect, the invention also concerns a suitable computer module, program module or software module for implementing the method as described, as well as a switching centre having at least one such module. Such a switching centre can be a node in a telecommunication network, for example.
BRIEF DESCRIPTION OF THE DRAWINGS
Further advantages of the invention are revealed in the description and the drawing. According to the invention, the above-mentioned features and those to be cited later on can be used individually or in any combination. The illustrated and described embodiments should not be considered as a final list, but rather have an exemplary character for the description of the invention.
FIG. 1 shows schematically two processes, one of which continues the other and retains the same second identifier; and
FIG. 2 shows a flowchart for a computer module, program module or software module implementing the process according to the invention.
DETAILED DESCRIPTION OF THE INVENTION
In FIG. 1, an operating system with which the processing of multitasking processes is controlled is denoted by BS. One such process P1 receives from the operating system BS a first (process) identifier PID1 and a second (reference) identifier RID1, both of which are assigned only once, so that the process P1 is unambiguously identified by each of these two identifiers. Resources such as data D, to which the process P1 has access or which were generated by it, are identified in this manner.
The process identifier PID1 is dependent on the life of its process P1 and is used, for example, to manage the process resources and to control databank transactions. Restarting and/or reloading terminate the process P1 and the life of this identifier.
The reference identifier RID1 is independent of the life of the process P1 and exists until it functions are executed. This identifier is used to manage process data dependent on restarting and/or reloading and offers user software the possibility of operating with a process identification code independent of a restart and/or reload.
If the process P1 is terminated prematurely (shown by dashed lines), because an error has occurred, for example, a new process P2 having a first (process) identifier PID2 and continuing the functions of the terminated process P1 is started. This new process P2 retains the reference identifier RID1 of the terminated process P1 as its reference identifier. The new process P2 can also access the resources and data D of the terminated process P1, and thus continue its functions, via the reference identifier RID1. A reference identifier RID is deallocated only if a process comes to a normal end.
If, in the telecommunication field, the process P1 has handled a telephone call, for example, with premature termination of the process P1 its data D could still be used for ending the telephone call. The new process P2 can read the data D associated with the telephone call in order to terminate the call, or the new process P2 is the receiver of messages which are still to be sent to the terminated process P1. The reference identifier RID simplifies and accelerates the resynchronisation of associated, distributed processes following restarting or reloading of a control unit participating in the control of a telephone call. Moreover, as an operating system function, the reference identifier RID enables application software to maintain stable telephone calls despite the restarting and/or reloading of a control unit and to rapidly locate call-relevant data that are stored in a databank. That is to say, fast and secure access to call-relevant data is possible, even after restarting and/or reloading.
FIG. 2 shows by way of an example a flowchart of a computer program for the process described above. In step 1, the process P1 is provided with the two identifiers PID1 and RID1. If it is established in step 2 that the process P1 has ended, the system enquires in step 3 whether the functions of this process are completed. If the answer is "yes", the program is terminated (step 5). If otherwise (answer is "No"), a new process P2 with identifier RID1 is started in step 4. This process P2 continues the process P1 in order to execute its still outstanding functions. If this process P2 is also terminated without all functions of the process P1 being completed, the negative reply in step 3 causes a further process to be started, which likewise retains RID1 as the identifier. The program jumps to the end (step 5) only if all functions of the process P1 have been executed, that is to say if the reply in step 3 is positive.
* * * * *