Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Concepts International Edition

Authors: David M. Kroenke

6th Edition International Edition

0133098222, 978-0133098228

More Books

Students also viewed these Databases questions