pauld@cs.washington.edu (Paul Barton-Davis) (06/05/91)
I ought to be able to answer this, but ... Suppose a process receives a signal, but makes no system calls. Am I right in thinking that it will not receive the signal until its time quantum expires, it is rescheduled, and finally gets to run again ? In other words, perhaps up to (NPROCS-1)*quantum seconds after the arrival of the signal, in the worst case ? -- Paul Barton-Davis <pauld@cs.washington.edu> UW Computer Science Lab "People cannot cooperate towards common goals if they are forced to compete with each other in order to guarantee their own survival."
torek@elf.ee.lbl.gov (Chris Torek) (06/05/91)
In article <1991Jun4.230245.6784@beaver.cs.washington.edu> pauld@cs.washington.edu (Paul Barton-Davis) writes: >Suppose a process receives a signal, but makes no system calls. Am I >right in thinking that it will not receive the signal until its time >quantum expires, it is rescheduled, and finally gets to run again ? No. The kernel is supposed to arrange for some sort of `kick me' sign to get pasted on the process, so that the signal will get delivered more or less immediately. 4BSD on the VAX uses the Asynchronous System Trap hardware feature to do it; other BSD ports emulate ASTs on every return-from-trap (which is rather silly, but easy; I have yet to fix my own Sparc kernel, e.g. ---but first I need to make /dev/console work; it does not run well without a console :-) ). -- In-Real-Life: Chris Torek, Lawrence Berkeley Lab CSE/EE (+1 415 486 5427) Berkeley, CA Domain: torek@ee.lbl.gov