[comp.unix.questions] signals & system calls

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