On 30 Oct 2001, at 23:28, Steinar H. Gunderson wrote:

> 200ms? Wouldn't this be an error? I can't really imagine that one
> would typically have only five time slices per second :-)

No, it's the right order of magnitude. The table I have to hand (for a 
300 MHz UltraSparc IIi running Solaris 2.6) has a whole bundle of 
values for different priority levels - 80+ excluding the real-time ones! 
- they range from 10 mS to 750 mS.

There was a drop in these values during the 80s and early 90s but 
they had to increase again when processors started depending 
heavily on cache - task switching tends to trash caches. Also as 
processors gain more & more registers etc. the number of clocks 
required to save & restore process contexts tends to increase. This 
balances out the increasing speed of processors to a considerable 
extent.

The point is that a process which becomes computable as a result 
of I/O completion etc. at a higher priority than the currently 
executing process will pre-empt even before the minimum timeslice 
has expired. If you have a lot of I/O going on then process 
switching will occur hundreds or thousands of times per second. If 
you have no I/O going on then it really doesn't matter how 
infrequently task switching occurs, as you have no means of telling 
the internal state of the system without I/O occurring.

Regards
Brian Beesley
_________________________________________________________________________
Unsubscribe & list info -- http://www.scruz.net/~luke/signup.htm
Mersenne Prime FAQ      -- http://www.tasam.com/~lrwiman/FAQ-mers

Reply via email to