Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Description Write a multithreaded car park simulator program in C as follows: 1. Five drive-in threads (simulating in-valets) should randomly move cars into the car

Description Write a multithreaded car park simulator program in C as follows:

1. Five drive-in threads (simulating in-valets) should randomly move cars into the car park 2. Two drive-out threads (simulating out-valets) should randomly take cars out of the car park 3. A monitor thread should periodically print out a map of the car park showing the parking slots and the identities of the currently parked cars in the occupied slots. You can do this by using one monitoring thread, 5 producer threads (simulating arrivals) and 2 consumer threads (simulating departures) with a bounded buffer (simulating the car park) of integers (simulating cars and car identities). The capacity of the car park (the buffer size) should be supplied to your program as a command line parameter.

Requirements: Use Ptread Locks for both synchronization and mutual exclusion. Implement mutual exclusion where appropriate. Do not remove cars from an empty car park. Do not add cars to a full car park. Avoid busy-waiting, starvation and deadlocks. Each producer/consumer thread must pause for a random period (up to 1s) between parking and/or removing a car. Each producer/consumer thread must pause for a random period (up to 0.2s) in its critical section. The monitor thread should periodically print out the current contents of the car park. Use pthread_barrier_init and pthread_barrier_wait to ensure that all producer and consumer threads begin producing/consuming at the same time. Your simulator shall continue working until it is interrupted from the keyboard by control-c. The output from the monitor thread must clearly show that your simulator is working as specified above. Study the output of your program to check it is operating properly, i.e. cars are continuously parking and leaving, consistently, no deadlock, no starvation, and no busy-waiting.

What to turn in: 1. Your program design document in .pdf form. 2. The fully documented, commented and working C program, in .c file(s). 3. A meaningful sample of your programs output in .pdf form. 4. A statement report of your observations and comments about your program output in .pdf. 5. All the above in one .zip file, that also includes your cover page and the executable file(s)

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

Intelligent Information And Database Systems Second International Conference Acids Hue City Vietnam March 2010 Proceedings Part 1 Lnai 5990

Authors: Manh Thanh Le ,Jerzy Swiatek ,Ngoc Thanh Nguyen

2010th Edition

3642121446, 978-3642121449

More Books

Students also viewed these Databases questions