Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!cs.utexas.edu!uunet!zephyr.ens.tek.com!tektronix!sequent!norsk From: norsk@sequent.UUCP (Doug Thompson) Newsgroups: comp.os.minix Subject: Re: Minix virtual memory Message-ID: <24609@sequent.UUCP> Date: 9 Nov 89 17:35:49 GMT References: <670@crash.cts.com> <3745@altos86.Altos.COM> Reply-To: norsk@crg2.UUCP (Doug Thompson) Organization: Sequent Computer Systems, Inc. Lines: 40 In article <3745@altos86.Altos.COM> jerry@altos86.UUCP (Jerry Gardner) writes: >In article <670@crash.cts.com> jca@pnet01.cts.com (John C. Archambeau) writes: >>I would love to hear how you're going to do it. I've seen the memory >>management scheme of the 80286 in protected mode. It isn't pretty. On a 386 >>though, it would be child's play. If you're going to implement VM, you might > (deleted) > >Wait a minute here! It looks like it's time to clear up a big misunderstanding >many people have with respect to virtual memory on the 80286. We've all heard >all the talk of the 80286 being brain damaged and not being able to support >virtual memory, but this just isn't true. What is true is that the 80286 >does not support *paged* virtual memory as the 80386 does. The 80286 does, >however, support *segmented* virtual memory. Each 80286 segment descriptor >has a present bit and an accessed bit necessary to support virtual management >of segments. Granted, it doesn't have a 'dirty' bit to indicate that a segment >has been written to, but neither does the VAX architecture, and it has gotten >along fine without it. > >Virtual memory on the 80286 is certainly possible (OS/2 does it :-); it may >not be "child's play", but it certainly is possible. BTW, I disagree with >your assessment that implementing Minix VM on the 80386 would be child's play. > One of the problems with the 286 is that is CANNOT restart some of its instructions when it gets a segment fault. This is one of the reasons it is called brain-damaged. When a page or segment fault occurs, its upto the OS to bring in that page or segment and then restart the faulting instruction as if no fault occurred. The 386 was fixed in this regard, and does restart instructions after a fault. BTW upto 6 page faults can occur on one instruction on a 386, given instruction streams and operand fields. OS/2 (286) doesn't implement virtual memory, but rather swapping of threads. I do agree that 386 VM is NOT child's play. But it is easier than trying to get a 286 to go virtual when the Hardware doesn't support the theory. -- Douglas Thompson UUCP: ..{tektronix,ogcvax,uunet}!sequent!norsk Sequent Computer Systems Phone: (503) 526-5727 15450 SW Koll Parkway !"The scientist builds to learn;the engineer learns in Beaverton OR 97006 !order to build." Fred Brooks