"BillW50" wrote in message
. ..
"Anthony Fremont" wrote in message
...
Date: Sun, 30 Oct 2005 15:02:52 GMT
"Bob Masta" wrote in message
...
On Sun, 30 Oct 2005 11:53:25 GMT, "BillW50"
wrote:
All DOS applications ran under Windows 3.1 preemptively.
I hadn't heard of this before. Can you explain how it worked?
I had the impression that the DOS application took over and
Windows apps didn't get any time at all. If there were time
slices for Windows apps, do you recall how they did this?
It was basically a form of cooperative multitasking.
A form of cooperative tasking my eye! Each VDM session uses the Intel
v86 (Virtual-8086) mode. Windows 3.1 and later as well as OS/2 uses
v86
mode to preemptive task DOS and other VDM sessions.
When the DOS app called INT21 functions or made BIOS calls, Windos
could then regain control of the machine. Hardly what I'd call
preemptive multitasking.
Doesn't sound right to me. As Windows uses (since W3.1) the CPUs v86
mode (Task State Segments) to support multitasking to preemptive task
Well sure it has a TSS, otherwise you couldn't switch tasks very easily.
The TSS holds all the context information (registers, pc, ldt etc...)
required to put the task back into execution without it freaking out.
It's just a mechanism to make it easy, but it doesn't magically
interrupt a running task.
Windows could use the timer tick ints to accomplish task switching or it
could even set up another spare timer to generate interrupts for task
switching. Those would then safestore the TSS values for the running
task when the interrupt occurs and then transfer control thru the
interrupt vector to the dispatcher (or whatever M$ calls it). Using a
timer of some sort could make it preemptive since they could then
conceivably interrupt between any two instructions.
AFAIK though, they
just depended upon the system calls to resume control.
all VDM sessions through Windows Virtual Machine Manager (VMM). Every
manual I have ever read (and I just searched the Internet as well)
calls
this preemptive tasking. Looks like you're alone to me.
It is my opinion that even XP doesn't qualify as a proper OS. Any
OS that allows an errant application to hang things up is not
right.
Under any x86 machine, any buggy ring 0 code can take out any OS, bar
none! It's not just a Windows limitation, but effects *all* OS. Yes,
any
clever programmer who wants to take out an x86 machine running any OS
can indeed do so (with administrator privileges of course).
That's why there is 4 ring levels supported in hardware. Too bad M$
doesn't utilize it properly, Linux wins hands down here and only uses 2
of the 4 levels.