wait queue process state

Joseph Cordina (joseph.cordina@um.edu.mt)
Mon, 27 May 2002 17:11:23 -0400


Hi,
I am quite new to this list and thus does not know if this question
has been answered many a times. I have looked in the archive but could
not find it. Here goes anyway:
I realised that when processes are placed in the wait queue, they
are set at either INTERRUPTIBLE or NONINTERRUPTIBLE. I also noticed that
something like file access is set as NONINTERRUPTIBLE. Could someone
please tell me the reason for having these two states. I can understand
that INTERRUPTIBLE can be made to be interrupted by a timer or a signal
and vice versa for UNTERRUPTIBLE. Yet what makes blocking system calls
as INTERRUPTIBLE or NONINTERRUPTIBLE. Also why is file access considered
as NONINTERRUPTIBLE.

In addition, inside the kernel running, are these two different states
treated differently (apart from the allowance to be interrupted or
otherwise).

The reason I am asking is that I am working on scheduler activations
which allow new kernel threads to be created when a kernel thread blocks
inside the kernel. Yet this only works for INTERRUPTIBLE processes, I
was thinking of making it work also for NONINTERRUPTIBLE processes. Just
wondering if this would have any repurcusions. Also when a process
generates a page fault which causes a page to be retreived from the
filesystem, it such a process placed in the wait queue as
NONINTERRUPTIBLE also ?

Cheers

Joseph Cordina
University of Malta

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/