0000000433f07816-dmarc-requ...@listserv.ua.edu (Paul Gilmartin) writes:
> Understood.  When I first explored the S/370 instruction set, it
> appeared to me that the S/360 designers had anticipated support
> for location-independent code (as envisioned by Lynn Wheeler),
> but software never realized that support.

tss/360 basically collected address constants into object/pool separate
from the executable image ... which could be virtual address space
specific ... a pointer to this (separate) area was passed to a program
in a register.

for adcons in the same executable image ... I would play displacement
games that would be resolved at the time the original image is created
(by link). Rather than program containing "absolute" adcon ... it
contains a displacement. assumption is the base register is the start of
the module ... then adcon is something like

        extrn  program
pdisp   dc al4(program-base) 

then

        l  r15,program
        ar r15,r12

works whether the displacement is positive or negative (standard os/360
& cms linker supports adcon arithmetic with external symbols).  then the
same executable image could appear at dynamically selected virtual
address w/o affecting the contents of the executable image (and the same
exact executable image can appear concurrently at different addresses in
different virtual address spaces)

there is also some loading performance improvement because the image
doesn't have to be prefetched in order that all the (os/360) relocatable
address constants swizzled to the loaded location (just do the memory
map to the potentially shared filesystem object).

the issue then is for addresses between different executable images
where the displacement could be different for different virtual address
spaces. that needs operating system convention with pool of pointers
outside the executable image (with a passed pointer to the
address/displacement pool which are virtual address space specific).

past posts mentioning pain dealing with os/360 paradigm technology and
trying to make executable images location independent.
http://www.garlic.com/~lynn/submain.html#adcon

one of the optimization trade-offs is for first time (or non-shared)
mapping, is the object simply page faulted one 4k page at a time ...  or
is some large amount (or all) prefetched asynchronously with starting
execution. I did a lot of hueristic dynamic adaptive stuff associated
with loading paged mapped object (shared or not-shared). then later page
faults could also result in single 4k page fetch ... or multiple
adjacent 4k page fetches in single i/o operation (possibly along with
some combination of synchronous and asynchronous operation).

-- 
virtualization experience starting Jan1968, online at home since Mar1970

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to