Going back to basic principles:

For minimal CPU utilization, it would be nice skip task switching, period.
Run something to completion, then go on to the next task.  Poll without
ever using an interrupt.

The problem is that latency becomes totally unacceptable.

So now let's go to the other extreme:  Create a Transputer-like array with
hundreds of 65xx-complexity CPUs.  Each atomic task runs on its own
private CPU.

The problem is that the electronics become a pain, and are often idle.
When too many tasks are launched, we run out of CPU power.

The compromise is to switch tasks on whatever CPU power is available...
balancing switching overhead with latency.  *Let the latency be as high as
is acceptable to reduce overhead as low as is practical.*

Hence, my philosophy is that task switching and preemption are necessary
evils because hardware does not perfectly accomodate software.  If we
must, we must... otherwise, use co-op switching as the next best thing to
straight run-to-completion.



Brotsman & Dreger, Inc.
EverQuick Internet / EternalCommerce Division

Phone: (316) 794-8922


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to