Re: Relocating application architecture and compiler support
From: Stephen Fuld (s.fuld_at_PleaseRemove.att.net)
Date: 01/23/05
- Next message: Maxim Kovgan: "Re: price vs performance/features"
- Previous message: Jonathan Kirwan: "Re: So... What are the alternatives? Was: I don't use an RTOS because..."
- In reply to: Nick Maclaren: "Re: Relocating application architecture and compiler support"
- Next in thread: glen herrmannsfeldt: "Re: Relocating application architecture and compiler support"
- Reply: glen herrmannsfeldt: "Re: Relocating application architecture and compiler support"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Next message: Maxim Kovgan: "Re: price vs performance/features"
- Previous message: Jonathan Kirwan: "Re: So... What are the alternatives? Was: I don't use an RTOS because..."
- In reply to: Nick Maclaren: "Re: Relocating application architecture and compiler support"
- Next in thread: glen herrmannsfeldt: "Re: Relocating application architecture and compiler support"
- Reply: glen herrmannsfeldt: "Re: Relocating application architecture and compiler support"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|