Thread: Semaphore problem

  1. #1
    Registered User
    Join Date
    Apr 2003

    Semaphore problem

    Got this problem straight from the book "Operating Systems" 2nd edition by Gary Nutt chapter 8 #13 and I'm having a hard time of it. Sorry for the wording it is the book. Need help.

    I'm taking an Operating Systems class and stuck on a problem with Semaphores.
    Here it is:
    Suppose a machine's instruction set includes an instruction named swap that operates as follows (as an indivisible instruction):

    swap(boolean *a, boolean *b)
    boolean t;
    t = *a;
    *a = *b;
    *b = t;

    Show how swap can be used to implement the p and v operations.

  2. #2
    Registered User Codeplug's Avatar
    Join Date
    Mar 2003
    You mean swap() is an "atomic" instruction - meaning it cannot be interrupted and will always execute to completion without a context-switch.

    To reword the problem statement: If you have multiple threads calling p() and v(), how do you synchronize within the p() and v() implementation using only swap()? The fact that swap() takes a boolean is a big hint.


  3. #3
    Registered User
    Join Date
    Apr 2003
    Thanks for the response and the hint. The book we are using is poorly written. They are going to get a new book next semester. In the meantime my class is the guinea pig.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. cross platform semaphore problem
    By jet-plane in forum C Programming
    Replies: 0
    Last Post: 05-24-2008, 01:59 PM
  2. Memory problem with Borland C 3.1
    By AZ1699 in forum C Programming
    Replies: 16
    Last Post: 11-16-2007, 11:22 AM
  3. Someone having same problem with Code Block?
    By ofayto in forum C++ Programming
    Replies: 1
    Last Post: 07-12-2007, 08:38 AM
  4. A question related to strcmp
    By meili100 in forum C++ Programming
    Replies: 6
    Last Post: 07-07-2007, 02:51 PM
  5. WS_POPUP, continuation of old problem
    By blurrymadness in forum Windows Programming
    Replies: 1
    Last Post: 04-20-2007, 06:54 PM