Modify the argument definition semaphore's prototype function
Create new task block status for semaphore
Try to implement signal and wait function