Hello everyone,
Just got a rough question in my head.
don't know whether anyone interested .
mutex vs cache coherency protocol(for multiprocessor)
both of these two can be used to protect shared resource in the memory.
are both of them necessary?
for example:
in a multiprocessor system, if there is only mutex no cache coherency.
obviously this would cause problem.
what about there is no mutex mechanism, only cache coherency protocol
in multiprocessor system? after consideration, I found this also could
casue problem, when the processors are multithreading processors,
which means more than one threads can be running on one processor. in
this case if we only have cache coherency and no mutex, this would
cause problem. because all the threads running on one processor share
one cache, the cache coherency protocol can not be functioning
anymore. the shrared resource could be crashed by different threads.
then if all the processors in the multiprocessor system are sigle
thread processor, only one thread can be running one one processor. is
it ok, if we only have cache coherency protocol ,no mutex mechanism?
anyone has any idea? all the comments are welcome and appreciated,
including criticism.
regards,
Xu Yang wrote:
> Hello everyone,
>
> Just got a rough question in my head.
>
> don't know whether anyone interested .
>
> mutex vs cache coherency protocol(for multiprocessor)
>
> both of these two can be used to protect shared resource in the memory.
>
> are both of them necessary?
>
> for example:
>
> in a multiprocessor system, if there is only mutex no cache coherency.
> obviously this would cause problem.
>
> what about there is no mutex mechanism, only cache coherency protocol
> in multiprocessor system? after consideration, I found this also could
> casue problem, when the processors are multithreading processors,
> which means more than one threads can be running on one processor. in
> this case if we only have cache coherency and no mutex, this would
> cause problem. because all the threads running on one processor share
> one cache, the cache coherency protocol can not be functioning
> anymore. the shrared resource could be crashed by different threads.
>
> then if all the processors in the multiprocessor system are sigle
> thread processor, only one thread can be running one one processor. is
> it ok, if we only have cache coherency protocol ,no mutex mechanism?
>
> anyone has any idea? all the comments are welcome and appreciated,
> including criticism.
Cache coherency is necessary for SMP locking primitives (and thus Linux SMP
support), but it is hardly sufficient. Take a look at all the exciting inline
assembly in include/asm/ for spinlocks, atomic operations, etc.
-- Chris