cjohnson@unisoft.UUCP (Christopher Lyle Johnson) (03/18/88)
I was hoping someone else would cover the misinformation posted earlier. It was claimed that UNIX only rescheduled on "lbolt" interrupts (every second). This is false on every implementation I have seen. Before returning from an interrupt to user mode (*any* interrupt) the system variable "runrun" is checked to see if a scheduling pass is necessary. If there is a higher priority process, the kernel context switches to it. (Some of this is done on vaxes by means of software interrupts.) This test is also made after system calls. There is a concept of a quantum in system V (v.v_ltick) that determines how long a particular process can run before a scheduling pass is forced. This variable is initialized in units of clock ticks (usually 60Hz). BSD systems (4.3) appears to reschedule every 4 ticks if necessary (also note that BSD vax clocks usually run faster - 100Hz by default). Thus the kernel can reschedule on every system clock tick or so, not every second as was reported earlier. Follows have been directed to /dev/null - this has nothing to do with Macintoshes and no one in unix.wizards cares. cj*