On Tuesday, June 29, 1999 5:26 AM, Alistair Riddoch [SMTP:[EMAIL PROTECTED]] wrote:
: Greg Haerr writes:
: > 
: > Al,
: >     In using ELKS v0.77, it's apparent that ^C console signals work
: > about 50% of the time. I was going to get involved in tracking this down,
: > but have some questions first.
: 
: It what way does it not work? Does it fail to kill the process, or 
: just not do anything at all. There is still loads of debuggin output in the
: signal code until it stabilises, so you should be able to tell what is
: going on.
: 

        If you run a fg program, and hit ^C (like mou_ser.c compiled -DTEST=1),
sometimes the shell gets it and login appears, sometimes it sends ^C to process
group and does nothing, other times it worksc correctly.


: > 
: >     Does ELKS use interrupt driven keyboard input?  You were saying something
: > about tty input chars being checked only at when an app makes a system call.
: > If this is the case, I think we need to think about rewriting it so that it's 
:interrupt-driven.
: > 
: 
: Yes, the keyboard is interrupt driven. The signal code is in the ISR, but
: I think it should be handled by and bottom half.
: : I can't remember just now how much of the scheduler code is needed, and
: whether we really need bh processing. I have not yet managed to work out
: how the priority code works, so I have not been able to simplify it. You
: are probably correct. If you can re-write (reversibly) the schedular code
: to be lighter, please do so.
: 

        I was checking out the kernel sources this weekend, and my take
is that it's all too complicated, and using up to much CS.  I have yet to understand
how totally basic interrupt model works, though.

        IMHO, we could use a simple priority queue for the run queue,
and schedule round robin, period.  There would be extremely basic kernel
primitives for sleep and wakeup, which would remove the current task from
the run queue, and add them to that sleep queue.  One of the reasons that
you're having problems getting signals working is the kernel is too complicated
for its current state.

Reply via email to