A university computer science department has a teaching assistant (TA) who helps undergraduate students with their programming assignments during regular office hours. The TA's office is rather small and has room for only one desk with a chair and computer. There are three chairs in the hallway outside the office where students can sit and wait if the TA is currently helping another student. When there are no students who need help during office hours, the TA sits at the desk and takes a nap. If a student arrives during office hours and finds the TA sleeping, the student must awaken the TA to ask for help. If a student arrives and finds the TA currently helping another student, the student sits on one of the chairs in the hallway and waits. If no chairs are available, the student will come back at a later time.

PROJECT GUIDELINES

1.Write program in C language using Pthreads, mutex locks and semaphores for THIS 'SLEEPING TEACHING ASSISTANT' Problem.

2.Based on your code just answer these simple questions:

i.How many threads/processes are there?
ii.What does each thread simulate?
iii.Will each thread be blocked at some time of simulation? If yes, explain the circumstances.
iv.When will a blocked thread be waked up, and by whom?
v.How many semaphores are there in your project, what is the purpose for having each?

3.Display messages to the screen to show the state of the system. A good way to validate your program running correctly is to perform some simple output messages to show the state of the system. You can experiment with these messages, but in general you want to demonstrate what each thread is doing. You can use an integer number to identify each thread.

4.If your program needs any arguments in command line, you need prompt proper message for the arguments and validate the input.

5.You may consider how to terminate your program. There are many options. For example, terminate after a given number of students obtaining help OR terminate after each student has taken help from the TA twice. You can choose any other reason to terminate your program. Just need to explain this in output messages.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.