started implementing part 3: added semaphore struct in uthread.h, and function signatures. also added partial implementation of them on uthread.c and modified parts of the code. also added spinlock to user.h