Re: Relocating application architecture and compiler support

From: Anne & Lynn Wheeler (lynn_at_garlic.com)
Date: 01/22/05


Date: Fri, 21 Jan 2005 16:29:42 -0700

glen herrmannsfeldt <gah@ugcs.caltech.edu> writes:
> But there is one thing that OS/360 does easily that is hard in other
> systems, which is what the LINK macro does. To take another
> program, load it into the same address space, execute it (with the
> original still addressable) and then return.
>
> I remember TOPS-10, where each program was loaded with virtual
> origin of 0. There was a system for sending files to the print
> queue which involved writing the entire address space to disk,
> running the QUEUE program with an option to execute a program when
> it was done, which would then reload and continue on.
>
> Any system with a fixed load point can't have two programs in the
> same address space at the same time.
>
> In the OS/360 case, besides doing LINK, many routines, especially
> access methods, were directly addressable somewhere in system space.
> Now, there are systems which reserve parts of the address space for
> system and parts for user, but that doesn't help LINK.

basically you could do link-like function in both os/360 as well as
tss/360. the primary difference was that os/360 had to read the
executable file image into memory and then run the address constant
swizzle against that were randomly sprinkled thruout the execution
image.

in the tss/360 scenario ... you just had to memory map some portion of
the virtual address space to the executable file image on disk (and
let the paging operation fetch the pages as needed) ... and all the
address constants needing swizzling were kept in a different
structure.

os/360 had a single real address space orientation so that it was
possible for multiple different processes to share the same executable
image because they all shared the same (single, real) address space.

tss/360 had multiple virtual address spaces .... and for multiple
different processes to share the same exact executable copy ... it
relied on the shared segment infrastructure.

in the os/360 scenario, all program loading was to a unique real
address ... since all processes shared the same, single real address
space (there was no chance for program address conflict ... since each
program could be assigned a unique real address as it was read into
memory).

in the tss/360 scenario, different processes might load & populate
their own virtual address space in difference sequences
... potentially creating address assignment conflict if there was a
requirement that each application have identically assigned virtual
address across all virtual address spaces.

in the os/360 scenario ... if you had two different processes,
the first LINKed app1, then app2, then app3, and finally app4 and
the second LINKed app2, then app4, then app3, and finally app1 ...
it all fell out in the wash since there was a single global
real address space.

a difference between the os/360 and tss/360 operation, is that os/360
allowed all the address constants (needing position location
swizzling) to be randomly sprinkled thruout the executable
image. tss/360 collected address constants (needing swizzling) into a
different structure.

both could do dynamic process location specific binding at program
load time. however, in the tss/360 scenario ... different processes
could share the same exact executable image at different address
locations ... because the executable image was a separate structure
from the structure of address constants (that required location
specific swizzling).

-- 
Anne & Lynn Wheeler | http://www.garlic.com/~lynn/


Relevant Pages

  • Re: assigning DB-user to server role
    ... Perhaps if you used profiler while you recreate your scenario in EM (create ... the roles, grant permissions to the role, add users to role, try to execute ...
    (microsoft.public.sqlserver.security)
  • Executing Macro Help
    ... I've got this combo box set up so that when I pick one scenario, ... executes a macro which changes a few values on the current sheet. ... do is change the scenario and execute the macro to change ONLY the ...
    (microsoft.public.excel.programming)
  • Re: Executing Macro Help
    ... when you execute the code on the combobox change, activate the sheet you want ... I've got this combo box set up so that when I pick one scenario, ... I'm in Profits worksheet and choose best scenario from ...
    (microsoft.public.excel.programming)
  • Back button problem
    ... Hi we have a following simple scenario in our application: ... we execute Server.Transfer and transfer the user to the second page. ... It's works great if compression in IIS is disabled but if compression is ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: To clear a listbox
    ... >its value property during the load. ... I have no code in my Form_Load to fire the option button. ... If there are multiple option buttons and all are originally False, ... of the buttons will change to True and its OptionX_Click will execute ...
    (microsoft.public.vb.controls)