Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!UOTTAWA.BITNET!451061 From: 451061@UOTTAWA.BITNET (Valentin Pepelea) Newsgroups: comp.sys.amiga.tech Subject: Re: MEMF_PHYSICAL? Message-ID: <8905222148.AA05879@jade.berkeley.edu> Date: 22 May 89 21:19:48 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 45 Dave Thomas QA writes in Message-ID: <6943@cbmvax.UUCP> > Memory protection is going to be very difficult to implement on the > Amiga without breaking 99% of the programs out there, but virtual memory > without protection can probably be done with much less impact on the > software base. Actually it is the other way around. Virtual memory will cause many programs to break because they mishandle critical sections using Forbid()/Disable(). Memory protection may cause them to break only if they try to access non MEMF_PUBLIC memory, but that is really easy to fix. If that happens, simply pop up a requester saying "Task xxx tried to write on memory belonging to task yyy". Then offer gadgets with the following functions: 1. Allow task xxx to overwrite any memory belonging to task yyy. 2. Allow task xxx to overwrite any memory. 3. Kill task xxx. 4. Guru. The nice thing about this solution is that it is fully backwardly compatible with old software. But here I have to point out that memory protection can not be implemented fully to allow recovery in 100% of cases. The problems we are faced with is how do we protect MEMF_CHIP memory, which may be modified by the coprocessors. And how about the BFFxxx address locations? These are examples, there is a little more to care about. I better not mention the lack of resource tracking and the problems therefore incurred. But a nice thing about implementing memory protection is that it can be implemented in stages, each offering better protection and recovery thqan the previous. Memory protection, unlike virtual memory, can only be done by CBM staff with full access to the OS sources. The memory allocation routines have to be modified to allot page-aligned blocks of memory, the loader has to be modified to place the segments properly in in the different types of memory, etc. One nice thing about memory protection implementation Valentin _________________________________________________________________________ "An operating system without Name: Valentin Pepelea virtual memory is an operating Phonet: (613) 231-7476 (New!) system without virtue." Bitnet: 451061@Uottawa.bitnet Usenet: Use cunyvm.cuny.edu gate - Ancient Inca Proverb Planet: 451061@acadvm1.UOttawa.CA