Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Stephen Fuld Newsgroups: comp.arch Subject: Re: Why I've Dropped In Date: Sat, 14 Jun 2025 20:34:37 -0700 Organization: A noiseless patient Spider Lines: 47 Message-ID: <102lf0c$maec$2@dont-email.me> References: <0c857b8347f07f3a0ca61c403d0a8711@www.novabbs.com> <8addb3f96901904511fc9350c43917ef@www.novabbs.com> <102b5qh$1q55a$2@dont-email.me> <48c03284118d9d68d6ecf3c11b64a76b@www.novabbs.com> <102cd09$23hcu$1@dont-email.me> <42cac84be6fb35b9e468cc174919bc4a@www.novabbs.com> <102eske$2nqdn$1@dont-email.me> <102g6b9$36ikc$1@dont-email.me> <102geum$38g45$1@dont-email.me> <102hfp6$3gg8a$1@dont-email.me> <102hnqs$3hv4m$3@dont-email.me> <102jk11$4rmg$3@dont-email.me> <102k8v4$9ep2$2@dont-email.me> <102ki8f$cf36$1@dont-email.me> <10bc6d62468e8f6bfbf2882d8b929941@www.novabbs.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sun, 15 Jun 2025 05:34:37 +0200 (CEST) Injection-Info: dont-email.me; posting-host="5cd7cd92607c5cf1740ee20c569c91c7"; logging-data="731596"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18cQi/X9OB5qAofCMbhAygchVIdlieeHYU=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:CBYw1ghDtP891idtg0Fq54BJ+nU= In-Reply-To: <10bc6d62468e8f6bfbf2882d8b929941@www.novabbs.com> Content-Language: en-US On 6/14/2025 2:49 PM, quadibloc wrote: > On Sat, 14 Jun 2025 21:26:10 +0000, quadibloc wrote: > >> On Sat, 14 Jun 2025 19:23:59 +0000, Stephen Fuld wrote: >> >>> That is precisely my point.  The mechanism that IBM chose effectively >>> *prevents* program relocation.  That is why I believe it was a mistake >>> to choose that mechanism. >> >> It prevents relocation of programs currently in use that are already in >> memory. > > Actually, to be more precise, it prevents doing this _in a manner that > is fully transparent to the programmer_. > > So IBM could have created a time-sharing operating system that ran on > models of the System/360 other than the model 67 with its Dynamic > Address Translation hardware as follows: > > Require that programs only use one set of static base registers for > their entire run; > > Require that programs describe the base registers they use in a standard > header; > > Require that programs set a flag when they have finished initializing > those base registers (and do so very quickly after being started). > > If those conditions are met, then a program in memory can indeed be > moved to somewhere else in memory, as the operating system will know > which base registers to adjust. > > Well, sort of. Such programs would not be able to use flat addresses to > pass pointers between routines, because they would not be valid between > relocations. A workaround for this issue may be possible, requiring > changes to calling conventions; for example, all routines in a program > might need to share a common area for data values, and always use the > same base register to point to it. > > So you would have special time-sharing versions of all the compilers. And this is better than what I proposed, and what other vendors did?????? -- - Stephen Fuld (e-mail address disguised to prevent spam)