multithreading on a multiprocessor system ( a bit OT )

R. Sinoradzki (sinoradz@student.uni-kl.de)
Wed, 16 Jan 2002 20:49:48 +0100


Hi,
I ask here, because I think it's probably a good place
to get some hints, links, papers or book recommendations.
I am absolutely new to multiprocessing. I only took a basic OS course
and did some practical training with NachOS ...

O.K my question:
Consider two modern processors that share some data and a lock.
The lock may be implemented with something like an atomic test-and-set
instruction. Now processor 'A' acquires the lock and works with the data.
Processor 'B' also wants to access the data, but internally reorders it's
instructions because the instructions seem independent from each other.
So 'B' might access the data without having the lock.
If it's a single processor system, reordering instructions in a way that
ensures that it looks 'as if' everything has been executed in the right order
might be easy, but in a multiprocessor system 'A' doesn't know 'B's state.

My idea is, that there are special instructions that prevent reordering in
this case, but would this be enough and what does really happen ?

bye, Ralf

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