Date: Mon, 4 Dec 2000 23:46:22 +0000 From: Stephen Kitt To: opendos AT delorie DOT com Subject: Re: BASIC & EMS (was: Optimizing CONFIG.SYS...) Message-ID: <20001204234622.M397@sk2.org> Mail-Followup-To: Stephen Kitt , opendos AT delorie DOT com References: <004c01c05a76$4732db90$c5881004 AT dbcooper> <2 DOT 07b7 DOT 12T7Y DOT G4UHO7 AT belous DOT munic DOT msk DOT su> <004701c05b86$1da8c940$fc881004 AT dbcooper> <2 DOT 07b7 DOT 19D8Q DOT G4XQJB AT belous DOT munic DOT msk DOT su> <008001c05d17$df2bbb30$a3881004 AT dbcooper> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2.5i In-Reply-To: <008001c05d17$df2bbb30$a3881004@dbcooper>; from pmoran22@yahoo.com on Sat, Dec 02, 2000 at 12:31:06PM -0700 Reply-To: opendos AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: opendos AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Sat, Dec 02, 2000 at 12:31:06PM -0700, Patrick Moran wrote: > 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. The way RAM drives etc. worked without apparent memory managers was using the BIOS-provided extended memory access features. Check interrupt 15h, services 87h, 88h and 89h in the Interrupt List; it explains how they are used. 88h returns the size of extended memory; to "allocate" memory out of this, programs would hook the interrupt and return a smaller value - they could do whatever they pleased with the "left-over" memory at the end of the previously returned size. 87h is then used to copy memory from extended to conventional and vice versa; the memory still cannot be accessed directly, at least in real mode on a 286. > 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.) Multi-processing only refers to the physical architecture of a system, ie the fact that it has multiple CPUs (read Hennessy & Patterson for details, or is it Hwang...). Multi-tasking refers to the ability to run multiple tasks "simultaneously". The difference between MP and uni-processor systems is that MP systems can really run multiple tasks simultaneously, up to the number of processors in the system, although performance gains aren't linear due to the overhead of managing multiple processors. There are super-computers with loads of CPUs all over the place. You're probably thinking of the University of Edinburgh's Parallel Computing Centre, which has a number of Cray super-computers, including a T3E which currently has 348 processors. Or you might be thinking of Transputers, which could be assembled to form super-computers with many processors. Thinking Machines built super-computers using them, and EPCC had one for a while. Have a look at http://www.top500.org for more information on super-computers, and http://www.epcc.ed.ac.uk for more information on EPCC. Currently, the fastest super-computer in the world (IBM's ASCI White) has 8192 processors... Incidentally, Linux supports thousands of processors on some architectures, and has done so for a while - it was ported to a Fujitsu super-computer a while back. > 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. There isn't much difference between Desqview, Task Manager and Linux when it comes to the essentials of multi-tasking. Every one of them time-slices... Linux handles idle tasks much better, thanks to the way Unix software is written, but DV and TM have many tricks up their sleeve to cope with idle software too. In fact, when an application looks for input from the keyboard it is considered idle by DV and TM, assuming it uses DOS services to access the keyboard and doesn't do it directly. Check the difference between say 4DOS waiting at the prompt and LIST waiting for input - LIST is notoriously uncooperative. (I'm skipping some details here, particularly with regard to Linux; the latter has benefitted from lots of development which DV and TM haven't, and in particular its scheduler makes a huge difference.) As much as you may dislike it, Windows does the same - DOS tasks have been time-sliced since Windows 3.0 (in extended mode), and Win32 tasks are time-sliced in Windows 95 and later. NT time-slices everything if I remember correctly... From some of your other emails I've got the impression (I may be wrong here) that you seem to think V86 mode helps multi-task programs. The virtualisation here is only helpful in that it creates isolated PCs; it doesn't run them, the task scheduler still has to do the time-slicing. Virtualisation on x86 CPUs is nothing like that offered on mainframes such as IBM's S/390. Before you argue further about memory managers, standards, and multi-tasking, I strongly suggest you go and read the technical specifications for Intel CPUs and memory management standards. Oh, and try writing some code to use the stuff - that often helps clear ideas... Regards, Stephen -- __| | /_ ) Stephen 'SKČ' Kitt If you can't stand the heat, \__ \ . < __| steve AT sk2 DOT org stop pouring gasoline on yourself. ____/_|\_\ http://www.sk2.org -- Lee DeRaud