Find the answer to your Linux question:
Results 1 to 6 of 6
Like Tree2Likes
  • 2 Post By xerophyte80
Hi, I want to the differences between mutex and semaphore. As i know differences are, 1.Mutex needs to be initialized but semaphore need not be. 2.semaphores will be alive even ...
  1. #1
    Just Joined!
    Join Date
    Dec 2011
    Posts
    5

    Difference between mutex and semaphore

    Hi,
    I want to the differences between mutex and semaphore.
    As i know differences are,
    1.Mutex needs to be initialized but semaphore need not be.
    2.semaphores will be alive even if the process dies where as mutex dies with the scope where it was declared.
    3. mutex can have recurcive lock but semaphores cant.

    are these valid ? if not what are the actual differences

  2. #2
    Just Joined!
    Join Date
    Dec 2011
    Posts
    5
    Mutex:

    Is a key to a toilet. One person can have the key - occupy the toilet - at the time. When finished, the person gives (frees) the key to the next person in the queue.

    Officially: "Mutexes are typically used to serialise access to a section of re-entrant code that cannot be executed concurrently by more than one thread. A mutex object only allows one thread into a controlled section, forcing other threads which attempt to gain access to that section to wait until the first thread has exited from that section."
    Ref: Symbian Developer Library

    (A mutex is really a semaphore with value 1.)
    emaphore:

    Is the number of free identical toilet keys. Example, say we have four toilets with identical locks and keys. The semaphore count - the count of keys - is set to 4 at beginning (all four toilets are free), then the count value is decremented as people are coming in. If all toilets are full, ie. there are no free keys left, the semaphore count is 0. Now, when eq. one person leaves the toilet, semaphore is increased to 1 (one free key), and given to the next person in the queue.

    Officially: "A semaphore restricts the number of simultaneous users of a shared resource up to a maximum number. Threads can request access to the resource (decrementing the semaphore), and can signal that they have finished using the resource (incrementing the semaphore)."
    Ref: Symbian Developer Library
    elija and Cabhan like this.

  3. #3
    Linux Engineer Freston's Avatar
    Join Date
    Mar 2007
    Location
    The Netherlands
    Posts
    1,047
    I think Verity Stob explains this quite well.
    Can't tell an OS by it's GUI

  4. #4
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
    Posts
    8,974
    I think xerophyte80 has made a very concise explanation of the differences between a mutex and semaphore. Excellent!
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

  5. #5
    Trusted Penguin Cabhan's Avatar
    Join Date
    Jan 2005
    Location
    Seattle, WA, USA
    Posts
    3,230
    xerophyte, I must award you my kudos. That's possibly the best explanation I've ever seen of the mutex/semaphore difference.
    DISTRO=Arch
    Registered Linux User #388732

  6. #6
    Trusted Penguin elija's Avatar
    Join Date
    Jul 2004
    Location
    Either at home or at work or down the pub
    Posts
    2,301
    I didn't even know I was looking for an answer to this, but what an answer I found. xerophyte, are you by any chance a teacher?
    If we hit that bullseye, the rest of the dominoes will fall like a house of cards. Checkmate! (Zapp Brannigan)


    My new blog. It's probably not as good as I think it is.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
...