Save the semaphore which blocked the task and create the unlock mechanism
Modify the rule of semaphore operation
Set the semaphore_t typedef to be unsigned