System and method for performing external procedure calls...

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06289391

ABSTRACT:

A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
FIELD OF THE INVENTION
The present invention generally relates to external procedure calls in a computer system executing a program, and in particular to a method for performing external procedure calls from a server program to a client program, wherein the server program is executing a call from the client program and both are running in a heterogeneous computer system sharing a common memory. The term “External Procedure Calls” (or “EPC”) is used herein to refer to the making of a function call from one operating environment to another of such a heterogeneous computer system. The term “heterogeneous multiprocessing system” refers to a single computer system having two or more Central Processing Units (CPUs) that operate with a shared memory and utilize two or more different operating systems.
BACKGROUND OF THE INVENTION
In general computer programs include a number of internal functions, plus computer codes which call these functions in a specific order. This approach works well when all of the necessary functions are available within a single program. However, there are times when a required function is located elsewhere. Such functions are normally referred to as remote, or external functions.
One way to make these remote or external functions available to a program is to incorporate them into the local program. When feasible, this is the most efficient approach. However, remote or external functions sometimes depend upon other things (e.g., data, operating systems, hardware, etc.), which may not be available to the local program. In such situations, importing the remote or external function to the local program is not possible. Hence, the only alternative is to invoke the desired function remotely. These are known as Remote Procedure Calls (RPC's), which are available for such use. RPC's operate much, much slower than internal functions, in fact they are four or more orders of magnitude slower.
Some systems provide a streamlined RPC mechanism for use in shared memory environments, which are referred to as Local Procedure Calls (LPC). This capability eliminates the overhead of moving a function call across a network and reduces the per call overhead to less than
1
microsecond with today's microprocessors. Local Procedure Calls, however, are only available when all of the functions are running under the control of one single operating system. In a heterogeneous multiprocessing (HMP) system, there is a desire to have two different operating systems closely cooperating to carry out certain tasks.
Technologies are available for carrying out this cooperation, which are variants of Remote Procedure Calls (RPCs). RPCs operate over a network transport of some sort, and serve to physically move a request from one environment to another. At best, they operate in the range of 100 microseconds overhead per call. While this overhead is acceptable for some long operations, it is excessive for short operations, making cooperation impractical. In addition, the 100 microsecond or greater overhead must be incurred by each function call, further reducing the desirability of RPCs. A function calling sequence with drastically reduced overhead is required.
In shared memory HMP environments, there is no need to physically move the function from the memory of one operating environment to the memory of the other. Both operating environments share a single memory. External Procedure Calls take advantage of the shared memory in an HMP system to expedite the calling sequence between operating environments, allowing overheads of less than 1 microsecond using today's Instruction Processors or as referred to herein Central Processing Units (CPU's). This overhead reduction allows EPCs to be used for cooperative processing where RPCs would be impractical. Examples of potential uses for EPCs include: direct use of DMSII verbs from NT applications and direct use of NT security and encryption algorithms from MCP environments.
SUMMARY OF THE INVENTION
In accordance with the above and other objects, features and advantages of the present invention, there is provided a method and system in a heterogeneous computer system including at least one Client CPU, at least one Server CPU and a common memory accessible by each of the CPU's and disposed for storing first and second operating systems that control operation of the Client and Server CPUs, respectively. Client and Server Programs are both stored in the same common memory. The method and system comprise a Client Program executed by the Client CPU and a Server Program executed by the Server CPU. The Server Program is adapted for making function calls to the Client Program and the Client Program is adapted for returning results of the called function to the Server Program.
The Server Program includes procedures for invoking a Client Program function, and for converting parameters and result data from a format compatible with the one operating system to the other.
An object of the present invention is to provide a direct calling sequence from one operating system environment to another. This includes the direct mapping of parameters and return values.
A feature of the present invention is that a function being called is written in standard MCP languages. The functions need not be aware that they are being called from a foreign environment.
An advantage of the present invention is that the called functions are packaged in the same way they would be for use in the native environment, and are fully usable in the native environment. For MCP, functions are packaged in a standard MCP library format, and are fully usable by both MCP based applications and (once set up) by Windows NT programs as well. In both cases, this dual usage can be concurrent. That is, both native and foreign programs can be calling the same routines concurrently. MCP is the name of the operating system for A Series and ClearPath/NX Computers available from Unisys Corporation of Blue Bell, PA, assignee of this patent application. Windows NT is an operating system available from Microsoft Corporation of Redmond, Washington. It is noted at this juncture of the description that the term NT or NT Operating System is used to mean the Windows NT Operating System.
Another advantage of the present invention is that the mechanism supports all parameter types that can be readily mapped from the initiating environment to the target environment. This is a subset of all possible parameter types. Simple on-stack parameter types are supported (word values, such as int, long, unsigned, float, INTEGER, REAL are all supported. Simple off-stack arrays are also supported (char*, int*, long*, INTEGER ARRAY, REAL ARRAY, EBCDIC ARRAY). Array contents can either be translated, or left in native format, at the option of the developer.
By use of the present invention, modern computers can execute in excess of 1,000,000 External Procedure Calls per second, using the ClearPath HMP systems available from Unisys Corporation, assignee of this patent application. These speeds are well within one order of magnitude of local function calls, and are a full three orders of magnitude faster than the prior art Remote Procedure Calls. This speed allows programmers to use remote or external functions for many more purposes than were possible using standard Remote Procedure Calls.
Still other objects, features and advantages of the present invention will become readily apparent to those skilled in the art from the following detailed description, wherein there is shown and described only the preferred embodiment of the invention, simply by way of illustration of the best mode contemplated of carrying out the invention. As will be realized, the invention is capable of o

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

System and method for performing external procedure calls... 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 performing external procedure calls..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for performing external procedure calls... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2439849

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