CA2061117A1 - Apparatus and method for distributed program stack - Google Patents

Apparatus and method for distributed program stack

Info

Publication number
CA2061117A1
CA2061117A1 CA2061117A CA2061117A CA2061117A1 CA 2061117 A1 CA2061117 A1 CA 2061117A1 CA 2061117 A CA2061117 A CA 2061117A CA 2061117 A CA2061117 A CA 2061117A CA 2061117 A1 CA2061117 A1 CA 2061117A1
Authority
CA
Canada
Prior art keywords
processor
procedure
local
call
stub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CA2061117A
Other languages
French (fr)
Other versions
CA2061117C (en
Inventor
Neta J. Amit
John M. Marberg
Uri Shani
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CA2061117A1 publication Critical patent/CA2061117A1/en
Application granted granted Critical
Publication of CA2061117C publication Critical patent/CA2061117C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Abstract

A multi-processor computer system executes a single-thread program having a plurality of callable procedures in program modules. The local memory of each processor contains a program stack, the object code of each module that executes on that processor, and an agent object and data structures containing linkage information. In addition, the local memory contains a c-stub module for each procedure executable on a different processor, and a s-stub module for each procedure in local memory that can be called by a procedure executing on another processor. When a procedure P1 executing on processor A wishes to call a procedure P2 which executes in processor B, it issues a local call to P2's c-stub in processor A's local memory.
The P2 c-stub then invokes the agent process in processor A, which communicates with a corresponding agent process in processor B. The agent process in processor B causes a P2's s-stub in processor B to issue a local call to procedure P2.
The return from a procedure follows the same path in reverse. Each processor independently maintains its own version of the program stack, with stack entries referencing the locally executable procedures, local stubs, or local agents. With each local call or return, the program stack for that processor is updated appropriately. Because each processor independently maintains its own stack, remote procedure calls are not constrained by the past calling history of a process. A procedure P1 in processor A may call a procedure P2 in processor B, which may in turn call another procedure P3 in processor A. It is therefore possible for a conventional single-thread program to be converted to operation on a multi-processor system without any significant modification to the source code.
CA002061117A 1991-12-02 1992-02-12 Apparatus and method for distributed program stack Expired - Fee Related CA2061117C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US80114991A 1991-12-02 1991-12-02
US801,149 1991-12-02

Publications (2)

Publication Number Publication Date
CA2061117A1 true CA2061117A1 (en) 1993-06-03
CA2061117C CA2061117C (en) 1998-09-29

Family

ID=25180329

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002061117A Expired - Fee Related CA2061117C (en) 1991-12-02 1992-02-12 Apparatus and method for distributed program stack

Country Status (2)

Country Link
US (1) US5659701A (en)
CA (1) CA2061117C (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0509946A2 (en) * 1991-04-16 1992-10-21 International Business Machines Corporation Apparatus and method for implementing a distributed program stack
US5659701A (en) * 1991-12-02 1997-08-19 International Business Machines Corporation Apparatus and method for distributed program stack
US6085178A (en) * 1997-03-21 2000-07-04 International Business Machines Corporation Apparatus and method for communicating between an intelligent agent and client computer process using disguised messages
US6192354B1 (en) 1997-03-21 2001-02-20 International Business Machines Corporation Apparatus and method for optimizing the performance of computer tasks using multiple intelligent agents having varied degrees of domain knowledge
US6401080B1 (en) 1997-03-21 2002-06-04 International Business Machines Corporation Intelligent agent with negotiation capability and method of negotiation therewith
US7386522B1 (en) 1997-03-21 2008-06-10 International Business Machines Corporation Optimizing the performance of computer tasks using intelligent agent with multiple program modules having varied degrees of domain knowledge

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794047A (en) * 1994-09-29 1998-08-11 International Business Machines Corporation Method of walking-up a call stack for a client/server program that uses remote procedure call
JP3622313B2 (en) * 1996-01-29 2005-02-23 株式会社日立製作所 Document management system
JPH1040223A (en) * 1996-06-17 1998-02-13 Internatl Business Mach Corp <Ibm> Optimization method for recognition of set communication in distributed parallel system
US6016516A (en) * 1996-08-07 2000-01-18 Fuji Xerox Co. Ltd. Remote procedure processing device used by at least two linked computer systems
US6192418B1 (en) * 1997-06-25 2001-02-20 Unisys Corp. System and method for performing external procedure calls from a client program to a server program while both are operating in a heterogenous computer
US6289391B1 (en) * 1997-06-25 2001-09-11 Unisys Corp. System and method for performing external procedure calls from a server program to a client program while both are running in a heterogeneous computer
US6104873A (en) * 1998-02-03 2000-08-15 International Business Machines Corporation Use of language instructions and functions across multiple processing sub-environments
US5995752A (en) * 1998-02-03 1999-11-30 International Business Machines Corporation Use of language instructions and functions across multiple processing sub-environments
US6167430A (en) * 1998-05-12 2000-12-26 Unisys Corporation Multicomputer with distributed directory and operating system
JP3807588B2 (en) * 1999-08-12 2006-08-09 富士通株式会社 Multi-thread processing apparatus, processing method, and computer-readable recording medium storing multi-thread program
US7010573B1 (en) * 2000-05-09 2006-03-07 Sun Microsystems, Inc. Message gates using a shared transport in a distributed computing environment
US7577834B1 (en) * 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US7530070B1 (en) * 2000-08-10 2009-05-05 Agere Systems Inc. Dynamically configurable architecture for mixed data processing
GB0103119D0 (en) * 2001-02-08 2001-03-28 Comodo Technology Dev Ltd Improvements in and relating to software modification
US7028313B2 (en) * 2001-03-28 2006-04-11 International Business Machines Corporation Method for transmitting function parameters to a remote node for execution of the function thereon
US6986147B2 (en) 2001-03-28 2006-01-10 International Business Machines Corporation Method for transparent, location-independent, remote procedure calls in a heterogeneous network environment
US6865607B1 (en) * 2001-06-28 2005-03-08 Microsoft Corp. Pluggable channels
US7103889B2 (en) * 2002-07-23 2006-09-05 Sun Microsystems, Inc. Method, system, and article of manufacture for agent processing
US7461067B2 (en) * 2002-09-13 2008-12-02 Motricity, Inc. System for supporting production, management and delivery of media content for wireless devices
US7200840B2 (en) * 2002-10-24 2007-04-03 International Business Machines Corporation Method and apparatus for enabling access to global data by a plurality of codes in an integrated executable for a heterogeneous architecture
US7243333B2 (en) * 2002-10-24 2007-07-10 International Business Machines Corporation Method and apparatus for creating and executing integrated executables in a heterogeneous architecture
US7222332B2 (en) * 2002-10-24 2007-05-22 International Business Machines Corporation Method and apparatus for overlay management within an integrated executable for a heterogeneous architecture
US7213123B2 (en) * 2002-10-24 2007-05-01 International Business Machines Corporation Method and apparatus for mapping debugging information when debugging integrated executables in a heterogeneous architecture
US7225431B2 (en) * 2002-10-24 2007-05-29 International Business Machines Corporation Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture
US6907475B2 (en) * 2003-03-25 2005-06-14 Matsushita Electric Industrial Co., Ltd. Alternative implementation of vendor unique commands
CA2744925C (en) * 2003-04-08 2014-06-03 Grant L. Hutchison Method and system for executing a database query
JP4028444B2 (en) * 2003-06-27 2007-12-26 株式会社東芝 Scheduling method and real-time processing system
US7596790B2 (en) * 2003-08-29 2009-09-29 Intel Corporation Allocating computing resources in a distributed environment
US20050171874A1 (en) * 2004-01-30 2005-08-04 Klaus Plate System and method for apportioning commitment updates
US8782024B2 (en) * 2004-02-12 2014-07-15 International Business Machines Corporation Managing the sharing of logical resources among separate partitions of a logically partitioned computer system
US7797505B2 (en) * 2005-04-25 2010-09-14 Hewlett-Packard Development Company, L.P. Program stack handling
US8418132B2 (en) * 2005-04-29 2013-04-09 Microsoft Corporation Application description language
US8132148B2 (en) 2005-04-29 2012-03-06 Microsoft Corporation XML application framework
CN101167052B (en) * 2005-04-29 2012-05-16 微软公司 Application framework phasing model
US20060245096A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation Application framework phasing model
US7886269B2 (en) * 2005-04-29 2011-02-08 Microsoft Corporation XML application framework
US8275793B2 (en) * 2005-04-29 2012-09-25 Microsoft Corporation Transaction transforms
US7581225B2 (en) * 2005-04-29 2009-08-25 Microsoft Corporation Multithreading with concurrency domains
EP1993254A1 (en) * 2007-05-16 2008-11-19 Doga Armangil A method and a system for the composition of services
US20100011383A1 (en) * 2008-07-12 2010-01-14 Sahul Hameed Abdul Kader Jailani Method for file handling in network switch stacking
US9092281B2 (en) * 2012-10-02 2015-07-28 Qualcomm Incorporated Fast remote procedure call
US8869176B2 (en) 2012-11-09 2014-10-21 Qualcomm Incorporated Exposing host operating system services to an auxillary processor
US9542248B2 (en) 2015-03-24 2017-01-10 International Business Machines Corporation Dispatching function calls across accelerator devices
EP3343267B1 (en) 2016-12-30 2024-01-24 Magic Leap, Inc. Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light
US10578870B2 (en) 2017-07-26 2020-03-03 Magic Leap, Inc. Exit pupil expander
US10755676B2 (en) 2018-03-15 2020-08-25 Magic Leap, Inc. Image correction due to deformation of components of a viewing device
CN112585581A (en) * 2018-07-10 2021-03-30 奇跃公司 Thread weaving for cross-instruction set architecture procedure calls

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3548384A (en) * 1967-10-02 1970-12-15 Burroughs Corp Procedure entry for a data processor employing a stack
GB2023314B (en) * 1978-06-15 1982-10-06 Ibm Digital data processing systems
US4500960A (en) * 1982-06-28 1985-02-19 At&T Bell Laboratories Geographically distributed multiprocessor time-shared communication processing system
US4530051A (en) * 1982-09-10 1985-07-16 At&T Bell Laboratories Program process execution in a distributed multiprocessor system
US4564903A (en) * 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system
US4882674A (en) * 1985-03-05 1989-11-21 Wang Laboratories, Inc. Apparatus and method for control of one computer system by another computer system
US4901231A (en) * 1986-12-22 1990-02-13 American Telephone And Telegraph Company Extended process for a multiprocessor system
US5089954A (en) * 1988-08-08 1992-02-18 Bell Communications Research, Inc. Method for handling conversational transactions in a distributed processing environment
US4949255A (en) * 1988-09-07 1990-08-14 International Business Machines Corp. Message interface and method for recursive calling between interpretive and compiled computer processes
US4924384A (en) * 1988-09-21 1990-05-08 International Business Machines Corporation Method for controlling the peer-to-peer processing of a distributed application across a synchronous request/response interface using push-down stack automata
US5247676A (en) * 1989-06-29 1993-09-21 Digital Equipment Corporation RPC based computer system using transparent callback and associated method
CA2061117C (en) * 1991-12-02 1998-09-29 Neta J. Amit Apparatus and method for distributed program stack

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0509946A2 (en) * 1991-04-16 1992-10-21 International Business Machines Corporation Apparatus and method for implementing a distributed program stack
EP0509946A3 (en) * 1991-04-17 1994-11-30 Ibm Apparatus and method for implementing a distributed program stack
US5659701A (en) * 1991-12-02 1997-08-19 International Business Machines Corporation Apparatus and method for distributed program stack
US6085178A (en) * 1997-03-21 2000-07-04 International Business Machines Corporation Apparatus and method for communicating between an intelligent agent and client computer process using disguised messages
US6192354B1 (en) 1997-03-21 2001-02-20 International Business Machines Corporation Apparatus and method for optimizing the performance of computer tasks using multiple intelligent agents having varied degrees of domain knowledge
US6401080B1 (en) 1997-03-21 2002-06-04 International Business Machines Corporation Intelligent agent with negotiation capability and method of negotiation therewith
US7386522B1 (en) 1997-03-21 2008-06-10 International Business Machines Corporation Optimizing the performance of computer tasks using intelligent agent with multiple program modules having varied degrees of domain knowledge
US7908225B1 (en) 1997-03-21 2011-03-15 International Business Machines Corporation Intelligent agent with negotiation capability and method of negotiation therewith

Also Published As

Publication number Publication date
US5659701A (en) 1997-08-19
CA2061117C (en) 1998-09-29

Similar Documents

Publication Publication Date Title
CA2061117A1 (en) Apparatus and method for distributed program stack
CA2145844A1 (en) A System for Operating Application Software in a Safety Critical Environment
EP0377991A3 (en) Data processing systems
EP0843254A3 (en) Integrated digital signal processor/general purpose CPU with shared internal memory
CA2123447A1 (en) Scalable System Interrupt Structure for a Multiprocessing System
CA2152041A1 (en) An Apparatus for Executing a Plurality of Program Segments Having Different Object Code Types in a Single Program or Processor Environment
WO1987000316A3 (en) Fault tolerant data processing system
TW345649B (en) Method for executing different sets of instructions that cause a processor to perform different data type operations
DE69224775T2 (en) Computer system administrator
ATE209794T1 (en) SENDING COMMANDS TO MULTIPLE PROCESSING UNITS
CA2093451A1 (en) Method and Mechanism for Calling 32-Bit Functions from 16-Bit Functions
EP0618534A3 (en) Fault-tolerant transaction-oriented data processing.
EP0841648A3 (en) Vehicle driving support system and vehicle therewith
DE59206826D1 (en) Process control system
BR9403859A (en) Information processing systems and method of operating them
EP0550287A3 (en) Computer system having high performance processing for program status word (psw) key-setting instructions
WO2000014647A3 (en) Method and system for minimizing effect of replacing programming languages in telephony systems
JPS57206974A (en) Shared memory control circuit
EP0319280A3 (en) Apparatus and system of performing distributed processing based on hierarchy structure
EP0762737A3 (en) Improvements in display systems
CA2332247A1 (en) Remote computing
JPS57174724A (en) Error countermeasure controlling system for transfer data between computer devices
EP0587089A3 (en) Data processing system for executing altered program.
JPS57114966A (en) Computer system
JPS6478360A (en) Information processor

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed