[comp.sys.ibm.pc] comparison: 286 and 386 machines?

burkie@uxe.cso.uiuc.edu (09/22/89)

I had some questions regarding 286 and 386 machines:
I remember that most ibm machines I ever saw always had
oblong pixels i.e. not square.  On the displays you get now
(esp with resolutions of 640*480), are the pixels
square? What do VGA boards do? Do they have a graphics chip 
to do fast line drawings etc.?
Is the 286 a 32 bit machine like the 386?
How much faster is a 386 compared to a 286 machine at the same MHz
Is the main difference in functionality that the 386 can have memory 
management(?) Does DOS use it or do you have to get OS/2, unix or 
some other operating system to use that? Can both machines do 
multitasking? Without virtual memory is there a problem?

If people can shed some light on these questions, I would
be very grateful.

-Salman
burkie@uxe.cso.uiuc.edu

cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) (09/24/89)

In article <110200007@uxe.cso.uiuc.edu> burkie@uxe.cso.uiuc.edu writes:
$I had some questions regarding 286 and 386 machines:
$I remember that most ibm machines I ever saw always had
$oblong pixels i.e. not square.  On the displays you get now
$(esp with resolutions of 640*480), are the pixels
$square? What do VGA boards do? Do they have a graphics chip 
$to do fast line drawings etc.?

   I believe that this is a function of the monitor rather than of the
display card; however, most monitors will be similar.  EGA monitors are
generally square-pixeled (I think); I imagine that VGAs are similar.

   I don't think VGA boards have a graphics chip to do line drawings
etc.; this is still handled by your program (I think - I've never pro-
grammed a VGA, though)

$Is the 286 a 32 bit machine like the 386?

   No.  The 286 is a 16-bit chip.

$How much faster is a 386 compared to a 286 machine at the same MHz

   I'd guess around a factor of 2 (just a blind guess, though) ... of course,
the speed difference will vary depending on what you're doing.

$Is the main difference in functionality that the 386 can have memory 
$management(?) Does DOS use it or do you have to get OS/2, unix or 
$some other operating system to use that? Can both machines do 
$multitasking? Without virtual memory is there a problem?

   There are lots of differences between the 286 and the 386.  The 286
implements memory management and support for multi-tasking; the 386
takes that farther and adds virtual memory.

   As far as DOS is concerned, you are running it on an 8086 (or 8088 -
the two are identical except that the 86 has a 16-bit data bus and the
88 has an 8-bit bus, and the instruction queues are of different sizes).
It knows nothing about extended memory (the only exception being that
VDISK.SYS/RAMDRIVE.SYS will use it) and, until DOS 4, didn't know anything
about EMS, either.  DOS has no support for multi-tasking, memory protection
or virtual memory.

   As far as OS/2 is concerned, you are running it on a 286.  You get all
of the nifty features of the 286, but none of the 386 features if you're
running it on a 386.  (Microsoft is apparently working on a version for the
386 - I don't have any details; if you're interested, post a note saying so
and I'm sure someone will reply).

   I'm not familiar with the various flavours of Unix available for PCs;
all I know is that some are written specifically for the 386 and, logically,
would be expected to take advantage of its capabilities.

   You don't need VM for multitasking.  You can do multitasking on an
8088/8086 if you like; it's just that your OS has to do everything.  It's
a lot easier on the 286, with its built-in support for task switching and
memory protection (although these help a lot, they're not required -
right, Fred?  :-).  On the 286, as long as your tasks and OS don't need
more than 16 Mb of memory, you can multi-task just fine.

   The 386 gives you hardware support for VM, making it much easier to
use large amounts of memory.  One other nifty feature that the 386 has that
isn't present on the 286 is the ability to multi-task jobs in 8086 mode.
On the 286, if you want multi-tasking, you basically have to run your
tasks in 286 mode (you can do otherwise, but you'll have to do it with
very little support from the processor); you may know that OS/2 will
only allow you to run one DOS task at a time.  This restriction comes
from the 286.  The 386, on the other hand, allows you to set up multiple
"virtual 8086"s, each one running a program that thinks it's got the
complete attention of an 8086, while it's actually being multi-tasked.

   I hope this answers some of your questions.  Feel free to write back
if you have other questions to ask.
-- 
Stephen M. Dunn                         cs4g6ag@maccs.dcss.mcmaster.ca
**********************************************************************
       <std_disclaimer.h> = "\nI'm only an undergraduate!!!\n";
"VM is like an orgasm:  the less you have to fake, the better." - S.C.