Solve and write the specified synchronization problem using pthread & C.

Task/Problem 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 program’s 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)


Tags: C Programming, C++ Programming
Bid on this Job!

 

Here are some random jobs:

need marketing promoting and advertise for youtube channel

need marketing promoting and advertise for youtube channel...Read Full Description

I'm looking for 100 backlinks and 100 citations

I'm looking for 100 backlinks as well as citations for my website. I'm a contractor in Calgary, Canada. My website is [login to view URL] I'm curious how long this will roughly take?Best,Ryan...Read Full Description

Joomla SEO

1. Настроить SEO для сайта2. Поднять авторитет домена3. Попасть в Google поиск в верхние ряды...Read Full Description

Edit javascript horizontal scroll file

I need to edit this [login to view URL] so that it:-Can be scrolled when you swipe right or left with the mouse or touchpad.-Add an infinte loop for the objets. Right now you have 8 blocks and when you reach the end the scroll stops, I need it to be infinite.-...Read Full Description

VIDYA X (LOGO DESIGN)

This is a "New Indian Startup".We need simple smart and familiar logo design. Our startup mission is to focus on Education and its problems , hassles , difficulties , etc., We mostly prefer 'Indian freelancer" .[REMOVED BY FREELANCER.COM ...Read Full Description

Redesign of existing event logo "Oslo Caribbean Feeling"

SalsaNor is a non-profit organization based on volunteer effort, organizing and hosting different dance and latin related congresses, festivals and concerts. Now we need to redesign a logo for on of our events - "Oslo Caribbean Feeling" and are looki...Read Full Description

packing cover designing

I need to design a package of 500gms and 1kg plastic cover for spices packing...Read Full Description

Look for a T-Shirt Graphic Designer

Looking for a full-time designer for [login to view URL] Instagram @Blackafterparty Making a T-shirt Designs. I want to do a test run to see what you can provide.I want you to look at our Instagram and website andcome up with 5 ideas that would fit with our br...Read Full Description

 

© 2005 - 2018 getFreeLancer.com
1069406 contracts/jobs/projects currently available in our database.