Paul Davis <paul(a)linuxaudiosystems.com> writes:
a new system call. call it "switch_to()".
takes a PID (actually, it
needs some kind of TID), and does something very similar to
sched_yield() except instead of giving up the processor to whatever
the scheduler thinks is right, it yields to the specific
process/thread.
This could be useful. But, it would probably be better to use some
existing mechanism like Mach ports instead of inventing Yet Another
Dispatch Mechanism. Stephane has already demonstrated that they work
well for running the JACK graph.
I never studied their implementation, but IIRC this kind of
switch_to() logic is implicit in the fast path case of a send() to a
port on which a thread is already waiting to receive(). (I don't
recall their exact terminology.)
The main advantage of an existing mechanism over new ideas is that
there are years of experience with security, performance, methods of
application and other subtleties.
BTW, I am not now nor have I ever been a fan of Mach. Linus is right,
microkernels are evil. But, Rick Rashid did have *some* good ideas.
:-)
Regards,
--
joq