Question
Introduction A university computer science department has a teaching assistant (TA) who helps undergraduate students with their programming assignments during regular office hours. The TAs
Introduction
A university computer science department has a teaching assistant (TA) who helps undergraduate
students with their programming assignments during regular office hours. The TAs office is rather small
and has room for only one desk with a chair and compute
r. 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.
Assignment
Using POSIX threads,
mutex locks, and semaphores, implement a solution that coordinates the activit
ies
of the TA and the students.
Analysis and Remarks
The Students and the TA.
Using Pthreads
, be
gin by creating
students. Each will run as a separate thread.
The TA will run as a separate thread as well. Student threads will alternate between programming for a
period of time and seeking help from the TA. If the TA is available, they will obtain hel
p. Otherwise, they
will either sit in a chair in the hallway or, if no chairs are available, will resume programming and will
seek help at a later time. If a student arrives and notices that the TA is sleeping, the student must notify
the TA using a semaph
ore. When the TA finishes helping a student, the TA must check to see if there are
students waiting for help in the hallway. If so, the TA must help each of these students in turn. If no
students are present, the TA may return to napping.
Perhaps the best o
ption for simulating students programming
as well as the TA providing help to a
student
is to have the appropriate threads sleep for a random period of time.
POSIX
Threads and
Synchronization
.
Coverage of POSIX
Threads is provided in Section 4.4
.1 in the
textbook. Coverage of POSIX
mutex locks and semaphores is provided in Section 5.9.4
in the textbook
.
C
onsult th
ose two
section
s
for
help and more
details
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started