Electronics Repair (sci.electronics.repair) Discussion of repairing electronic equipment. Topics include requests for assistance, where to obtain servicing information and parts, techniques for diagnosis and repair, and annecdotes about success, failures and problems.

 
 
LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #11   Report Post  
Anthony Fremont
 
Posts: n/a
Default Cooperative and Preemptive Multitasking [ Why aren't computer clocks as accurate as cheap quartz watches?]


"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.

 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
computer clocks Lurch UK diy 199 December 21st 04 10:43 PM
Are PC surge protectors needed in the UK? greywolf42 Electronics Repair 82 July 13th 04 11:37 AM


All times are GMT +1. The time now is 06:39 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 DIYbanter.
The comments are property of their posters.
 

About Us

"It's about DIY & home improvement"