Hi arvind, Thanks for you help in understanding the key concepts of reader/writer semaphores. Reader semaphores are present in the kernel to support allow multiple readers to a data. One last question: Did any one ever use a reader semaphore in implementation of char driver read impl? If not, where are the reader/writer used in the kernel. which subsystem uses them the most, during what operations? Regards, Mukund On 4/7/08, sahlot arvind <asahlot@xxxxxxxxx> wrote: > Dear Bhanu, > > Let me put it into simple words. > > If you want to protect a write operation such as "a++" where "a" is global > variable of your program/module (i.e. it is manipulated by your code only) > then please use write semaphore. You will play safe. > > Otherwise if "a" is a variable inside kernel and kernel exports this > variable to be manipulated by other modules then usually kernel provides a > lock as well for sync purpose and thus one should try to acquire that > particular lock as suitable (read or write) and then manipulate it. You will > play safe again. > > Hope it clears your doubts. > Let me know if you still need mre clarification. > > Cheers! > - A > > On Mon, Apr 7, 2008 at 9:36 PM, bhanu nani <bhanu.lnxnew@xxxxxxxxx> wrote: > > Hi All, > > > > debein, > > I believe what you said. It was a misleading statement. > > > > Did someone have a last chance top review my understanding and post > > back the clarifications. this would very usefull for my future > > understanding about the kernel. > > Please let me know am I on the right track, if not please let me know > > where am I missing. > > > > Regards, > > Mukund > > > > > > On 4/5/08, debian developer <debiandev@xxxxxxxxx> wrote: > > > On Wed, Apr 2, 2008 at 11:52 PM, bhanu nani <bhanu.lnxnew@xxxxxxxxx> > wrote: > > > > > > Hi Fabio, > > > > > > > > My understanding: Semaphore are the tools to protect a region of code > > > > by bloking access to other threads access while the first thead is > > > > > > An important point to note here is that you are not protecting the > > > code, its the data structure > > > or variable you are protecting. > > > > > > > > > > > > > global x; > > > > up > > > > /* critical section - any thing*/ > > > > *fpos+=count; > > > > mystruct->size = *fpos; > > > > mystruct->xxx = *fpos+ count; > > > > down > > > > > > > > > > > -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ