When does a semaphore issue a wait and when does it issue a signal?
The semaphore doesn't issue those.  A semaphore is an object that can be used by processes to coordinate between themselves.  Thus, a process will call semSignal or semWait on a shared semaphore.  We can't describe the conditions under which it will do that in general, because it's up to each process how it wants to use semaphores.  Semaphores are a primitive that can be used in many ways.  You should be able to find many examples online or in your textbook of using semaphores for coordination; that will give you some examples of specific processes and when those particular processes will invoke those operations on a semaphore.