Find Jobs
Hire Freelancers

Write some software -- 2

$30-250 USD

Cancelled
Posted almost 7 years ago

$30-250 USD

Paid on delivery
I need you to develop some software for me. I would like this software to be developed for Linux using C or C++. Overview: The goal of this project is to learn about synchronization techniques. This project will simulate the synchronization problem of several Readers (each reader is run in a separate thread) and Writers (each writer is run in a separate thread) accessing the same file (writers has to access the file exclusively while readers can read the file simultaneously; if a writer is writing to the file, no other reader/writer can access the file; if a reader is writing to the file, no other writer can access the file while other readers can still access the file). Writers write data into the file and Readers read data from the file. Between [1 and 9] Readers each reader waits a random time from [0 to 1000] milliseconds, and then tries to read an integer from the file. Between [1 and 9] Writers each writer waits a random time from [0 to 1000] milliseconds, they then ties to write an randomly generated integer into the file. Random numbers will be produced using the rand() function, which produces random integers between 0 and RAND_MAX. The file can be created at the beginning with both read and write allowed, and 10 numbers should be written into the file intially. You can solve this problem using either Pthreads or the Win32 API. For more description and directions, please refer to the textbook(chapter 4). Your Task In this project, you need to simulate the producer-consumer problem using three techniques out of the following: o Semaphore(required), o Monitor, o global variables, o hardware instructions (Test-and-Set etc.), o peterson's algorithm etc. Compare these three synchroniation techniques and see if they are sufficient to solve this problem. Input Format The simulator input includes three values: How long to sleep before terminating The number of reader threads The number of writer threads These three values should be read from the stdin. Output Format For each read/write action, an output line has this EXACT structure: Integer #val (written/read) by (Writer/Reader) (writer/reader number) file contents: #val, #val, ..., #val Submit: Write a 2-3 page paper describing your project, what problems you've faced and how you've overcome them. In your opinion, what is the best synchronization technique for producer-consumer problem? What are practical limitations on that technique? Is there race condition in your solution? If these is, describe why you cannot solve race condition. What to submit: Submit your test data. Submit ALL source code with detailed instructions on how and where to compile it, and how to make it run. You should submit a Makefile to build your code under GCC/G++ (recommended), Java, or whatever language you use. Note that Visual C++ also supports Makefiles, so if you use that, you can still export a makefile. I will test some of the code to make sure the numbers are not imagined. Submit your paper describing the project. Submit a file named: [login to view URL] that describes what and where all the information is stored. (which file does what, etc.). This is mostly so that I don't get lost in your project directory. Note: All descriptions and text should be in TEXT format. Do NOT submit MS Word documents, etc. Everything has to be readable without any special programs. (If something "has" to be formated, use PDF). You may use any language you wish, but you need to document what language you're using and how to compile code somewhere in your submission. Also comment your code! If I can't read it, it's wrong! When submitting, you're very likely to have many files. You can compress them into a [login to view URL] or zip and submit that. Tips: For many of you, this may be the first time to work on multithread programming. It helps to organize the code from the start, to document everything, etc. Make the code readable (not just for you, but for me as well). Modularize your code. Work on 1 thing at a time. Start by reading the input, producing producer threads and consumer threads , writing the main function. Then implement semaphore synchronization technique, make sure that works well, then implement another synchronization techinique, etc. And most importantly: Organize and design the project and know what you're doing before you start coding. (and don't wait until the last weekend to do it)
Project ID: 14082521

About the project

10 proposals
Remote project
Active 7 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
10 freelancers are bidding on average $172 USD for this job
User Avatar
Hi there, I went through the requirements and I would like to do this project if given the opportunity. I have done Producer-Consumer or Reader-Writer before using different techniques. Let me know if you are interested. Thanks.
$60 USD in 3 days
4.9 (951 reviews)
7.6
7.6
User Avatar
I am very proficient in c and c++. I have 16 years c++ developing experience now, and have worked for more than 7 years. My work is online game developing, and mainly focus on server side, using c++ under Linux environment. I made many great projects using c++, for example, I made the tools which could convert java codes into c++ scripts, of course garbage collection included, this was very similar to a compiler, and was very complex. I also made our own mobile game using c++, I can show you the demo of client, if you like. I am very proficient in java also. I have a very good review on Freelancer.com, I never miss a project once I accept the job, you can check my review. Trust me, please let expert help you.
$150 USD in 3 days
4.9 (166 reviews)
7.1
7.1
User Avatar
I want to discuss this project with you further, let me know the best suitable time for you to schedule the meeting, Feel free to message me at any time, i used to be online 14 hrs in a day on this website so probably you will get a quick response from my end..
$257 USD in 10 days
4.7 (19 reviews)
6.2
6.2
User Avatar
Hello. I have review your project description. I've just finished program like your project. Please look on my profile and please contact me. Best regards.
$100 USD in 3 days
5.0 (5 reviews)
2.9
2.9
User Avatar
Hey We are a team of Technical Developers and have got expertise in such stuff. Ping me if you are looking for a quick resolution
$200 USD in 3 days
5.0 (5 reviews)
2.5
2.5

About the client

Flag of UNITED STATES
piscataway, United States
0.0
0
Member since May 19, 2017

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759) & Freelancer Online India Private Limited (CIN U93000HR2011FTC043854)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.