Hence the statement about the clock tick interval being on roughly the same order of magnitude (but not necessarily exactly) 10ms.
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@flounder.com
Sent: Sunday, November 27, 2011 11:35 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] question about KeStallExecutionProcessor
Actually, on most modern machines, the clock tick is 15ms. The clock tick on uniprocessor x86 systems was 10ms, and on multiprocessor x86 systems is 15ms. On other (no longer supported) Windows platforms, there were other values used, but they don’t matter. In general, anything that depends on the actual clock tick resolution and makes any assumption is probably BAD (Broken As Designed) code. What I would tell my students in my app-level systems programming course is that “Modern operating systems have a simple concept of time: time moves forward. Any dependency on realtime behavior in modern operating systems (except RTOS systems) is problematic. Between the scheduler, OS overheads, and other factors, there isn’t a whole lot more you can tell about time.”
I know of no system that has a 10ns tick; even on modern highly-pipelined asynchronous opportunistic execution engines, that is only enough time to execute between 30 and 80 instructions, assuming cache hits are optimal.
I’ve not seen a modern OS that supports clocks faster than 5ms, and that was an exceptional one for a figure that low. General-purpose operating systems lived for years with 50/60Hz clocks (line frequency), and even that was pushing some of the older architectures.
joe
Clock ticks are generally on the order of 10 milliseconds* and not 10
nanoseconds.
*: As a general ballpark value. The clock tick interval on an actual
machine may vary.
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of daedae11
Sent: Sunday, November 27, 2011 11:02 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] question about KeStallExecutionProcessor
The discription in WDK document about this function is:
KeStallExecutionProcessor is a processor-dependent routine that
busy-waits for at least the specified number of microseconds, but not
significantly longer.This routine is for use by device drivers and
other software that must wait for an interval of less than a clock
tick but more than for a few instructions.
As far as I know, a clock tick is ten nanosecond which is less than a
microseconds.
The first sentence says “at least the specified number of microseconds”.
However, the second sentence become “an interval of less than a clock
tick”. Isn’t them incompatible?
Thanks for your reply.
— NTDEV is sponsored by OSR For our schedule of WDF, WDM, debugging
and other seminars visit: http://www.osr.com/seminars To unsubscribe,
visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer