[comp.sys.amiga] Return of the processor wars, part

rob@prism.TMC.COM (01/17/90)

peterson@FSUCS.CS.FSU.EDU writes:  
  >In article <1652@bnr-rsc.UUCP>:
>| In article <90010.202827YTHPRGDB@MTUS5.BITNET> YTHPRGDB@MTU5.BITNET writes:
>| >Granted, Intel did a very nice thing in giving us the "virtual 8086"
>| >mode to allow multiple 8086-based programs (DOS-based?) to execute
>| >concurrently.  This seems to be an excellent idea, but why then
>| >does OS/2 only allow one DOS task (in the compatibility box)?
>| 
>| I assume this is a limitation of OS/2 that is designed to force users
>| to migrate to "true" OS/2 applications.

>DISCLAIMER:  I know virutally nothing about OS/2.  What follows is
>	     speculation only.

>More likely, this limitation is due to the inability of DOS to multitask
>(without packages such as ConcurrentDOS and DoubleDOS).  DOS does not have
>any way to lock resources to individual processes the way that a
>multitasking OS does.  This paves the way to race conditions and all sorts
>of classical Op sys problems.

   This has little or nothing to do with the Amiga, but in answer to
the above questions and suppositions...

   The reason that OS/2 supports only 1 DOS compatibility box is fairly
simple. OS/2 is currently an 80286 specific OS (it runs on the 386, but
takes virtually no advantage of the 386). The Virtual 86 mode, which
allows multitasking of DOS programs (even ones that are ill-behaved) is
not present on the 80286, so OS/2 can't use it. The best it can manage
is to run a single DOS application along with native OS/2 applications.

   As was noted, this is risky. A DOS program running in the compatibility 
box can easily crash the entire system. Under the 386/486 Virtual 86 mode, 
the OS can guard against that, since Virtual 86 mode allows traps on IO 
access, interrupts, etc.

   The forthcoming 386 version of OS/2 will allow multitasking of DOS
programs using the Virtual 86 mode, as well as multitasking of 286 and
386 protected mode programs. It's becoming clearer every day that OS/2
for the 286 was simply a bad idea, given the limitations of the 80286.
Unfortunately, the huge 80286 installed base, plus IBM's desire to
protect its minicomputer line by delaying a 386 specific OS/2, made it
necessary.

   Many programs use the Virtual 86 mode to multitask DOS applications
already (Desqview 386, Windows 386, VM/386, among others).