ugkamins@marvin.cs.buffalo.edu (Dr. R. Chandra) (10/08/89)
Hi ho. I am an occasional reader of c.o.m. I have recently read of the problems with the system hanging due (presumably) to race conditions in whipping messages between the system parts. One problem mentioned was messages getting overwritten. I suggest a solution of message lists, much like the Amiga kernel's message ports. If a message is sent, and there already exists a message waiting, it is simply added (perhaps in a prioritized order, like I believe happens in the Amiga implementation) to the list (in FIFO order on equal priorities). I might also mention, I would get intermittent lockups due to interrupt messages getting bungled from an AT hard disk. It's the only thing I can think of. The Winchester task seems to be waiting for a message from an interrupt which is either never received or never generated. One debug I added to the kernel gave me the status of the controller which indicated data was still waiting to be moved in or out (don't know which) of the sector buffer. Mind you this was under 1.1, but the problem seems to be related to the message handling scheme. -- --- We can only contemplate the facts as we are able to perceive them. Do we get what we deserve, or deserve what we get? "I've seen yellow STRIPES in the middle of the road before, kids, but, ah, never quite this WIDE!" -- Tom "T-bone" Stankus ugkamins@sunybcs.UUCP (UnderGraduate john i. KAMINSki)