Apparatus and method for high performance implementation of...

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

06260057

ABSTRACT:

BACKGROUND OF THE INVENTION
This invention relates to operating system software, and more particularly, to a method and apparatus for decreasing an execution time of system calls in a data processing system.
Data processing systems commonly are controlled by a software program called an “operating system” (OS). The operating system acts as the “brains” of the data processing system and controls the scheduling and execution of other software programs being executed by the data processing system. These other software programs are called “application programs” or “processes”. The UNIX operating system is an example of a commonly used operating system. UNIX is a registered trademark in the United States and other countries exclusively licensed through X/OPEN, Ltd. Sun Microsystems, Inc. manufactures a version of UNIX called Solaris, which is a registered trademark of Sun Microsystems, Inc.
An operating system controls the performance of many common system operations, such as printing data to a printer or reading data from a document scanner. Thus, if an needs to read or write data, it does so by “calling” the operating system and requesting that the operating system perform a “system call function.” The operating system performs the system call function, such as reading or writing, and returns a result to the application program.
The UNIX operating system is formed of two separable parts: the kernel and the systems programs. Systems programs include system libraries, compilers, interpreters, shells, and other such programs that provide useful functions to application programs user. The kernel provides the file system, CPU scheduling, memory management, and other operating-system functions by responding to system calls from application programs. Conceptually, the kernel sits between the hardware and the application programs. System calls are made by a “trap” to a specific location in the computer hardware. Specific parameters are passed to the kernel on the stack and/or in registers and the kernel returns with a code in specific registers or memory locations indicating whether the action required by the system call was completed successfully. For more detailed information on the UNIX operating system see “The Design of the UNIX Operating System” by Maurice J. Bach, Prentice-Hall, 1986, which is herein incorporated by reference.
Some data processing systems execute application programs that consist of multiple processes. Other data processing systems allow each process to contain multiple “threads.” Still other data processing systems allow programs to be re-structured to make use of more than one hardware processor (CPU) at a time. Such programming capabilities are generally embodied in a programming paradigm called “multi-threading.” A “thread of control” or more simply, a “thread” is a sequence of instructions being executed in a program. Each thread has a program counter and a stack to keep track of local variables and return addresses. Threads execute independently of other threads. A thread shares the instructions of its process, and most of the data of the process, as well as sharing the operating system state of its process. Each thread may make arbitrary system calls. Threads and the associated controls and services of a multi-threaded system may be implemented as objects.
Multi-threaded systems are described, for example, in “SunOS Multi-thread Architecture” by M. L Powell, S. R. Kleiman, S. Barton, D. Shah, D. Stein, M. Weeks, Proceedings of the USENIX Conference—Winter '
91
—Dallas, Texas, pages 65-79, which is herein incorporated by reference. Additional information concerning the implementation of the SunOS
5
.
0
may be found in the following articles; each of which is herein incorporated by reference. S. Kleiman, J. Voll, J. Eykholt, A. Shivalingiah, D. Williams, M. Smith, S. Barton, and G. Skinner, “Symmetric Multiprocessing in Solaris
2
.
0
,” COMPCON Spring 1992, p. 181, San Francisco, Calif.; Sandeep Khanna, Michael Sebree, John Zolnowsky, “Realtime Scheduling in SunOS
5
.
0
,” USENIX, Winter
1992
, San Francisco, Calif.
The software of an operating system typically contains special programs (or “handlers”) that execute systems calls from threads. The operating system typically performs certain tests before performing the function requested by the system call. Tests performed by the operating system before the requested system call function is executed by the kernel are called “pre-tests.” For example, the operating system may test to determine whether the system is operating in “debug” or “TRACE” mode before executing a system call function. Some pretests have actions associated therewith that are performed when a condition in the pre-test is true. The operating system also typically performs certain tests after performing the function requested by the system call. Tests performed after the requested system call function is executed are called “post-tests.” For example, the operating system may test for the existence of non-standard error codes after executing a system call function. Some post-tests have actions associated therewith that are performed when a condition in the post-test is true.
As operating systems have become larger and more complicated, the number of pre-tests and post-tests that the operating system performs in connection with each system call has increased. Because the tests are performed for each system call, even relatively simple system calls that would otherwise execute in a short period of time have begun to take relatively long periods of time to execute. What is needed is a way to avoid execution of multiple pre-tests and pre-tests or post-tests are known to be inapplicable.
Accordingly, there is a need for a way to decrease system call execution times.
SUMMARY OF THE INVENTION
The present invention provides an apparatus and method for “bypassing” multiple pre-tests and multiple post-tests during a system call or TRAP when those tests are known to be inapplicable. The invention uses a “slow path” flag to control the operation of the operating system during a system call. When the slow path flag is set, the operating system executes a “slow” instruction path during the system call. The slow instruction path includes at least one pre-test or at least one post-test and usually includes multiple pre-tests or multiple post-tests. In contrast, when the slow path flag is clear, the operating system bypasses the pre-tests or post-tests to execute a “fast” instruction path. The fast instruction path does not contain the pre-tests (or post-tests) that are included in the slow instruction path. Because the fast instruction path contains a subset of the instructions in the slow instruction path, use of the fast instruction path improves the execution time of the system call.
These and other advantages of the present invention will become more fully apparent when the following detailed descriptions of the invention are read in conjunction with the accompanying drawings.


REFERENCES:
patent: 3707725 (1972-12-01), Dellheim
patent: 5274815 (1993-12-01), Trissel et al.
patent: 5442758 (1995-08-01), Slingwine et al.
patent: 5495578 (1996-02-01), Rohrbaugh et al.
patent: 5515538 (1996-05-01), Kleiman
patent: 5632032 (1997-05-01), Ault et al.
H. Y. Sasde et al, “Value Numbering in the Context of Merging Control Flow”, IBM TDB, vol. 25, No. 12, pp. 6338-6341, May 1983.*
Article by Robert A. Alfieri, entitled “An Efficient Kernel-Based Implementation of POSIX Threads” published bySummer Usenix, Jun. 6-10, 1994.
Article by Kleiman et al., entitled “Symmetric Multiprocessing in Solaris 2.0” published bySunSoft.
Article by Powell et al., entitled “SunOS Multi-thread Architecture” published byUsenix, Winter '91.
Article by Khanna et al., entitled “Realtime Scheduling in SunOS” published byUsenix, Winter '92.

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

Apparatus and method for high performance implementation of... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Apparatus and method for high performance implementation of..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Apparatus and method for high performance implementation of... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2550368

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