Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing
Reexamination Certificate
2001-05-08
2004-06-08
Courtenay, III, St. John (Department: 2126)
Electrical computers and digital processing systems: multicomput
Computer-to-computer data routing
Least weight routing
C709S241000, C370S412000
Reexamination Certificate
active
06748453
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to the field for software design; and, more particularly, to distributed application in an application environment for supporting portable, embedded, concurrent, and/or real-time applications.
2. Description of the Related Art
The term “application” is commonly used to refer to the objective or problem for which the software, or “application program,” is a solution. The form of the solution—the application program—is dependent, in part, on the configuration of the hardware on which the software is executed and, in part, on the other programs that may be executing in concert with the application program.
An application program is typically translated from an instruction set derived from one of several well-known programming languages to an instruction set closely reflecting the capabilities of processor executing the application program. This translation is accomplished by programs generally know as “compilers,” “assemblers” or “interpreters.” These programs translate the application program's original instructions to a set of instruction typically know as “machine code” for which there is a one-to-one correspondence between machine code instructions and the unitary operations the machine (or processor) is able to perform. Typically, machine code instructions are dependent on the machine's central processing unit (or CPU). The operation of these and similar programs are well known to those of ordinary skill in the art.
Application programs are frequently executed simultaneously with other application programs, sharing (and sometimes competing for) the resources of the host hardware.
Application programs must also frequently share the resources of the host hardware with “interrupts service routines” (ISR). These ISRs are typically short program segments that interrupt the normal program instruction sequence and execute, substantially immediately, in response to a hardware signal (an “interrupt”) to the CPU.
Application programs may be invoked by, or may invoke, the services of other sets of programs running on the host that are collectively know as an “operating system.” Operating system programs are typically responsible for controlling the allocation of the host's resources, including access to the host machine's data stores, central processing unit, and input/output devices. One aspect of controlling the allocation of a host's resources typically involves insuring that no two applications, ISRs, or portions of the same application try to control a resource at the same time. A number of techniques for preventing this are well know in the art, including semaphores, counting semaphores, mutexes, signals, and critical sections. A critical section is a portion of a program that, once started, is uninterruptible and executes continuously without allowing other programs to run until the critical section has ended.
Application software is executed within some “host environment,” defined collectively by the host machine's hardware (including, possibly, application-specific support hardware such as an application-specific integrated circuit or “ASIC”) and operating system.
Commonly, commercial application software vendors are required to adapt, or “port,” their application programs to run in a multiple heterogeneous host environments. These environments may differ in their CPU's, choice of operating systems, and application-specific hardware. In order to port an application program from one host environment to another, it is typically necessary to account for any or all of these differences.
The tradition approach to porting applications is to write the application program in a “high-level language” that hopefully can be recompiled to generate machine code that can run within any of the prospective processors. While this “traditional approach” solves the portability problem at the machine code level, it is only partly addresses the application portability problem. It is also necessary to account for differences in the host environment's operating system and application-specific support hardware. For example, each operating system defines a unique application programming interface (“API”) which application programs use to access the operating systems services. Because these APIs are unique, portions of the application program having access to the operating system's API must be rewritten when the application program is ported to a new operating system. In addition, accounting differences in application-specific support hardware (circuits that are able to perform a portions of the application's function that otherwise have to be performed in software) also may require that some portion of the application software be rewritten.
A problem with the traditional porting method is that this method requires that at least some portion of the application program be rewritten. This is a potentially costly and error-prone process. Because there is a likelihood of introducing unintentional errors whenever the application program is altered, this method mandates that the application developer bare the additional expense of re-testing the application after the indicated changes are complete.
More significantly, and despite the availability of a number of commercially operating systems, most embedded applications are deployed today are in host environments that supply no operating system services. Thus, for application portability, a means must be provided to ensure application software can operate correctly isolated from the vagaries of its host environment.
SUMMARY OF THE INVENTION
Distributed applications in a portable thread environment are disclosed. In one embodiment, a method comprises receiving a message from a first PTE at a second PTE, wherein the message contains a destination address; determining if the message is intended for the second PTE using the PTE destination address; routing the message to a third PTE if the message is not intended for the second PTE; and executing threads associated with the message in the second PTE if the message is intended for the second PTE.
REFERENCES:
patent: 5784615 (1998-07-01), Lipe et al.
patent: 5881269 (1999-03-01), Dobbelstein
patent: 5887168 (1999-03-01), Bahls et al.
patent: 6385658 (2002-05-01), Harter et al.
patent: 6385659 (2002-05-01), Tuel, Jr.
patent: 6421701 (2002-07-01), Elnozahy
patent: 6493745 (2002-12-01), Cherian
patent: 6631394 (2003-10-01), Ronkka et al.
Richter, Jeffrey, et al., , “How the Window/Application Lives and Dies”, “Windows 95: A Developer's Guide”, pp(4), 1995.*
International Search Report—PCT/US01/14932, Feb. 12, 2002.
Robert G. Brown: “Egineering a Beowulf-style Compute Cluster”, Internet Document, Mar. 28, 2000, XP002186757 Durham, États-Unis d'Amérique p. 63, line 31-p. 64, line 8.
Von Eicken T et al: “Active Messages: A Mechanism for Integrated Communication and Computation”, Proceedings of the Annual International Symposium on Computer Architecture. Gold Coast, Australia, May 19-21, 1992, New York, IEEE, US, vol. SYMP. 19, May 19, 1992, pp. 256-266, XP00032809.
The Debian Project: “Debian GNU/Linux 2.1.11 (Slink)”, Software Program, [Online] Aug. 28, 1999, Internet, URL:http://www.debian.org/releases/slink, 4 pages. [retrieved on Apr. 23, 2002].
“LinuxThreads Frequently Asked Questions (with answers)[For LinuxThreads version 0.8]”, Internet Document, Oct. 26, 1999, XP002138174 Internet, 18 pages.
“Linux Parallel Processing HOWTO”, Internet Document [Online] Jan. 5, 1998, XP002186758 Internet, 72 pages.
L.H. Geesink: “The Coordination of Distributed Active Messages in a Dynamic Network Topology”, The Computer Journal, Dec. 1991 (1991-120, XP000330331 Cambridge, Royaume-Uni, pp. 542-550.
Kumar Suresh Singamsetty
Law Hock
Baker & Botts L.L.P.
Courtenay III St. John
Microtune (San Diego) , Inc.
LandOfFree
Distributed applications in a portable thread environment does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Distributed applications in a portable thread environment, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Distributed applications in a portable thread environment will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3365667