I disagree. On modern desktops this behavior will prevent Vista and
Win7 from throttling back the CPU. Not being able to throttle back the
CPU will make it run hotter and draw more power, which is likely to
produce more noise (because the cooling fans need to be sped up) and
heat. Yeah, it's probably not a huge amount of noise and heat, but I
like my PC to be cool and quiet.
Not to mention that it makes certain types of troubleshooting a bit more
challenging. If I see my system maxed out on CPU I assume that some
application has gone nuts and needs to be killed off (happened last
night with a misbehaving webcam app).
And IMHO it's not necessary to design Windows serial communications this
way. I've written Win32 serial comms software and it's not that
difficult to design the serial I/O to use the CPU efficiently. If
you're worried about portability then move up the abstraction layer -
instead of abstracting "get a character from the serial port" abstract
the entire serial I/O module. Yes, that takes more porting effort, but
it also means that the serial I/O module will be implemented properly
for the host OS.
Jim
On 1:59 PM, John Miles wrote:
It's not an issue, except possibly vis-a-vis battery life in a laptop.
-- john, KE5FX
-----Original Message-----
From: time-nuts-boun...@febo.com [mailto:time-nuts-boun...@febo.com]on
Behalf Of Steve Rooke
Sent: Sunday, January 03, 2010 5:23 PM
To: Discussion of precise time and frequency measurement
Subject: Re: [time-nuts] time-nuts Digest, Vol 66, Issue 6
2010/1/4 Mark Sims<hol...@hotmail.com>:
As far as the time slicing goes, the code is continually doing
Sleep(0) calls. These give the time slice back to Windows.
You can't get much more multitask friendly than that.
If Windows has nothing better to do, it gives the time back to
Heather (which if there is nothing else going on, does another
Sleep(0) (or Sleep(#) if /tw=# is given on the command line).
The idle time would otherwise be spent in the Windows idle
loop... either way, the idle time gets wasted somewhere.
But doesn't that in itself generate a rapid loop of system calls when
LH is not doing any processing. There is a difference between leaving
the OS idle than just wasting time in a rapid busy loop with the CPU
polling LH to see if it has any work to do without any sleep time in
between.
For a DOS application this really makes no odds, as you say, but then
we are really not talking about a multiuser multitasking system.
Steve Rooke
--
Steve Rooke - ZL3TUV& G8KVD
A man with one clock knows what time it is;
A man with two clocks is never quite sure.
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.