Re: Developing multi-threading applications

Marco Colombo (marco@esi.it)
Mon, 17 Jun 2002 18:07:51 +0200 (CEST)


On Mon, 17 Jun 2002, Roberto Fichera wrote:

[...]
> process to a CPU. But I continue to not hunderstand why
> I must have only one thread per CPU. There is some URL
> where can I see some kernel/sched/vm/I-O/other-think graph about
> this point ?

To put it simply, because you have only one PC per CPU. It's not
really an OS thing.

Every time you're saving the PC (and SP, and all the "thread context")
you're "emulating" more CPUs on just one. And what you got is just...
an emulation. A Thread is an execution abstraction, and a CPU is an
execution actor. Sounds sensible to match the two. Use functions instead
to group instructions by their (functional) meaning.

It makes much more sense, on 4-ways system, to have 4 rather complex
threads that are able to execute different functions, like in
a data-driven or event-driven model, than to run 400 simpler threads
which implement one function each, IMHO.

.TM.

-
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/