Re: Relocating application architecture and compiler support

From: Stephen Fuld (s.fuld_at_PleaseRemove.att.net)
Date: 01/23/05


Date: Sun, 23 Jan 2005 07:37:55 GMT


"Nick Maclaren" <nmm1@cus.cam.ac.uk> wrote in message
news:cstldn$bug$1@gemini.csx.cam.ac.uk...
> In article <CAgId.11140$8u5.9939@bgtnsc04-news.ops.worldnet.att.net>,
> Stephen Fuld <s.fuld@PleaseRemove.att.net> wrote:
>>"glen herrmannsfeldt" <gah@ugcs.caltech.edu> wrote in message
>>news:css1bm$s75$1@gnus01.u.washington.edu...
>>> Stephen Fuld wrote:
>>>
>>>> Certainly on S/360, but not on other then contemporary architectures.
>>>> All that is needed is a protected "system base regiser" which is part
>>>> of
>>>> the program's context, to which the hardware adds all program
>>>> addresses.
>>>> Then all programs can start at zero and go to whatever, and all that is
>>>> needed if the OS needs to move a program in mid execution is to change
>>>> the base register.
>
> Eh? You are confusing two things. If that refers to physical memory,
> then that is just virtual memory support. Not a problem.

Well, it wasn't virtual memory in the conventional sense. There was no
paging, and you couldn't define a single program larger than the physical
memory (without doing the link type stuff). In a sense, it was "inverted"
virtual memory, or perhaps "virtual addresses" in that wheras in virtual
memory you could have addresses larger than physical memory that were mapped
to the same physical address at different times, in this scheme, you had
multiple pieces of code with the same "virtual" address mapped to the same
physical address at different times.

> If it refers to virtual memory, it won't work for any program that
> takes the address of code and needs to compare it with others. In C,
> for example, you can take the address of functions and manipulate them
> ad lib. You can't relocate them within virtual memory thereafter.

Remember, the base register was invisible to the program. If a program
loaded an address into a register, or passed it as an argument, it was
always a program relative address. If the address was used to address
physical memory (either via a load/store or a jump/call) the hardware added
the base register contents to it at that time.

-- 
 - Stephen Fuld
   e-mail address disguised to prevent spam 


Relevant Pages

  • Re: [Lit.] Buffer overruns
    ... > floating point support or a memory expansion option. ... had virtual memory support grafted on. ... > where the modified instruction was fetched from. ... vis-a-vis the official coporate strategic operating system TSS/360. ...
    (sci.crypt)
  • Re: virtual memory
    ... you can have virtual memory ... that software transparent swapping requires virtual memory. ... (since swapping it into physical memory is all or nothing). ...
    (comp.arch.embedded)
  • Re: scf /scannow & INFO in Event Viewer
    ... I know all about restore to ... pagefile to a low end of 2, ... The memory used by the user's ... Virtual Memory: Total paging file size for all drives is 2046MB ...
    (microsoft.public.windowsxp.general)
  • Re: Why is VS 2005 so slow?
    ... You are confusing physical memory with virtual memory. ... Note also that the number of apps you can run at the same time doesn't change. ...
    (microsoft.public.vc.mfc)
  • Re: Do I need a Page File?
    ... Intel designes the virtual memory. ... >> unlimited amounts of RAM, we wouldn't even NEED a paging file. ...
    (microsoft.public.windowsxp.general)