

class Semaphore {


  ... 

  Semaphore create_semaphore(int initialvalue, int flag) {   // always gives you a new sem


  } 		// flag=0: binary sem, 1:counting sem  
  
  + functions to bind to an already created semaphore

  void wait()  {

  }  

  void signal() {  // 

  }
  void remove() {

  }

  Semaphore bind (...); // binds to an existing sem

};



