Re: mutex vs cache coherency protocol

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
hyatt@xxxxxxx                   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 <hyatt@xxxxxxxxxxx>:
> >
> > what about the kernel?  How will it protect itself when multiple
> > processors execute kernel code???
> >
> >
> > Robert M. Hyatt, Ph.D.          Computer and Information Sciences
> > hyatt@xxxxxxx                   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 majordomo@xxxxxxxxxxxxxxx
> > > 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Remote Processor]     [Audio]     [Linux for Hams]     [Kernel Newbies]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Fedora Users]

  Powered by Linux