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