Mail Archives: opendos/2000/12/04/15:57:29
----- Original Message -----
From: "Arkady V.Belousov" <ark AT belous DOT munic DOT msk DOT su>
To: <opendos AT delorie DOT com>
Sent: Saturday, December 02, 2000 3:01 AM
Subject: Re: BASIC & EMS (was: Optimizing CONFIG.SYS...)
> X-Comment-To: Patrick Moran
>
> Hi!
>
> 1-δΕΛ-2000 03:57 pmoran22 AT yahoo DOT com (Patrick Moran) wrote to
> <opendos AT delorie DOT com>:
>
> PM> Okay, what the hello is XMS meory?
>
> XMS is not a memory, but a specification, API to access extended
> memory for "real mode" programs (see below).
That is what I have been trying to say, it is extended memory and yes it is
real physical memory, it is not virtual memory. You can touch the chips,
feel them get warm and use that memory. XMS itself is a memory manager,
however the memory used through XMS is refered to as XMS memory.
> PM> Is it ENTEDED meory or just another stupid swap em out memory?
>
> XMS is not a memory, this is a specification how to exchange data
> between conventional memory (for direct access) and extended memory (to
> store data there).
It is a memory manager and XMS memory is real physical memory.
> PM> Extended memory does not swapping you are in
> PM> memory above 1MB when you use ectended memory and you are in protected
mode
> PM> when using extended memory.
>
> Please, don't mix extended memory itself and XMS API to access this
> memory. When program work in "native" 386+ mode (so called "protected
mode")
> then it have full access to all physical/virtual memory and there is no
> requirements to additional explicit APIs. But me talk not about "32bit"
> programs (286 CPU is not 32-bit but this not change the idea), we compare
> two specification to access additional memory (XMS and EMS) in "16bit"
> programs which works in "real" mode (or in "V86" mode) and have "native"
> access only to 1M of memory.
That is true, however, the 286 does have the same protected mode as does the
386. The 286 does not have the v86 protected mode. XMS itself is nother more
that just another memory manager, but XMS memory is real physical memory. It
is EMS that screws with extended memory, XMS just gives DOS the ability to
access it. You can load ramdrives, caches and many other things into
extended memory and use them without any memory manager. They can be loaded
directly into extended memory before EMM386, QEMM, HIMEM.SYS or any other
memory manager is loaded. I could do this on my 286 before DOS 5 ever came
out. I used DOS 3.3. I could also access extended memory on the 286 with DOS
5.0 with only 512K conventional memory installed and no UMB memory
capability at all. I could load DRDOS 6.0 into HMA and Windoze could run
using that extended memory. However, I had to use a special memory manager
for using HMA with DRDOS 6.0 because my board did not have one of the
chipsets that DRDOS needed to use it's HIMEM.SYS. I believe the memory
manager was called HRAM. It was a shareware product.
> This thread started when you prosecute EMS as very bad specification
in
> compare with XMS. I try to show you: EMS have _only one_ contra - it cuts
> frame for working from 1M addressing. This have nothing common with
Windows,
> Task manager, etc which are protected mode apps and don't require XMS and
> EMS to access extended memory for itself.
You got it right. That is what I have been saying all along. EMS sucks. I
don't need EMS to swap apps when using Task Manager. However, Task manager
can use more than 1MB for any application that needs it. EMS is limited to
32MB of RAM. XMS is not. Task manager can let a task use extended memory and
you can linit the amount that each task can access. Some apps such as Word
Perfect, will take all the available extended, expaned or whatever else you
have above 1MB unless you limit it. You can set this linit within WP, but
with Task manager, you can set that limit for all programs. Check out the
Task manager setup isn DRDOS. You will find an entry for max amount of
memory per app.
> PM> In Task manager, you are in protected mode and
> PM> you use EXTENDED memory. There is no swapping of memory, each task is
> PM> residing in a different area of memeory above 1MB and all you do when
you
> PM> swap windows or apps is to simply jump to that area of memory.
Everything is
> PM> running at the same time, it is multitasking, not the crap Gates came
out
> PM> with that merely swaps things around. Check out Linux sometime and see
what
> PM> is really, really TRUE MULITASKING.
>
> This is _not_ "true" multitasking. True multitasking arise only on
> multi-CPU systems, on one CPU you can have only time sharing system.
No, No, No! That is not true. You are mixing apples with oranges. Multi CPU
systems are Multiprocessing! Not multitasking, although they do multitasking
as well as multiprocessing. Linux can do both, in fact since the first beta
release of Linux (v1.0) you could use up to 4 CPUs for multiprocessing. I
have not checked recently, but at least two years ago they alpha kernels
were being developed to increase this to 16 CPUs as I recall. I know it was
more than 8. There is a super computer in Scottland or was it Ireland, I
believe it is in Scottland that uses 256 DEC alpha processors working in
parallel. I don't recall the OS that is used for that system. They claimed
it out performed the CRAY II super compuers and was far, far cheaper. (Last
I heard about the CRAY ii was they cost 16MIL.)
(Of course we now have the CRAP PI super computers, but at that time the PI
did not exist.)
> And which your hatting of "MS crap" have relation to XMS/EMS
> "opposition"?
Becuase DOS should have been rewritten from the very beginning to use
protected mode as Intel warned both Gates and IBM about before the IMB PC
was ever marketed, that's why! Gates did not write DOS. DOS came from
QDOS/86-DOS written by Tim Paterson of SCP. Paterson made a few changes to
it for the IBM PC and gates bought it for $50,000 and hired Tim away from
SCP. That's why! Gates has screwed us from the very beginning, that's why!
Now we are stuck with half a zillion different memory specifications and
memory managers and other crap, that should never have existed in the first
place, that's why!
> PM> DV is not a true multi-tasker, it shares CPU time between applications
> PM> loaded, just like Gates' stupid WINDOZE does.
>
> Wrong. Yes, Win 3.x is an "preemtive multasking" (i.e. cooperative
> multitasking) but Win95 is an... hm, forget the word which describes
> displaced multitasking... for Win95 native apps, also as DV, Linux and...
> NT.
No, DV and TM are both pre-emptive multi-tasking, windoxe is not. Although
windoze did or does use it for DOS stuff, it is not the same thing and there
is a difference between what 3.x and 9x uses, but I don't recall the details
of which is what. My point is that Linux is a true multi-tasker. DV and TM
use ticks to distribute the time for each app. Lets say I am running 6 apps
in either one and I have the tick ratio set to 1 for foreground and 5 for
background. Even if the background apps are not doing anything they still
get their ticks. i.e. CPU time.So any app that is idle, including the one in
the foreground, will slow down the other apps, whether or not it actually
needs any CPU time. So the apps in the background would be running at 1/5
the speed EVEN if the foreground app is idle and not using any CPU time at
all. This is rarely the case because all apps usually look for an input from
the keyboard, but if an app is idle, it is still hogging CPU time it does
not need.
OTOH Widoze hogs everything, memory, resources, bloated programs and
everything else you can think of and still does nothing! Hmmm, yes it does,
it could be considerd a virus, because it hogs everything and does nothing.
I think the program is Load Runner. you could play that game on a Coomodore
C-64 (probably even a VIC-20) an APPLE ][, an IBM PC under DOS and an IBM PC
under windoze. The Commodore/Apple version of the game was well under 32k,
the DOS version was a few hundred K and the WINDOZE version is up into the
megabytes for the same program!!!!!! Seems to me we are going in reverse at
a high rate of speed!!!!!
> PM> When you use EXTENDED memory
> PM> in protected mode, you actually run several processes simutaneously.
In
>
> When we use extended memory in protected mode, then this _not_ mean
> "several process simultaneous running".
It does when I am using several apps under task manager, which is what I
have been talking about. If I was only running one app, I would not been
talking about SWAPPING APPS. I don't need Task manager when I run a single
app, I don't need DV when I am running a single app. In all cases, I would
rather use extended memory when I need additional memory because I don't
have to go through a tiny 64k window to get access to extended memory. that
is what expanded memory does. When you use extended memory you access it
directly (through a memory manager with DOS.) With EMS you swap out
conventional memory to ectended and extended memory to conventional memory
through a 64k window. There is no such swapping with XMS extended memory
mangaer. I did use the term extended memory for all of the above because
expanded memory is in fact extended memory through a memory manager and it
is then called axpanded memory, but in fact it is all the same memory and
all exist above 1MB and is all extended memory as far as the hardware is
concerned. (A20 gate.)
>
> PM> virtual 86 mode you actually have each process running jst as though
each
> PM> one had it's own 8086 computer. It would be the same as running five
tasks
> PM> on five IBM XTs. or PCs.
>
> PM> So what is XMS. And what does Task manager use.
>
> Wrong - see above.
No it is not wrong. v85 is exactly that, each process in v86 mode is
operating under protected mode and each process is the equivelent of a
separate 1MB 8086 computer.
> PM> I believe it uses DPMS which is DOS Protected Mode Services. That is
> PM> what I use for multi-tasking in DOS.
> PM> That is EXTENDED memory in PROTECTED MODE. I believe it is virtual 86
> PM> protected mode that Task manager uses. There is no freeking memory
swapping
> PM> with Task manager.
> PM> Desqview, on the other hand, uses stupid time consumming memory
swapping
> PM> through a tiny 64K window and uses stupid EMS to do it. Each process
running
> PM> is swapped into and out of conventional memory.
>
> If this so then I think there was the real reasons (compatability,
for
> example) to do this.
This is sort of true.It goes back to the early days of the 8086. In 1982
Bill gates said theat 640K should be enough for anyone, that is an exact
quote. Probably while he was saying, someone read about it and cussed
because their speadsheet had already consumed the whole 640k of memory. So
Lotus wanted to make more memory available to it's speadsheet users. Some
hardware companies like AST and several others were making memory boards
that would produce more useable memory for the PC/XT computers. So lotus,
Intel and MS got together and created the LIM 3.2 expanded memory
specifications. So hardware manufactures followed these specifications and
made expansion memory cards to plug into the IBM PC. This memory existed
past the 1MB limit of the 8086CPU. So they had to be able to access this
memory and swap it into and out of conventional memory. Extended memory had
not yet come about.
When the 80286 came out, it had memory from 0 through 1MB covering the
entire range and had the capability of addressing directly 16MB of memory.
(and a bunch more virtual memory, I don't remember the 286 limit, but think
it was either 2 or 4GB, the 386 is somewhere in the terabyte range for
virtual memory.) So now a new specification was needed because the 286 had
protected mode for memory above 1MB and was extended memory. AST developed
EEMS which would utilize this new boundless memory capability. So lotus,
Intel and MS got back together again, but neither Intel nor MS ever really
approved or used the LIM 3.2. So they developed a new specification, the LIM
4.0. This would not have occurred had Intel not goofed in the first place
with the 286. There was no way for the 286 to get back into real mode from
protected mode except by using tricks and an opcode that was undocumented
and onlu for use by Intel engineers. So because of this, extended memory
useage was put on hold. many programs were developed that would use this
area, but there were no standards and if you had more than one such program,
TSR, Driver. or whatever running at the same time, often one would clobber
the other and you would get a system crash. Everyone though that this new
memory belonged to them exclusively. they did not care if some other
comapany made software that could also use this memory. So extended memory
was chaos.
So Lotus, Intel and MS, stole most of ASTs EEMS without consulting AST and
wrote a new specification called LIM 4.0. LIM 4.0 could use a lot more
memroy that 3.2 and had a larger window to swap memory. I think the LIM 3.2
had an 8MB limit. LIM 4.0 has a 32MB limit. People using spreadsheets and
probably a few other applications needed more than 8MB of RAM. BTW Lotus did
not want to use the new LIM 4.0 so they stuck with the old 3.2 for a while,
then finally accepted the new standard. Some of the older versions of Lotus
would not work with DRDOS EMS. That was probably due to the fact that Lotus
would not use the new standard and stuck with the old and DRDOS prpbably was
not fully backward compatibile with the old 3.2 standard.
Then the 386 came out and Intel finally got things right. So EMM386 was
developed and HIGHMEM.SYS was developed. However, since so many programs had
been developed and used EMS memory, EMM386 was developed using the LIM 4.0
standards for compatibilty with old programs so they would continue to work
under the new 386 standard. basically you can blame all three for their
screwups that has led to this problem, L, I, and M! All of them screwed up,
each in their own way.
> I also not liked the Intel architecture (after DEC's PDP this look
> freaky), but this have nothing with XMS/EMS opposition.
Not directly, but DEC, APPLE, Solaris, Amiga, Atari, and many other
computers not using the Intel chips do not have any of these problems!
>
> PM> I do not think we are talking about the same thing here. There is
absolutely
> PM> no swapping of memory with Task Manager. (except of course maybe some
video
> PM> memory on your video card and other such things.)
> PM> But I would like to know just what XMS memory is. I thought it was
extended
> PM> memory, period. EXTENDED, PERIOD.
>
> THIS IS NOT MEMORY. PERIOD. Both XMS and EMS are specification to
> access additional memory. Simply on 386+ for EMS as additional used
extended
> memory.
It is memory, it is real physical memory that is managed by these multitude
of memory managers. When you run a memory program it will tell you exactly
how much EMS, XMS, and EEMS memory you have available. With todays system
the EEMS memory no longer exist, but it certainly did several years ago.
Normally each one will show a slightly different amount of memory left that
each manager can control and EMS has a 32MB limit. It is real physical
memory that is handled by all of these different memory managers. DPMI and
VCPI are specifications. Not EMS, XMS, HRAM, EEMS, etc, etc, etc, these are
memory managers. Some memory managers are much better than others and some
can utilize UMB and HMA much better than others. It is all real physical
memory, each memory manager handles extended memory a little differently.
> Because Linux not based on real mode apps/system (i.e. DOS).
That is true and DOS should not ever had been restricted to REAL mode.
Pat
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
- Raw text -