Re: Reader/writer semaphores

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

 



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


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux