GATE CSE
First time here? Checkout the FAQ!
x
+2 votes
157 views

Assume that you have a semaphore associated with each item on a doubly linked list. 
Using No other synchronization primitive, What is the fewest number of semaphore that you must acquire for any operation (lookup, insert, delete) ?

asked in Operating System by Veteran (24.6k points)  
edited by | 157 views
Have to tried to consider shared and exclusive locks on a DLL ?

I think 3 semaphores are sufficient as 4 pointers are modified in case of DLL.
Answer given is $1$.

Given Solution :

looks right !

They are not asking to prevent deadlock or starvation. I accounted these for this question as it is not given to do that.
Questions asks for min. semaphores such that given $3$ operations can be performed one at a time. right!
In a doubly linked list we have access to a node from $2$ sides. So, If we go from other side we can perform many together.
This is what i was thinking. suppose we are reading from a node 4 and other thread comes and deletes node 3 then, we have to modify 2 pointers . But that can be done, if question says that there is no possibilty of deadlock and multithreading is there .

Since, it is not concerned about these problems, why not lock the complete list.
When complete list in locked using one semaphore, then it may be the case that all operations are performed from the side that performs UP on semaphore.
Not many up operations, if we use mutex then only 1 at a time will take the control.

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:
To avoid this verification in future, please log in or register.


Top Users Apr 2017
  1. akash.dinkar12

    3660 Points

  2. Divya Bharti

    2580 Points

  3. Deepthi_ts

    2040 Points

  4. rude

    1966 Points

  5. Tesla!

    1768 Points

  6. Debashish Deka

    1614 Points

  7. Shubham Sharma 2

    1610 Points

  8. Prashant.

    1492 Points

  9. Arjun

    1472 Points

  10. Arunav Khare

    1464 Points

Monthly Topper: Rs. 500 gift card

22,088 questions
28,063 answers
63,298 comments
24,173 users