Show Bid Request
Cosumer--Producer problem
Bid Request Id: 53534
|
|
|
Posted by: |
alzoub1 (47 ratings)
(Software buyer rating 9.95)
|
Non-action Ratio: |
Very Good - 5.77%
|
Posted: |
Mar 18, 2003 9:09:54 PM EDT
|
Bidding Closes: |
Mar 20, 2003 EDT
|
Viewed (by coders): |
192 times
|
Deadline: |
3/22/2003
TIME EXPIRED
|
|
|
|
Description:
there is anexample of the cosumer and producer
Write a program in C++ and Win32 API to implement the producer-consumer problem .
You should implement the buffer pool using two queues (i.e. linked lists): the full queue and the empty queue. The full queue contains those nodes with an item (an integer) already deposited in them (the queue is initialized to 0). The empty queue contains those empty nodes and is initialized to 10.
The producer thread first asks the user to enter an integer (0..9). It then accesses the empty queue to get an empty node from the head of the queue and deposits the item in it. It then accesses the full queue to insert the node at the tail of the queue. The consumer thread accesses the full queue to get a full node from the head of the queue and removes the item from it. It then accesses the empty queue to insert the node at the tail of the queue.
Since both queues can be accessed by the two threads simultaneously, synchronization (implemented using three semaphores) is needed. The “full” semaphore (initialized to 0) is used to indicate how many full buffers have been created. The “empty” semaphore (initialized to 10) is used to indicate how many empty buffers are available. The “mutex” semaphore is used to synchronize the access to the buffer pool.
The following events should be addressed by sending a message to the screen.
When an empty buffer is obtained by the producer thread from the empty queue. e.g. producer: an empty buffer is obtained from the empty queue.
(2) When a loaded buffer is returned to the full queue. e.g. producer: buffer containing 3 is returned to the full queue.
When a loaded buffer is obtained by the consumer thread from the full queue. e.g. consumer: buffer containing 5 is obtained from the full queue.
(4) When an empty buffer is returned to the empty queue. e.g. consumer: an empty buffer is returned to the empty queue.
You may delay the consumer (e.g. Sleep(2000)) a little bit to offset the competition between the two threads.
example see attachment
Deliverables:
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
3) Complete ownership and distribution copyrights to all work purchased.
Platform:
xp,nt,98,melinum
usualy i use visual c++ 6.0
Must be 100% finished and received by buyer on:
Mar 22, 2003 EDT
Deadline legal notes: All times are expressed in the time zone of the site EDT (UT - 5). If the buyer omitted a time, then the deadline is 11:59:59 PM EDT on the indicated date.
Additional Files:
This bid request includes IMPORTANT additional attached files. Please download and read fully before bidding.
Remember that contacting the other party outside of the site (by email, phone, etc.) on all business projects < $500 (before the buyer's money is escrowed) is a violation of both the software buyer and seller agreements.
We monitor all site activity for such violations and can instantly expel transgressers on the spot, so we thank you in advance for your cooperation.
If you notice a violation please help out the site and report it. Thanks for your help.
|
|
Bidding/Comments:
|
All monetary amounts on the site are in United States dollars.
Rent a Coder is a closed auction, so coders can only see their own bids and comments. Buyers can view every posting made on their bid requests. |
See all rejected bids (and all comments)
Name |
Bid Amount |
Date |
Coder Rating |
|
|
This bid was accepted by the buyer!
|
$25 (USD)
|
Mar 19, 2003 9:30:38 AM EDT
|
9.96
(Excellent)
|
|
|
Hope to work with you again.
thanks
|
|
|
|
|
|