Re: mutex vs cache coherency protocol

"Robert M. Hyatt" <[email protected]>
Newsgroups gmane.linux.smp
Message-ID <[email protected]>
the kernel executes code on behalf of users all the time.  For example, 
to queue up I/O requests, to read files, to handle network connections, 
to allocate/free memory, to send signals, and a zillion other things.  
Many of these operations require modification of something called "a 
serially-reusable resource" which is just a fancy name for something 
that can only be used by one user at a time.  A stall in a men's 
restroom is an example.  Or, in this case, perhaps it is just a simple 
linked list.  If two processors were to try to insert or remove (or a 
combination of both) things on a list at the same time, race conditions 
can arise and the data can become unusable.  So we use a spinlock to 
prevent multiple processors from modifying the same data structure at 
the same time...



Robert M. Hyatt, Ph.D.          Computer and Information Sciences
[email protected]                   University of Alabama at Birmingham
(205) 934-2213                  136A Campbell Hall
(205) 934-5473 FAX              Birmingham, AL 35294-1170

On Tue, 4 Sep 2007, Xu Yang wrote:

> Hi Robert,
> 
> could you explain more about it, I am quite interested in this.
> 
> thanks,
> 
> regards,
> 
> Yang
> 
> 
> 2007/9/3, Robert M. Hyatt <[email protected]>:
> >
> > what about the kernel?  How will it protect itself when multiple
> > processors execute kernel code???
> >
> >
> > Robert M. Hyatt, Ph.D.          Computer and Information Sciences
> > [email protected]                   University of Alabama at Birmingham
> > (205) 934-2213                  136A Campbell Hall
> > (205) 934-5473 FAX              Birmingham, AL 35294-1170
> >
> > On Mon, 3 Sep 2007, 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.
> > >
> > > regards,
> > > -
> > > To unsubscribe from this list: send the line "unsubscribe linux-smp" in
> > > the body of a message to [email protected]
> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > >
> >
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-smp" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.